Mostrando postagens com marcador MathJax. Mostrar todas as postagens
Mostrando postagens com marcador MathJax. Mostrar todas as postagens

domingo, 25 de novembro de 2012

Anular o efeito do MathJax

No meu artigo intitulado "Tipografia matemática para páginas web" (http://dan-scientia.blogspot.com.br/2011/07/tipografia-matematica-para-paginas-web.html) apresentei o MathJax, uma biblioteca em JavaScript que trata e exibe expressões matemáticas em LaTeX ou MathML em navegadores web.

O LaTeX utiliza um conjunto de comandos em sequências de caracteres, iniciados com o caractere barra invertida "\", que são usados para produzir os símbolos matemáticos, letras gregas e executar tarefas. São as sequências de controle. E não somente a barra invertida mas os caracteres { } $ ^ _ % ~ # & também são usados com propósitos especiais dentro do LaTeX. Por exemplo, \sum_{k=1}^n é uma sequência de controle.

Se a página web estiver com o MathJax integrado no código, todo o conteúdo será tratado para apresentação. Desta forma, corre-se o risco de uma informação, que esteja usando algum caractere especial do LaTeX mas que não é um comando do LaTeX, ser exibida erroneamente na página.

Uma forma de contornar isso é demarcando o conteúdo que não deve ser tratado pelo MathJax com alguma das etiquetas que estão configuradas para isso no MathJax. Nos arquivos de configuração do MathJax existe uma linha de opção, esta linha existe em cada seção de configuração de um pré-processador, tex2jax, asciimath2jax etc. A linha é:

skipTags: ["script","noscript","style","textarea","pre","code"],

Isto quer dizer que tudo que estiver entre as etiquetas <script></script>, <noscript></noscript>, <style></style>, <textarea></textarea>, <pre></pre> e <code></code> não será entendido e processado como um comando em LaTeX ou MathML. O bloco estará protegido.

A configuração "default" do MathJax contém a linha de opção "skipTags" exatamente como apresentada acima. Quem utiliza o MathJax pelo web service proveniente do cdn.mathjax.org está preso na configuração imposta. Se desejar alterar a configuração padrão, será preciso carregar a configuração de um outro local, de uma cópia alterada do arquivo de configuração, ou usar a configuração "in-line", que coloca as opções de configuração na própria página web.

Para mais informações consulte a documentação do MathJax em http://docs.mathjax.org/en/latest/

sexta-feira, 8 de julho de 2011

Tipografia matemática para páginas web

A editoração de páginas para exibição em um navegador web não é fácil quando se tenta reproduzir fórmulas matemáticas. Como estratégia é comum o uso de imagens para este tipo de exibição, porém quebrando toda integração com o texto.

Felizmente esta dificuldade tem uma solução, existe uma biblioteca em JavaScript que exibe equações matemáticas em navegadores web, usando a linguagem de marcação LaTeX ou MathML.

O MathJax (http://www.mathjax.org/) é um JavaScript de código livre capaz de exibir expressões matemáticas e é compatível com todos os navegadores modernos. Com o MathJax não é mais necessário leitores específicos, plugins ou outras fontes de caracteres instalados no navegador. Simplesmente funciona em qualquer navegador.

Usa uma versão moderna do CSS e fontes para web, ao invés de imagens ou flash, assim as expressões matemáticas podem ser ampliadas ou reduzidas junto com o texto que as acompanham. O programador web apenas incorpora o código da expressão matemática, na página em HTML, usando a linguagem de marcação LaTeX ou MathML. Os códigos convivem numa boa.

O MathJax pode ser disponibilizado para uso nas páginas de duas formas, pode ser instalado diretamente no servidor HTTP do usuário, ou pode ser usado acessando o serviço através da Rede de Entrega de Conteúdo (Content Delivery Network - CDN). Nesta última forma pode ser integrado a plataformas incluindo o Tumblr, MediaWiki, Drupal e o Wordpress.

É possível ainda copiar e colar o conteúdo, transportando a expressão matemática para editores de textos e até para softwares de cálculo como Maple e Mathematica.

Para integrar o MathJax em um serviço de blog, inclua a seguinte linha no código do tema ou do modelo de layout, que determinam a aparência das páginas:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

Esta linha deve ficar entre as marcações <head> </head>, se existirem, ou no final se não existirem. Aqui no Blogger o modelo está acessível em "Design/Editar HTML"

Veja exemplos de expressões em LaTeX, representando as respectivas equações matemáticas, que podem ser incorporadas em um código fonte HTML:

\[ \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \]
\[ \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right)
 \left( \sum_{k=1}^n b_k^2 \right) \]

\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]

Também dentro do parágrafo do texto. Esta expressão \(\sqrt{3x-1}+(1+x)^2\) é um exemplo de expressão na mesma linha do texto, sem atrapalhar os espaços entre as linhas.

O MathJax é um projeto conjunto da Sociedade Americana de Matemática, da Design Science Inc. e da Sociedade para Matemática Industrial e Aplicada.

Uma dica, clique com o botão direito do mouse em uma destas expressões e explore o menu do MathJax!