• Non ci sono risultati.

Integrazione di MathJax nei file generati

3.3 Gestione delle formule matematiche

3.3.2 Integrazione di MathJax nei file generati

Seilmondorealefosseunmondoperfetto ilproblemadellagestionedelle formule matematiche sarebbe risolto banalmente con la loro conversione in MathML che, in quanto ufficialmente incluso nello standard EPUB, dovrebbe essere supportato da tutti i sistemi di letturache gestiscono questo formato di ebook. Anche in questo caso, per\`o, la situazione \`e analoga a quella dei browserdescrittainprecedenza;pergarantirelacorrettavisualizzazionedegli ebook generati,perci\`o, \`enecessario cheessiincludanolalibreriaMathJaxda usarecomepolifill. Latabella3.1mostraleoperazionicompiuteperridurrele dimensioni della libreriaMathJax equanto esse contribuiscano adiminuirla. Unavoltascompattatol'archiviocontenentelalibreriaMathJaxsiottiene una cartellalecui dimensionisono di62.3MB. Leoperazionimostrate nella tabella 3.1 modificano la struttura ditale cartellarimuovendo i componenti non necessari al funzionamento di MathJax all'interno dei file generati da rash2epub esaranno illustrate pi\`u in dettaglio diseguito.

La rimozione della documentazione e degli esempi d'uso consiste nella rimozione degli elementi

\bullet .gitignore,.npmignoree.travis.yml,filedisupportoperladistribuzione della libreria;

\bullet bower.json, package.json e composer.json,file checonsentono diinstal- larelalibreriarispettivamentetramiteglistrumentibower,NPM(fornito

3.3 Gestione delle formule matematiche 39 Operazione Riduzione di dimen- sione Dimensio- ne complessi- va Rimozione della documentazionee

degli esempi d'uso

103KB 62,3MB

Rimozione del supporto perla localizzazione

1MB 61,3MB

Rimozione del supportoper debugging 16,8MB 44,5MB Scelta della configurazione

MML\]SVG-full

7,7MB 36,8MB

Rimozione dei file di supportoa funzionalit\`a non usate | 25,7MB

11,1MB

Rimozione dei file per l'output in formato SVG gi\`a inclusi nella configurazione |101KB

11MB

Rimozione dei font SVG non utilizzati dalla configurazione

9,5MB 1,5MB

Tabella 3.1: Operazioni compiute per ridurre le dimensioni della libreria MathJax

danodeJS) e composer;

\bullet CONTRIBUTING.md, file contenente indicazioni sulle modalit\`a per contribuire allo sviluppo del progetto;

\bullet docs, cartellacontenente ladocumentazione;

\bullet README.md, file contenente informazioni di base e istruzioni per usare lalibreria;

La rimozione del supporto per la localizzazione, invece, consiste nell'eli- minarelacartellalocalization contenentevarifile checonsentono allalibreria dimostrare glieventualimessaggi d'errore nella lingua usata dall'utente. In assenzadel supportoperlalocalizzazione MathJaxmostrer\`atali messaggi in inglese.

La cartella della libreria MathJax contiene al suo interno 2 versioni di alcuni componenti: la prima \`e ottimizzata per la distribuzione, mentre la secondafornisceunmaggioresupportoperildebuggingdieventualiproblemi. Questa seconda versionedi tali componenti si trova nella cartella unpacked, che quindi \`estata eliminata.

MathJax ha inoltre molteplici funzionalit\`a ,le quali possono essere abili- tate a seconda delle proprie esigenze. Per farlo essa fornisce vari profili di configurazione pronti all'uso. Poich\'e lo strumento math2mathml converte le formule di undocumento RASH in MathML, per visualizzare correttamente le formule nei file EPUB generati da rash2epub \`e sufficiente che MathJax sup- portiquestamodalit\`adiinput. Lalibreriapermetterebbediutilizzareanche diversemodalit\`adioutput,madiquestelamodalit\`aSVG\`equellachefornisce i migliori risultati dal punto di vista della visualizzazione. Pertanto \`e stato scelto di usare il profilo di configurazione MML\]SVG che abilita solo le mo- dalit\`a diinput e di outputnecessarie. Inoltre, ogni profilo diconfigurazione vienedistribuitoinduevarianti: una detta"standard",checontienesoltanto i parametri per abilitare le funzionalit\`a necessarie, ed una detta "full", che contiene sia i parametri per abilitare le funzionalit\`a richieste che le esten- sioni necessarie. Pertanto scegliendo la variante "full" della configurazione "MML\]SVG"\`estatopossibileeliminarelacartellaextensions oltrechetutti i file presenti nella cartellaconfig tranne "MML\]SVG-full.js" che contiene proprioil profilo diconfigurazione nella variante utilizzata.

Una volta scelta la configurazione MML\]SVG-full \`e possibile eliminare anche tutti file della libreria che supportano modalit\`a di input e di output non usate dalla configurazione, ossia:

3.3 Gestione delle formule matematiche 41

dioutput SVG;

\bullet la cartella input, contenente i file di supporto per le varie modalit\`a di input;ifilechesupportanol'inputinlinguaggioMathMLsonogi\`ainclusi nel file di configurazione scelto inprecedenza;

\bullet tutte le sottocartelle della cartella output esclusa la cartella SVG, che contengono ilsupporto alle modalit\`a di outputnon utilizzate;

Infine\`epossibileridurreulteriormente ledimensionidellalibreriaMathJax eliminandoifiledisupportoperilformatodioutputSVGgi\`ainclusinelfiledi configurazione e ifont non utilizzati. Si arriva cos\`\i ad ottenere una versione di MathJax che contiene tutte e sole le funzionalit\`a necessarie a garantire una visualizzazione corretta delle formule matematiche presenti negli ebook generati da rash2epub, ma con una dimensione di 1,5MB che, una volta compressa,aggiunge unfootprintaifile EPUBdicirca700KB. Talefootprint \`e decisamente minore rispetto a quello che avrebbe avuto l'inclusione della versionestandard di MathJax(circa 30 MB) ed\`e pi\`u che accettabile.

Laversionedi MathJaxcos\`\i ottenuta\`epresente tra ifile disupportodel- lo strumentorash2epub nella cartelladenominata MathJax-lite. Essa viene inseritaintutti i file EPUB generati darash2epub ei file chela compongono sonodichiaratiall'internodellasezionemanifest delfilecontent.opf generato durantel'applicazione del foglio distile XSL. La generazioneditali dichiara- zioni\`estataautomatizzata attraversounoscriptdenominatogenmanifest.sh cheprendeininputlalistadeifile checompongonoMathJax-lite erestituisce ilframmentodellasezionedelfile content.opf chedichiaratuttiifile presenti nella lista.

Vainfinenotatochetutteleoperazionidescrittepotrebberoessereesegui- te usando lo strumento MathJax-grunt-cleaner [Mat16] che, al di l\`a delle molteplicidipendenze,nonsembrasvolgereilsuocompitocomedescrittodal- la (troppo scarsa) documentazione. \`E stato perci\`o necessario implementare lastrategiadescrittamanualmente piuttostocheutilizzandotalestrumento.

Capitolo

4

Valutazione

Dopoaverdescrittoneldettaglio l'implementazionedellostrumentorash2epub, in questo capitolo saranno descritti i test eseguiti per assicurare il corretto funzionamento dello strumentorash2epub. Si cercher\`a inoltre di ipotizzare unpossibileworkflowperlascritturadiarticoliscientificiinformatoRASHche preveda l'usoditale strumento,ilqualesar\`a poicomparatoaquelli descritti nel capitolo 1 evidenziandonei punti diforza.

4.1

Test

eseguiti

Per assicurare il corretto funzionamento dello strumento rash2epub ed il rispetto delle propriet\`a che esso doveva garantire secondo le specifiche il- lustrate finora sono stati eseguiti diversi test che verranno documentati in questo paragrafo.

Perverificare ilcorrettofunzionamentodello strumentorash2epub\`esta- todapprima seguito un approcciodivide et impera, ovvero \`estato verificato ilcorretto funzionamento su documentiRASH moltosemplici checontenesse- ro soltanto una specifica caratteristica del formato RASH da gestire durante l'esportazione del documento in formato EPUB. Lo strumento \`e stato perci\`o testatosu:

\bullet undocumento contenente solo elementi testuali; 43

\bullet undocumento contenente solo una tabella; \bullet undocumento contenente solo una figura;

\bullet undocumento contenente solo unlistato dicodice;

\bullet per ognuna delle tre sintassi (ASCIIMath, LATEX e MathML) utilizza-

bili per l'immissione delle formule nel formato RASH, un documento contenente solo una formulamatematica;

\bullet undocumentocontenente soltantoriferimenti bibliograficiedunfram- mento ditesto in cui essi venivanocitati;

\bullet undocumentocontenentesoltantonoteapi\`edipaginaedunframmen- todi testo chefacesse riferimentoad esse.

Tutti idocumentiutilizzatipereseguireitesteranoovviamenteconformi allagrammaticadelformatoRASH. Itestdeidocumenticontenentileformule scritte con la sintassi ASCIIMath e LATEX assumevano il corretto funziona-

mento dello strumento math2mathml che era gi\`a stato verificato in una fase precedente a questo lavoro di tesi.

Unavoltaverificatoilcorrettofunzionamentodirash2epubsudocumenti RASH cos\`\i elementari, si \`e proceduto al testing su documenti pi\`u complessi che contenessero varie combinazioni degli elementi testati in precedenza. \`E stato poi verificato il corretto funzionamento dello strumento su documenti RASHcontenentivariesezioniesottosezioniesi\`everificatochelagenerazione del file EPUB esportasse correttamente imetadati del documento.

Infine\`estatoutilizzatolostrumentorash2epubperconvertireinformato EPUB varidocumenti RASH disponibiliin rete.

La correttezza dei risultati generati \`e stata verificata sia con controlli automatizzati che con test manuali. I controlli automatizzati miravano a verificare:

\bullet lavalidit\`adegliebookgeneratidarash2epubsecondolostandardEPUB; tali controlli sono stati eseguiti utilizzando lo strumento epubcheck [Int] fornito per questo scopoda IDPF;

Documenti correlati