MathJax e MathML in Drupal

Pubblicato da Nicola Rainiero il 10-09-2012 (aggiornato il 25-11-2018)

In fase di progettazione del sito mi ero posto il problema di come inserire le formule matematiche negli articoli, trovando senza troppa fatica in MathJax la soluzione ai miei problemi. Dopo qualche tempo ho però scoperto l'esistenza di MathML, rilasciato addirittura dal W3C e ho voluto provarlo. Seguono alcune mie personali considerazioni sull'uso e la praticità di queste due modalità per inserire la matematica nel proprio sito.

 MathJax^

Da grande estimatore LaTeX non mi sembrava vero che esistesse una libreria javascript e open-source per la visualizzazione delle formule matematiche nei più comuni e aggiornati browser. Tra l'altro disponibile come modulo per Drupal e facilmente configurabile.

Configurazione in Drupal

Una volta installato e abilitato il modulo si può configurare a questo indirizzo del proprio sito: http://mio_sito/admin/config/content/mathjax. Le impostazioni non sono molte e si può scegliere se attivarlo su tutte le pagine o solo su alcune come evidenziato nell'immagine seguente.

Come configurare MathJax su Drupal

Ho cercato un modo più sbrigativo per attivarlo o meno in alcune pagine (creando un campo booleano nei contenuti) ma non sono riuscito a farlo funzionare, così se devo visualizzare delle formule in una particolare pagina, la aggiungo di volta in volta nel menu di configurazione (non ha senso averlo attivo in tutte il sito se le pagine che contengono formule sono molto poche).

Scheda MathJax

  • Qui l'home page del progetto;
  • Qui il modulo per Drupal;
  • Qui la lista dei browser compatibili.
  • Pro:
    • se si conosce il LaTeX non c'è nulla da imparare per inserire le formule e si può usare tranquillamente la modalità inline $ \$...\$ $ e display \[ ... \] per inserirle;
    • la qualità a video e nelle stampe è ottima.
  • Contro:
    • si deve installare un modulo e una libreria esterna javascript, accettando l'idea che su alcuni browser non funzioni a dovere (o non sia abilitato javascript);
    • bisogna decidere se attivarlo per tutte le pagine del proprio sito o di volta in volta segnalare le nuove pagine che ne richiedono il caricamento;
    • conviene dotarsi di un buon editor LaTeX per testare e correggere le formule prima dell'inserimento, a maggior ragione se è da tanto tempo che non si usa più il LaTeX per i propri documenti (come nel mio caso!).
    • si dovrà prestare attenzione e digitare con parsimonia il carattere $ \$ $, perché lo attiva. Per ovviare a ciò si può usare questa sequenza di caratteri:$ \$ $

 MathML^

Casualmente provando l'editor WYSIWYG Amaya ho notato che tramite un comodo e semplice menu permetteva l'inserimento delle formule matematiche usando questo linguaggio di markup matematico. Mi sono quindi un po' documentato scoprendo che non necessita di alcuna installazione e anche se il sorgente risulta alquanto oscuro, la struttura XML da cui deriva dovrebbe renderlo ampiamente usabile, permettendone la visualizzazione in applicazioni come i browser web e facilitandone un'interpretazione del suo significato da parte dei software matematici[1]. Finora l'ho utilizzato solo su questo articolo senza però apprezzarlo più di tanto.

Scheda MathML

  • Qui l'home page del progetto;
  • Qui la lista dei browser compatibili.
  • Pro:
    • è uno standard rilasciato da W3C;
    • non si occupa solo della presentazione ma anche del significato dei componenti delle formule. Un sistema, chiamato OpenMath, che si occupi della semantica matematica, inteso come complemento di MathML, è in sviluppo[1].
  • Contro:
    • richiede un ottimo editor per l'inserimento delle formule perché non è di facile comprensione;
    • bisogna settare il fomrato del testo con PHP Code in Drupal perché l'editor TinyMCE ha problemi nell'interpretarlo;
    • ho notato qualche difetto grafico nella visualizzazione e stampa delle formule.

 Confronto con un esempio^

Senza entrare troppo nei dettagli propongo qui di seguito una tabella con una formuletta per farne un rapido confronto tra le due modalità di inserimento.

MathJax MathML
\[
w = \sqrt{{4 \cdot (\gamma_p - \gamma_w) \cdot D} \over {3 \cdot \rho_w \cdot C_D}}
\]
<math xmlns="http://www.w3.org/1998/Math/MathML">
  <mi>w</mi>
  <mo>=</mo>
  <msqrt>
    <mfrac>
      <mrow>
        <mn>4</mn>
        <mo>•</mo>
        <mo>(</mo>
        <msub>
          <mi>γ</mi>
          <mi>p</mi>
        </msub>
        <mo>−</mo>
        <msub>
          <mi>γ</mi>
          <mi>w</mi>
        </msub>
        <mo>)</mo>
        <mo>•</mo>
        <mi>D</mi>
      </mrow>
      <mrow>
        <mn>3</mn>
        <mo>•</mo>
        <msub>
          <mi>ρ</mi>
          <mi>w</mi>
        </msub>
        <mo>•</mo>
        <msub>
          <mi>C</mi>
          <mi>D</mi>
        </msub>
      </mrow>
    </mfrac>
  </msqrt>
</math>
\[ w = \sqrt{{4 \cdot (\gamma_p - \gamma_w) \cdot D} \over {3 \cdot \rho_w \cdot C_D}} \] w = 4 ( γ p γ w ) D 3 ρ w C D

 

 

 Fonti^




Potrebbero interessarti anche:

Nicola Rainiero

Ingegnere civile specializzato in geotecnica con l'ambizione di facilitare la propria attività lavorativa usando e creando software libero per un sapere condiviso e collettivo. Mi occupo anche di energie rinnovabili ed in particolare di geotermia a bassa entalpia. Sono da sempre appassionato di web design e modellazione 3D.