Ceci est une ancienne révision du document !



groff

Cette page de doc est en cours de rédaction. Elle n'est pas encore tout à fait utilisable dans l'état actuel

Comme l'indique son Logo, Groff est le logiciel de typographie de GNU, et permet donc de mettre en forme des textes. C'est un logiciel WYSIWYM, la mise en forme du texte s'effectue à l'aide de balises (ou requêtes), celles-ci sont exécutées ensuite par la commande groff et le texte mis en forme apparaît alors dans un fichier de sortie. Groff s'utilise donc de manière analogue à latex.

Le texte de sortie peut avoir différents formats: .ps, .pdf, .html, .dvi

Groff tourne essentiellement sur les systèmes UNIX, mais on trouve sur le site officiel une version installable sur Windows.

Groff, qu'on appelle aussi GNU-Troff, a une longue histoire que vous pouvez lire sur

Pour l'installer:

Même si vous ne l'avez pas encore installé, groff est déjà présent sur votre machine de manière rudimentaire. Vous pouvez vous convaincre de cette présence en copiant-collant la commande suivante dans votre terminal.

echo un petit texte de votre choix | groff > petitexte.ps

La commande echo édite le texte qui la suit.
Le "pipe" | redirige le texte sur groff.
Groff fait de votre texte un fichier au format .ps (qui est l'ancêtre de .pdf). Vous pourrez alors récupérer petitexte.ps dans votre répertoire personnel.

Pourquoi cette présence discrète de groff sur votre machine? Tous ceux /celles qui utilisent les commandes Unix connaissent bien les pages man. Ces pages sont justement rédigées entre autre à l'aide de groff, et c'est donc lui qui nous permet de les lire.

Cette installation rudimentaire ne permet pas encore de vraiment mettre des textes en forme. Si vous voulez profiter de toutes ses fonctionnalités,

* Installez le paquet groff.

Une fois installé, groff n'apparaît dans aucun menu déroulant et c'est normal. C'est en l'utilisant en ligne de commande avec des options que vous pourrez vérifier que l'installation a eu lieu.

Très léger (le fichier exécutable ne fait que 75 Ko !) et très fiable, groff demande toutefois à son utilisateur une bonne dose de "prise en main". Le but de cette page de doc est de faciliter celle-ci et de permettre à un Ubuntero moyen, formé à la ligne de commande, de faire ses premiers vols d'essai dans ce logi-ciel qu'est groff :-) .

Ce chapitre vous montre les différentes manières d'utiliser groff: dans un terminal, dans un éditeur de texte en console ou dans un éditeur de texte sur interface graphique. Choisissez celle qui vous convient.

dans un terminal

Revenons à notre premier exemple et modifions-le un peu:

echo un petit fromage crémeux | groff > fgcrem.ps

Si vous avez utilisé des caractères accentués ou spéciaux tels que le "ç", vous aller retrouver dans votre fichier de sortie fgcrem.ps des signes kabalistiques! Pas de soucis: il suffit d'ajouter l'option -k.

echo un petit fromage crémeux | groff -k > fgcrem.ps

L'option -k fait appel à preconv, un logiciel qui préconvertit les caractères spéciaux en quelque chose que groff peut comprendre. (Pour en savoir plus: man preconv).

À l'aide de la commande printf nous pouvons à présent formater un petit texte de plusieurs lignes. Ici un élément fondamental: groff ne tient pas compte des changements de ligne, \n permet de spécifier que vous voulez un changement de ligne à tel endroit. Supprimer les \n, et groff écrira votre texte sur une ligne.

printf ' \n \n \n 
la jument de Michao\n 
et son petit poulain\n 
a passé dans le pré\n 
et mangé tout le foin' | groff -k > Michao.ps

Au lieu de l'envoyer sur un fichier .ps nous pouvons aussi en avoir un aperçu avec l'option -X (gxditview). Pour faire ceci, remplacer la deuxième partie de la commande par

| groff -k -X

En cliquant gauche sur l'aperçu, nous pouvons diriger le fichier sur l'imprimante (choisir "print" puis "grops | lpr")

