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
- .ps 10 Définit la taille de la fonte (10 par défaut).
- \s10 Change la taille de la fonte à l’intérieur d’une ligne.
- .vs 12p L’espace vertical entre deux lignes en points (du bas d’une ligne au bas de la ligne suivante). Cette valeur devrait être 20% plus grande que .ps lorsqu’on l’exprime en point. Par défaut, .ps est à 10 et .vs est à 12.
- .ft I Change la fonte en italique.
- .ft B Change la fonte en gras.
- .ft R Change la fonte en Roman (normal)
- \fI \fB \fR Change la fonte inline.
- .ul Met le prochaine ligne en italique.
- .po 25 Marge à gauche.
- .BX text Entoure “text” dans un cadre.
- .PP Insère un nouveau paragraphe (laisse plus d’espace vertical et donne une marge à gauche à la première ligne).
- .sp 2 Insère un blanc égal à deux fois la valeur de .vs
- .ll 4i Change la longueur des lignes à 4 inch (la valeur par défaut est 6.6 inch)
- .in +0.3i Déplace la marge à gauche de 0.3 inch (on peut utiliser .in -0.3i pour revenir à la valeur précédente).
- .ti à la même fonction que .in, mais ne s’applique qu’à la ligne suivante.
À 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