Ét.Nadji.fr/

Du code, des mots, des livres.

Composer en sommaire avec LaTeX (avec plusieurs niveaux)

07/06/2019 à 20h

Sommaire

  1. Introduction et râlerie liminaire
  2. Composer en sommaire avec LaTeX

Introduction et râlerie liminaire 🔗

Je n’aime pas trop les logiciels de traitement de texte. Pour autant, je ne suis plus un fanatique des formats « légers »1. Une image6, qui revient souvent dans les diapos des « antis » traitement de texte, montre un fichier ODT (ou DOCX, c’est le même principe, mais chez le diable) ouvert comme une archive, avec sa masse de fichiers XML, et, perdue quelque part, la seule phrase du document.

Mise à jour (22 juin 2019)

J’ai retrouvé l’image du premier paragraphe. Ajouté un lien, ainsi que sa source en note. Déplacé le paragraphe de la mise à jour du 13 juin 2019. À noter qu’on retrouve la même image dans une conférence, contestable mais très intéressante, de Julie Blanc, « Paginer le flux ».

Le débat me paraît un peu superficiel, puisqu’au final, si le format du fichier est léger, c’est au prix d’une complexité des logiciels qui le traitent. Faire de l’advocacy pour Markdown, pour LATEX, pourquoi pas, mais la complexité n’est pas évacuée par ces derniers mais déplacée. Prenez des fichiers avec les extensions2 md, tex, pouvez-vous me dire si tel fichier compilera bien avec LATEX, XeLATEX, LuaTeX, LATEX plus KOMA Script ? Et quel logiciel convertira vos fichiers Markdown ? À partir du format Markdown originel, du CommonMark, du Markdown de Pandoc, du CriticMarkup ? Et encore, on propose régulièrement des combinaisons BibTeX et du Markdown de Pandoc (ici aussi par exemple), quand on n’inclut pas carrément, parce que Pandoc le permet, des équations au format LATEX dans du Markdown…

Mise à jour (13 juin 2019)

Les personnes derrière le compte LibreOfficeFR sur l’oiseau bleu privateur m’ont fait remarquer qu’on peut écrire / exporter un document en ODF XML plat. Dans ce cas, le fichier n’est plus une archive, mais un fichier XML (restant dans les normes d’OpenDocument, bien sûr). L’extension courante de ce format est fodt, et les fichiers sont plus volumineux, mais étant donné qu’il n’y a plus de compression, c’est logique.

Les formats « simples » sont très bien. Pour ce qui est de leur production de fichiers. Quand on passe à l’intégration dans une chaine éditoriale, ou quand on relit le travail de quelqu’un d’autre, c’est tout autre chose. D’accord, il faudrait peut-être optimiser un peu le format ODT pour qu’il soit moins verbeux, mais il reste que lorsqu’on veut définir, employer un nouveau style, on n’a pas à fouiller le web3, pas comme avec LATEX, que j’aime bien, mais qui peut être une plaie quand on veut faire quelque chose d’un peu différent, et qu’il nous manque le temps ou la compétence (voire les deux) de faire les choses comme il l’entend (définir un nouvel environnement, une nouvelle classe, et cætera).

«  Franchement, la documentation des paquets LATEX est frustrante. Autant que d’essayer de lire une page au format Univers en corps 8.  »

Tout ça pour introduire un billet… LATEX fait très simplement des compositions en drapeau (gauche, droite), gère bien les alinéas. Par contre, faire de la composition en sommaire, c’est un peu plus complexe.

Remarque:
LATEX peut probablement faire de la composition en carré et en pavé. À voir.

Composer en sommaire avec LATEX 🔗

Représentation de plusieurs paragraphes (de faux-texte).
Une figure faite… en trois minutes avec LibreOffice. Les paragraphes sont numérotés de haut en bas. 1 : texte normal ; 2 : composé en sommaire de premier niveau ; 3 & 4 : composés en sommaire de second niveau ; 5 : texte normal.

Un peu de traduction d’abord : une « composition en sommaire » est, en anglais, un paragraphe avec des « hanging indents ». Vu que LATEX et dérivés ont été pensés pour des anglophones, il fallait le savoir4 pour trouver où et quoi chercher. Parce que oui, très bien, les paquets, on les trouve sur CTAN, mais si on ne sait pas quoi chercher, on est pas plus avancé…

