2010-07-15 17 views
1

J'ai le tableau suivant (code LaTeX donné) que je voudrais rendre HTML5-friendly via SVG, ou MathML, ou (plus probablement) une combinaison :implémenter le tableau 'math' comme image web-ready (par exemple 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} 

je peux le faire (presque) avec MathML, mais le prochain désir devient problématique: superposant le tableau avec un (statique) serpentant flèche qui montre au lecteur comment énumérer l'ensemble infini pour montrer qu'il est dénombrable.

Si je pouvais intégrer MathML en SVG, je pourrais faire ce diagramme. Mais il semble que ce n'est pas possible. (Les balises HTML dans un objet SVG échouent.) Un élément MathML dans un élément canvas peut-il fonctionner? Tout pointeur serait apprécié.

Mon but ultime est de créer des textes de mathématiques au format ePUB. Ce sont les types de problèmes qui sont mon plus gros problème, en ce moment.

Répondre

0

Je suggère d'utiliser le HTML comme conteneur, avec MathML et SVG en ligne dans le document. De cette façon, il est facile de repositionner et d'empiler des graphiques/équations/texte comme vous le souhaitez avec CSS.

L'autre option à laquelle je peux penser est l'élément foreignObject dans svg, qui peut contenir par exemple HTML ou MathML.

0

Il est très possible de mélanger MathML et SVG. La clé est de placer votre MathML dans l'élément foreignObject. Je ne lis pas Latex, donc je ne sais pas à quoi ressemble ta flèche, alors je me suis contenté de mettre une boîte autour d'une équation. J'espère que cela suffira pour démontrer que c'est possible. Notez que seul Firefox 5 semble bien afficher MathML en ce moment.

<!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>