tuteurs.ens.fr/logiciels/latex/graphisme.tml

217 lines
7.7 KiB
Text
Raw Normal View History

<?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<EFBFBD>ral</h2>
<p>
<20> l'origine, il n'y avait rien de pr<70>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<62>me. Elles consistent <20> mettre des commentaires dans le dvi
produit. Par exemple, quand l'on inclut une image, il n'y a que le nom du
fichier contenant l'image qui est stock<63> dans le DVI. Le viewer que l'on
utilise ensuite est cens<6E> 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 graphisme que <kbd>xdvi</kbd>. Une
compilation ressemble donc <20> ceci<63>:
</p>
<pre>
conscrit@drakkar ~ $ latex fichier.tex
conscrit@drakkar ~ $ dvips fichier.dvi -o fichier.ps
conscrit@drakkar ~ $ gv fichier.ps
</pre>
2005-09-09 17:22:28 +02:00
<p class="continue">
la derni<6E>re <20>tape correspondant enfin <20> l'affichage.
</p>
<p>
Ceci est assez fastidieux. Il existe une variante de <kbd>latex</kbd>,
nomm<6D>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 <20>t<EFBFBD> con<6F>u d<>s l'origine pour
permettre de faire du graphisme. Il pr<70>sente l'avantage de supporter plus
de formats d'image. En revanche, certains package LaTeX qui <20>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. (On notera que VTeX, une extension commerciale de TeX
produit du PDF mais est capable de comprendre les instructions
PSTricks.)
</p>
<h2>Inclure une image produite par un programme externe</h2>
<h3>Comment faire<72>?</h3>
<p>
On doit utiliser le
package <kbd>graphicx</kbd>. Pour cela, il faut mettre un<75>:
</p>
<pre>
\usepackage{graphicx}
</pre>
2005-09-09 17:22:28 +02:00
<p class="continue">
dans le pr<70>ambule. Ensuite, dans le corps du document, pour inclure une
image stock<63>e dans le fichier <kbd>machin</kbd>, on tape
<kbd>\includegraphics{machin}</kbd>. On peut sp<73>cifier la taille avec des
2005-09-09 17:22:28 +02:00
arguments optionnels<6C>:
<kbd>\includegraphics[width=3cm,height=3cm]{machin}</kbd> (on peut bien
sur ne pr<70>ciser qu'une seule des deux tailles). On peut aussi ajouter un
<kbd>angle=XXX</kbd> sp<73>cifiant d'ins<6E>rer l'image tourn<72>e de <kbd>XXX</kbd>
degr<67>s.
</p>
<h3>Formats d'image support<72>s</h3>
<h4>Avec <kbd>latex</kbd></h4>
<p>
Si l'on compile avec <kbd>latex</kbd>, le seul format graphique support<72>
est l'<27><>Encapsulated PostScript<70><74> (extension <kbd>.eps</kbd>).
</p>
<p>
Il s'agit d'une forme l<>g<EFBFBD>rement restreinte de PostScript. Il s'agit d'un
format graphique <20><>vectoriel<65><6C>, c'est <20> dire o<> le dessin est d<>fini par
une liste d'objets g<>om<6F>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<70>vu pour s'interfacer avec LaTeX. Le plus simple est
d'utiliser l'option d'exportation <20><>Combined PS/Latex<65><78>. Elle produit
deux fichiers<72>: 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 <20>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
2005-09-09 17:22:28 +02:00
math<74>matique (il faut avoir mis le flag <20><>special<61><6C> sur l'objet
texte). Cela n<>c<EFBFBD>ssite d'avoir charg<72> les packages <kbd>xcolor</kbd> et
2005-09-09 17:22:28 +02:00
<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>epstopdf</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 (et <20>galement les
fichiers PostScript obtenus avec MetaPost).
</p>
<p>
Si l'image est dans un autre format bitmap, on peut la convertir en JPEG,
PNG ou TIFF, par exemple <20> 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>xcolor</kbd> qui permet de mettre du texte en
couleur. Comme il a d<>j<EFBFBD> <20>t<EFBFBD> dit, <kbd>xdvi</kbd> ne les montrera pas,
il faut
absolument convertir en PostScript pour les voir appara<72>tre.
</p>
<p>
On dispose de la commande <kbd>\textcolor</kbd>, qui prend comme premier
argument une couleur, comme deuxi<78>me argument du texte, et affiche ce
texte dans cette couleur. Par exemple, <kbd>\textcolor{red}{ploum}</kbd>
va mettre <20><>ploum<75><6D> en rouge.
</p>
<p>
Il y a quelques noms de couleurs pr<70>d<EFBFBD>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<78>me argument, le mod<6F>le de sp<73>cification, et en
troisi<73>me argument, la sp<73>cification. Les trois mod<6F>les sont<6E>:
</p>
<dl>
<dt><kbd>rgb</kbd></dt><dd>Une sp<73>cification de couleur est une liste de
trois nombres entre 0 et 1, s<>par<61>s par des virgules, sp<73>cifiant les
composantes rouge, vertes et bleues de la couleur. Par exemple<6C>:
<kbd>\definecolor{LightSlateGrey}{rgb}{.0084033613,.0073529411,.0065359477}</kbd></dd>
<dt><kbd>cmyk</kbd></dt><dd>Ici, on sp<73>cifie les composantes de la couleur
dans le syst<73>me Cyan-Magenta-Jaune-Noir</dd>
<dt><kbd>gray</kbd></dt><dd>On sp<73>cifie juste un niveau de gris.</dd>
</dl>
<h2>Divers</h2>
<h3>Autres fonctions du packages <kbd>graphicx</kbd></h3>
<p>
On peut appliquer une rotation <20> du texte avec <kbd>\rotatebox</kbd> (par exemple
<kbd>\rotatebox{30}{ploum}</kbd> pour tourner de 30 degr<67>s), lui faire
subir une affinit<69> avec <kbd>\resizebox</kbd> (par exemple
<kbd>\resizebox{1cm}{3cm}{ploum}</kbd> pour afficher <20><>ploum<75><6D> large de
1cm et haut de 3cm). La encore, le r<>sultat de ces commandes n'appara<72>t
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<66>ches entre divers points
de la page, ou de faire onduler du texte. Il est par cons<6E>quent assez
technique, il faut se plonger s<>rieusement dans son <a
href="../../noncvs/docs/pst-user.ps.gz">manuel</a> pour arriver <20> 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<69>s de PSTricks sont disponibles dans le packages PGF,
document<6E> <a href="../../noncvs/docs/pgf/">ici</a>, et qui marche avec
pdflatex. (Remarque PGF est paru dans une nouvelle version beaucoup
plus agr<67>able <20> utiliser gr<67>ce <20> l'interface TikZ.)
</p>
<div class="metainformation">
Auteur<EFBFBD>: Luc Habert.
Derni<EFBFBD>re modification le <date value="$Date: 2005-12-02 14:31:35 $" />.
</div>
</body>
</html>