Formater un document avec groff et ms

groff est le version GNU de nroff, un outil de formatage de texte UNIX peut-être aussi vieux qu’UNIX lui même (enfin, pas tout à fait car il date de 1972, c’est à dire 3 ans après la toute première version d’UNIX).

À l’instar de LaTeX, groff utilise un langage de balises qui permettent de donner des instructions sur la façon dont doit être formaté le texte.

On peut compiler un fichier groff vers un fichier PDF avec la commande suivante:

preconv fichier.groff | groff  -ms -T pdf > fichier.pdf

Dans l’exemple ci-dessus, j’utilise le jeu de macros -ms qui est le plus adapté pour formater des documents génériques (livres, thèses, lettre …).

Ci-dessous, quelques balises qui permettent de formater un texte. En général, ces balises sont seules sur leur ligne et commencent par un point. Lorsque ces balises sont incluses dans les lignes, elles commencent par un \.

\s8UNIX\s10 works on \s8PC\s6 i\s8386

.pp
.ps 8
UNIX
.ps 10
works on
.ps 8
PC
.ps 6
i
.ps 8
386

À noter qu’à défaut de préciser l’unité, l’unité par défaut de .ll, .in et .po est l'ems, c’est à dire plus ou moins la longueur de la lettre ’m' selon la valeur actuelle de .ps.

Une excellente documentation des balises disponibles dans groff sont données dans le info de groff

M-x info

Depuis votre éditeur EMACS, puis rechercher groff.

Pour faire un tableau, la lecture du man groff_hdtbl sera d’une grande aide. Voici l’exemple d’un tableau:

.TBL cols=2 border=0 width='75% 25%' bgc= fgc=black fsz='1.4 1.2'
.TR .TD 3 sessions de mentorat .TD 120 Euro
.TR .TD 1 session de soutenance .TD 30 Euro
.TR
.TD TOTAL .TD 150 Euro
.ETB

Ne pas oublier de rajouter en début de fichier:

.mso hdtbl.tmac