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
339
340
341
342
343
344
345
346
347
348
349
350
|
---
title: Escrever MathML
slug: Web/MathML/Authoring
tags:
- Beginner
- MathML
- Projeto MathML
translation_of: Web/MathML/Authoring
---
<p>Esta página explica como se escreve matemática através da linguagem MathML. Como o HTML, o MathML é descrito com tags e atributos. O HTML torna-se verboso quando o seu documento contém estruturas avançadas como listas ou tabelas mas felizmente existem muitos geradores de simples notações, editores WYSIWYG e outros Sistemas de Gestão de Conteúdos para ajudar a escrever páginas Web.</p>
<p>Mathematical notations are even more complex with structures like fractions, square roots or matrices that are likely to require their own tags. As a consequence, good MathML authoring tools are more important and we describe some tools below. In particular, the Mozilla MathML team has been developing <a href="https://github.com/fred-wang/TeXZilla/">TeXZilla</a>, a Javascript Unicode LaTeX-to-MathML converter that is intended to be used in many scenarios described here. Of course, the list is by no means exhaustive and you are invited to check out the <a class="external" href="http://www.w3.org/Math/Software/">W3C MathML software list</a> where you can find various other tools.</p>
<p>As notações matemáticas são ainda mais complexas com estruturas como fracções, raízes quadradas ou matrizes que provavelmente exigirão as suas próprias etiquetas. Como consequência, as boas ferramentas de autoria de MathML são mais importantes, e descrevemos algumas ferramentas abaixo. Em particular, a equipa do Mozilla MathML tem vindo a desenvolver o <a href="https://github.com/fred-wang/TeXZilla/">TeXZilla</a>, um conversor Javascript Unicode LaTeX para MathML que se destina a ser utilizado em muitos cenários aqui descritos. É claro que a lista não é de modo algum exaustiva e está convidado a consultar <a href="http://www.w3.org/Math/Software/">a lista de software MathML do W3C</a>, onde pode encontrar várias outras ferramentas.</p>
<p>MathML está bem integrado em HTML5 e, em particular, pode usar características habituais da Web como CSS, DOM, Javascript ou SVG. Isto está fora do âmbito deste documento, mas qualquer pessoa com conhecimentos básicos de línguas Web poderá facilmente misturar estas características com MathML. Consulte <a href="/en-US/docs/Mozilla/MathML_Project#Sample_MathML_Documents">as nossas demos</a> e <a href="/pt-PT/docs/Web/MathML">referências de MathML</a> para mais detalhes.</p>
<h2 id="Usar_MathML">Usar MathML</h2>
<h4 id="Example_in_HTML5_texthtml" name="Example_in_HTML5_(text/html)">MathML em páginas de HTML</h4>
<p>Pode usar <em>Presentation MathML</em> dentro de documentos de HTML5:</p>
<pre class="brush: html notranslate"><!DOCTYPE html>
<html>
<head>
<title>MathML in HTML5</title>
</head>
<body>
<h1>MathML in HTML5</h1>
<p>
Square root of two:
<math>
<msqrt>
<mn>2</mn>
</msqrt>
</math>
</p>
</body>
</html> </pre>
<p><em>Content MathML</em> não é suportado por navegadores. É recomendado converter o conteudo de <em>Content MathML</em> em <em>Presentation MathML</em> antes do publicar, como o <em>stylesheet</em> <a class="external" href="http://code.google.com/p/web-xslt/source/browse/trunk/#trunk/ctop">ctop.xsl</a>. As ferramentas mencionadas nesta página gerem <em>Presentation MathML</em>.</p>
<h4 id="Contingência_para_navegadores_que_não_apoiam_MathML">Contingência para navegadores que não apoiam MathML</h4>
<p>Infelizmente, alguns navegadores não são capazes de fazer equações MathML ou têm apenas um suporte limitado. Consequentemente, será necessário utilizar um polyfil para MathML para fornecer alguma renderização de recurso. Se precisar apenas de construções matemáticas básicas como as utilizadas nesta wiki MDN, então uma pequena folha de estilo <a href="https://github.com/fred-wang/mathml.css">mathml.css</a> poderá ser suficiente. Para a utilizar, basta inserir uma linha no cabeçalho do seu documento:</p>
<pre class="brush: html notranslate"><script src="https://fred-wang.github.io/mathml.css/mspace.js"></script></pre>
<p>Se precisar de construções mais complexas, poderá, em vez disso, considerar a utilização da biblioteca MathJax mais pesada como um polifill MathML:</p>
<p>Se precisar de construções mais complexas, poderá, em vez disso, considerar a utilização da biblioteca <a href="http://www.mathjax.org">MathJax</a> mais pesada como um polifill MathML:</p>
<pre class="brush: html notranslate"><script src="https://fred-wang.github.io/mathjax.js/mpadded-min.js"></script></pre>
<p>É de destacar que estes dois <em>scripts</em> realizam a detecção dos elementos <a href="/pt-PT/docs/Web/MathML/Element/mspace">mspace</a> ou <a href="/pt-PT/docs/Web/MathML/Element/mpadded">mpadded</a> (ver a tabela de compatibilidade nestas páginas). Existe também um script semelhante para exibir um aviso no topo da página para navegadores sem bom suporte MathML e deixar os utilizadores escolherem entre uma das alternativas acima:</p>
<pre class="brush: html notranslate"><script src="https://fred-wang.github.io/mathml-warning.js/mpadded-min.js"></script></pre>
<p>Se não quiser utilizar esta hiperligação para o GitHub mas sim integrar estes polyfills ou outros no seu próprio projecto, poderá precisar dos scripts de detecção para verificar o nível de suporte de MathML. Por exemplo, a função seguinte verifica o suporte MathML testando o elemento mspace (pode substituir o <code>mspace</code> por <code>mpadded</code>):</p>
<pre class="brush: js notranslate"> function hasMathMLSupport() {
var div = document.createElement("div"), box;
div.innerHTML = "<math><mspace height='23px' width='77px'/></math>";
document.body.appendChild(div);
box = div.firstChild.firstChild.getBoundingClientRect();
document.body.removeChild(div);
return Math.abs(box.height - 23) <= 1 && Math.abs(box.width - 77) <= 1;
}</pre>
<p>Em alternativa, o seguinte deteção de strings do UA permitirá detectar os motores de renderização com suporte nativo de MathML (Gecko e WebKit). Note-se que a deteção de strings do UA não é o método mais fiável e pode falhar de versão para versão:</p>
<pre class="brush: js notranslate">var ua = navigator.userAgent;
var isGecko = ua.indexOf("Gecko") > -1 && ua.indexOf("KHTML") === -1 && ua.indexOf('Trident') === -1;
var isWebKit = ua.indexOf('AppleWebKit') > -1 && ua.indexOf('Chrome') === -1;
</pre>
<h4 id="Fontes_matemáticas">Fontes matemáticas</h4>
<p>A fim de obter uma boa formatação ou de permitir um estilo diferente, é importante ter fontes matemáticas disponíveis. É sempre bom fornecer uma ligação às <a href="/pt-PT/docs/Mozilla/MathML_Project/Fonts">Instruções de Fontes da MDN</a>, para que os seus visitantes possam verificar se têm fontes apropriadas instaladas no seu sistema. Também é bom fornecer um contigente com fontes da Web.</p>
<p>Antes de Gecko 31.0 {{GeckoRelease("31.0")}}, era um pouco aborrecido configurar fontes matemáticas (ver as instruções da fonte para Mozilla 2.0). Para Gecko 31.0 {{GeckoRelease("31.0")}}, isto é muito mais simples e é compatível com qualquer motor de renderização Web com suporte MathML. Por exemplo, aqui está uma folha de estilo mínima para usar o latim moderno para o texto e o latim moderno matemático para a matemática:</p>
<pre class="brush: css notranslate">@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>Pode usar a regra <a href="/pt-PT/docs/Web/CSS/@font-face">@font-face</a> como normal para ofrecer uma alternativa WOFF para <em>Latin Modern</em> e <em>Latin Modern Math</em>. Veja este <a href="https://github.com/fred-wang/MathFonts">repositório no GitHub para encontrar fontes WOFF e exemplos de stylesheets de CSS</a> para usar no seu site e verifique <a href="http://fred-wang.github.io/MathFonts/">a página de teste</a>.</p>
<h4 id="MathML_em_documentos_de_XML_XHTML_EPUB_etc">MathML em documentos de XML (XHTML, EPUB, etc)</h4>
<p>Se por alguma razão precisar de usar MathML em documentos de XML, certifique-se que satisfaz os requerimentos habituais: um documento bem formatado, o tipo de MIME correto, o <em>namespace</em> de MathML <code>"http://www.w3.org/1998/Math/MathML"</code> nas raizes <code><math></code>. Por exemplo, a versão XHTML do exemplo anterior fica assim:</p>
<pre class="brush: xml notranslate"><?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+MathML Example</title>
</head>
<body>
<h1>XHTML+MathML Example</h1>
<p>
Square root of two:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<msqrt>
<mn>2</mn>
</msqrt>
</math>
</p>
</body>
</html> </pre>
<h4 id="MathML_em_email_e_clientes_de_comunicação_instantânea">MathML em email e clientes de comunicação instantânea</h4>
<p>Os clientes de correio modernos podem enviar e receber correio electrónico no formato HTML5 e assim podem utilizar expressões MathML. Certifique-se de que as opções "enviar como HTML" e "ver como HTML" estão activadas. No Thunderbird, pode usar o comando "Inserir HTML" para colar o seu código HTML e MathML. <a href="http://disruptive-innovations.com/zoo/MathBird/">MathBird</a> é um add-on conveniente para o Thunderbird inserir tais expressões MathML usando a sintaxe de AsciiMath. Além disso, uma caixa de entrada LaTeX-to-MathML foi também integrada no <a href="http://www.seamonkey-project.org/">SeaMonkey</a> desde a versão 2.28 e no <a href="https://www.mozilla.org/thunderbird/">Thunderbird</a> desde a versão 31. A forma como o MathML é tratado e a qualidade da renderização do MathML <a href="http://web.archive.org/web/20160304021257/http://www.maths-informatique-jeux.com/blog/frederic/?post/2012/11/14/Writing-mathematics-in-emails#c121">depende do cliente de correio</a> e mesmo que o seu browser suporte MathML, o seu Webmail pode impedi-lo de enviar ou receber e-mails com MathML dentro.</p>
<p>Os clientes de mensagens instantâneas baseadas no Gecko podem integrar um conversor de texto para MathML baseado em Javascript (mencionado abaixo) e depois renderizar as expressões MathML geradas a partir das mensagens instantâneas (em texto simples). Por exemplo, existe um add-on para o Instantbird que trata das expressões LaTeX.</p>
<h2 id="Converção_a_partir_de_Sintaxe_Simples">Converção a partir de Sintaxe Simples</h2>
<p>Existem muitas notações simples (por exemplo, wiki ou sintaxes markdown) para gerar páginas HTML. O mesmo é válido para MathML: por exemplo, as sintaxes ASCII utilizadas em calculadoras ou a linguagem mais poderosa LaTeX, muito popular entre a comunidade científica. Nesta secção, apresentamos algumas destas ferramentas para converter de uma simples sintaxe para MathML.</p>
<ul>
<li>pros:
<ul>
<li>Escrever expressões matemáticas pode requerer só um editor de texto simples.</li>
<li>Muitas ferramentas estão disponiveis, algumas são compativeis com o workflow clássico de LaTeX-to-pdf.</li>
<li>Oferece accesso a funções avancadas de macros estilo LaTeX.</li>
</ul>
</li>
<li>cons:
<ul>
<li>Pode ser mais dificil de usar: o utilizador tem de aprender o sintaxe, pois erros no código podem causar erros no processamento, na apresentação final, etc.</li>
<li>A interface não é muito accessivel: é só um editor de texto sem a apresentação imediata do produto final.</li>
<li>O sintaxe não tem um padrão decidido, fazendo com que a compatibilidade entre conversores seja dificil. Até a linguagem populat LaTeX continua a crescer e a ser atualizada.</li>
</ul>
</li>
</ul>
<h3 id="Converção_client-side">Converção <em>client-side</em></h3>
<p>In a Web environment, the most obvious method to convert a simple syntax into a DOM tree is to use Javascript and of course many libraries have been developed to perform that task.</p>
<ul>
<li>pros:
<ul>
<li>This is very easy setup: only a few Javascript and CSS files to upload and/or a link to add to your document header.</li>
<li>This is a pure Web-based solution: everything is done by the browsers and no other programs must be installed or compiled.</li>
</ul>
</li>
<li>cons:
<ul>
<li>This won't work if the visitor has Javascript disabled.</li>
<li>The MathML code is not exposed to Web crawlers (e.g. those of math search engines or feed aggregators). In particular, your content won't show up properly on Planet.</li>
<li>The conversion must be done at each page load, may be slow and may conflict with the HTML parsing (e.g. "<" for tags or "$" for money amounts)</li>
<li>You may need to synchronize the Javascript converter with other Javascript programs on your page.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a> has an <a href="https://github.com/fred-wang/x-tex"><x-tex></a> custom element, that can be used to write things like</p>
<pre class="notranslate"><span class="brush: html"><<span class="start-tag">x-tex</span>></span><span>\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1</span><span class="brush: html"></<span class="end-tag">x-tex</span>></span></pre>
<p>and get it automatically converted into MathML. This is still a work-in-progress, but could be improved in the future thanks to Web Components and shadow DOM. Alternatively, you can use the more traditional <a href="https://github.com/fred-wang/TeXZilla/wiki/Advanced-Usages#parsing-tex-expressions-in-your-web-page">Javascript parsing of expressions at load time</a> as all the other tools in this section do.</p>
<p>One simple client-side conversion tools is <a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html" title="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">ASCIIMathML</a>. Just download the <a href="http://mathcs.chapman.edu/~jipsen/mathml/ASCIIMathML.js" title="http://mathcs.chapman.edu/~jipsen/mathml/ASCIIMathML.js">ASCIIMathML.js</a> script and copy it to your Web site. Then on your Web pages, add a <code><script></code> tag to load ASCIIMathML and the mathematical expressions delimited by <code>`</code> (grave accent) will be automatically parsed and converted to MathML:</p>
<pre class="brush: html notranslate"><html>
<head>
...
<script type="text/javascript" src="ASCIIMathML.js"></script>
...
</head>
<body>
...
<p>blah blah `x^2 + y^2 = r^2` blah ...
...
</pre>
<p><a href="http://math.etsu.edu/LaTeXMathML/" title="http://math.etsu.edu/LaTeXMathML/">LaTeXMathML</a> is a similar script that allows to parse more LaTeX commands. The installation is similar: copy <a href="http://math.etsu.edu/LaTeXMathML/LaTeXMathML.js" title="http://math.etsu.edu/LaTeXMathML/LaTeXMathML.js">LaTeXMathML.js</a> and <a href="http://math.etsu.edu/LaTeXMathML/LaTeXMathML.standardarticle.css" title="http://math.etsu.edu/LaTeXMathML/LaTeXMathML.standardarticle.css">LaTeXMathML.standardarticle.css</a>, add links in the header of your document and the LaTeX content of your Web page marked by the "LaTeX" class will be automatically parsed and converted to HTML+MathML:</p>
<pre class="brush: html notranslate"><span><<span class="start-tag">head</span>></span>
<span>...
</span><span><<span class="start-tag">script</span> <span class="attribute-name">type</span>="<a class="attribute-value">text/javascript</a>" <span class="attribute-name">src</span>="<a class="attribute-value">LaTeXMathML.js</a>"></span><span></<span class="end-tag">script</span>></span><span>
</span><span><<span class="start-tag">link</span> <span class="attribute-name">rel</span>="<a class="attribute-value">stylesheet</a>" <span class="attribute-name">type</span>="<a class="attribute-value">text/css</a>" <span class="attribute-name">href</span>="<a class="attribute-value">LaTeXMathML.standardarticle.css</a>" <span>/</span>></span><span>
...
</span><span></<span class="end-tag">head</span>></span><span>
</span><span><<span class="start-tag">body</span>></span><span>
...
</span><div class="LaTeX">
\documentclass[12pt]{article}
\begin{document}
\title{LaTeXML Example}
\maketitle
\begin{abstract}
This is a sample LaTeXML document.
\end{abstract}
\section{First Section}
$$ \sum_{n=1}^{+\infty} \frac{1}{n^2} = \frac{\pi^2}{6} $$
\end{document}
</div>
...</pre>
<p><a href="http://mathscribe.com/author/jqmath.html" title="http://mathscribe.com/author/jqmath.html">jqMath</a> is another script to parse a simple LaTeX-like syntax but which also accepts non-ASCII characters like <code>√{∑↙{n=1}↖{+∞} 6/n^2} = π</code> to write <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>. The installation is similar: download and copy the relevant <a href="http://mathscribe.com/downloads/mathscribe-unix-0.4.0.zip" title="http://mathscribe.com/downloads/mathscribe-unix-0.4.0.zip">Javascript and CSS files</a> on your Web site and reference them in your page header (see the <code>COPY-ME.html</code> file from the zip archive for an example). One of the advantage of jqMath over the previous scripts is that it will automatically add some simple CSS rules to do the mathematical layout and make the formulas readable on browsers with limited MathML support.</p>
<h3 id="Programas_de_linha_de_comando">Programas de linha de comando</h3>
<p>An alternative way is to parse the simple syntax before publishing your web pages. That is, you use command-line programs to generate them and publish these static pages on your server.</p>
<ul>
<li>pros:
<ul>
<li>You get static Web pages: the LaTeX source don't need to be parsed at each page load, the MathML code is exposed to Web crawlers and you can put them easily on any Web server.</li>
<li>Binary programs may run faster than Javascript programs and can be more sophisticated e.g. have a much complete LaTeX support or generate other formats like EPUB.</li>
<li>You can keep compatibility with other tools to generate pdf e.g. you can use the same .tex source for both latex and latexml.</li>
</ul>
</li>
<li>cons:
<ul>
<li>This requires to install programs on your computer, which may be a bit more difficult or they may not be available on all platforms.</li>
<li>You must run the programs on your computer and have some kind of workflow to get the Web pages at the end ; that may be a bit tedious.</li>
<li>Binary programs are not appropriate to integrate them in a Mozilla extension or XUL application.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a> can be used <a href="https://github.com/fred-wang/TeXZilla/wiki/Using-TeXZilla#usage-from-the-command-line">from the command line</a> and will essentially have the same support as itex2MML described below. However, the stream filter behavior is not implemented yet.</p>
<p>If you only want to parse simple LaTeX mathematical expressions, you might want to try tools like <a href="http://golem.ph.utexas.edu/~distler/blog/itex2MML.html" title="http://golem.ph.utexas.edu/~distler/blog/itex2MML.html">itex2MML</a> or <a href="http://gva.noekeon.org/blahtexml/" title="http://gva.noekeon.org/blahtexml/">Blahtex</a>. The latter is often available on Linux distributions. Let's consider the former, which was originally written by Paul Gartside at the beginning of the Mozilla MathML project and has been maintained by Jacques Distler since then. It's a small stream filter written in C/C++ and generated with flex and bison ; in particular it is very fast. Install flex/bison as well as the classical compiler and make tools. On Unix, you can then download itex2MML, build and install it:</p>
<pre class="brush: bash notranslate">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>Now suppose that you have a HTML page with TeX fragments delimited by dollars:</p>
<pre class="brush: html notranslate">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>Then to generate the HTML page input.html with TeX expressions replaced by MathML expressions, just do</p>
<pre class="notranslate">cat input.html | itex2MML > output.html</pre>
<p>There are even more sophisticated tools to convert arbitrary LaTeX documents into HTML+MathML. For example <a href="https://www.tug.org/tex4ht/">TeX4ht</a> is often included in TeX distributions and has an option to use MathML instead of PNG images. This command will generate an XHTML+MathML document foo.xml from a foo.tex LaTeX source:</p>
<pre class="notranslate"> mk4ht mzlatex foo.tex # Linux/Mac platforms
mzlatex foo.tex # Windows platform
</pre>
<p>Note that <a href="https://github.com/michal-h21/tex4ebook">tex4ebook</a> relies on TeX4ht to generate EPUB documents.</p>
<p><a href="http://dlmf.nist.gov/LaTeXML/" name="LaTeXML">LaTeXML</a> is another tool that can generate HTML5 and EPUB documents. Windows users can watch this <a href="https://www.youtube.com/watch?v=Dg881w2e-lI">video tutorial</a>. Given a foo.tex LaTeX file, you can use these simple commands:</p>
<pre class="notranslate"> latexmlc --dest foo.html foo.tex # Generate a HTML5 document foo.html
latexmlc --dest foo.epub foo.tex # Generate an EPUB document foo.epub</pre>
<p>To handle the case of browsers without MathML support, you can use the <code>--javascript</code> parameter to tell LaTeXML to include one of the <a href="#Fallback_for_Browsers_without_MathML_support">fallback scripts</a>:</p>
<pre class="notranslate"> latexmlc --dest foo.html --javascript=<code class="language-html"><span class="script token"><span class="tag token"><span class="attr-value token">https://fred-wang.github.io/mathml.css/mspace.js</span></span></span></code> foo.tex # Add the CSS fallback
latexmlc --dest foo.html --javascript=<code class="language-html"><span class="script token"><span class="tag token"><span class="attr-value token">https://fred-wang.github.io/mathjax.js/mpadded-min.js</span></span></span></code> foo.tex # Add the MathJax fallback
</pre>
<p>If your LaTeX document is big, you might want to split it into several small pages rather than putting everything in a single large page. For example, this will split the pages at the <code>\section</code> level:</p>
<pre class="notranslate"> latexmlc --dest foo.html --splitat=section foo.tex
</pre>
<h3 id="Converção_server-side">Converção <em>server-side</em></h3>
<ul>
<li>pros:
<ul>
<li>Conversion is done server-side and the MathML output can be cached, which is more efficient and cleaner than client-side conversion.</li>
</ul>
</li>
<li>cons:
<ul>
<li>This might be a bit more difficult to set up, since you need some admin right on your server.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a>, <a href="http://dlmf.nist.gov/LaTeXML/">LaTeXML</a> and <a href="https://github.com/gwicke/mathoid">Mathoid</a> and can be used to to perform server-side LaTeX-to-MathML conversion.<a href="http://instiki.org/show/HomePage"> Instiki</a> and <a href="https://www.mediawiki.org/wiki/MediaWiki">MediaWiki</a> are two wiki engines that support LaTeX-to-MathML conversion.</p>
<h2 id="Interface_Gráfica">Interface Gráfica</h2>
<h3 id="Caixa_de_entrada">Caixa de entrada</h3>
<p><a href="https://github.com/fred-wang/TeXZilla">TeXZilla</a> has several interfaces, including a <a href="http://ckeditor.com/addon/texzilla">CKEditor plugin</a> used on MDN, an <a href="http://fred-wang.github.io/TeXZilla/">online demo</a>, a <a href="https://addons.mozilla.org/en-US/firefox/addon/texzilla/">Firefox add-on</a> or a <a href="https://marketplace.firefox.com/app/texzilla-1/">FirefoxOS Webapp</a>. It has also been integrated into <a href="http://www.seamonkey-project.org/">SeaMonkey</a> since version 2.28 and into <a href="https://www.mozilla.org/thunderbird/">Thunderbird</a> since version 31.<a href="http://abisource.org/"> Abiword</a> contains a small equation editor, based on itex2MML. Finally,<a href="http://www.bluegriffon.com/"> Bluegriffon</a> has an add-on to insert MathML formulas in your document, using ASCII/LaTeX-like syntax.</p>
<p style="text-align: center;"><img alt="BlueGriffon" src="http://www.bluegriffon.com/public/shots/mathml-shot1.png" style="height: 467px; width: 358px;"></p>
<h3 id="Editores_WYSIYWG">Editores WYSIYWG</h3>
<p><a href="http://www.firemath.info/">Firemath</a> é uma extensão para Firefox que fornece um editor WYSIWYG MathML. Uma pré-visualização da fórmula é apresentada utilizando o motor da renderização do Mozilla. O código MathML gerado está visivel na parte inferior. Utilize o campo de texto para elementos simbólicos e botões para construir construções avançadas. Uma vez terminado, pode guardar o seu documento como uma página XHTML.</p>
<p><a href="http://www.lyx.org/">LyX</a> é um editor gráfico LaTeX, que tem suporte integrado para exportação de XHTML e MathML e pode ser configurado para utilizar conversores LaTeX-para-(X)HTML semelhantes. Pode, por exemplo, configurá-lo para utilizar <a href="https://github.com/brucemiller/LaTeXML/wiki/Integrating-LaTeXML-into-TeX-editors#lyx">a exportação LaTeXML HTML5/EPUB</a>.</p>
<p>O <a href="http://www.openoffice.org/">OpenOffice</a> e o <a href="http://libreoffice.org/">LibreOffice</a> têm um editor de equações (File → New → Formula). Isto é parecido a um WYSIWYG: o utilizador escreve o código usando um painel/teclado e uma pré-visualização é regularmente atualizada. O editor usa o seu próprio sintaxe "StarMath", mas MathML também e criado quando o documneto é guardado. Para aceder ao código MathML, guarda o documento como um <code>.mml</code> e abre o ficheiro com um editor de texto. Em alternativa, pode extrair o ficheiro <code>.odf</code> (que na realidade é um arquivo ZIP) e abrir um ficheiro XML chamado <code>content.xml</code>.</p>
<p style="text-align: center;"><img alt="Open Office Math" src="/@api/deki/files/4261/=openoffice.png" style="height: 527px; width: 483px;"></p>
<p><a href="http://www.w3.org/Amaya/">Amaya</a> é o editor da web do W3C, que é capaz de lidar com MathML dentro de documentos XHTML. Utilize os painéis de Elementos e Cartas Especiais para criar várias construções matemáticas avançadas. Texto simples como <code>a+2</code> é automaticamente analisado e a marcação MathML apropriada é gerada. Uma vez terminado, pode guardar directamente a sua página XHTML e abri-la em Mozilla.</p>
<h2 id="Reconhecimento_óptico_de_carácter_e_caligrafia">Reconhecimento óptico de carácter e caligrafia</h2>
<p><a href="http://www.inftyreader.org/">Inftyreader</a> é capaz de fazer o reconhecimento óptico de carateres, inclusive a conversão de equações matemáticas para MathML. Outras ferramentas fazem reconhecimento de caligrafia, como o <em><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd371698(v=vs.85).aspx">Windows Math Input Panel</a></em> ou o conversor online <em><a href="https://webdemo.myscript.com/views/math.html" title="http://webdemo.visionobjects.com/portal.html">Web Equation</a></em>.</p>
<div class="originaldocinfo">
<h3 id="Original_Document_Information">Original Document Information</h3>
<ul>
<li>Author(s): Frédéric Wang</li>
<li>Other Contributors: Florian Scholz</li>
<li>Copyright Information: Portions of this content are © 2010 by individual mozilla.org contributors; content available under a Creative Commons license | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Details</a>.</li>
</ul>
</div>
|