1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
|
---
title: Éditer du MathML
slug: Web/MathML/Authoring
tags:
- Beginner
- MathML
- MathML Project
translation_of: Web/MathML/Authoring
---
<p>Cette page explique comment écrire des formules mathématiques en utilisant le langage MathML. À l'instar du HTML, le MathML est décrit par des balises et des attributs. Le code source HTML devient lourd lorsque votre document contient des structures avancées telles que des listes ou tableaux mais heureusement il existe plusieurs générateurs de HTML à partir de notations simples, des éditeurs WYSIWYG ainsi que des systèmes de gestions de contenu (CMS) qui aide à l'écriture de page Web.</p>
<p>Les notations mathématiques sont encore plus complexes, avec des structures telles que les fractions, les racines carrées ou les matrices qui sont susceptibles de nécessiter leur propre balisage. Par conséquent, de bons outils d'édition MathML sont encore plus importants et nous en décrivons quelques-uns ci-dessous. En particulier, l'équipe MathML de Mozilla a développé <a href="https://github.com/fred-wang/TeXZilla/">TeXZilla</a>, un convertisseur Javascript de LaTeX vers MathML compatible avec Unicode, dont le but est d'être utilisé dans divers scénarios décrits ici. Bien sûr, la liste n'est pas exhaustive et vous êtes invité à jeter un œil à la <a href="https://www.w3.org/Math/Software/">liste du W3C des logiciels MathML (en)</a> où vous pouvez trouver divers outils.</p>
<p>Notez que MathML est conçu pour être bien intégré au HTML5 et en particulier vous pouvez utiliser les concepts Web usuels tels que CSS, DOM, Javascript ou SVG. Cela ne rentre pas dans le cadre de ce document mais n'importe qui avec les connaissances de base des langages Web pourra facilement mélanger ceux-ci avec le MathML. Allez voir <a href="/fr/docs/Mozilla/MathML_Project#sample_mathml_documents">nos démonstrations</a> et la <a href="/fr/docs/Web/MathML">référence MathML</a> pour plus de détails.</p>
<h2 id="using_mathml">Utiliser MathML</h2>
<h4 id="example_in_html5_texthtml">MathML dans les pages HTML</h4>
<p>Vous pouvez utiliser du MathML de présentation au sein des documents HTML5 :</p>
<pre class="brush: html"><!DOCTYPE html>
<html>
<head>
<title>MathML en HTML5</title>
</head>
<body>
<h1>MathML en HTML5</h1>
<p>
Racine carrée de deux :
<math>
<msqrt>
<mn>2</mn>
</msqrt>
</math>
</p>
</body>
</html></pre>
<p>Le MathML de contenu n'est pas supporté par les navigateurs. Il vous est alors recommandé de convertir votre arborescence de MathMLde contenu en du MathML de présentation avant de le publier, par exemple à l'aide de la feuille de style <a href="https://code.google.com/p/web-xslt/source/browse/trunk/#trunk/ctop">ctop.xsl</a>. Les outils mentionnés sur cette page génèrent du MathML de présentation.</p>
<h4 id="fallback_for_browsers_without_mathml_support">Alternative pour les navigateurs sans support de MathML</h4>
<p>Malheureusement, certains navigateurs sont incapables de rendre des équations avec MathML ou en ont seulement un support limité. Par conséquent, vous devrez utiliser un émulateur de MathML pour fournir un rendu alternatif. Si vous n'avez besoin que de constructions mathématiques basiques telles que celles utilisées dans cet article alors une simple feuille de style <a href="https://github.com/fred-wang/mathml.css">mathml.css</a> devrait suffire. Pour l'utiliser, insérez cette ligne dans votre document HTML :</p>
<pre class="brush: html"><script src="https://fred-wang.github.io/mathml.css/mspace.js"></script></pre>
<p>Si vous avez besoin de constructions plus complexes, vous devrez alors envisager d'utiliser la bibliothèque <a href="https://www.mathjax.org">MathJax</a> comme émulateur de MathML :</p>
<pre class="brush: html"><script src="https://fred-wang.github.io/mathjax.js/mpadded.js"></script></pre>
<p>Notez que ces deux scripts assurent la détection des fonctionnalités des éléments <a href="/fr/docs/Web/MathML/Element/mspace">mspace</a> ou <a href="/fr/docs/Web/MathML/Element/mpadded">mpadded</a> (renseignez-vous sur la table de compatibilité des navigateurs au pied de cet article). Il existe également un script similaire permettant d'afficher un avertissement en haut de la page pour les navigateurs ne prenant pas bien en charge MathML et de laisser les utilisateurs choisir entre l'une des solutions de repli ci-dessus :</p>
<pre class="brush: html"><script src="https://fred-wang.github.io/mathml-warning.js/mpadded-min.js"></script></pre>
<p>Si vous ne voulez pas utiliser ce lien vers GitHub mais plutôt intégrer ces polyfills ou d'autres dans votre propre projet, vous pourriez avoir besoin des scripts de détection pour vérifier le niveau de support MathML. Par exemple, la fonction suivante vérifie le support MathML en testant l'élément mspace (vous pouvez remplacer <code>mspace</code> par <code>mpadded</code>) :</p>
<pre class="brush: js">function supporteMathML () {
let div = document.createElement("div"), box;
div.innerHTML = "<math><mspace height='23px' width='77px'/></math>";
document.body.appendChild(div);
let box = div.firstChild.firstChild.getBoundingClientRect();
document.body.removeChild(div);
return Math.abs(box.height - 23) <= 1 && Math.abs(box.width - 77) <= 1;
}</pre>
<p>Alternativement, la chaîne de caractères d'agent utilisateur suivante va permettre la détection des moteurs de rendu avec support natif de MathML (Gecko et WebKit) :</p>
<pre class="brush: js">var ag_ut = navigator.userAgent;
var isGecko = ag_ut.indexOf("Gecko") > -1 && ag_ut.indexOf("KHTML") === -1 && ag_ut.indexOf('Trident') === -1;
var isWebKit = ag_ut.indexOf('AppleWebKit') > -1 && ag_ut.indexOf('Chrome') === -1;</pre>
<h4 id="mathematical_fonts">Les fontes mathématiques</h4>
<p>Afin d'obtenir une bonne mise en page ou pour permettre différents mise en style, il est important d'avoir des fontes mathématiques disponibles. Vous pouvez ainsi fournir à vos visiteurs un lien vers les <a href="/fr/docs/Mozilla/MathML_Project/Fonts">Instructions sur les fontes de MDN</a>, de telle manière qu'ils puissent vérifier s'ils ont les fontes appropriées installées sur leur système ou non. Il est tout aussi bon de prévoir une alternative avec les fontes Web.</p>
<p>Avant Gecko 31.0, il était quelque peu fastidieux d'installer des fontes mathématiques, lisez à ce propos les <a href="/fr/docs/Mozilla/MathML_Project/FontsMozilla2.0#mathml_font_selection_with_css">instructions pour Mozilla 2.0</a>. Depuis Gecko 31.0, c'est beaucoup plus simple et compatible avec tout moteur de rendu Web ayant un support de MathML. Par exemple, voyez-ci une feuille de style minimale pour utiliser la fonte Latin Modern pour les textes et Latin Modern Math pour les expressions mathématiques :</p>
<pre class="brush: css">@namespace url('http://www.w3.org/1999/xhtml');
@namespace m url('http://www.w3.org/1998/Math/MathML');
body, m|mtext {
font-family: Latin Modern;
}
m|math {
font-family: Latin Modern Math;
}</pre>
<p>En fin vous pouvez utiliser la règle <a href="/fr/docs/Web/CSS/@font-face">@font-face</a> comme usuellement pour fournir une alternative WOFF pour les fontes Latin Modern et Latin Modern Math. Regardez ce <a href="https://github.com/fred-wang/MathFonts">dépôt GitHub pour obtenir des fontes WOFF et des échantillons de feuilles de style CSS</a> à utiliser sur votre site ainsi que <a href="http://fred-wang.github.io/MathFonts/">sa page d'essai</a>.</p>
<h4 id="mathml_in_xml_documents_xhtml_epub_etc">MathML dans les documents XML (XHTML, EPUB, etc)</h4>
<p>Si pour quelque raison vous avez besoin de MathML au sein de documents XML, soyez sûr de satisfaire aux exigences usuelles : document valide, usage d'un type MIME correct et espaces de noms MathML <code>"http://www.w3.org/1998/Math/MathML"</code> sur les racines <code><math></code>. Par exemple, la version XHTML de l'exemple précèdent ressemble à ceci :</p>
<pre class="brush: xml"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XHTML avec un exemple MathML</title>
</head>
<body>
<h1>XHTML avec un exemple MathML</h1>
<p>
Racine carrée de 2 :
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msqrt>
<mn>2</mn>
</msqrt>
</math>
</p>
</body>
</html></pre>
<h4 id="mathml_in_email_and_instant_messaging_clients">MathML dans les courriels et clients de messagerie instantanée</h4>
<p>Les clients courriels modernes peuvent envoyer et recevoir des courriels au format HTML5 et donc y insérer des expressions MathML. Soyez sûrs dans ce cas d'avoir activé les options "envoyez en tant que HTML" et "visionner en tant que HTML". Dans Thunderbird, vous pouvez utiliser la fonctionnalité "Insérer du HTML" pour coller votre code HTML + MathML. <a href="http://disruptive-innovations.com/zoo/MathBird/">MathBird</a> est une extension de Thunderbird pratique pour insérer des expressions MathML en utilisant la syntaxe d'insertion d'AsciiMath. À nouveau, la manière dont MathML est géré et la qualité du rendu de MathML <a href="http://www.maths-informatique-jeux.com/blog/frederic/?post/2012/11/14/Writing-mathematics-in-emails#c121">dépend des clients courriels</a>. Même si votre navigateur supporte le MathML, votre fournisseur courriel Web pourrait vous empêcher de recevoir ou d'envoyer des courriels contenant du MathML.</p>
<p>En théorie, les clients de messagerie instantanée basés sur Gecko peuvent intégrer un des convertisseurs tirés de Javascript de texte en MathML mentionnés ci-après et rendre les expressions MathML. Il y a par exemple une <a href="https://addons.instantbird.org/fr/instantbird/addon/340">extension InstantBird</a> pour gérer les expressions LaTeX.</p>
<h2 id="conversion_from_a_simple_syntax">Conversion depuis une syntaxe simple</h2>
<p>Il y a de nombreuses notations simples (par exemple les syntaxes wiki ou markdown) pour générer des pages HTML. De fait, cela est aussi vrai pour MathML: par exemple les syntaxes ASCII telles qu'utilisées dans les calculatrices ou le plus puissant langage LaTeX, très populaire dans la communauté scientifique. Dans cette section, nous présenterons quelques-uns de ces outils pour convertir du texte respectant une certaine syntaxe en MathML.</p>
<ul>
<li>Avantages :
<ul>
<li>Écrire des expressions mathématiques peut ne nécessiter qu'un éditeur de texte standard.</li>
<li>De nombreux outils sont disponibles et certains sont compatibles avec le convertisseur LaTeX-to-PDF.</li>
<li>Cela donne accès à des fonctionnalités avancées de LaTeX comme les macros.</li>
</ul>
</li>
<li>Inconvénients :
<ul>
<li>Ce peut être plus difficile à utiliser : il faut apprendre la syntaxe, une erreur dans le code amène facilement à une erreur de conversion ou de rendu etc</li>
<li>L'interface n'est pas conviviale : l'on n'a accès qu'à un éditeur de code sans rendu en direct de l'expression mathématique.</li>
<li>Aucune des syntaxes n'a été standardisée, rendant la compatibilité entre convertisseurs difficile. Par exemple, le langage populaire LaTeX continue de recevoir de nouveaux paquets et tous les convertisseurs ne sont pas à jour.</li>
</ul>
</li>
</ul>
<h3 id="client-side_conversion">Conversion côté client</h3>
<p>Dans un environnement web, la plus évidente méthode pour convertir un texte brut respectant une syntaxe en une arborescence DOM est d'utiliser Javascript. De fait, de nombreuses bibliothèques ont été développées pour accomplir cette tâche.</p>
<ul>
<li>Avantages :
<ul>
<li>Mise en place aisée : seulement un peu de Javascript et de CSS.</li>
<li>C'est une solution purement basée Web : tout est fait par les navigateurs et non par d'autres programmes nécessitant une installation.</li>
</ul>
</li>
<li>Inconvénients :
<ul>
<li>Cela ne fonctionnera pas si l'utilisateur a désactivé Javascript.</li>
<li>Le code MathML n'est pas présenté aux robots d'indexation (par exemple ceux des moteurs de recherche mathématique ou les agrégateurs de contenu).</li>
<li>La conversion doit être faite à chaque chargement de page, pouvant amener à un ralentissement du chargement ou à des conflits avec l'analyse HTML (par exemple "<" pour les balises)</li>
<li>Vous devez synchroniser le convertisseur Javascript avec les autres programmes Javascript sur votre page.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a> a un élément HTML personnalisé <a href="https://github.com/fred-wang/x-tex"><x-tex></a> pouvant être utilisé pour écrire des expressions telles que :</p>
<pre class="brush: html"><x-tex>\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1</x-tex></pre>
<p>Et l'obtenir automatiquement converti en MathML. C'est une technologie toujours en développement, mais qui pourra être améliorée à l'avenir au moyen des composants Web et du shadow DOM. Alternativement, vous pouvez utiliser la traditionnelle <a href="https://github.com/fred-wang/TeXZilla/wiki/Advanced-Usages#parsing-tex-expressions-in-your-web-page">analyse Javascript des expressions au chargement</a> comme tous les autres outils de cette section font.</p>
<p>Un autre outil de conversion, simple et côté client, est <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>. Il vous suffit de télécharger le script <a href="https://mathcs.chapman.edu/~jipsen/mathml/ASCIIMathML.js">ASCIIMathML.js</a> et de le copier dans votre dossier de site web, puis d'ajouter une balise <code><script></code> sur chaque page pour charger le script ASCIIMathML. Toute expression mathématique délimitée au moyen <code>`</code> (accent grave) sera automatiquement analysée et convertie en MathML:</p>
<pre class="brush: html"><html>
<head>
...
<script src="ASCIIMathML.js"></script>
...
</head>
<body>
...
<p>Lorem `x^2 + y^2 = r^2` ipsum ...
...
</pre>
<p><a href="https://math.etsu.edu/LaTeXMathML/">LaTeXMathML</a> est un script similaire d'analyser plus de commandes LaTeX. Son installation est semblable : copiez <a href="https://math.etsu.edu/LaTeXMathML/LaTeXMathML.js">LaTeXMathML.js</a> et <a href="https://math.etsu.edu/LaTeXMathML/LaTeXMathML.standardarticle.css">LaTeXMathML.standardarticle.css</a> dans votre dossier, ajoutez des liens vers ces fichiers dans vos documents et les contenus LaTeX de vos pages web, si marqués par la classe "LaTeX", seront automatiquement analysés et convertis en HTML et MathML:</p>
<pre class="brush: html"><head>
...
<script type="text/javascript" src="LaTeXMathML.js"></script>
<link rel="stylesheet" type="text/css" href="LaTeXMathML.standardarticle.css" />
...
</head>
<body>
...
<div class="LaTeX">
\documentclass[12pt]{article}
\begin{document}
\title{Exemple LaTeXML}
\maketitle
\begin{abstract}
Il s'agit d'un exemple de document LaTeXML.
\end{abstract}
\section{Première section}
$$ \sum_{n=1}^{+\infty} \frac{1}{n^2} = \frac{\pi^2}{6} $$
\end{document}
</div>
...</pre>
<p><a href="https://mathscribe.com/author/jqmath.html">jqMath</a> est un autre script pour analyser une expression utilisant une syntaxe simplifiée proche de LaTeX mais supportant en plus les caractères non-ASCII comme <code>√{∑↙{n=1}↖{+∞} 6/n^2} = π²</code> pour rendre <math> <mrow> <msqrt> <mrow class="ma-repel-adj"> <munderover> <mo>∑</mo> <mrow> <mi>n</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mo>+</mo> <mi>∞</mi> </mrow> </munderover> <mfrac> <mn>6</mn> <msup> <mi>n</mi> <mn>2</mn> </msup> </mfrac> </mrow> </msqrt> <mo>=</mo> <mi>π²</mi> </mrow> </math>. Son installation se fait de la même manière : copiez ses fichiers <a href="https://mathscribe.com/downloads/mathscribe-unix-0.4.0.zip">Javascript et CSS</a> dans votre dossier de site web et référencez-les dans vos pages (regardez le fichier <code>COPY-ME.html</code> de l'archive zip pour lire un exemple). L'un des avantages de jqMath par rapport aux scripts précédents est qu'il ajoutera automatiquement quelques règles CSS pour faire l'affichage mathématique et rendre les formules lisibles sur des navigateurs avec un support limité de MathML.</p>
<h3 id="command-line_programs">Programmes en ligne de commande</h3>
<p>Un moyen alternatif est de convertir les expressions LaTeX avant de publier votre site web. Vous pouvez utiliser des programmes en ligne de commande pour générer et publier ces pages statiques sur votre serveur.</p>
<ul>
<li>Avantages :
<ul>
<li>On obtient des pages web statiques : le code source en LaTeX ne nécessite pas d'être converti à chaque chargement, le code MathML est exposé aux robots d'indexation et l'on peut ajouter le code MathML aisément sur tout serveur web.</li>
<li>Des programmes binaires peuvent s'exécuter plus vite que des programmes Javascript et être plus sophistiqués, c'est-à-dire avoir un support LaTeX plus complet ou générer d'autres formats comme l'EPUB.</li>
<li>Vous pouvez assurer la compatibilité avec d'autres outils pour générer un PDF, c'est-à-dire que vous pouvez utiliser le même fichier source.tex pour à la fois faire du LaTeX et du LaTeXML.</li>
</ul>
</li>
<li>Inconvénients :
<ul>
<li>Cela requiert d'installer des programmes sur son ordinateur, ce qui peut être plus compliqué ; et ces programmes peuvent être indisponibles sur certaines plates-formes.</li>
<li>Vous devez exécuter ces programmes sur votre ordinateur et avoir un flux de travail pour obtenir vos pages web à la fin ; cela peut s'avérer quelque peu fastidieux.</li>
<li>Les programmes binaires ne sont pas appropriés dans une extension Mozilla ou une application XUL.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a> peut être utilisé <a href="https://github.com/fred-wang/TeXZilla/wiki/Using-TeXZilla#usage-from-the-command-line">depuis la ligne de commande</a> et a essentiellement le même support qu'itex2MML, décrit précédemment. Toutefois, le comportement de filtre de flux n'est pas encore implémenté.</p>
<p>Si vous souhaitez seulement convertir de simples expressions mathématiques LaTeX, vous pourriez vouloir essayer des outils tels que <a href="https://golem.ph.utexas.edu/~distler/blog/itex2MML.html">itex2MML</a> ou <a href="http://gva.noekeon.org/blahtexml/">Blahtex</a>. Ce dernier est souvent disponible sous les distributions Linux. Le premier a été originellement écrit par Paul Gartside au début du projet MathML de Mozilla et a été maintenu par Jacques Distler depuis. C'est un petit filtre de flux écrit en C/C++ et généré avec flex et bison ; qui a la particularité d'être très rapide. Installez simplement flex/bison de même que le compilateur classique et vous pourrez vous en servir. Sur Unix, vous pouvez télécharger itex2MML, le compiler et l'installer :</p>
<pre class="brush: bash">wget http://golem.ph.utexas.edu/~distler/blog/files/itexToMML.tar.gz; \
tar -xzf itexToMML.tar.gz; \
cd itex2MML/itex-src;
make
sudo make install</pre>
<p>Supposons maintenant que nous avons un document HTML avec des parties en LaTeX délimitées par le symbole '$' :</p>
<pre class="brush: html">input.html
...
</head>
<body>
<p>$\sqrt{a^2-3c}$</p>
<p>$$ {\sum_{i=1}^N i} = \frac{N(N+1)}{2} $$</p>
</body>
</html></pre>
<p>Alors pour générer à partir de la page input.html la page output.html en remplaçant les expressions TeX par leurs équivalents MathML, entrez simplement :</p>
<pre>cat input.html | itex2MML > output.html</pre>
<p>Il y a des outils encore plus sophistiqués pour convertir des documents arbitraires LaTeX en HTML et MathML. Par exemple <a href="https://www.tug.org/tex4ht/">TeX4ht</a> est souvent inclus dans les distributions TeX et a une option pour utiliser MathML plutôt que des images PNG. Cette commande générera un document en XHTML et MathML du nom de foo.xml à partir d'un fichier source LaTeX foo.tex :</p>
<pre>mk4ht mzlatex foo.tex # Linux / MacOS
mzlatex foo.tex # Windows
</pre>
<p>Notez que <a href="https://github.com/michal-h21/tex4ebook">tex4ebook</a> s'appuie sur TeX4ht pour générer des documents EPUB.</p>
<p><a href="https://dlmf.nist.gov/LaTeXML/" name="LaTeXML">LaTeXML</a> est un autre outil qui permet de générer des documents HTML5 et EPUB. Les utilisateurs de Windows peuvent regarder ce <a href="https://www.youtube.com/watch?v=Dg881w2e-lI">tutoriel vidéo</a>. Étant donné un fichier LaTeX foo.tex, vous pouvez utiliser ces simples commandes :</p>
<pre>latexml --dest foo.xml foo.tex
latexmlpost --dest foo.html --format=html5 foo.xml</pre>
<p>Pour gérer le cas des navigateurs ne supportant pas MathML, vous pouvez utiliser le paramètre <code>--javascript</code> pour indiquer à LaTeXML d'inclure l'un des <a href="#fallback_for_browsers_without_mathml_support">scripts de substitution</a> :</p>
<pre>latexmlc --dest foo.html --javascript=https://fred-wang.github.io/mathml.css/mspace.js foo.tex # Add the CSS fallback
latexmlc --dest foo.html --javascript=https://fred-wang.github.io/mathjax.js/mpadded-min.js foo.tex # Add the MathJax fallback
</pre>
<p>Si votre document LaTeX est volumineux, vous pouvez vouloir le diviser en plusieurs petites pages plutôt que de tout mettre dans une seule grande page. Par exemple, ceci va diviser les pages au niveau de la <code>\section</code> :</p>
<pre>latexmlc --dest foo.html --splitat=section foo.tex</pre>
<h3 id="server-side_conversion">Conversion côté serveur</h3>
<ul>
<li>Avantages :
<ul>
<li>La conversion est faite côté serveur et le rendu MathML peut être mis en cache, ce qui est plus efficace et propre qu'une conversion côté serveur.</li>
</ul>
</li>
<li>Inconvénients :
<ul>
<li>Ce pourrait être plus difficile à mettre en œuvre puisque vous pourriez avoir besoin de droits d'administrateur sur le serveur.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a>, <a href="https://dlmf.nist.gov/LaTeXML/">LaTeXML</a> et <a href="https://github.com/gwicke/mathoid">Mathoid</a> peuvent être utilisés pour effectuer une conversion LaTeX vers MathML côté serveur. <a href="http://instiki.org/show/HomePage">Instiki</a> et <a href="https://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a> sont deux moteurs de wiki qui prennent en charge la conversion LaTeX vers MathML.</p>
<h2 id="graphical_interface">Interface graphique</h2>
<h3 id="input_box">Boîte de saisie</h3>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a> possède plusieurs interfaces, notamment une <a href="https://ckeditor.com/addon/texzilla">fiche CKEditor</a> utilisé sur MDN, une <a href="https://fred-wang.github.io/TeXZilla/">démo en ligne</a>, un <a href="https://addons.mozilla.org/en-US/firefox/addon/texzilla/">module de Firefox</a> ou encore une <a href="https://marketplace.firefox.com/app/texzilla-1/">application web FirefoxOS</a>. Il est également intégré à <a href="https://www.seamonkey-project.org/">SeaMonkey</a> depuis la version 2.28 et à <a href="https://www.mozilla.org/thunderbird/">Thunderbird</a> depuis la version 31. <a href="http://abisource.org/">Abiword</a> contient un petit éditeur d'équations, basé sur itex2MML. Enfin,<a href="http://www.bluegriffon.com/"> Bluegriffon</a> possède un module complémentaire permettant d'insérer des formules MathML dans votre document, en utilisant une syntaxe de type ASCII/LaTeX.</p>
<p style="text-align: center;"><img alt="BlueGriffon" src="mathml-shot1.png"></p>
<h3 id="wysiywg_editors">Éditeur WYSIYWG</h3>
<p><a href="https://www.firemath.info/">Firemath</a> est une extension pour Firefox qui fournit un éditeur MathML WYSIWYG (« <i>what you see is what you get</i> » qui signifie « <i>ce que vous voyez est ce que vous obtenez</i> »). Un aperçu de la formule est affiché en utilisant le moteur de rendu de Mozilla. Le code MathML généré est disponible en bas. Utilisez le champ de texte pour les éléments symboliques et les boutons pour réaliser des constructions avancées. Une fois que vous avez terminé, vous pouvez enregistrer votre document en tant que page XHTML.</p>
<p><a href="https://www.lyx.org/">LyX</a> est un éditeur graphique LaTeX, qui dispose d'un support intégré pour l'exportation XHTML+MathML et peut être configuré pour utiliser des convertisseurs LaTeX-to-(X)HTML similaires. Vous pouvez par exemple le configurer pour <a href="https://github.com/brucemiller/LaTeXML/wiki/Integrating-LaTeXML-into-TeX-editors#lyx">utiliser l'exportation LaTeXML HTML5/EPUB</a>.</p>
<p><a href="https://www.openoffice.org/">OpenOffice</a> et <a href="https://libreoffice.org/">LibreOffice</a> disposent d'un éditeur d'équations (Fichier → Nouveau → Formule). Il est semi-WYSIWYG : vous saisissez la source de la formule à l'aide du panneau/clavier d'équation et un aperçu de la formule est régulièrement rafraîchi. L'éditeur utilise sa propre syntaxe "StarMath" pour la source mais le code MathML est également généré lors de l'enregistrement du document. Pour obtenir le code MathML, enregistrez le document au format mml et ouvrez-le avec n'importe quel éditeur de texte. Vous pouvez également extraire le fichier odf (qui est en fait une archive zip) et ouvrir un fichier xml appelé <code>content.xml</code>.</p>
<p style="text-align: center;"><img alt="Open Office Math" src="openoffice.png"></p>
<p><a href="https://www.w3.org/Amaya/">Amaya</a> est l'éditeur web du W3C, qui est capable de gérer le MathML à l'intérieur des documents XHTML. Utilisez les panneaux Éléments et Caractères spéciaux pour créer diverses constructions mathématiques avancées. Un texte simple tel que <code>a+2</code> est automatiquement analysé et le balisage MathML approprié est généré. Une fois que vous avez terminé, vous pouvez directement enregistrer votre page XHTML et l'ouvrir dans Mozilla.</p>
<h2 id="optical_character_handwriting_recognition">Caractère optique & Reconnaissance de l'écriture manuscrite</h2>
<p><a href="https://www.inftyreader.org/">Inftyreader</a> est capable d'effectuer une certaine reconnaissance optique des caractères, notamment la traduction d'équations mathématiques en MathML. D'autres outils peuvent faire de la reconnaissance d'écriture, comme le <a href="https://docs.microsoft.com/fr-fr/windows/win32/win7devguide/handwriting-and-ink?redirectedfrom=MSDN">Panneau de saisie mathématique de Windows</a> ou le convertisseur en ligne <a href="https://webdemo.myscript.com/views/math.html">Equation Web</a>.</p>
<h3 id="original_document_information">Informations sur le document original</h3>
<ul>
<li>Auteur(s) : Frédéric Wang</li>
<li>Autres contributeurs : Florian Scholz</li>
<li>Informations sur les droits d'auteur : Certaines parties de ce contenu sont © 2010 par les contributeurs individuels de mozilla.org ; contenu disponible sous une licence Creative Commons | <a href="https://www.mozilla.org/foundation/licensing/website-content.html">Détails</a>.</li>
</ul>
|