Groff

De Lea Linux
Aller à la navigation Aller à la recherche

Hum...! Hem...!

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)

Que peut-on faire avec groff ?

La commande groff permet à partir d'une même source de :

  • générer des documents mis en page : livre, lettre, documentation, rapport...etc.
  • créer des images de ces documents en format : postscript, man (Latin 1 formatés), html, dvi, Textes (Latin1 formatés)...

Quelles sont ses origines ?

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'environnement ont prévu des équivalences afin de toujours pourvoir générer des documents propores. Même MINIX célèbre petit OS didactique développé par Andrew Tenenbaum (MINIX mais il fait le maximum...) dispose de cette commande !

Les forces et faiblesses de groff

Forces :

  • Très rapide à assimiler comparé a son 'grand frêre' LATEX.
  • Grande robustesse et génération toujours fidèle aux attentes de l'utilisateur.
  • Très léger, il permet un traitement rapide des informations même sur des petites configurations ne *disposant pas d'une interface X-Windows.
  • Personnalisable

Faiblesses :(il en faut bien pour rester objectif)

  • Son langage macro est un peu rébarbatif (mais après un petit effort, il devient vite familier).
  • Un peut plus rigide que LATEX losque l'on souhaite personnaliser un document.
  • Peu de documentations sont disponibles étant donné son grand age.

Un exemple ! un example ! un exemple...

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.

Comment procéder ?

[1.] Trouver l'emplacement des sources des fichiers de documentations du système.
[2.] Copier une commande dans votre répertoire de travail habituel.
[3.] Décompresser le fichier.
[4.] Ouvrir le fichier dans votre édteur de texte habituel.
[5.] Contempler...

En pratique

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.

Trouver les fichiers source man

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/. [mujma@localhost]#ls -l /usr/share/man total 300 drwxr-xr-x 4 root root 4096 aoû 17 20:12 bg drwxr-xr-x 2 root root 4096 aoû 17 20:26 cat1 drwxr-xr-x 2 root root 4096 aoû 17 20:26 cat5 drwxr-xr-x 5 root root 4096 aoû 17 20:12 cs ... drwxr-xr-x 11 root man 4096 aoû 17 20:16 fr ... drwxr-xr-x 2 root root 40960 nov 16 22:51 man1 drwxr-xr-x 2 root root 4096 jan 5 2004 man2 drwxr-xr-x 2 root root 114688 nov 8 08:47 man3 drwxr-xr-x 2 root root 4096 aoû 18 14:23 man4 drwxr-xr-x 2 root root 8192 nov 16 22:51 man5 drwxr-xr-x 2 root root 4096 aoû 17 20:20 man6 drwxr-xr-x 2 root root 4096 oct 20 18:20 man7 drwxr-xr-x 2 root root 12288 nov 2 15:07 man8 drwxr-xr-x 2 root root 4096 jan 5 2004 man9 drwxr-xr-x 2 root root 8192 aoû 17 20:29 mann drwxr-xr-x 5 root root 4096 aoû 17 20:12 nl ... drwxr-xr-x 4 root root 4096 aoû 17 20:12 sl drwxr-xr-x 3 root root 4096 aoû 17 20:10 uk

En listant le répertoire désiré on obtient donc la liste des commades :

[mujma@localhost]#ls -l /usr/share/man/fr/man1/ total 4036 -rw-r--r-- 1 root man 962 jan 31 1999 3ds2m.1.bz2 -rw-r--r-- 1 root man 967 jul 03 1999 3dsdump.1.bz2 -rw-r--r-- 1 root man 1641 jun 13 2001 9wm.1.bz2 ... -rw-r--r-- 1 root man 6531 aoû 10 2003 ls.1.bz2 <-------- On va copier ce fichier dans le répertoire $HOME ... -rw-r--r-- 1 root man 2251 apr 08 1989 zmore.1.bz2 -rw-r--r-- 1 root man 751 apr 08 1989 znew.1.bz2

Enfin on peut copier le fichier et le décompresser :

[mujma@localhost]#cp /usr/share/man/fr/man1/ls.1.bz2 $HOME [mujma@localhost]#bunzip2 ls.1.bz2

Enfin, si on ouvre ce fichier dans un éditeur de texte on obtient : Fichier:/mujma/Documents/images/capture9.png .\" Traduction 19/12/1996 par Christophe Blaess (ccb@club-internet.fr) .\" màj 04/01/1999 - LDP man-pages 1.22 .\" màj 03/01/2000 .\" màj 26/06/2000 - LDP man-pages 1.30 .\" màj 30/05/2001 - LDP man-pages 1.36 .\" màj 22/10/2002 - LDP man-pages 1.53 .\" MàJ 25/07/2003 LDP-1.56 .TH LS 1L "25 juillet 2003" LDP "Manuel de l'utilisateur Linux" .SH NOM ls, dir, vdir \- Afficher le contenu d'un répertoire. .SH SYNOPSIS .BI "ls [" options "] [" fichier... ] .br .BI "dir [" fichier... ] .br .BI "vdir [" fichier... ] .sp Options POSIX : .BI "[\-CFRacdilqrtu1] [\-\-]" .sp Options GNU (forme courte) : .B [\-1abcdfgiklmnopqrstuvwxABCDFGHLNQRSUX] .BI "[\-w " cols ]


 ... 


Cette page documente la version de .B ls du paquetage fileutils-4.0. D'autres versions peuvent diverger légèrement.

.SH TRADUCTION Christophe Blaess, 1996-2003.


Copyright

© 2005 Marc UJMA

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 4.0 :
https://creativecommons.org/licenses/by-sa/4.0/