tuteurs.ens.fr/logiciels/latex/graphisme.tml
2005-09-07 00:34:21 +00:00

210 lines
7.3 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Graphisme</title>
</head>
<body>
<h1>Graphisme</h1>
<h2>Panorama général</h2>
<p>
À l'origine, il n'y avait rien de prévu dans TeX pour faire des dessins,
ou même mettre du texte en couleur. Comme le besoin s'est fait sentir,
des gens ont mis au point des bidouilles pour contourner le
problème. Elles consistent à mettre des commentaires dans le dvi
produit. Par exemple, quand l'on inclue une image, il n'y a que le nom du
fichier contenant l'image qui est stocké dans le dvi. Le viewer que l'on
utilise ensuite est censé comprendre ces commentaires, et agir en
fonction.
</p>
<p>
Sous unix, le viewer de dvi standard, <kbd>xdvi</kbd> sait afficher les
images, mais ne sait pas mettre le texte en couleur. Souvent, il vaut
mieux convertir en postscript avant de visualiser, car <kbd>dvips</kbd>
(le programme permettant de convertir du dvi en postscript) comprend
beaucoup plus d'indications de graphismes que <kbd>xdvi</kbd>. Une
compilation ressemble donc à ceci :
</p>
<pre>
conscrit@drakkar ~ $ latex fichier.tex
conscrit@drakkar ~ $ dvips fichier.dvi -o fichier.ps
conscrit@drakkar ~ $ gv fichier.ps
</pre>
<p>
la dernière étape correspondant enfin à l'affichage.
</p>
<p>
Ceci est assez fastidieux. Il existe une variante de <kbd>latex</kbd>,
nommée <kbd>pdflatex</kbd>, qui produit directement du pdf (que l'on peut
afficher avec <kbd>xpdf</kbd> ou
<kbd>acroread</kbd>). <kbd>pdflatex</kbd> a été conçu dès l'origine pour
permettre de faire du graphisme. Il présente l'avantage de supporter plus
de formats d'image. En revanche, certains package LaTeX qui écrivent du
code postscript ne peuvent plus marcher avec, par exemple PSTricks. On
choisira donc entre l'un et l'autre au cas par cas, suivant ce que l'on
veut faire.
</p>
<h2>Inclure une image produite par programme externe</h2>
<h3>Comment faire</h3>
<p>
De nombreux packages sont disponibles. On peut par exemple utiliser le
package <kbd>graphicx</kbd>. Pour cela, il faut mettre un :
</p>
<pre>
\usepackage{graphicx}
</pre>
<p>
dans le préambule. Ensuite, dans le corps du document, pour inclure une
image stockée dans le fichier <kbd>machin</kbd>, on tape
<kbd>\includegraphics{machin}</kbd>. On peut spécifier la taille avec des
arguments optionels :
<kbd>\includegraphics[width=3cm,height=3cm]{machin}</kbd> (on peut bien
sur ne préciser qu'une seule des deux tailles). On peut aussi ajouter un
<kbd>angle=XXX</kbd> spécifiant de rotationer l'image de <kbd>XXX</kbd>
degrés.
</p>
<h3>Formats d'image supportés</h3>
<h4>Avec <kbd>latex</kbd></h4>
<p>
Si l'on compile avec <kbd>latex</kbd>, le seul format graphique supporté
est l'« encapsulated postscript » (extension <kbd>.eps</kbd>).
</p>
<p>
Il s'agit d'une forme légèrement restreinte de postscript. Il s'agit d'un
format graphique « vectoriel », c'est à dire où le dessin est défini par
une liste d'objets géométriques, et non par une grille de points (en
fait, il est aussi possible d'inclure une grille de points dans du
postscript).
</p>
<p>
La plupart des programmes de dessins vectoriels savent produire de
l'eps. En particulier, on dispose de <kbd>xfig</kbd>, qui est assez
simple et prévu pour s'interfacer avec LaTeX. Le plus simple est
d'utiliser l'option d'exportation « Combined PS/Latex ». Elle produit
deux fichiers : un <kbd>.pstex</kbd> qui est un eps contenant les
dessins, et un <kbd>.pstex_t</kbd> qui contient du code LaTeX, qui charge
le <kbd>.pstex_t</kbd> avec <kbd>\includegraphics</kbd>, et superpose le
texte des légendes par-dessus. Cela permet de faire évaluer par LaTeX les
légendes que l'on positionne avec XFig, ce qui permet d'avoir la même
police que dans le document, et, par exemple, de taper du texte en mode
mathématique. Cela nécéssite d'avoir chargé les packages <kbd>color</kbd>
et <kbd>graphicx</kbd>.
</p>
<p>
Si l'image d'origine est au format pdf, on peut la convertir en eps avec
la commande <kbd>pdftoeps</kbd>. Si c'est un postscript, il faut utiliser
<kbd>ps2eps</kbd> ou <kbd>ps2epsi</kbd>.
</p>
<p>
Si l'image d'origine est dans un format bitmap (une grille de points, par
exemple, le jpeg, le gif, le png, le tiff, ...), on peut la convertir en
eps avec la commande <kbd>convert fichierorigine eps2:machin.eps</kbd>.
</p>
<h4>Avec <kbd>pdflatex</kbd></h4>
<p>
On a le droit au pdf, au jpeg, au png et au tiff.
</p>
<p>
Si l'image est dans un autre format bitmap, on peut la convertir en jpeg,
png ou tiff, par exemple à l'aide de <kbd>convert</kbd>.
</p>
<p>
Si c'est un eps, le mieux est d'utiliser <kbd>epstopdf</kbd>.
</p>
<h2>Couleurs</h2>
<p>
Il y a le package <kbd>color</kbd> qui permet de mettre du texte en
couleur. Comme il a déjà été dit, xdvi ne les montrera pas, il faut
absolument convertir en postscript pour les voir apparaitre.
</p>
<p>
On dispose de la commande <kbd>\textcolor</kbd>, qui prend comme premier
argument une couleur, comme deuxième argument du texte, et affiche ce
texte dans cette couleur. Par exemple, <kbd>\textcolor{red}{ploum}</kbd>
va mettre « ploum » en rouge.
</p>
<p>
Il y a quelques noms de couleurs prédéfinis, comme <kbd>red</kbd>,
<kbd>blue</kbd> et cie. On peut en définir d'autres, avec la commande
<kbd>\definecolor</kbd>. Elle prend en premier argument le nom que l'on
veut donner, en deuxième argument, le modèle de spécification, et en
troisième argument, la spécification. Les trois modèles sont :
</p>
<dl>
<dt><kbd>rgb</kbd></dt><dd>Une spécification de couleur est une liste de
trois nombres entre 0 et 1, séparés par des virgules, spécifiant les
composantes rouge, vertes et bleues de la couleur. Par exemple :
<kbd>\definecolor{LightSlateGrey}{rgb}{.0084033613,.0073529411,.0065359477}</kbd></dd>
<dt><kbd>cmyk</kbd></dt><dd>Ici, on spécifie les composantes de la couleur
dans le système Cyan-Magenta-Jaune-Noir</dd>
<dt><kbd>gray</kbd></dt><dd>On spécifie juste un niveau de gris.</dd>
</dl>
<h2>Divers</h2>
<h3>Autres fonctions du packages <kbd>graphicx</kbd></h3>
<p>
On peut rotationer du texte avec <kbd>\rotatebox</kbd> (par exemple
<kbd>\rotatebox{30}{ploum}</kbd> pour tourner de 30 degrés), lui faire
subir une affinité avec <kbd>\resizebox</kbd> (par exemple
<kbd>\resizebox{1cm}{3cm}{ploum}</kbd> pour afficher « ploum » large de
1cm et haut de 3cm). La encore, le résultat de ces commandes n'apparait
pas avec xdvi.
</p>
<h3>Pour aller plus loin</h3>
<p>
Il existe le package PSTricks, qui permet un nombre incroyable de
grassouillitudes, par exemple, de tracer des flêches entre divers points
de la page, ou de faire onduler du texte. Il est par conséquent assez
technique, il faut se plonger sérieusement dans son <a
href="../../noncvs/docs/pst-user.ps.gz">manuel</a> pour arriver à ses
fins. Mais le résultat en vaut la chandelle.
</p>
<p>
PSTricks est malheureusement incompatible avec pdflatex (il fait beaucoup
de magie noire en pondant du code postscript). Certaines des
fonctionalités de PSTricks sont disponibles dans le packages pgf,
documenté <a href="../../noncvs/docs/pgf/">ici</a>, et qui marche avec
pdflatex.
</p>
<div class="metainformation">
Auteur : Luc Habert.
Dernière modification le <date value="$Date: 2005-09-07 00:34:21 $" />.
</div>
</body>
</html>