реализовать массив 'math' в качестве готового к использованию изображения (например, SVG) - PullRequest
1 голос
/ 15 июля 2010

У меня есть следующий массив (данный код LaTeX), который я хотел бы сделать HTML5-дружественным через SVG, или MathML, или (что более вероятно) некоторую комбинацию:

\begin{array}{ccccccc}
0 &&&& \\ \rule[.6cm]{0pt}{0pt}
a_1 & a_2 & a_3 & a_4 & \cdots \\ \rule[.75cm]{0pt}{0pt}
b_1 & b_2 & b_3 & b_4 & \cdots \\ \rule[.75cm]{0pt}{0pt}
\end{array}

Я могу сделать это(почти) с MathML, но следующее желание становится проблематичным: наложение массива (статической) скользящей стрелкой, которая показывает читателю, как перечислить бесконечный массив, чтобы показать, что он исчисляется.

Если бы я мог вставитьMathML в SVG, я мог бы сделать эту диаграмму.Но, похоже, это невозможно.(HTML-теги в объекте SVG не работают.) Может ли MathML в элементе canvas работать?Будем благодарны за любые указатели.

Моя конечная цель - создавать математические тексты в формате ePUB.Это те проблемы, которые сейчас являются для меня самым большим камнем преткновения.

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Очень возможно смешать MathML и SVG. Ключ заключается в том, чтобы поместить ваш MathML внутри элемента foreignObject.

Я не читаю Латекс, поэтому я не знаю, как должна выглядеть ваша змеиная стрела, поэтому я решил поставить рамку вокруг уравнения. Надеюсь, этого будет достаточно, чтобы продемонстрировать, что это возможно. Обратите внимание, что в настоящее время только Firefox 5 хорошо показывает MathML.

<!DOCTYPE html>
<html>
    <body>
        <svg id="svg1" width="300" height="300" xmlns="http://www.w3.org/2000/svg">
            <rect x="40" y="40" height="100" width="100" style="stroke:black; fill:lightblue"/>
            <foreignObject x="50" y="50" width="100" height="100">
                <math xmlns="http://www.w3.org/1998/Math/MathML">
                    <mrow>
                        <mi>A</mi>
                        <mo>=</mo>
                        <mfenced open="[" close="]">
                            <mtable>
                                <mtr>
                                    <mtd><mi>x</mi></mtd>
                                    <mtd><mi>y</mi></mtd>
                                </mtr>
                                <mtr>
                                    <mtd><mi>z</mi></mtd>
                                    <mtd><mi>w</mi></mtd>
                                </mtr>
                            </mtable>
                        </mfenced>
                    </mrow>
                </math>
            </foreignObject>
        </svg>
    </body>
</html>
0 голосов
/ 15 июля 2010

Я бы предложил использовать HTML в качестве контейнера, с MathML и SVG, встроенными в документ.Таким образом, с помощью CSS можно легко перемещать и складывать графику / уравнения / текст так, как вам нужно.

Другой вариант, о котором я могу подумать, это элемент foreignObject в svg, который может содержать, например, HTML или MathML.

...