Le blog de Lizzie Crowdagger

Ici, je discute écriture et auto-édition, fanzines et livres numériques, fantasy et fantastique, féminisme et luttes LGBT ; et puis de mes livres aussi quand même pas mal
Home

Aller au menu | Aller à la recherche

Écrire des textes avec Pandoc, #1 : une introduction

, 06:21 - Lien permanent

Aujourd'hui, enfin, cette nuit (je suis un animal nocturne) j'ai découvert (enfin, façon de parler, j'étais déjà tombé dessus avant, mais passons) Pandoc, et je me suis dit que ça pouvait quand même être super pratique, alors j'avais envie de vous le faire partager.

Qu'est-ce que c'est ? Basiquement, c'est un logiciel en ligne de commande qui permet de convertir un texte formatté de façon très légère (Markdown, qui se rapproche qu'on peut trouver sur pas mal de Wikis ou de blogs), et qui est pratiquement, en fait, du texte brut, en plein de formats différents : PDF, LaTeX, HTML, ePub, ...

Ce que je porte actuellement : du latex

Avant de parler de montrer un petit exemple de Pandoc, quelques mots sur ma façon de mettre en page actuellement. J'utilise LaTeX, qui est grosso-modo un langage de balises (un peu comme le HTML ou le XML, sur le principe) qui permet de mettre en page des textes d'une manière que je trouve assez propre. C'est un langage qui peut paraître un peu compliqué (et qui l'est sans doute, soyons honnête) et pas très user-friendly, mais qui permet de faire des choses assez propres pour l'impression. C'est notamment pas mal utilisé par les mathématiciens, parce que ça gère bien les formules mathématiques, ou encore les références bibliographiques. LaTeX est en effet quelque chose qu'on retrouve plus dans la mise en page d'articles scientifiques que de romans ou de nouvelles, même si je trouve que ça marche plutôt pas mal (les textes qui sont sur ce site sont tous mis en pages avec LaTeX).

Ah, au fait : on prononce «latec», et pas «latex», ce serait pas assez obscur sinon.

(Si cet article vous donne envie de vous mettre à LaTeX, mais que le trifouillage de code vous fait peur, signalons qu'il existe aussi LyX, qui est un traitement de texte au-dessus de LaTeX et qui vous évitera, a priori, d'avoir à modifier les fichiers sources à la main.)

