6. Combiner du texte et des éléments graphiques avec dvips(1)

Contenu de cette section

En règle générale, cette section s'applique à n'importe quel document TeX ou LaTeX combinant du texte et des éléments graphiques. teTeX, comme la plupart des autres distributions TeX est configuré pour émettre par défaut des requêtes pour les polices Computer Modern. Lors de l'impression de documents avec des polices de Type 1 redimensionnables ou des éléments graphiques, le rendu des polices et des éléments graphiques incombe à dvips(1). dvips(1) a la capacité d'utiliser aussi bien les polices matricielles Computer Modern que les polices redimensionnables Type 1, ou n'importe quelle combinaison des deux. En premier lieu, concentrons nous sur l'impression et la pré-visualisation de quelques éléments graphiques.

En général, vous voudrez suivre cette procédure à chaque fois qu'un document source LaTeX contient la directive suivante:

 
\includepackage{graphics}
dans le préambule du document. Cette directive indique à LaTeX qu'il doit inclure le texte du paquetage graphics.sty dans le document source. Il existe d'autres commandes pour effectuer des opérations graphiques, et les directives écrites en TeX pur ne vous renseignent pas forcément sur le fait qu'il faille ou non utiliser dvips(1). Cependant, la différence se verra dans la sortie, lorsqu'il manquera des figures et d'autres éléments graphiques au document imprimé.

Donc, pour l'instant, concentrons nous sur l'impression de documents faisant appel au paquetage graphics.sty. Vous pourriez avoir envie de jeter un oeil sur l'entrée TeX d'origine. Elle n'est pas incluse dans la distribution teTeX mais est disponible à :

~CTAN/macros/latex/packages/graphics/grfguide.tex.
Ce qui se trouve bien dans la distribution teTeX, c'est le fichier de sortie .dvi, et il à déjà été ``TeXé'' pour vous. Ceci n'est pas sans raison et est lié à la nécessité d'inclure des polices de Type 1 dans la sortie pour que le document s'imprime correctement. Si vous voulez LaTeXer grfguide.tex, lisez la prochaine section. Pour l'instant, toutefois, nous travaillerons sur l'obtention de sorties convenables à l'aide de dvips(1).

Le fichier grfguide.dvi est situé dans le répertoire:

texmf/doc/latex/graphics
La première étape dans la production de la sortie du grfguide.dvi est de le traduire en PostScript. Pour cela, c'est le programme dvips(1) qui est utilisé. Il fait exactement ce que son nom laisse entendre. De nombreuses options peuvent être transmises lors de l'appel de dvips(1), mais la forme la plus simple (ou presque) est:
dvips -f -r <grfguide.dvi >grfguide.ps
L'option -f indique à dvips(1) de se comporter comme un filtre, en lisant sur l'entrée standard et en écrivant sur la sortie standard. La sortie de dvips(1) peut être configurée pour être envoyée sur lpr(1) (ce qui est le cas chez moi et me permet d'imprimer directement à partir de dvips(1)). Des outils de post-traitement comme Ghostscript et des filtres d'impression comme APSFILTER ( cf. section APSFILTER ) peuvent être configurés selon vos besoins. Si vous devez transmettre la sortie à la main vers un outil de post-traitement, l'option -f est en général la première que vous devriez inclure dans la ligne de commande de dvips(1). Cette forme semble également plus simple à utiliser dans les shell-scripts.

Si vous avez la possibilité d'imprimer directement du PostScript sur votre imprimante avec lpr(1), il vous suffit de taper:

dvips -r grfguide.dvi
L'option -r indique à dvips(1) de sortir les pages en ordre inverse pour qu'elles forment une pile correcte à leur sortie de l'imprimante. Utilisez la ou non, en fonction de votre périphérique de sortie.

Selon que vous ayez ou non les polices que dvilj2(1) à générées pour le dernier document, dvips(1) et metafont procéderont ou non à la création des nouvelles polices nécessaires pour l'impression du grfguide.ps. En fin de compte, dvips(1) produira une liste des pages traduites en Postscript et prêtes à être interprétées par le périphérique de sortie dont vous disposez.

Si vous êtes chanceux (et riche), vous possedez déjà une imprimante postcript et pourrez imprimer grfguide.ps directement. Il vous est possible d'envoyer la sortie sur l'imprimante grâce à lpr(1). Si, pour une raison quelconque votre pilote d'imprimante ne fonctionne pas correctement avec des fichiers PostScript, vous pouvez, en un tournemain, simplement balancer le fichier sur l'imprimante avec :

cat grfguide.ps >/dev/lp0
ou tout autre port auquel votre imprimante est rattachée, bien que ceci ne soit pas recommandé pour un usage courant.

Si vous voulez devez invoquer Ghostscript à la main, voici la procédure standard pour cette opération. La première chose à faire est d'invoquer Ghostscript pour voir quels sont les arguments qu'il accepte, comme ceci:

gs -help | less
Vous verrez une liste des périphériques supportés et des tonnes d'autres commandes. Choisissez le périphérique de sortie qui ressemble le plus au votre. Sur Chanel3, comme je produis généralement du texte en noir et blanc, j'utilise le pilote cdjmono, qui sert à piloter une DeskJet couleur en mode monochrome (noir et blanc).

La ligne de commande que j'utiliserais serait:

gs -dNOPAUSE -sDEVICE=cdjmono -sOutputFile=/tmp/gs.out grfguide.ps -c quit
Ceci produira une sortie compatible HP dans le répertoire /tmp. Il est de bon ton d'utiliser un répertoire comme /tmp parce que gs(1) a des petites particularités concernant les droits d'accès et vous ne pouvez (et ne devez) pas toujours compter sur le fait d'être connecté sous root pour effectuer ces étapes. À présent, vous pouvez imprimer le fichier:
lpr /tmp/gs.out
De toute évidence, tout ceci peut se mettre dans un shell script. Sur mon système, je dispose de deux scripts simples, pv et pr qui se contentent de sortir le fichier PostScript soit sur l'écran soit sur l'imprimante. La pré-visualisation sur l'écran est possible sans X, mais est loin d'être idéale. Donc, cela vaut vraiment le coup de faire l'effort d'installer XFree86, ou TinyX (ce que j'ai fait) pour voir la sortie sur l'écran.

L'ordre des commandes dans la ligne de commandes pour gs(1) est important, car certaines options indiquent à Ghostscript de chercher des bouts de code PostScript dans sa bibliothèque.

Ce dont il faut se rappeler, c'est que le grfguide.dvi émet des requêtes aussi bien pour des polices matricielles Computer Modern que pour des polices redimensionnables de Type 1. Si vous arrivez à mélanger des polices redimensionnables et des polices matricielles dans un document, vous avez franchi une étape importante sur la voie pour devenir un TeXpert.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre