Sites


Créer un Epub

EPUB 3

Un fichier EPUB 3 n'est pas très différent, dans son principe, d'un fichier epub 2 : un ensemble de fichiers et de dossiers regroupés et compressés en un unique document, comme c'est le cas pour les fichiers OpenOffice (.odt) ou MS Word (.doc).

Quatre spécifications régissent à présent le contenu des epub. Ce sont des ensembles de règles bien précises établies par l'IDPF (International Digital Publishing Forum) :

  • La spécification OCF (Open Container Format) définit l'organisation des fichiers à l'intérieur du epub grâce à deux fichiers nommés container.xml et mimetype ;
  • L'Epub Content Documents définit le type de fichiers utilisés et utilisables dans un epub (par exemple des fichiers html ou xhtml, des images, une feuille CSS) ;
  • L'Epub Publications établit l'ordre de navigation et l'emplacement des fichiers dans l'epub grâce à deux fichiers nommés content.opf et toc.ncx ;
  • L'Epub MediaOverlay, qui définit les possibilités de synchronisation audio dans le document.

Pour plus d'informations à ce sujet, n'hésitez pas à vous plonger dans la documentation (en anglais) que l'on trouve sur le site http://idpf.org/epub/30/spec/epub30-overview.html.

Pour les personnes ayant déjà lu le chapitre EPUB 2, vous pouvez si vous le souhaitez vous rendre directement au point intitulé Le content.opf. Avant ce point, le contenu du présent chapitre consacré à l'EPUB 3 est en effet identique au chapitre précédent.

Organisation du contenu

Lorsque l'on extrait le fichier epub, c'est-à-dire lorsqu'on l'ouvre pour accéder à l'ensemble des fichiers et dossiers qui le composent (nous verrons comment dans le chapitre Extraire et recompresser un epub), nous constatons que ceux-ci sont organisés d'une manière spécifique imposée par le standard EPUB :

  • le fichier mimetype qui doit nécessairement être placé la racine du projet ;
  • le dossier obligatoire META-INF qui contient le fichier container.xml (éventuellement signatures.xml ou encryption.xml) ;
  • le dossier OEBPS, ou OPS dans les epub de version 3 pour simplifier, qui regroupe :
    • le dossier optionnel Texte (Text) qui contient les fragments html ou xhtml (ce sont vos chapitres),
    • le dossier optionnel Style qui contient la ou les feuilles CSS (par exemple style.css),
    • le dossier optionnel Images s'il y en a,
    • le dossier optionnel Polices (Fonts) si des typographies spécifiques ont été intégrées,
    • le dossier optionnel Divers (Misc) qui contient par exemple des fichiers audio, vidéo ou des fichiers xml spécifiques,
    • le content.opf (où sont entre autres indiqués l'emplacement des fichiers et les métadonnées),
    • le toc.ncx (qui régit la table des matières, la navigation dans le livre).
mimetype
META-INF/container.xml
OEBPS/content.opf
OEBPS/livre_texte.html
OEBPS/nav.html
OEBPS/toc.ncx
OEBPS/images/cover.png

Il peut arriver que vous ayez d'autres fichiers lorsque vous extrayez votre epub, si par exemple vous l'avez créé avec certains logiciels de PAO offrant des fonctions d'exportation (ces fichiers supplémentaires étant spécifiques à ces logiciels).

Hormis mimetype et META-INF dont les noms et structures sont imposés par la convention, les autres dossiers peuvent être nommées de façon libre. Sigil créant une structure par défaut fréquemment utilisée, nous l'avons en général conservée dans nos descriptions et nous la conseillons quand elle est possible.

Le fichier mimetype

Le fichier mimetype contient une seule ligne qui stipule que le fichier est au format EPUB. Il ne faut en aucun cas la modifier :

application/epub+zip

Le mimetype est le premier fichier qui est ouvert par le logiciel lorsqu'on ouvre un livre epub sur un support de lecture. C'est une opération transparente pour le lecteur, mais qui est indispensable aux outils pour interpréter et lire correctement les autres éléments du livre. Il doit être placé à la racine du document epub, et non par exemple dans les dossiers META-INF ou OEBPS. Cet impératif est fondamental et a des implications en matière de zippage et dézippage des fichiers (voir le chapitre Extraire et recompresser un epub dans la section Enrichier son epub).

Le container xml

Présent dans le dossier META-INF à la racine de l'epub, il indique où est situé le fichier .opf (généralement nommé content.opf, bien que l'on puisse changer son nom). De même que pour le mimetype, son nom ne doit pas être modifié.