Nous pouvons aussi le diriger directement sur l'imprimante, en remplaçant la 2e partie de la commande par

 | groff -k | lp 

Le désavantage du terminal est qu'on ne peut pas revenir à une ligne précédente. Il ne permet donc pas de travailler vraiment un texte, d' y apporter des modifications après coup. C'est pourquoi, pour formater des textes plus longs nous avons besoin d'un éditeur de texte.

En console: nano ou vim

Ce que nous venons de faire dans le terminal vous à peut-être mis la puce à l'oreille: avec groff nous sommes à même de formater des documents sans interface graphique 8-) 8-).

Comment? Ça ne vous tente pas de savoir faire du traitement de texte en console :-O ? Dans ce cas vous pouvez passer directement au chapitre 3.3.

Mais si c'est oui, prenons alors un éditeur de texte, ça nous permettra de travailler sur des textes plus longs. Nano et vim sont deux éditeurs de texte qui fonctionnent en console, et donc sans interface graphique.

nano

En principe, nano est déjà installé sur Ubuntu. Un apprentissage rapide est possible en lisant la doc nano, ou en regardant la 2e moitié de cette vidéo: http://www.tutoriels-video.fr/editer-un-fichier-en-mode-administrateur-sur-ubuntu

Si vous êtes prêt(e), vous pouvez imprimer ce sous-chapitre, et rendez-vous en console par Ctrl+Alt+F1.

Après avoir renseigné les informations de login, lancer nano avec la commande

nano

Se déplacer dans nano à l'aide des flèches.

Vous pouvez entrer par exemple les 4 petites lignes dans l'encadré ci-dessous:
(Commencer par 3-4 lignes vides, pour que le texte soit bien cadré.)

Remarque: dans un éditeur de texte, la requête \n n'est plus de mise. Si vous voulez rédiger quelques vers, commencez chaque ligne par un signe "espace", groff mettra alors le texte sur 4 lignes.

 


 l'hiver viendra et quand
 l'hiver viendra
 la jument de Michao
 elle s'en repentira

Ressortez de nano avec ctrl+x .

Enregistrez le fichier comme demandé.

Nommez-le comme demandé. Par ex. "hiver".

Vous retrouvez le prompt où vous pouvez lancer la commande

groff -k hiver | lp 

L'aperçu Gxditview (par l'option -X) ne fonctionne évidemment pas en console. Le seul moyen de voir votre fichier de sortie est donc de l'imprimer.

Retour sur la session graphique par Ctrl+Alt+F7

vim

Vim n'est pas installé par défaut sur Ubuntu. Pour l'installer et apprendre à l'utiliser, lisez la doc vim, ou le chapitre 16 de http://formation-debian.via.ecp.fr/

Si vous êtes prêt(e). Imprimez ce sous-chapitre et rendez-vous en console par Ctrl+Alt +F1.

Après avoir renseigné les informations de login, lancez vim avec la commande

vim

Par la touche "Insert" de votre clavier, vous accédez au mode INSERTION (confirmation en bas à gauche de l'écran). Vous pouvez alors entrer votre texte. Si vous cherchez un exemple; reprenez les 4 lignes proposées pour nano ci-dessus.

Une fois le texte entré, retournez en mode commande par "Échap" (ou "Esc").

Enregistrez votre texte et nommez le avec :w nom_de_fichier. Par ex. "hiver".

Quittez vim avec :q. Vous retrouvez le prompt où vous pouvez entrer la commande groff:

groff -k hiver | lp 

L'aperçu Gxditview (par l'option -X) ne fonctionne pas en console. Le seul moyen de voir votre fichier de sortie est donc de l'imprimer.

Retour sur la session graphique par Ctrl+Alt+F7

Sur interface graphique

C'est certainement la manière classique d'utiliser groff. Pour garder une certaine clarté, répartir le travail sur 3 bureaux virtuels. Sur le premier bureau, votre éditeur de texte ( gedit, mousepad, leafpad…) ou vous pouvez taper votre texte d'entrée. N'oubliez pas de l'enregistrer et de le nommer. Le plus pratique est de placer votre fichier d'entrée dans votre répertoire utilisateur.

