EPUB Guide
Table of Contents
List of Examples
Table of Contents
L'Epub è il più diffuso formato per gli ebook, immediatamente dopo il PDF. Il suo successo dipende da svariate ragioni. Nessuna di queste ragioni è esclusiva dell'Epub, ma è l'unico formato a possederle tutte in modo coerente e completo.
È un formato standard
Le specifiche di questo formato non sono legate ad uno specifico venditore o ad una specifica piattaforma, né sono segrete. Ciò significa, in sintesi, che qualsiasi ebook reader consente di leggere gli epub. Ma dedicheremo un intero capitolo a questo argomento.
È reflowable
Questo fa la differenza tra l'Epub e il PDF. In termini semplici reflowable significa che i contenuti si adattano allo schermo e fluiscono all'interno degli spazi a loro disposizione. Pertanto, solo quando è strettamente necessario un layout rigidamente definito, il PDF batte l'Epub, ma quest'ultimo è infinitamente superiore per quanto attiene alla leggibilità e alla portabilità. Ad esempio, lo stesso libro può essere letto su un IPhone, su un Tablet, su un ebook reader o sul computer senza dover effettuare zoom e senza dover navigare nella pagina, perché il contenuto si adatta a qualsiasi schermo fluendo plasticamente in qualsiasi forma e dimensione.
È basato su xml
Negli ultimi anni sono stati fatti sforzi enormi per creare strumenti capaci di mettere a frutto le straordinarie possibilità della tecnologia xml, al punto che si può sostenere che oggi qualsiasi aggeggio elettronico che convoglia informazione usa l'xml. E questi strumenti sono straordinariamente adatti alla lettura di testi. Essendo dunque l'Epub basato su xml trae immenso profitto da questa tecnologia.
È basato su standard web
Il W3C (World Wide Web Consortium) ha definito un certo numero di standard per il web ed alcuni di essi sono standard dell'Epub: HTML5, SVG e CSS. Questo fa dell'epub un mezzo assolutamente integrato nella tecnologia web più avanzata.
È fortemente raccomandato e supportato da quasi tutti gli editori, dai produttori di ebook reader e tablet e dai produttori di software
Last but not least, le aziende più importanti del mondo che lavorano nel mondo delle pubblicazioni hanno attivamente partecipato allo sviluppo dell'epub, fondando l'IDPF (International Digital Publishing Forum) e continuano a manterlo aggiornato.
Tutte queste caratteristiche fanno dell'epub un formato semplice, coerente, potente e robusto che sta rapidamento guadagnando popolarità nel mercato dell'editoria.
Ma prima di entrare nei dettagli, diamo subito un'occhiata all'epub nel suo insieme.