<?xml version="1.0"?>
<container xmlns="urn:oasis:names:tc:opendocument:xmlns:container" version="1.0">
  <rootfiles>
    <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
  </rootfiles>
</container>

Le content.opf

Par convention (mais pas impérativement) nommé ainsi, et présent dans le dossier OEBPS, il indique l'emplacement des fichiers de l'epub. Il peut être renommé si on le désire, tant qu'il l'est également dans le container xml.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId" version="3.0" xmlns:opf="http://www.idpf.org/2007/opf">
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    <dc:identifier id="BookId" opf:scheme="IMRID">184363</dc:identifier>
    <dc:identifier opf:scheme="ISBN">9782814506510</dc:identifier>
    <dc:title>Zonzon Pépette, fille de Londres</dc:title>
    <dc:language>fr</dc:language>
    <dc:publisher>publie.net</dc:publisher>
    <dc:creator opf:role="aut">André Baillon</dc:creator>
    <dc:contributor opf:role="aut">André Baillon</dc:contributor>
    <dc:type>text</dc:type>
    <dc:date opf:event="creation">2012-07-27</dc:date>
    <dc:date opf:event="publication">2012-07-27</dc:date>
    <dc:description>Quand il fait paraître "Zonzon Pépette, fille de Londres" en 1923, le belge André Baillon, entre deux tentatives de suicide, entre à l'hôpital psychiatrique de la Pitié-Salpêtrière, à Paris. Il a déjà plusieurs vies derrière lui, flambeur de casino, paysan en sabots, secrétaire de rédaction d'un journal médical.... Est-ce tout cela qui donne à la légèreté de Zonzon Pépette cet arrière-goût d'une danse sur un abîme ? Notre littérature populaire est un continent fait de ces vies qui se brûlent tout entières à l'écriture, mais ne viennent pas rejoindre les livres qu'on dit nobles. </dc:description>
    <meta content="0.5.3" name="Sigil version" />
    <meta name="cover" content="cover.png" />
  </metadata>
  <manifest>
        <item id="r4915"
              href="Section0001.html"
              media-type="text/html"/>
        <item id="r7184"
              href="images/chapitreun.png"
              media-type="image/png"/>
        <item id="nav"
              href="nav.xhtml"
              media-type="application/xhtml+xml"
              properties="nav"/>
        <item id="ncx"
              href="toc.ncx"
              media-type="application/x-dtbncx+xml"/>
    </manifest>

    <spine toc="ncx">
        <itemref idref="r4915"/>
    </spine>
</package>

Comme vous pouvez le constater sur les lignes de code ci-dessus, ce fichier est constitué de plusieurs parties. Décortiquons-les afin de mieux comprendre comment est constitué ce fichier primordial de l'epub.

La déclaration XML

Le format EPUB, cet ensemble de dossiers, fichiers et documents, utilise un langage de programmation appelé XML.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Cette ligne identifie les normes utilisées dans le document. Elle est présente en première ligne de tout document XML et indique la version du XML utilisé, le type d'encodage des caractères et si des informations proviennent d'une source externe.

Par convention, l'UTF-8 est toujours utilisée dans l'édition électronique. Pour que cela fonctionne parfaitement, il faut que votre logiciel soit configuré pour ce qui est le cas des éditeurs que nous avons présenté dans les chapitres précédents.

La déclaration de la version du epub

Le XML peut suivre différentes règles, différentes grammaires en quelque sorte, définies selon les usages auxquels doit répondre le format final. Dans le cas du EPUB, la règle, ou norme, est l'Open Container Format, OPF.

Cette norme évolue régulièrement pour répondre aux nouveaux usages et besoins du EPUB. L'organisme de normalisation de l'EPUB (IDPF) définit des versions du format (EPUB2, EPUB3). À chaque version correspondent des nouvelles spécifications dans la norme OPF.

<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId" version="3.0">

Tout document compressé doit indiquer de quel type est composé son contenu. Ici, nous déclarons que le code XML utilisé est du type opf. Ce "type" est appelé namespace en anglais, abrégé en ns, d'où icixmlns. La mention de la version 3.0 (version="3.0") nous indique quelles sont les spécifications exploitées dans ce fichier (et par défaut lesquelles ne le sont pas, si l'on connaît l'existence d'une version ultérieure).

Les métadonnées

<metadata> 