Sur un deuxième bureau virtuel, ouvrez un terminal où vous transformez votre fichier d'entrée avec la commande groff

groff votre_fichier > votre_fichier.ps

Sur le troisième bureau virtuel, allez dans votre répertoire personnel, vous y trouverez votre_fichier.ps, que vous pouvez lire avec le visionneur de documents.

Le tout en image. Ici, le fichier s'appelle "michao".

Si vous avez des corrections à apporter, retournez sur le premier bureau virtuel, apportez vos corrections, enregistrez. Sur le deuxième bureau, repassez la commande groff. Vos corrections passent sur le fichier de sortie sans qu'il soit nécessaire de fermer det de réouvrir celui-ci 8-). Si vous avez commis des erreurs, groff vous le signalera en indiquent le No de la ligne concernée. Il est donc utile d'activer la numérotaiton des lignes dans l'éditeur de texte que vous utilisez. En cas de pépin dans le terminal, Ctrl+c donne un nouveau prompt.

Par défaut, groff travaille dans le répertoire courant. Il est donc pratique de placer les fichiers sur lesquels vous travaillez dans votre dossier personnel, plus précisément à la racine de celui-ci et non dans un sous-répertoire.

Si vous voulez placer vos fichier destinés à groff ailleurs, par exemple dans le sous-répertoire "Documents", deux solutions se présentent:

1. Indiquer à groff le chemin complet du fichier, par ex.

groff /home/utilisateur/Documents/votre_fichier > /home/utilisateur/Documents/votre_fichier.ps

Ce qui fait quand même de longues commandes à taper :-\ .

2. Se placer dans le sous-répertoire voulu avec la commande cd

cd /home/utilisateur/Documents
groff votre_fichier > votre_fichier.ps

Ayant achevé votre travail, quitter le sous répertoire avec

cd

gedit

L'avantage de gedit est qu'il offre une console intégrée en dessous de la fenêtre d'édition. Cela vous permet de travailler sur deux bureaux virtuels seulement au lieu de trois.

Pour installer la console intégrée, voyez tout d'abord http://doc.ubuntu-fr.org/gedit#greffons
Puis ouvrez Gedit:
Edition > Préférences > Greffons, cochez "Terminal intégré"
Affichage, cochez "Panneau inférieur"

Gedit avec console intégrée:

Une fois la console installée, il est possible de copier-coller les commandes par clic droit sur celle-ci. Cela peut être pratique quand on effectue des corrections et que l'on répète une commande plusieurs fois d'affilée.

Il est possible que votre terminal intégré écrive blanc sur blanc, ce qui n'est pas très pratique. Il y a de quoi réparer ce bug ici: http://askubuntu.com/questions/67593/make-gedit-embedded-terminal-colours-the-same-as-the-default-terminal. Veillez à faire rigoureusement ce qui est décrit. Abstenez-vous si vous n'êtes pas tout à fait sûr(e) d'avoir compris.

emacs

Sur emacs, la situation ressemble à celle de gedit. Taper simplement le texte d'entrée sur un nouveau fichier, nommez-le et enregistrez. Ensuite par Tool > shell command, il est possible, sans rien installer, d'avoir une console intégrée sous la fenêtre de l'éditeur de texte. Là, vous pouvez taper votre commande groff et récupérer le fichier de sortie dans votre dossier personnel.

Par "Tool > shell comand on Region" il est même possible d'appliquer la commande groff à une sélection seulement. Ici, il n'est plus nécessaire de nommer la sélection:

groff  > sel.ps

et récupérez le fichier sel.ps dans votre dossier personnel.

Nous sommes prêts maintenant à formater des textes. Pour commencer, il sera très utile de connaître les requêtes générales, qui sont indépendantes du choix que vous ferez au chapitre suivant concernant votre" boîte à outils". Ces requêtes générales permettront déjà entre autre de

  • varier la taille ou la police de caractère
  • sauter une ou plusieurs lignes
  • justifier ou non les lignes
  • indenter le texte
  • changer l'espacement des lignes

Elles sont décrites au chapitre 4 de cet ouvrage:
UTP [en] Comme groff est apparenté à troff, vous pouvez sauter tous les passages relatifs à nroff, ditroff…

Ce chapitre présente les "outils" qui vont vous rendre véritablement capable de donner forme à un texte: faire des titres, des chapitres, des sous-chapitres, écrire en gras, en italique, faire des notes en bas de pages, etc..

Il y a 5 "boîtes à outils" à choix: -me, -ms, -mm, -mom ou -man. On les appelle aussi "paquets de macros". Les macros sont des macro-instructions indiquant au système comment formater un texte. Les paquets de macros sont un ensemble de macro-instructions cohérent, permettant de formater des textes.

Maîtriser une des 5 "boîte à outils" vous suffira amplement. Deux d'entre-elles sont bien documentées en français, d'autres malheureusement ne le sont pas encore…Choisissez celle qui vous correspond le mieux!

-me

Paquet classique. Bien documenté. … Conçu pour rédiger des documents universitaires.

Le document suivant vous permettra d'apprendre les principaux outils de -me: http://git.savannah.gnu.org/cgit/groff.git/tree/doc/meintro_fr.me/ [fr]
Pour obtenir ce document, copiez-en les lignes 1 à 2268. Collez-les dans votre éditeur de texte. Nommez-le meintro_fr.me. Appliquez la commande

groff -me -k -t meintro_fr.me > meintro_fr.ps

Récupérez meintro_fr.ps dans votre dossier personnel et imprimez-le si vous le désirez.

À partir de la version 1.22 de groff, meintro_fr.ps sera livré dès l'installation de groff. Vous le trouverez sur votre machine avec la fonction de recherche.

Pour aller plus loin avec -me, vous trouverez par la fonction de recherche sur votre machine meref.ps, qui est la reférence de -me [en].

-ms

lettres, livres, rapports techniques. Voyez UTP au chapitre 5 [en]

Vous trouverez un exemple dans la 2e moitié de cette page:
http://linuxfr.org/news/groff-sort-en-version-121 [fr]

Pour vous amuser, vous pouvez copier les lignes de code de cet article, les coller dans un éditeur de texte enregistrer et nommer, par exemple "exms". Faire passer le fichier par la commande

groff -ms -k -Rte exms > exms.ps

Comparez ensuite les requêtes utilisées avec les explications fournies dans le premier lien. Et vous en saisirez le sens:

  • .\" commente une ligne qui n'apparaîtra pas donc dans le fichier de sortie
  • .NH 1: titre numéroté de niveau 1
  • .NH 2: titre numéroté de niveau 2
  • etc…

La commande utilisée ici (`grog fichier.ms` > fichier.ps) ne fonctionne pas chez moi.

-mm

lettres, rapports techniques. Les requêtes -mm soint décrites au chapitre 6 de
UTP

-mom

Très général, largement configurable, conçu entre autres dans le but de rédiger un roman, -mom est un bon choix pour tout ceux qui trouvent les requêtes traditionnelles de groff trop austères.

On en trouve une courte présentation en français ici:
http://ftp.traduc.org/doc-vf/gazette-linux/html/2004/107/lg107-F.html

Pour apprendre à travailler avec -mom:
http://www.schaffter.ca/mom/mom-03.html (angl)

-man

varier la taille des caractères, insérer des fomules, des tableaux, des images les éléments ci-dessous s'accordent avec tous les paquets de macros

tableaux

formules de maths

images

formules chimiques

gremlin ?

ps2pdf

grog, groffer,

soelim?

Pour aller plus loin

Les utilisateurs de groff se retrouvent et s'entraident sur la liste de distribution
http://lists.gnu.org/mailman/listinfo/groff/

Pour trouver de l'aide, on peut aussi fouiller les archives de la liste de distrubution:
http://lists.gnu.org/archive/html/groff/

Apprendre à définir ses propres macros dans groff UTP chap. 6?

Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.

  • groff.1412804932.txt.gz
  • Dernière modification: Le 08/10/2014, 23:48
  • par 217.150.237.175