Concrètement, le code LaTeX derrière une petite nouvelle (en l'occurence Bain de soleil), ça donne ça :


> \documentclass{global/nouvelle}
> \usepackage[T1]{url}
> \usepackage{eurosym}
> \urlstyle{tt}
> \usepackage{skull}
> \usepackage[utf8]{inputenc}
> 
> % En-tetes
> \pagestyle{fancyplain} 
> 
> \author{Lizzie Crowdagger}
> \title{Bain de soleil}
> 
> % Début du document LaTeX
> \begin{document}
> 
> % On affiche un joli titre
> \maketitle
> 
> Il est aux alentours de six heures du soir, et Morgue prend un
> bain de soleil, allongée dans l'herbe. 
> 
> Elle est blonde, plutôt grande, avec des cheveux courts. Elle porte un
> pantalon noir un peu gothique, avec une chaîne et un patch qui
> proclame «\emph{Mess with the best, die like the rest}». Aux pieds, elle
> a des \emph{rangers} qu'elle n'a pas eu le courage de retirer,
> contrairement à son tee-shirt et à son soutien-gorge. Elle porte des
> lunettes de soleil et elle a un
> baladeur MP3 branchée sur les oreilles ; elle écoute du Wagner. À côté
> d'elle traîne une bouteille de vodka à moitié vide qui semble indiquer
> qu'elle est là  depuis un moment.
> 
> (...)
> 
> \end{document}

Et ça permet d'obtenir ce fichier PDF.

(Si ça vous intéresse, vous pouvez aussi regarder les sources LaTeX pour le roman Pas tout à fait des hommes, qui sont un peu plus compliquées.)

Ce qui est intéressant de noter, avec LaTeX, c'est que, quand on écrit de la fiction, on utilise au final assez peu de balises compliquées pour le texte même : dans cet exemple, il y a juste \emph{} qui indique de mettre le texte en italique. Il y a surtout besoin de balises pour indiquer un peu la mise en page et pour créer le document, mais du coup pour une nouvelle aussi courte, c'est un peu frustrant de devoir recopier toutes ces lignes de code (bon, en vrai ça demande juste à copier un fichier vierge dans le bon répertoire, certes).

Plus gênant à mon goût, si LaTeX permet de faire des fichiers PDF jolis, et peut aussi exporter en HTML (cf l'exemple pour toujours la même nouvelle), c'est un peu compliqué pour passer à d'autres formats, et notamment un truc que j'aimerais bien faire c'est avoir un fichier de base qui me permet de générer plein de formats différents, et qui puissent être adaptés aussi bien sur liseuse que pour l'impression.

Et ça tombe bien, parce que c'est l'intérêt de ce fameux Pandoc.

Pandoc coquée

Voyons maintenant un peu Pandoc. Il s'agit d'un logiciel (libre évidemment, puisque j'en fais la pub :) ) qui se base sur la syntaxe «Markdown» (un peu étendue), qui a pout but d'être le plus proche possible du texte brut et d'être facilement lisible. En gros, en ce qui nous concerne (c'est-à-dire l'écriture de fiction), on aura surtout :


= Titre de premier niveau =

== Titre de second niveau ==

Et aussi possibilités pour mettre *en italiques*...
ou __en souligné__ ...
ou encore pour  mettre [des liens](http://lien.org) 
ou ![des images](image.jpg)

Il y a évidemment beaucoup d'autres choses, mais je pense que c'est celles qui peuvent le plus concerner les auteurs de nouvelles ou de romans . Par ailleurs, leus deux premières lignes commenceront en général par :

%Titre
%Auteur

Donc, reprenons l'exemple de la nouvelle ci-dessus, et mettons-là au format Markdown. On obtient le résultat suivant :

% Bain de soleil
% Lizzie Crowdagger

Il est aux alentours de six heures du soir, et Morgue prend un
bain de soleil, allongée dans l'herbe. 

Elle est blonde, plutôt grande, avec des cheveux courts. Elle porte un
pantalon noir un peu gothique, avec une chaîne et un patch qui
proclame «*Mess with the best, die like the rest*». Aux pieds, elle
a des *rangers* qu'elle n'a pas eu le courage de retirer,
contrairement à son tee-shirt et à son soutien-gorge. Elle porte des
lunettes de soleil et elle a un
baladeur MP3 branchée sur les oreilles ; elle écoute du Wagner. À côté
d'elle traîne une bouteille de vodka à moitié vide qui semble indiquer
qu'elle est là  depuis un moment.

(...)

Déjà, on peut remarquer que c'est un peu plus court (il n'y a pas tout l'en-tête) et plus lisible. Maintenant, une fois que j'ai mon fichier (soleil.md) avec cette nouvelle, qu'est-ce que je peux en faire ?

Hé bien, le convertir en PDF, par exemple, avec la ligne de commande suivante :

$ pandoc soleil.md -o soleil.pdf

En faisant cela, j'obtiens le fichier suivant. Si vous le comparez au premier fichier PDF, vous pouvez voir qu'il y a un certain air de ressemblance, ce qui s'explique par le fait que Pandoc utilise lui-même LaTeX pour générer le PDF. Là, j'ai la version générée «par défaut», mais il est assez facile de modifier le fichier template pour avoir une mise en page un peu plus chiadée qui sera appliquée pour toutes les nouvelles.

Là où je trouve que c'est vraiment Noël, c'est qu'à partir de ce fichier source (format «markdown»), il n'est pas seulement possible de faire du PDF, mais d'exporter au format HTML, OpenOffice, RTF, ePub, texte brut, etc. Là encore, les exemples que je montre ici sont fait avec la mise en page par défaut, et il faudrait peut-être prendre le temps de modifier les templates pour avoir une mise en page plus correcte, mais après c'est fait une fois pour toutes.

 Conclusion (provisoire)

Bref, pour l'instant je suis encore tout euphorique d'avoir découvert cet outil, et je pense que ça va vraiment me simplifier la vie pour gérer les différents formats pour un même texte.

Ce qui ne veut pas dire qu'il n'y a pas de limites : l'exemple que je prends ici est une toute petite nouvelle, je n'ai pas encore testé cela sur un roman. S'il n'y a pas de raison que cela pose de problèmes pour un texte plus long, il est évident que, par la simplicité du langage Markdown, les possibilités de jouer finement sur la mise en page sont sans doute plus limitées, et ce n'est peut-être pas la solution adaptée à tous les textes. À voir.

Par ailleurs, je me rends compte que l'exemple ci-dessus n'inclut pas de dialogue «à la française». J'ai tout de même eu l'occasion de tester, et ceux-ci ne posent pas de problème particulier... à condition d'insérer les symboles adéquats, c'est à dire les guillemets «français» et le bon tiret – cadratin – ; ce qui n'est pas forcément évident sur tous les claviers. Ce n'est pas un drame en soi et cela peut être contourné facilement (par exemple avec un petit script, ou juste un chercher/remplacer dans l'éditeur de texte, pour transformer par exemple << en « et - en —$$Mise à jour : je viens de voir qu'une option (smart) permet effectivement de transformer les --- en tirets cadratins. Merveilleux, non ?$$), et de toute façon, j'ai un clavier Bépo où ces touches sont facilement accessibles, donc ça ne me gêne pas personnellement. Eh ouais, on est élitiste ou on ne l'est pas.

Toujours est-il que Pandoc m'a l'air d'être un outil plutôt chouette, et j'essaierai de vous en reparler plus tard, quand je me serai attaquée à des textes un peu plus longs et avec un peu plus de mise en page.

Billets connexes

1642 lectures

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet