View Single Post
Old 01-03-2016, 08:28 PM   #289
roger64
Wizard
roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.roger64 ought to be getting tired of karma fortunes by now.
 
Posts: 2,608
Karma: 3000161
Join Date: Jan 2009
Device: Kindle PW3 (wifi)
Index hypertexte

Il est possible d'ajouter simplement à tout EPUB un index hypertexte. Voici comment le faire avec Sigil (version essayée: 9.2. Archlinux 64 bits).

Avertissement : aujourd'hui Sigil crée les chapitres d'index lettre par lettre en classant en fin de document les lettres accentuées, ce qui impose le reclassement manuel de ces dernières. L'auteur vient d'être averti de ce problème et tente d'y remédier.

I. - Présentation

On trouve des index dans de nombreux livres ou publications. Ils peuvent être extrêmement sophistiqués. Il ont leur propre norme iso (999:1996) dont vous pouvez acquérir le texte (anglais ou français) au format PDF pour le prix modique de 158 francs suisses. Leur adaptation à l'hypertexte a été relativement tardive. Depuis 2012, la création d'index hypertexte à la norme EPUB3 fait l'objet de recommandations de l'IDPF.

http://www.iso.org/iso/home/store/ca...?csnumber=5446
http://www.idpf.org/epub/idx/

À côté de ces monuments de savoir, depuis la version 7.2. de juin 2013, Sigil permet de réaliser simplement un index hypertexte.

Celui-ci a quelques lacunes. Vous n'y trouverez pas certaines fonctions avancées comme les références croisées ("cross-references") que l'on invoque avec l'expression "voir aussi" ("see also"), ainsi que les indicateurs de lieu ("locators") citant les parties - ou chapitres - du document contenant l'entrée d'index.
Un exemple pour éclaircir ce dernier point: imaginons qu'une entrée soit répertoriée dix fois, aux pages 5, 25, 50, 95, 124, 222, 223, 224, 225, 308. Dans l'index que produit Sigil, les entrées seront numérotées: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. L'information selon laquelle la partie entre 222-225 traite cinq fois de ce sujet est perdue. Si l'on ajoutait aux entrées de Sigil une sorte de préfixe comprenant les chapitres ou parties du livre, les entrées 5-9 de Sigil auraient pu être regroupées et l'information initiale n'aurait pas été perdue.

II. Comment créer un index hypertexte

Nous allons procéder à partir de l'index d'un livre papier.

Commençons par insérer la liste des entrées d'index dans un éditeur de texte (une entrée par ligne). Notez que Sigil ignorera les contenus entre parenthèses dans les entrées d'index - et les parenthèses elles-mêmes.

Complétons cette liste en vue de l'édition hypertexte.

1. Colonne de gauche.
Occupons-nous d'abord de la colonne de gauche (une ligne pour chaque entrée). Certaines entrées devront être complétées si vous souhaitez y ajouter la casse, le genre ou le nombre. La fonction "voir aussi" n'existant pas, vous pouvez tenter d'y pallier en utilisant la barre verticale ("pipe") qu veut dire "ou". Sigil utilisera ces informations complémentaires sous forme d'expression rationelle. Voici quelques exemples.

Code:
noire?s?
(?i)collets?
caoutchouc|élastique
Note: Le point d'interrogation signale que la lettre qui le précède peut être ou non présente. (?i)collet veut dire que l'on peut trouver collet ou Collet.

2. Colonne de droite.
Certaines entrées devront être reproduites sur la colonne de droite si vous souhaitez définir un niveau hiérarchique ou apporter une précision. On mentionne celui-ci avec une barre oblique. Important: l'espace entre les deux colonnes doit être strictement d'une seule tabulation. Voici quelques exemples.

Code:
costumes?	costume
costume de ville	costume/costume de ville
costume-cravate	costume/costume-cravate
costume croisé	costume/costume croisé
costume droit	costume/costume droit
costume d’été	costume/costume d’été
costume trois-pièces	costume/costume trois-pièces

cour	cour/vêtements de cour, tenue de cour
Une fois la liste prête, il faut l'importer dans l'éditeur d'index de Sigil puis créer l'index. Celui-ci sera placé dans un fichier index.xhtml et accompagné d'une feuille de style spécifique. Vérifiez que la version de son Doctype corresponde bien à celle de votre EPUB. Au sein des fichiers texte, les marques d'indexation avec leur id sont rattachées non pas au mot lui-même mais à la balise d'appartenance la plus proche, soit une simple balise de type i ou b, soit un span, ou le plus souvent un paragraphe, etc. Les numéros d'identification sont incrémentés au fil du texte.

Une fois créé, l'index pourra être personnalisé (pour reclasser certaines entrées, modifier le style, etc.).

III. - A propos de la taille de l'index

Après création de l'index, le rapport produit par Sigil ou par l'éditeur de Calibre et permet de comparer la taille totale des fichiers texte non compressés (473k) avec la taille énorme du fichier index.xhtml (364k), soit les 3/4 du total précédent. Après compression, la taille de l'index va diminuer drastiquement.

A titre d'exemple, sans aucune donnée d'indexation, la taille de de l'EPUB non compressé est de 2608 k, celle de l'EPUB compressé est de 2092 k.
Une fois l'indexation réalisée, la taille de l'EPUB non compressé passe à 2978 k (soit + 370 k), celle de l'EPUB compressé passe à 2129 k (soit + 37 k).

Ainsi l'on voit que les données indexées sont spectaculairement sensibles à la compression. C'est une bonne chose, puisque nous utilisons les EPUB sous forme compressée et que seul ce dernier chiffre importe en pratique.

Autres informations quantitatives:
- La taille des 1657 balises d'indexation inscrits dans les fichiers texte ne dépasse pas 7k.
- Le chiffre de 370k de données non compressées cité plus haut vient du fichier index.xhtml proprement dit (364k) et des balises d'indexation inscrites dans les fichiers texte (7k).
- Les données qui restent en mémoire de la fenêtre d'édition (7k) appartiennent à Sigil.

Last edited by roger64; 01-03-2016 at 08:31 PM.
roger64 is offline   Reply With Quote