Sommaire |
Comme Monsieur Jourdain fait de la prose, la plupart des nouveaux utilisateurs et utilisatrices de notre OS libre préféré utilisent un puissant outil de formatage et génération de documents. Outil qui a tendance à se faire oublier, tellement il est discrêt malgré sa participation vitale au quotidien de tout utilisateur ou utilisatrice, et cela concerne même les plus chevronné(e)s. --Mujma 20 nov 2005 à 12:03 (CET)
La commande groff permet à partir d'une même source de :
Au départ, cet environnement de formatage de documents appelé troff a été développé en assembleur par Joe Ossanna vers 1973, pour piloter une imprimante graphique (Graphic System CAT Typesetter) branchée sur un bon vieux PDP-11. Il fut porté en C vers 1975, mais malheureusement, Joe Ossanna décède en 1977.
C'est le célèbre Brian Kernighan qui reprend le flambeau en 1979 et modifie troff afin de le rendre compatible avec d'autres formats de sortie. de 1979 à 1989, les sources de troff ont été modestement retouchées de manière à laisser la quasie totalité du code intacte en mémoire de Joe Ossanna.
groff est donc en quelque sorte une oeuvre postume trouvant ses d'origines à quelques pas de l'OS UNIX. Cet utilitaire extrèmement efficace est aujourd'hui porté sur les systèmes d'exploitations les plus novateurs tels que plan 9, inferno ou encore Amoeba. Dans ces différents portages, il se fait parfois appeler roff, nroff, troff, mais est toujours présent sur tout système de philosophie UNIX.
Il présente parfois de légères différences selon les spécificités des plateformes afin d'en tirer le meilleur parti, mais semble toujours compatible car les développeurs d'environnements ont prévu des équivalences afin de toujours pourvoir générer des documents propres et lisibles. Même MINIX célèbre petit OS didactique développé par Andrew Tenenbaum (MINIX mais il fait le maximum...) dispose de cette commande !
Forces :
Faiblesses :(il en faut bien pour rester objectif)
Comme mentionné précédemment, groff est présent sur votre ordinateur, et vous disposez déjà d'exemples sources ! Il vous suffit par exemple d'ouvrir un fichier de type man, pour cela, il vous suffit de choisir un petit exemple parmis les centaines de documentations man.
Bien que je sois persuadé que la plupart d'entre-vous ont directement "switché" en mode console et sont déjà en train de tripatouiller un fichier juste pour voir, je vous donne ici les grandes directions qui vous permettrons de trouver ces fichiers.
Vous pouvez les chercher à la main, en changeant de répertoire. Généralement, on les trouve dans les parages de /usr/man ou encore /usr/share/man ou encore /usr/local/man et bien d'autres endroits.
Choisissez un répertoire parmi man1,man2,...,mann situés dans le répertoire /.../man/ ou /.../man/fr/.
En listant le répertoire désiré on obtient donc la liste des commades :
Enfin on peut copier le fichier et le décompresser :
Enfin, si on ouvre ce fichier dans un éditeur de texte on obtient :
Avant de réellement comprendre la signification des codes étranges et barbares parfois situés en début de ligne, je vous invite maintenant à quitter votre éditeur pour rejoindre votre console.
Nous allons maintenant faire quelques manipulations pratique sur le fichier ls.1 que nous avons recopier tout dernièrement dans notre répertoire de travail habituel.
Tapez la commande suivante :
Si groff est correctement installé (et il y a 99,9% de chances qu'il le soit), vous devriez voir apparaître le fichier ls.1.ps dans le répertoire courant.
Vous pouvez le visualiser avec n'importe quel afficheur postscript.
Maintenant nous allons faire encore plus fort ! Pour cela tapez la commande :
De manière identique à la commande précédente, vous venez de générer un fichier html. Ouvrez-le vite... Oui, c'est bien la documentation au format html.
Vous pouvez procéder ainsi avec toutes les pages de manuel linux !
En fait, groff est un préprocesseur. Il permet de générer les formats suivants à partir d'une seule source :
dvi
html
lbp
lj4
ps
ascii
cp1047
latin1
utf8
Si l'on se réfère à l'invocation de groff dans l'exemple précédent, groff est invoqué avec 3 paramètres en ligne de commande.
de manière plus générale on peut invoquer groff de la manière suivante :
'<format_sortie>' correspond aux formats de sorties évoqués précédemment.
'<format_entrée>' correspond au format utilisé pour écrire le source.
Pour groff un format de sortie ou un format d'entrée n'est ni plus ni moins qu'un ensemble de macros correspondant à des environnements.
On trouve généralement les environnements (ou format d'entrée) suivants avec le paquet groff :
Les environnement macro dédiés au système de documentation :
man
mdoc
mandoc* cet environnement encapsule man et mdoc et permet de reconnaître le format du fichier d'origine automatiquement.
Pour des documents plus courrants :
me, mm et ms
Pour générer des pages Web :
www
Les sites suivants vous apporterons ressources pour groff:
http://www.gnu.org/software/groff/groff.html
http://www.kohala.com/start/troff/troff.html
@ Retour à la rubrique Logiciels
© 2005 Marc UJMA
| | Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 2.0 : http://creativecommons.org/licenses/by-sa/2.0/ |