Cette partie du fichier fournit les informations relatives aux métadonnées (pour plus d'informations sur les métadonnées voir le chapitre Valider ses métadonnées dans la section Contrôler ses fichiers). Ce sont les informations d'identification du livre et de son contenu qui seront exploitées dans tous les catalogues et outils d'indexation cherchant à répertorier le livre. Ici seront par exemple indiqués le book identifier (un numéro unique pour chaque epub), le titre du livre, la langue, l'ISBN, l'auteur, les différents contributeurs, la date de création, la date de publication, la date de modification, l'éditeur etc.

Dans l'exemple ci-dessous, nous allons détailler la métadonnée "auteur" du livre.

<dc:creator opf:role="aut">André Baillon</dc:creator>

dc: en début de balise indique que la grammaire (le schéma en langage XML) suivie pour la rédaction des métadonnées est le Dublin Core. Les logiciels sauront en lisant cette indication que l'on "parle" en Dublin Core et que selon ce vocabulaire creator correspond à l'auteur du livre. Il existe une dizaine d'éléments courants Dublin Core utilisée par EPUB comme publisher, description, subject, date... Cette norme d'écriture est celle utilisée par plusieurs bibliothèques nationales dans les procédés de dépôts légaux et d'enregistrement (telle la Bibliothèque Nationale de France).

opf:role="aut" est un raffinement de la métadonnée creator, selon le schéma OPF cette fois, qui va qualifier le rôle dudit créateur, celui pouvant être un auteur, compositeur, etc. Certains outils de lecture des métadonnées (sites internet de diffuseurs, libraires, etc) vont exploiter ces raffinements dans la définition des références du livre.

Le manifeste

<manifest>

Cette partie indique toutes les ressources qui constituent le livre ainsi que leur nature (texte, image...). Aucun élément ou fichier présent dans l'epub ne doit manquer sous peine de rendre celui-ci invalide et illisible. Voilà une section à manier avec précaution... ou pas du tout (certains logiciels comme Sigil gérant seul ces données).

L'élément ci-dessous décrit un fichier html (un de vos chapitres par exemple, ici nommé "Section0001.html")

<item id="r4915"
              href="Section0001.html"
              media-type="text/html">

alors que celui-ci définit une image (ici nommée "chapitreun.png").

<item id="r7184"
              href="images/chapitreun.png"
              media-type="image/png">

L'indication href= indique à quel endroit se trouve la ressource mentionnée (le fichier html ou l'image) dans l'arborescence des dossiers du epub.

Le spine

<spine>

Cette partie doit mentionner l'ensemble des fichiers de contenu présents dans le manifeste et qui constitueront la table des matières. Ils doivent être listés dans l'ordre dans lequel ils devront être lus. Aucun ne doit apparaître plus d'une fois.

On trouvera donc par exemple où itemref est relié en idref un id d'item défini plus haut dans le fichier :

<itemref idref="intro" />
<itemref idref="r4915" />

Guide

<guide>

Cette partie est dépréciée en EPUB 3.

Le fichier toc

Les appareils de lecture utilisent le fichier toc.ncx (toc pour table of contents) ou toc.xhtml en particulier pour définir la table des matières de l'ouvrage telle qu'elle sera disponible dans les outils de navigation du logiciel de lecture. Il reprend certaines des informations contenues dans le content.opf. Le titre de l'ouvrage est notamment obligatoire. EPUB 3 change radicalement l'approche par rapport à EPUB 2 et utilise les éléments de navigation contenus dans HTML5 en place de l'ancien système.

Il utilise l'extension de paramètre lié au namespace epub, par exemple pour spécifier le type de contenu (au niveau sémantique) comme dans l'exempel suivant epub-type:toc spécifie que l'élément de navigation nav est spécifiquement une table des matières toc, de manière à éviter toute confusion.

<?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" xml:lang="fr"
	lang="fr">
	<head>
	  <title>MonLivre</title>
	  <link href="Styles/toc.css" type="text/css" rel="stylesheet" />
	</head>
	<body>
	  <nav epub:type="toc" id="toc">
		<h2>Contenu</h2>
		<ol>
		  <li id="np-313">
		   <a href="s1.xhtml">Introduction</a>
			<ol>
			  <li id="s1-1" class="front">
				<a href="s1.xhtml#bib">Bibliographie/a>
			  </li>
			  <li id="s1-2" class="front">
				<a href="s1.xhtml#comp">Comprendre</a>
			  </li>
			</ol>
			...
		</li>
	  </nav>
	</body>
</html>

Les autres fichiers

