8 gennaio 2013

MathJax, formule matematiche nell'html

Prendo un respiro dallo studio per condividere (è -come sempre- un pretesto per avere un memo) questa piccola rivoluzione < MathJax is an open source JavaScript display engine for mathematics that works in all modern browsers> Cioè a dire: una serie di strumenti, trasparenti all'utente finale, per inserire porzioni di ambiente matematico Tex/LaTex in un file HTML5. Si possono poi inserire estratti di codice  MathML o AsciiMath. Tutta la matematica che volete scrivere entra a far parte della struttura del documento, non come immagine statica oppure come codice Flash, ma  con un sofisticato uso di CSS e fonts. I vantaggi principali sono tre:
  • Facile e leggibile: se scrivete complicate formule in LaTex potete copiarle direttamente nel documento html; una seconda persona (anche voi stessi a distanza di tempo) sarà in grado di leggere -e correggere il documento- senza aver bisogno di files o strumenti esterni (prima di questo strumento si era costretti a consultare il documento, trovare il nome dell'immagine relatica al codice, aprire il file LaTex corrispondente, modificarlo, ri-compilarlo, aggiornare il browser)
  • <equations scale with surrounding text at all zoom levels> Cioè potete zummare, modificare le dimensioni della finestra del browser e cambiare impostazioni CSS: la parte matematica seguirà questi cambiamenti.
  • Ricerca innovativa: il documento HTML5 conterrà codice LaTex (o MathML o AsciiMath) quindi sarà possibile eseguire ricerche per simboli (o loro composizioni) matematici.
Ecco un piccolo esempio.

Buoni propositi:

  • Trovare il modo semplice per utilizzarlo qui.
  • Scrivere un softwarino (probabilmente in forma di script) che converte un file LaTex in un documento HTML5 in questo modo: i comandi di struttura e di testo vengono processati dai "tradizionali" convertitori, gli ambienti (in particolare quello matematico) vengono processati separatamente ed il lavoro finale utilizza mathjax.

Tempo permettendo, mi piacerebbe lavorare a questo progetto.