Pendant longtemps, j’ai utilisé Pages sur macOS pour écrire et publier mes élucubrations. C’est propre, simple d’emploi et en masquant toutes les barres d’outils en mode plein écran, on arrive à un mode « machine à écrire » assez correct. (C’est-à-dire : juste le texte à l’écran, rien que le texte.) Puis un jour, je suis passé à LibreOffice. Ça fonctionne aussi bien et ça présente l’avantage de produire des fichiers que je peux éditer sur toutes les plateformes : sur le Mac chez moi, sur mon micro PC sous Linux en vacances, ou bien au boulot sous Windows.
LibreOffice présente aussi l’avantage d'intégrer Grammalecte, un correcteur orthographique et grammatical extrêmement performant. Comme tous les correcteurs, il n’est pas parfait, il ne sait pas tout, il est un peu perdu dans les accords quand la phrase devient compliquée, mais il trouve quand même beaucoup plus de fautes que les correcteurs habituels. Accessoirement, il détecte aussi les problèmes de typographie : espaces insécables manquantes, apostrophes, guillemets ou tirets du mauvais type, capitales manquantes ou en trop, etc.
Aussi bien Pages que LibreOffice sont des traitements de texte classiques. Ils fonctionnent bien pour produire des textes courts, mais on en atteint vite les limites quand on travaille sur des bouquins de 200 pages et plus : difficulté à naviguer dans des gros documents monolithiques, pas d’organisation hiérarchique du texte, pas d’outils de prise de notes ou de brouillon efficace, etc. Il y a aussi le problème de l’export final. Les PDF et les EPUB générés par ces traitements de texte sont rarement optimaux.
Depuis quelques années, j’utilise Scrivener. C’est un logiciel conçu par des écrivains, pour les écrivains. Il y a tout ce qu’il faut pour écrire efficacement, et même plus : un mode machine à écrire parfait, la possibilité d’organiser le document en autant de niveaux et sous-niveaux hiérarchiques que voulu, des outils pour compter les mots et mesurer l’état d’avancement, la possibilité de prendre des notes, de créer des fiches « personnage » ou « lieu » pour organiser sa pensée, et j’en passe. C’est une usine à gaz monstrueuse, ça peut rebuter au début, mais il suffit juste de ne pas utiliser les fonctionnalités dont on n’a pas besoin ! (Ou qu’on ne comprend pas…)
Par contre, l’export EPUB et PDF est encore pire que pour les traitements de texte. Et c’est normal : Scrivener est conçu pour écrire, pas pour faire de la mise en page avancée, et c’est d’ailleurs ce qui le rend efficace. On n’a presque jamais à se soucier de la présentation, on tape au kilomètre et à la fin utilise un des modèles prédéfinis pour l’export : scénario, pièce de théâtre, roman, roman en plusieurs parties, etc.
Au final, mon process est le suivant :
- J’écris dans Scrivener. Il n’y a pas mieux. Vraiment. Essayez-le.
- J’utilise l’export EPUB de Scrivener pour envoyer des versions aux bêta-lecteurs. C’est moche, mais ça n’a aucune importance, c’est juste pour de la relecture.
- Quand le document est fini, que je n’ai plus besoin d’y faire de gros changements, je le copie/colle dans LibreOffice. C’est là que je peux faire la correction orthographique finale avec Grammalecte, ainsi que la mise en page.
Enfin, je génère les documents finaux. Pour la version envoyée à l’imprimeur, j’utilise simplement la fonction export en PDF de LibreOffice. Il faut juste penser à cocher l’option « Archive (PDF/A ISO 19005) », sinon le fichier produit risque de ne pas être lisible sur une machine qui n’a pas les bonnes polices de caractères installées. Pour la version EPUB, c’est plus complexe.
- J’exporte d’abord le document LibreOffice au format « HTML Document (Writer) ».
- J’ai ensuite un script Python qui reformatte ce HTML pour nettoyer les balises inutiles (LibreOffice génère beaucoup de bruit…) et au passage, vérifier qu’il n’y a pas de choses bizarres comme des double espaces, des caractères non imprimables, des balises non supportées par le format EPUB, etc. Éventuellement, je peux examiner à la main que le fichier nettoyé est correct.
- Je passe ensuite un second script Python qui découpe ce HTML en autant de fichiers qu’il y a de chapitres, en se basant sur la présence des balises <h1>. Le script supprime également les pages de titre, la table des matières à la fin du document, etc. C’est évidemment assez spécifique, je dois bricoler et adapter ce script à chaque projet.
- Enfin, j’ai une application en C++ qui assemble les fichiers HTML obtenus, ainsi que les feuilles de style CSS, l’image de couverture et les pages annexes (page de titre, page de copyright, etc.) en un EPUB propre et optimisé, avec une table de matière correcte. Un jour, quand j’aurai suffisamment fiabilisé ce petit logiciel, je le mettrai sur GitHub… Un jour…