Utilisateur:Wuyouyuan/Ebook-Tn/Des formats variés pour Wikisource/Technique provisoire

Réalisation d'e-books à partir d'ouvrages de Wikisource, technique provisoire.


Comparaison de l’affichage sur liseuse et de la structure d’un ouvrage sur Wikisource modifier

Wikisource modifier

Wikisource contient des ouvrages (livres, articles de journaux ou de revues, documents officiels). Le texte d’un ouvrage est proposé au lecteur sous forme de pages hiérarchisées en livre, partie, chapitre etc. Pour la facilité du lecteur, il existe des pages de sommaire qui contiennent des liens vers les parties de l’ouvrage. Les notes de bas de page sont reliées au texte principal par des liens qui permettent d’aller lire une note et de revenir au texte. D’autres liens permettent de « naviguer » dans l’ouvrage, d’un chapitre au suivant etc.

Le texte est établi par les contributeurs à partir de diverses sources, de préférence le fac-simile d’un imprimé ; le texte établi est distribué en pages. On réunit ces pages par transclusion pour constituer les pages hiérarchisées destinées à l’affichage pour le lecteur. Dans le cas le plus simple, une page hiérarchisée du niveau le plus bas contient le texte en clair. Le même texte peut figurer dans plusieurs pages affichables, par exemple un chapitre d’ouvrage et un « livre entier » qui réunit tout le texte de l’ouvrage dans une seule page.

Quand on modifie un texte, la modification est immédiatement visible dans toutes les présentations.

E-book pour liseuse modifier

Un fichier e-book pour liseuse contient un ouvrage entier, ou un volume d’ouvrage multi-volume. Le texte est d’un seul tenant et peut être lu du début à la fin. Il est généralement subdivisé en pages identifiées par leur rang dans le texte. Sur l’écran de la liseuse, un certain volume de texte est affiché, qui varie selon le choix de taille de caractères fait par l’utilisateur. Sur les liseuses à e-ink (encre électronique), on progresse par une fonction de feuilletage du texte en tournant virtuellement les pages vers le bloc de texte qui suit ou qui précède par un glisser du doigt de droite ou gauche ou inversement, ou encore par une touche mécanique. Sur d’autres liseuses on peut faire défiler le texte. Un changement de page (subdivision du texte) peut être calé en haut de l’écran, ou se fondre dans la continuité, selon le choix de celui qui a construit l’e-book.

Le lecteur peut circuler à l’intérieur de l’e-book grâce à plusieurs fonctions :

  • appel de la table des matières, qui s’affiche alors sur l’écran. Le choix d’une ligne de table des matières affiche le début de la page correspondante.
  • fonctions de navigation générique : sauter à une page en donnant son numéro, revenir à l’affichage précédent, remonter le parcours de lecture.
  • navigation dans le texte, à partir d’un lien sur un mot du texte affiché, vers un autre point dans une page. Cela permet notamment de consulter les notes de bas de page et de revenir au texte. Cela permet aussi de créer une « table des matières dans le texte », et des renvois à l’intérieur du texte.

On ne peut pas modifier le texte d’un e-book. Les liseuses offrent la possibilité d’écrire des notes personnelles reliées au texte.

Préparation de la page de texte pour générer les e-books modifier

On parlera ici du cas du « texte entier » (texte au kilomètre), une seule page en un seul tenant) affichable et qui contient tout ce qu’on veut mettre dans l’e-book. Des solutions plus élaborées, qui exploitent la structure d’un ouvrage sur Wikisource (parties et chapitres hiérarchisés, sommaires formalisés) peuvent aussi être décrites et réalisées.

Dans la solution décrite ici, le logiciel qui génère le fichier e-book utilise le code HTML généré par le logiciel Médiawiki à partir du texte formalisé en langage wiki. Tous les aménagements spécifiques à l’e-book sont écrits en langage wiki.