Ensuite, comme l’indique cette réponse sur TeX / LaTeX Stack Exchange, il faut employer le paquet hanging et son environnement hangparas.

% Je ne montre que la partie document du fichier.
% Évidemment, il faut importer le paquet avant.
\begin{hangparas}{2em}{1}
Lorem ipsum dolor sit amet, vix sumo appetere sadipscing cu, ea nam inani 
eirmod antiopam, eu paulo scripta nam. Ullum graece causae ei eum, esse oblique 
concludaturque eam at. Laoreet partiendo comprehensam sea ea, duo novum eleifend 
at. Ad populo cotidieque efficiantur per, tantas gloriatur sit ea. Cu usu 
consulatu gloriatur. Nibh omittam quaestio sed te.
\end{hangparas}

Quelques remarques.

Dans le cas où vous faites des choses simples, tout se passera bien. Mais pour avoir un deuxième niveau de composition en sommaire, le code sera moins propre. En effet, l’imbrication d’un hangparas dans un autre ne fait rien5.

Remarque:
L’environnement courant description pourrait rendre quelque chose d’assez proche (mais pas suffisamment).

Pour simuler l’imbrication de paragraphes en sommaire, il faut commencer par écrire le paragraphe « principal », puis ajouter un autre hangparas à la suite, avec les mêmes paramètres, à la différence près que l’on applique via \hspace une indentation inférieure à la valeur de <indent>.

% Paragraphe en drapeau au niveau principal
\begin{hangparas}{2em}{1}
Lorem ipsum dolor sit amet, vix sumo appetere sadipscing cu, ea nam inani 
eirmod antiopam, eu paulo scripta nam. Ullum graece causae ei eum, esse oblique 
concludaturque eam at.
\end{hangparas}

% Paragraphes composés en drapeau, prétendument imbriqués
\begin{hangparas}{2em}{1}
\hspace*{1em}Laoreet partiendo comprehensam sea ea, duo novum eleifend at. Ad populo 
cotidieque efficiantur per, tantas gloriatur sit ea. Cu usu consulatu gloriatur. 
Nibh omittam quaestio sed te.

\hspace*{1em}Lorem ipsum dolor sit amet, vix sumo appetere sadipscing cu, ea nam inani 
eirmod antiopam, eu paulo scripta nam. Ullum graece causae ei eum, esse oblique 
concludaturque eam at.
\end{hangparas}

% Un paragraphe en drapeau à nouveau au niveau principal
\begin{hangparas}{2em}{1}
Lorem ipsum dolor sit amet, vix sumo appetere sadipscing cu, ea nam inani 
eirmod antiopam, eu paulo scripta nam. Ullum graece causae ei eum, esse oblique 
concludaturque eam at.
\end{hangparas}

Notes

  1. Ce sont les fichiers du texte lui-même qui sont légers. Parce qu’employer une distribution LATEX, c’est d’abord inviter un pachyderme chez soi… juste pour composer (très bien) des documents.  
  2. Je sais bien, notamment pour être utilisateur de GNU/Linux, que l’extension d’un fichier n’est pas un indicateur fiable de ce qu’est un fichier. Mais ça reste un indicateur.  
  3. Les documentations qui partent du principe qu’on dispose d’une connexion à Internet, et qui ne fournissent pas de documents pour référence en hors-ligne sont de mauvaises documentations. Voilà.  
  4. C’est pas parce qu’on bosse dans l’édition qu’on connait les équivalents anglais de tous les termes techniques ; il y a juste trop de métiers différents.  
  5. Peut-être parce que, comme le dit la documentation de hanging, « [t]he hangparas environment changes the denition of \everypar and may have unexpected interactions with any enclosed commands or environments that also change \everypar. » En toute logique, si la définition \everypar est écrasée pour tout environnement modifiant \everypar, la définition de \everypar dans un hanging imbriqué doit l’être également…  
  6. Image tirée de « Multichannel Text Processing », Information Architects Inc., 2016. Traduit en français sous le titre « Traitement de texte multicanal », par FAUCHIÉ Antoine, FAMELART Valentin et al, quaternum.net, 2016.  

Commentaires

Pour commenter ce billet, envoyez un mail sur etnadji (at) eml.cc, ou créez-vous votre blog.