La struttura dell'EPUB
Questo schema mostra cosa c'è dentro un epub. In sintesi, l'epub è un file zip (sì proprio un semplice zip) che contiene un file mimetype (che dice al lettore che si tratta di un epub), una cartella META-INF che contiene a sua volta un file container.xml (che punta ad un altro file chiamato content.opf, di cui diremo dopo), una cartella OEBPS dentro la quale risiedono i contenuti in html o xhtml, un file css (il foglio di stile), il file content.opf (un importante file che è puntato dal file container.xml, e che ha immagazzinate importanti informazioni sulla pubblicazione), un file per la navigazione (toc.ncx per l'EPUB 2 e toc.xhtml per l'EPUB 3). Nell'OEBPS sono contenute anche le immagini, inclusa l'immagine di copertina.
E questo è tutto.
Nei prossimi capitoli esploreremo ciascuna di queste cartelle e ciascun file.
Table of Contents
Non ci si spaventi di fronte a questa parola: specificazioni. Significa semplicemente: come fare i libri in formato epub e come fare in modo che gli ebook reader li mostrino adeguatamente. Senza specificazioni sarebbe impossibile far comunicare i file epub con i lettori di epub (che si tratti di smarphone, di tablet o di ebook reader). Le specificazioni sono le regole che devono essere seguite per ottenere degli ebook che siano leggibili dai lettori e come fare i lettori che leggano gli ebook.
Chi è interessato ai dettagli tecnici delle specifiche vada al sito dell'IDPF: http://idpf.org
In questo capitolo ci accontenteremo di una sintesi comprensibile delle più importanti specificazioni in modo da comprendere la struttura del formato epub.
L'ultima versione dell'EPUB è l'EPUB 3. Ed è a quest'ultimo che ci riferiremo prevalentemente in questa sezione.
Infatti, sebbene gli EPUB oggi disponibili siano quasi tutti in versione 2, apprendere l'ultima versione consente di acquisire una visione rivolta al futuro e al tempo stesso di comprendere meglio la struttura dell'EPUB comune alla versione precedente, grazie ad una terminologia più chiara e coerente.
Inoltre, non mancheremo di sottolineare le principali differenze tra l'EPUB 2 e l'EPUB 3. Pertanto alla fine di questa sezione, conoscerai i concetti fondamentli delle specifiche per l'EPUB 2 e l'EPUB 3.
Le specifiche per l'EPUB 3 si dividono in quattro categorie.
Le quattro categorie di specifiche dell'EPUB
EPUB Publications
Si tratta della prima e più importante categoria di specifiche in quanto attiene al livello della pubblicazione. Le specifiche riguardanti la pubblicazione definiscono le regole generali delle pubblicazioni in formato EPUB e come si correlano l'una con l'altra. Si può pensare a questa categoria come l'insieme di regole generali dell'EPUB. Nell'EPUB 2 questa categoria di specifiche prende il nome di Open Packaging Format (OPF).
EPUB Content Documents
Questa categoria di specifiche definisce le regole di utilizzo nel contesto dell'EPUB di HTML5, CSS e SVG che veicolano rispettivamente i contenuti, i fogli di stile e le immagini basate su xml. Come già detto, questi tre standard sono utilizzati anche per il web. Ma per gli EPUB vi sono alcune limitazioni, e quando nel web sono utilizzate in modo ambiguo, sono state prese delle decisioni che ne restringono le opzioni. Nell'EPUB 2 questa categoria di specifiche è chiamata Open Publication Structure (OPS).
EPUB Open Container Format (OCF)
Questa categoria definisce la struttura ad albero delle cartelle e file che compongono l'EPUB ed il modo in cui devono essere compressi per formare un unico file zip che rappresenta il file EPUB destinato alla distribuzione e alla lettura. In altri termini l'EPUB è costituito da un certo numero di risorse I(file di contenuto, navigazione e file informativi), queste risorse devono essere in relazione tra loro in un modo specifico ed infine devono essere compresse in un unico file. Il nome destinato a questa categoria di specifiche nell'EPUB 3 è identico.
EPUB Media Overlays
Questa categoria di specifiche riguarda la riproduzione di audio e video destinati alla sincronizzazione con il testo. Si tratta di specifiche particolarmente importanti per le disabilità visive. Questa categoria non è presente nell'EPUB 2
Naturalmente, molte delle cose che diremo ora nel descrivere le varie categorie di specifiche in dettaglio saranno piuttosto difficili da comprendere da chi non abbia delle conoscenze di base. Ma per ora non preoccupiamocene. Proviamo invece ad avere una visione d'insieme del modo di funzionare. Poi approfondiremo le competenze necessarie in sezioni speciali in corso di pubblicazione.
Sono le regole generali delle pubblicazioni EPUB e in quanto tali possono essere descritte come le specifiche delle specifiche.
Ecco la lista completa. Ciascun item è descritto in modo sintetico. Per una completa descrizione si vada al sito IDPF.
Specifiche
Deve esserci un documento package chiamato content.opf che contiene la lista di tutte le risorse (file) ed altre importanti informazioni.
Dedicheremo una intera sezione al file content.opf file, in quanto si tratta di un file fondamentale nell'EPUB. Sebbene nessuno compilerà a mano questo file (InDesign lo fa automaticamente, come pure altri software di conversione), è importante conoscere la struttura di content.opf perché è frequente la necessità di intervenire manualmente per sistemare alcuni problemi che possono sorgere nell'EPUB.
La pubblicazione deve contenere almeno un documento di contenuto ed una o più stylesheet che si conformino alle specifiche dell'EPUB Content Documents.
Si oti che queste specifiche fanno esplicito riferimento ad altre specifiche (EPUB Content Documents).
La pubblicazione deve contenere un Documento di Navigazione dell'EPUB che si conformi alle specifiche dell'EPUB Content Documents.
Anche qui si fa riferimento ad un'altra categoria di specifiche.
Può opzionalmente contenere documenti che si conformino alle specifiche Media Overlays.
Si noti il riferimento all'altra categoria di specifiche.
La pubblicazione deve essere compressa in un contenitore EPUB conforme alle specifiche Open Container Format (OCF).
Notare il riferimento alle altre specifiche.
Possono essere opzionalmente presenti altre risorse più avanzate (ad esempio la pronuncia) che non sono descritte in questa introduzione.
Come si può vedere quasi tutte le specifiche si riferiscono alle altre specifiche, ad eccezione di quelle che si riferiscono al file content.opf che è il cosiddetto documento di package.
Nella prossima sezione approfondiremo questo specifico documento.
Ecco un esempio di un semplice file content.opf per l'EPUB 2.
Example 2.1. content.opf example
<?xml version='1.0'?> <package xmlns='http://www.idpf.org/2007/opf' unique-identifier='bookid' version='2.0'> <metadata xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:opf='http://www.idpf.org/2007/opf'> <dc:title>Markup Ecomind</dc:title> <dc:identifier id='bookid'>urn:uuid:Documento interno</dc:identifier> <dc:language>it</dc:language> <dc:subject>Guida al markup di ecomind</dc:subject> <dc:description>Lista dei markup del markup di ecomind</dc:description> <dc:relation>http://www.ecomind.it</dc:relation> <dc:creator opf:role='aut'>Marco Roversi</dc:creator> <dc:publisher>Ecomind srl</dc:publisher> <dc:rights>Copyright (c), 2009, Ecomind</dc:rights> <meta name='cover' content='cover-image' /> </metadata> <manifest> <item id='ncx' href='toc.ncx' media-type='application/x-dtbncx+xml' /> <item id='css' href='css.css' media-type='text/css' /> <item id='cover-image' href='images/book.jpeg' media-type='image/jpeg'/> <item id='cap1' href='markupcap1.xhtml' media-type='application/xhtml+xml'/> <item id='cap2' href='markupcap2.xhtml' media-type='application/xhtml+xml'/> <item id='cap3' href='markupcap3.xhtml' media-type='application/xhtml+xml'/> </manifest> <spine toc='ncx'> <itemref idref='cap1' /> <itemref idref='cap2' /> <itemref idref='cap3' /> </spine> </package>
Come si può vedere, il content.opf si divide in tre parti (per il momento non considerare le prime due righe):
metadata
Sono le informazioni sul libro: titolo, identificativo, lingua, descrizione, relazione, autore, editore, diritti e nome dell'immagine.
manifest
È la lista completa delle risorse (file) contenute nella pubblicazione.
spine
Sebbene si possa pensare all'EPUB come ad un sito off-line, bisogna tenere conto di una fondamentale differenza: la pubblicazione EPUB prevede obbligatoriamente, a differenza di un sito, un ordine di lettura sequenziale. In altri termini, sebbene si possa accedere direttamente a qualsiasi punto della pubblicazioneIn other words, althought you can access whatever content of a EPUB using the Table Of Content (see later), the EPUB is similar to a printed book where a specific order of pages is an obvious feature.
EPUB 3 ha modificato alcuni dettagli del file content.opf ma le componenti rimangono le stesse. Ne parleremo dopo aver introdotto l'xml. Per il momento basti considerare i file xml come dei documenti che contengono informazione strutturata. Cioè ogni elemento informativo contiene una etichetta che descrive il significato di quella informazione. Le etichette sono racchiusi dai segni minore '<' e maggiore '>' e il testo deve essere compreso tra una etichetta di apertura e la stessa etichetta di chiusura. Ad esempio: <manifest>testo testo testo</manifest>.
Ci sono tre tipi di documenti di contenuto: testo e oggetti multimediali, uno o più fogli di stile e file di navigazione.
Nell'EPUB 3 il testo deve essere scritto obbligatoriamente in HTML5 (con estensione xhtml) cioè il linguaggio di markup raccomandato dal W3C per il web. Nella versione precedente (EPUB 2) non c'è questo obbligo ed i documenti possono essere anche scritti in HTML (estensione html). La differenza consiste in una sintassi molto più rigorosa per l'HTML5. Ci occuperemo in una sezione apposita di xhtml. Per ora basti sapere che il markup xhtml è un vocabolario specializzato di xml in grado di essere interpretato dai browser per il web e dai lettori di epub. Ciascun tag descrive l'informazione contenuta nell'elemento. Solo per fare qualche esempio, il tag <h1> significa che il testo contenuto tra il tag di apertura ed il tag di chiusura deve essere interpretato come titolo di primo livello, il tag <h2> è un titolo di secondo livello, il tag <p> significa "paragrafo", etc.
Le specifiche contengono il suggerimento di spezzettare lunghi file html in file più piccoli. Ad esempio uno per ogni capitolo. Ma possono essere adottate soluzioni differenti.
Le immagini possono essere degli stessi formati del web: png, jpeg, svg e gif. Sebbene non obbligatorio, le immagini sono generalmente incluse in un folder denominato images e sono il target di link inseriti nei file html esattamente allo stesso modo in cui si creano i link nelle pagine web. È importante ricordare che le immagini non sono automaticamente ridimensionate, pertanto è importante prepararle con il formato, la risoluzione e le dimensioni che si vogliano ottenere nella resa finale.
Gli oggetto audio e video sono gestiti con le tecniche usuali dell'HTML5 (extensions e enhancements). Si tratta di tag speciali utilizzati per avviare l'ascolto di audio o la visione di video all'accadere di eventi, come il click.
Non abbiamo parlato sinora degli aspetti grafici dell'epub. Nel gergo del digital publishing si chiama presentazione, come ad esempio i font, i colori, i margini, i bordi, etc. Di questo si occupa il foglio di stile, o stylesheet (con estensione css). Il suo ruolo essenziale è di separare i contenuti dalla presentazione, esattamente come raccomandato dal W3C. Un foglio di stile è una lista di descrizioni di come ciascun elemento xhtml debba essere reso graficamente. Ad esempio, che font utilizzare per l'elemento h1? Quanto spesso deve essere il bordo di un box? Quale margine a sinistra deve essere utilizzato per le liste? E così via. A queste domande, il foglio di stile risponde. E i suoi ordini sono eseguiti dal lettore. Una buona ragione per cui è una buona idea separare i contenuti dalla presentazione consiste nella possibilità di modificare l'aspetto di un intero libro semplicemente modificando i valori del foglio di stile. Altrimenti sarebbe necessario intervenire manualmente per ogni elemento del testo. Nel passato, molte pagine web erano pasticciate in questo modo, e proprio per porre rimedio a questa incredibile complicazione il W3C raccomanda i fogli di stile. Per cui, per quanto sia tecnicamente possibile, è opportuno anche per l'epub evitare accuratamente di inserire elementi di stilizzazione nei tag xhtml, ricorrendo invece all'uso dei fogli di stile.
Il documento di navigazione (chiamato anche TOC) è obbligatorio nell'ePub3.
TOC significa Table Of ContentTOC, in altri termini un sommario linkabile. Generalmente il TOC viene mostrato in un'area dedicata del lettore digitale, e consente di accedere direttamente con un link all'argomento cercato.
Il documento di navigazione è una delle più importanti novità dell'ePub3. Nelle specifiche precedenti (ePub2) il TOC era basato su un file toc.ncx (un file xml), ma nell'ePub3 diventa toc.xhtml, dunque un documento in xhtml, come i file di contenuto.
Il vantaggio è che può essere stilizzato allo stesso modo in cui possono essere stilizzati i contenuti con il CSS.
In questa fase di transizione è consigliabile inserire sia il vecchio tipo di TOC che il nuovo. Ciò consentirà al lettore digitale di mostrare il TOC anche se non ha aggiornato il suo software di lettura.
Più avanti ne parleremo in maggiore dettaglio.
Come abbiamo già accennato, l'EPUB, come pure gli altri tipi di ebook con markup, può essere considerato una sorta di sito web off-line. Dunque per rendere disponibili tutti i file che compongono l'EPUB (testi, immagini, documento di navigazione e documenti informativi) è necessario farli diventare un unico file. Nell'EPUB ciò si realizza facendo una speciale compressione zip.
Le specifiche Open Container Format (OCF) descrivono il modo in cui mettere insieme tutti i file e comprimerli. Ecco qui alcuni utili concetti da tenere a mente:
Contenitore astratto e contenitore zip
Per comprendere le specifiche OCF bisogna familiarizzarsi con i concetti di contenitore astratto e contenitore zip. Il contenitore astratto è la collezione di file e cartelle che compongono l'EPUB prima di essere zippato. Il contenitore zip è il file zippato finale che viene letto dal lettore digitale.
Nel contenitore astratto deve essere presente la cartella META-INF
Si tratta dell'unica regola imprescindibile del contenitore astratto. La cartella META-INF deve includere il file container.xml e può contenere altri file speciali (signatures.xml, encryption.xml, metadata.xml, rights.xml, and manifest.xml). La funzione principale di container.xml è di puntare al file content.opf descritto nelle specifiche Publications.
Riferimenti relativi
Un altro concetto con il quale è importante familiarizzarsi è il modo in cui si realizzano i riferimenti alle risorse del contenitore astratto: devono essere relative. Ad esempio, se un file fa riferimento ad un'immagine, e questa immagine è nella stessa cartella del file, il riferimento è semplicemente il nome del file. L'unica eccezione riguarda il file container.xml dove il path relativo parte dal root invece che dal META-INF. Se non è chiaro ciò di cui stiamo parlando, non preoccuparti, lo diventerà in seguito.
mimetype
Prima di comprimere le risorse dell'EPUB bisogna creare un file denominato mimetype. Il suo contenuto è molto semplice: application/epub+zip.
Compression
Come già sai, il contenitore astratto deve diventare un unico file. Ciò si ottiene effettuando una compressione zip. Tuttavia, la compressione non è standard. È necessario infatti effettuare delle piccole modifiche alla compressione usuale. Ci sono due alternative: utilizzare un software che effettui la compressione, oppure farlo manualmente (con linea di comando). Con Mac e Linux è consigliata la compressione manuale. Con windows è possibile utilizzare con alcuni accorgimenti il programma winzip. Naturalmente, per lavorare manualmente alla compressione è necessario familiarizzarsi con le operazioni manuali che nel gergo si chiamano a linea di comando. In altri termini bisogna familiarizzarsi con il terminale, un software speciale che comunica direttamente con il computer e che non ha alcuna interfaccia grafica (appunto a linea di comando). In altra sede vedremo come utilizzare il terminale, qui ci occuperemo del codice da scrivere. Ricordati che la compressione deve essere fatta solo sui file dell'EPUB: nessun altro file deve essere presente nella cartella, altrimenti verrà zippato anche quello, con conseguenze imprevedibili. Dunque, aprire il terminale, navigare fino alla cartella che contiene i file epub (la cartella del progetto), e digitare i seguenti comandi:
Ecco la formula magica per gli utenti linux:
zip -X0q mybook.epub mimetype; zip -Xr9D mybook.epub * -x mimetype
Questa è per gli utenti Mac:
zip -X0q mybook.epub mimetype; zip -Xr9D mybook.epub * -x "*.DS_Store" -x mimetype
E veniamo dunque agli utenti Windows: aprire Windows explorer, fare click con il pulsante destro, creare una cartella compressa nuova e vuota, trascinare il file mimetype nella cartella compressa, poi trascinare il resto dei file. A questo punto bisogna cambiare l'estensione da .zip a .epub.
Queste specifiche si riferiscono alla sincronizzazione del testo con l'audio. Si tratta di una novità molto interessante dell'EPUB 3 che non ha nulla a che fare con l'inserimento di file audio o video. L'audio inserito con queste specifiche, infatti, viene attivato automaticamente man mano che si scorre il testo e riproduce vocalmente il contenuto testuale. La sincronizzazione può essere un espediente molto interessante per produrre ebook per persone con disabilità visive, ma anche per libri per bambini (il testo viene ascoltato mentre si legge), oppure per altri scopi interessanti tutti da esplorare. Queste specifiche consentono al meccanismo di sincronizzazione di prendere il comando rispetto al meccanismo usuale di stop e go dell'HTML 5, sincronizzandolo con lo scorrimento delle pagine.
Ciò significa che per introdurre degli audio convenzionali, le modalità rimangono quelle usuali dell'HTML 5.
Per creare un oggetto SMIL (Syncronized Multimedia Integration Language) per l'EPUB bisogna creare un file con estensione .smil che punti all'audio. Il tago dell'audio deve aderire ad una specifica sintassi e ad alcune limitazioni (ad esempio, non sono consentiti script).
Infine, bisogna riferirsi all'oggetto SMIL nel file content.opf.