Les autres fichiers présents dans ce dossier OEBPS constituent le contenu du livre.

Les fichiers de contenu

Les fichiers de contenu sont les fichiers html correspondants à chacun des chapitres, les images et les polices exploitées dans le livre. Avec EPUB 3, il est possible d'utiliser HTML5 ce qui augmente les possibilités en terme de sémantique. Quelques compléments spécifiques à la lecture ont été ajoutés comme le typage (epub:type) de contenu (paragraphe de pied de page, de note...) ainsi que la possibilité d'avoir un contenu changeant (epub:switch) selon un contexte défini, par exemple définir un contenu de remplacement pour pallier les défauts de rendu éventuels des périphériques de lecture.

La norme EPUB liste 2 types de contenu :

  • les médias reconnus sans remplacement nécessaire, donc considérés comme étant sans risque pour l'éditeur et devant absolument être supportés par les logiciels de lecture ;
  • les autres médias qui peuvent nécessiter des outils spécifiques pour la visualisation.

En ce qui concerne les médias par défaut (core medias), voici une petite liste :

  • images : GIF, JPEG, PNG, SVG ;
  • éléments textuels : HTML5, XHTML, NCX (ancien format pour la table des matières), CSS ;
  • polices : OTF (opentype), WOFF, SVG ;
  • médias : MP3, MP4 ;
  • multimedia et interactivité : SMIL, JAVASCRIPT, text-to-speech (synthèse vocale).

Dans les différentes applications de création d'epub, chacun de ces fichiers et ressources est directement inclus dans le dossier Images, Text, Misc ou Fonts correspondants.

Les fichiers de mise en forme

Les indications de style, d'apparence, devant s'appliquer au contenu sont inscrites dans un ou plusieurs fichier portant l'extension .css (Cascading StyleSheet) rangés dans le dossier Style. En EPUB 3, il est possible d'utiliser la version CSS3 qui apporte des fonctions graphiques et typographiques intéressantes pour le confort de lecture. Mais il reste possible de s'en tenir à CSS2.1 qui est la dernière officiellement recommandée par le W3C.

Les règles d'écriture des fichiers HTML et CSS seront abordées dans le chapitre Les bases du HTML et du CSS pour l'epub de la section Enrichir son epub.

Les fichiers graphiques et multimédias

Grâce aux améliorations de HTML5, l'intégration d'images vectorielles au format SVG ainsi que de fichiers multimédias sons ou vidéos a été largement facilitée et standardisée. Il devient possible de les utiliser dans la norme. Ce point sera abordé plus en détail dans le chapitre Ajouter du contenu multimédia de la section Enrichir son epub.

L'interactivité

Enfin, les lecteurs epub sont aussi censés permettre l'utilisation de scripts* à l'intérieur du fichier epub de manière à le rendre interactif. 

La lecture vocalisée dans epub3

La section Media Overlay de la spécification détermine comment avoir recours aux systèmes de synthèse vocale pour les applications et périphériques qui donnent cette possibilité. Elle est basée sur la technologie smile et les fichiers doivent comporter l'extension .smil.

<?xml version="1.0" encoding="utf-8"?>
<smil
      xmlns="http://www.w3.org/ns/SMIL"
      xmlns:epub="http://www.idpf.org/2007/ops"
      version="3.0">
    <body>
        <seq id="id1" epub:textref="monlivre_chapitre1.xhtml" epub:type="bodymatter chapter">
            <par id="heading1">
                <text src="monlivre_chapitre1.xhtml#c01h01"/>
                <audio src="audio/monlivre_chapitre1_001_001.mp4"
                    clipBegin="0:00:5.000"
                    clipEnd="0:00:20.975"/>
            </par>
        </seq>
        </body>
</smil>
  • seq définit une séquence de lecture ;
  • par, contenu dans seq, va permettre de spécifier ces séquences ;
  • text, contenu dans le contenu de l'epub auquel cette séquence se référence, en général une page html ou une partie de celle-ci si elle est longue ;
  • audio définit enfin la partie de média qui doit être jouée, le nom du média (src), le point du fichier média à laquelle la lecture doit débuter (clipBegin) ou s'arrêter (clipEnd) sous l'une des formes suivantes : heure:minute:secondes.millisecondes ou 9min.

La lecture de fichier média peut remplacer à l'avenir les livres audio et permettre au lecteur quel qu'il soit d'avoir accès à la lecture audio. C'est aussi une fonctionnalité prometteuse en terme publicitaire dans des utilisations moins littéraires de l'epub. 

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.