Un générateur expérimental est disponible à cette adresse : [http : //wsexport.wmflabs.org/tool/book.php wsexport]. Il permet d’exporter à ce jour vers trois formats : ePub, xHTML, ODT.

Pour générer la table des matières, et insérer les changements de page en début de chapitre, il faut repérer dans le code les titres, parties de texte qui fourniront les lignes de la table des matières de l’e-book, et leur niveau hiérarchique. Pour cela il faut des « balises » qui encadrent le texte du titre, ce qui fera reconnaître une ligne de titre par le générateur d’e-books.

Texte entièrement en wiki modifier

Ces textes entiers (en un seul tenant, donc pas en mode page) ont des titres et sous-titres encadrés par des ===… === (niveau 3) ; ==… == (niveau 2), etc. Le texte s’affiche avec des titres et sous-titres en caractères agrandis sans autre directive de présentation. Le logiciel Mediawiki génère dans le texte HTML des balises ''<h1>… </h1>'' ; ''<h2>… </h2>'', etc. qui encadrent le libellé du titre.

Texte en mode page qui contient les titres et sous-titre modifier

Le texte transclus s’affiche avec les titres et sous-titres. Il est possible de transclure l’ensemble du texte en une seule instruction.

Pour que le logiciel d’e-books reconnaisse les lignes de titre les cas sont très variés. Il serait possible de se fier à la présence dans une ligne du mot chapitre ou livre, etc. mais on ne peut pas exclure que ces mots apparaissent ailleurs dans le texte.

La solution adoptée ici consiste à introduire une classe titre sous la forme ''<div class="ebook-t2" >…</div>'' (pour le niveau 2, et ebook-t1 pour le niveau 1, etc. On fournit au générateur d’e-books le moyen de reconnaître ce qui est englobé dedans (une ou plusieurs lignes de texte avec des directives de présentation) comme le libellé d’un titre d’un certain niveau. Le modèle :Ebook-Tn qui matérialise cette solution a deux arguments, le premier donnant le niveau, le second étant le texte du titre. Voir cet exemple, où le titre comporte deux lignes et où un ancrage est placé en tête du chapitre de niveau 2.

{{Ebook-Tn|2|{{refancre|LE020}}{{centré|{{taille|'''XX'''|120}}}}<br /><br />{{centré|'''Le chemin de la mort'''}}}}

Remarque : Les noms de classe donnés ici sont arbitraires. Il suffit de ne pas utiliser le nom d’une classe qui existe déjà.

Texte en mode page où l’affichage des titres a été inhibé modifier

Dans ce cas, le titre dans le texte de la page a été encadré par des balises <noinclude>… </noinclude> et n’apparaît pas dans un texte transclus. Cela permet d’éviter la redondance du texte du titre quand il est présenté par chapitre. Mais le texte entier doit être construit chapitre par chapitre en insérant les titres. On peut alors encadrer ces titres par des balises wiki ===… === et, pour le générateur d’e-books, on a l’équivalent d’un texte entièrement en wiki. On peut aussi utiliser la classe titre ''<div class="ebook-t2" >…</div>'', etc.

Texte en mode page où les titres et sous-titres à l’intérieur d’une page sont encadrés par des balises wiki ===… === modifier

Dans ce cas, le résultat est irrégulier. La présence des balises wiki dans les pages à transclure peut produire un code HTML inattendu. Voir cet exemple : les balises ''<h3>… </h3>'' sont dupliquées. Il est préférable de modifier les titres.

Obtention du texte de l’ouvrage en HTML modifier

( 2e version : 6/12/2011) Il n’existe pas encore d’affichage texte seulement des pages de Wikisource. La technique décrite ici permet de supprimer l’entête, la colonne de gauche, le pied de page, les numéros de page en marge du texte, et de conserver le code HTML correspondant au texte, plus le titre de la page qui est reconnu comme metadata titre par les logiciels de génération d’e-book.

On utilise l’affichage Affichage mobile (dernière ligne de l’écran en bas à gauche). Les liens et les ancrages dans le texte, qui ne sont pas affichés visiblement, sont conservés dans le code HTML

Affichage modifier

  • Afficher la page texte entier ou texte pour liseuse et passer à l’affichage Mobile.
  • La page Mobile étant affichée (texte non cadré, deux boutons en haut à gauche), sauvegarder le fichier HTML (fonction de l’afficheur Firefox ou autre : « enregistrer sous » du menu déroulant « fichier » ).

Nettoyage du code HTML modifier

  • Ouvrir le fichier HTML avec le bloc-notes (Notepad.exe, TextEdit ou équivalent). Il faut partir du fichier avec la fonction « ouvrir avec… » (clic droit de la souris) ; en partant de Notepad.exe pour ouvrir le fichier, on peut avoir des problèmes de codage des caractères accentués.
  • Éliminer les lignes de code HTML après la 6e (dernière ligne conservée « <meta http-equiv= » Content-Type « content= » text/html ; charset=UTF-8 « >  » ) jusqu’à «  < ! -— /jumpto —-> < ! -— bodyContent —->  » qu’on conserve.
  • Éliminer les lignes de code HTML à partir de « < ! -— NewPP limit report […]  » jusqu’à la fin.
  • Rétablir les balises «  </head><body>  » après les six premières lignes et «  </body></html>  » à la fin. (important : sinon le générateur d’e-books ne reconnaît pas toujours la structure de la page HTML).
  • Sauvegarder le fichier (de préférence sous un autre nom) en .HTML et codage UTF-8.
  • Ouvrir ce fichier pour le vérifier à l’affichage. On a un affichage avec liens en bleu, taille des caractères, centrages, etc. mais sur toute la largeur de la page.

Remarque : Cette préparation conserve les liens web qu’on trouve habituellement dans le pavé de titre d’une page Wikisource. Selon la liseuse et les conditions, ces liens peuvent être actifs. Pour les supprimer, éliminer les séquences href="http : //fr.wikisource.org/wiki/…" .

Génération des e-books avec le logiciel Calibre modifier

Il existe de nombreux générateurs d'e-books. Ce qui suit concerne le logiciel libre Calibre. Consultez son mode d'emploi.

Calibre reconnaît le fichier HTML et le convertit dans son format interne ZIP, point de départ des conversions.

On donne à Calibre des expressions dans le langage Xpath pour reconnaître la structure du futur e-book. Les formules par défaut reconnaissent les balises h1 et h2 et traitent correctement la structure wiki, si on veut un seul niveau de table des matières. Il est recommandé d'utiliser les instructions qui conviennent à chaque cas. Les instructions qui ont servi pour un ouvrage sont conservées pour les traitements ultérieurs.

Remarque : si l'ouvrage est illustré, le code HTML contient les URL des images stockées sur les serveurs de Wikimédia. Il faut être en ligne pour que le générateur d'e-books insère les images.

Manipulation modifier

  • Ajouter le fichier HTML, qui devient le .ZIP de Calibre.
  • Ajuster les métadonnées (titre et auteur) pour ne pas égarer le résultat. Le titre figure dans le code HTML.
  • Ajuster les instruction de conversion (page setup, structure detection, table of contents).
  • Demander la conversion en ePub. C'est presque instantané.
  • Visualiser le résultat (sommaire, circulation) avec le visualiseur de Calibre (ePub par défaut).
  • Générer les autres formats désirés.
  • Aller chercher les fichiers e-books dans la base de données locale de Calibre. Il y a un dossier par auteur, qui contient un dossier par version d'ouvrage. (Calibre a une fonction d'exportation vers une liseuse.)

Paramètres génériques modifier

Pour un texte en wiki
  • Structure detection :
    • Détection des chapitres : //*[(name()='h1' or name()='h2' or name()='h3') ]
    • Sauts de page : //*[(name()='h1' or name()='h2' or name()='h3') ] (supprimer les niveaux en trop à partir de la droite)
  • Table of contents :
    • Niveau 1 : //*[(name()='h1') ]
    • Niveau 2 : //*[(name()='h2') ] (selon besoin, sinon blanc)
    • Niveau 3 : //*[(name()='h3') ] (selon besoin, sinon blanc)
Pour un texte où on a utilisé la class titre
  • Structure detection :
    • Détection des chapitres : //*[@class = 'ebook-t1' or @class = 'ebook-t2' or @class = 'ebook-t3']
    • Sauts de page : //*[@class = 'ebook-t1' or @class = 'ebook-t2' or @class = 'ebook-t3'] (supprimer les niveaux en trop à partir de la droite)
  • Table of contents :
    • Niveau 1 : //*[@class = 'ebook-t1']
    • Niveau 2 : //*[@class = 'ebook-t2'] (selon besoin, sinon blanc)
    • Niveau 3 : //*[@class = 'ebook-t3'] (selon besoin, sinon blanc)

Analyse de quelques exemples modifier

Considérations sur les causes de la grandeur des Romains et de leur décadence modifier

Le texte est en wiki, d'un seul tenant, avec un seul niveau de chapitres, marqué par les balises wiki == == qui génèrent les balises HTML <h2>...</h2>. Il y a des notes de bas de page.

  • Structure detection : détection des chapitres par : //*[(name()='h2')].
  • Table of content : premier et seul niveau : //*[((name()='h2'))].

Modification : ajout d'un titre de chapitre == Notes : == pour que les notes soient traitées comme le reste du texte.

L’Ancien Régime et la Révolution modifier

Le texte est en wiki, divisé en livres, chaque livre divisé en chapitres. Chaque livre est sur une page et il y a une page de sommaire détaillé avec lien vers les livres. Il y a des notes de fin de livre, avec renvoi explicite depuis le texte.

Préparation : constitution d'un texte pour liseuse par transclusion {{: ..... }} des pages contenant les livres, après avoir encadré les entêtes par <noinclude>...</noinclude> dans chaque livre. Transclusion de la page de sommaire détaillé. Le texte pour liseuse est structuré par des titres au niveau 1 = … = qui est celui des livres et de l'avant-propos, les chapitres étant structurés au niveau 2 ; == ... ==.

On utilise les balise HTML h1 et h2 générées par Médiawiki.

  • Structure detection : //*[(name()='h1' or name()='h2' or name()='h3') ].
  • Table of contents : premier niveau : //*[name()='h1'] ; second niveau : //*[name()='h2'].

La Sœur du Soleil modifier

Le texte est en mode page ; 31 chapitres, notes de bas de page. L'ouvrage est présenté en chapitres, à partir d'une page de sommaire. Il existe un texte entier sans table des matières.

Préparation : insertion dans chaque page de tête de chapitre d'un modèle {{ebook-Tn|2| ... }} qui a pour paramètre l'ensemble des deux lignes du titre de chapitre, numéro et libellé. Exemple Page:Gautier - La sœur du soleil.djvu/17.

  • Structure detection : //*[@class = 'ebook-t1' or @class = 'ebook-t2'] (instruction générique ; le niveau 1 n'est pas nécessaire).
  • Table of content : premier et seul niveau : //*[@class = 'ebook-t1' or @class = 'ebook-t2'] (instruction générique).

Connaissance de l'Est modifier

Le texte est sur une seule page, avec un sommaire en début de page qui pointe sur les titres des poèmes en prose. Les réglages de Calibre sont tous à blanc. Une table des matières à un seul niveau a été générée à partir des titres associés aux liens du sommaire. La qualité de l'e-book serait meilleure si un changement de page avait été demandé à chaque début de chapitre.

La Légende de la mort en Basse-Bretagne modifier

Texte complexe en 10 chapitres et 70 sous-chapitres. Il y a au début de certains chapitres du texte qui ne dépend pas d'un sous-chapitre. Pour générer un sommaire à deux niveaux qui soit complet, certains titres de chapitre ont donc été dupliqués au niveau du sous-chapitre (voir chap. VI, l’Anaon). Le texte entier comporte un sommaire avec liens vers les chapitres et les sous-chapitres. Cette table des matières dans le texte fonctionne aussi sur liseuse. Mais faute d'avoir mis les ancrages à l'intérieur du chapitre, on aboutit en bas de la page précédente. Exemple.

La Valeur de la science modifier

Le texte est en mode page, mais l'affichage des titres a été inhibé en transclusion. Le texte entier est construit comme un texte en wiki, avec des titres et sous-titres encadrés par des balises wiki == ... == à deux niveaux, le texte sous le titre étant appelé par des instruction de transclusion.

Pour générer l'e-book, le paramétrage est le même que pour L’Ancien Régime et la Révolution (voir plus haut).

Les Aventures de Huck Finn modifier

Les titres de chapitres sont isolables du texte par un jeu de sections (exemple) pour ne pas apparaître en redondance dans la présentation par chapitre. Si on transclut le texte entier, les titres apparaissent. L'e-book a été généré en renonçant à créer une table des matières, car rien ne permettait d'identifier les titres, en mettant le paramétrage de Calibre à blanc. Des lignes de table des matières ont cependant été créées à partir des quelques notes de bas de page du traducteur. Pour l'éviter, il aurait fallu régler à zéro le nombre maximum de postes de la table des matières.

Incertitudes et défauts de la technique décrite modifier

Qualité du résultat vis-à-vis de la norme du type d’e-book modifier

Le visualiseur de Calibre, qui permet de contrôler le résultat, est plus "indulgent" que les logiciels de référence.

EPUB
À contrôler avec Adobe Digital Editions (Mac ou PC). Ce qui devrait être centré ne l'est pas. Les interlignes sont irréguliers.
Lorsque l’on utilise {{personnages}} pour lister la figuration dans une pièce de théâtre, le bloc ne se divise pas. On perd les figurants s’ils sont en trop grand nombre. Solution partielle : réduire le corps du texte au maximum dans les liseuses, puis le remettre après lecture.
MOBI
À contrôler avec Kindle for PC. Semble correct.
PDF
À contrôler avec Adobe Reader. Pas de table des matières. Les lignes du texte ne se réarrangent pas si on augmente sur la liseuse la taille des caractères, réduisant la longueur des lignes ; les lignes sont alors pliées.


(à suivre…)