MathML e il formato ePub3

MathML è una specifica di basso livello per contenuti matematici e scientifici sul Web e oltre.1

Una delle aggiunte chiave a HTML5 è il Mathematical Markup Language, o MathML. Dove ePub2 richiedeva di scrivere equazioni di base usando XHTML, o inserire immagini per equazioni complesse, con il supporto di MathML è possibile creare contenuti matematici accurati e accessibili. Ciò non solo consente equazioni più chiare e scalabili per tutti, ma ha anche il potenziale per migliorare notevolmente l’accesso alle informazioni da parte dei lettori che utilizzano tecnologie accessibility2.

Il MathML non è altro che un linguaggio di marcatura per descrivere la notazione matematica e catturarne sia la struttura che il contenuto. L’obiettivo del MathML è di consentire la pubblicazione, la ricezione e l’elaborazione della matematica sul World Wide Web, così come l’HTML ha abilitato questa funzionalità per il testo.

Il MathML può essere usato per codificare sia la notazione matematica che il contenuto matematico. Circa trentotto dei tag MathML descrivono strutture notazionali astratte, mentre un altro circa centosettanta fornisce un modo per specificare in modo inequivocabile il significato inteso di un’espressione.

Dichiarazione del contenuto MathML nel file OPF
<manifest>
    <item id="css1" href="Styles/mathml-style.css" media-type="text/css"/>
    <item id="page1" href="Text/mathml.xhtml" media-type="application/xhtml+xml" properties="mathml"/>
    <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
    <item id="toc" href="Text/toc.xhtml" media-type="application/xhtml+xml" properties="nav"/>
  </manifest>

 

MathML in ePub3 content document
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML">
<head>
    <title>Esempio di ePub3 con MathML</title>
    	<link rel="stylesheet" type="text/css" href="../Styles/mathml-style.css"/>
  </head>
  <body>
    <m:math display="block">
      <m:mrow>
        <m:mi>x</m:mi>
        <m:mo>=</m:mo>
        <m:mfrac>
          <m:mrow>
            <m:mo form="prefix">-</m:mo>
            <m:mi>b</m:mi>
            <m:mo>±</m:mo>
            <m:msqrt>
              <m:msup>
                <m:mi>b</m:mi>
                <m:mn>2</m:mn>
              </m:msup>
              <m:mo>-</m:mo>
              <m:mn>4</m:mn>
              <m:mo>⁢</m:mo>
              <m:mi>a</m:mi>
              <m:mo>⁢</m:mo>
              <m:mi>c</m:mi>
            </m:msqrt>
          </m:mrow>
          <m:mrow>
            <m:mn>2</m:mn>
            <m:mo>⁢</m:mo>
            <m:mi>a</m:mi>
          </m:mrow>
        </m:mfrac>
      </m:mrow>
    </m:math>
</body>
</html>
Output in iBooks

mathml

Il codice non è in realtà così difficile come sembra, ma sicuramente lungo da scrivere con un qualsiasi editor testuale. Per fortuna si possono trovare diversi editor di equazioni, programmi di conversione e altri software specializzati per generare il codice MathML.3 Esistono diverse versioni di tali strumenti MathML, sia software open source che prodotti commerciali.

Un editor online che consiglio — anche solo per divertirsi un po’ — è Wiris editor. Compatibile sia con MathML che con LaTex, consente di ‘disegnare’ direttamente col mouse la funzione matematica e copiarne il codice generato in pochi secondi.


Fonti

1 W3C Math Home

2 Is MathML accessible?, Peter Krautzberger

3 Math Tools, W3C e List of web based math editors, GitHub

Immagine


Per approfondire

Un esempio di ePub3 che dimostra il MathML (mathml-epub.zip | 3KB)

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

w

Connessione a %s...