2010-07-15 1 views
1

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

 
\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 работать с элементом холста? Любые указатели будут оценены.

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

ответ

0

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

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

0

Очень возможно смешивать 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>