Profitez des offres Memoirevive.ch!
LaTeX sous MacOS X, partie 4

ATTENTION: cet article est vieux. Une version mise à jour par Franck Pastor est disponible ici.

Grâce aux parties précédentes, vous avez tous les clefs en main pour écrire un document ne contenant que du texte. Mais il est forcément utile de pouvoir insérer des objets comme des listes, des tableaux ou des images. Nous allons voir dans cette partie comme procéder.

Créer une liste

La création d'une liste se fait grâce à l'environnement "itemize". Une fois dans l'environnement, chaque élément de la liste est défini par la commande item:

begin {itemize}
item premier élément
item
deuxième élément
item
etcldots
end
{itemize }

donnera

Vous noterez qu'il ne faut pas placer de entre chaque élément, le retour à la ligne est automatique. Vous aurez aussi noté au passage l'utilisation de la commande ldots qui correspond aux trois points de suspensionÖ

Il existe également un environnement "enumerate", qui fonctionne comme "itemize" mais qui remplace les puces par des numéros.

Insérer une image

Pour insérer une image, nous devons faire appel à un nouveau paquet de commandes intitulé "graphicx" (il existe également un paquet "graphics" mais qui est moins complet). Nous devons donc ajouter à notre préambule:

usepackage {graphicx}

Ceci étant fait, nous pouvons ajouter une image au moyen de la commande:

includegraphics {monimage.jpg}

Ceci suppose que le fichier "monimage.jpg" se trouve dans le même répertoire que le fichier ".tex". Si vos images sont dans un dossier "images" se trouvant dans le dossier contenant le fichier ".tex", vous pouvez accéder à vos images en faisant:

includegraphics {./images/monimage.jpg}

Les formats d'image reconnus par pdflatex (qui est le moteur utilisé par TeXShop) sont: .jpg, .png et .pdf. Le format PDF est particulièrement utilisé pour des images vectorielles, mais est également tout à fait adapté aux images bitmap. Il est également possible d'introduire des images eps en changeant le mode de compilation de TeXShop, je reviendrai là-dessus plus tard.

Voyons donc un exemple concret:

begin {document}

Voici une photo: includegraphics {medor.jpg} de mon chien Médor.

end {document}

Comme en HTML, l'image fait alors partie intégrante du texte. Mais dans la plupart des cas, ce n'est pas ça que l'on veut. On veut placer l'image entre deux parties du texte. Il suffit alors de la placer dans un environnement "center":

begin {document}

Voici une photo:

begin {center}
includegraphics {medor.jpg}
end{center }

de mon chien Médor.

end {document}

Pour ajouter une légende, on la placera simplement à la ligne:

begin {document}

Voici une photo:

begin {center}
includegraphics {medor.jpg}
Photo prise en juin 02

end {center}

de mon chien Médor.

end {document}

Mais il arrive également qu'on ne s'intéresse peu au placement précis de l'image, mais qu'on veuille par contre la numéroter pour pouvoir y faire référence (c'est le cas le plus fréquent lors de publications scientifiques). Pour cela nous allons placer cette image dans un environnement "figure":

begin {document}

begin {figure}
includegraphics {medor.jpg}
end{figure }

end {document}

L'image devient alors un "float element", un élément flottant. Cela signifie que LaTeX s'occupera tout seul du placement de l'image. Si il n'y a pas assez de place sur la page en cours il la placera sur la page suivante. Si il y a un titre de section à proximité. il s'arrangera pous placer l'image le plus judicieusement possible. La position de l'image ne dépend donc plus uniquement de l'endroit du texte où vous la déclarez. Par exemple:

begin {document}

Ceci est un premier paragraphe, bla bla bla
bla bla bla, etc...

begin {figure}
includegraphics {medor.jpg}
end{figure }

Ceci est un deuxième paragraphe, bla bla bla
bla bla bla, etc...

end {document}

ne garantira pas que l'image soit placée entre ces deux paragraphe. Vous pouvez toutefois indiquer à LaTeX vos préférences en ajoutant une option:

begin {figure}[option]

Option est un (ou plusieurs caractères) indiquant vos préférences quant au placement de l'image, les valeurs possibles sont:

  • t : "top", l'image sera placéé en haut d'une page
  • b: "bottom", l'image sera placée en bas d'une page
  • h: "here", l'image sera placéé là où elle est déclarée (dans la mesure du possible)
  • f: "float", l'image sera placéé sur une page séparée ne contenant que des éléments flottants

Vous pouvez bien entendu combiner ces quatre caractères dans l'ordre de vos préférences. Si vous voulez essayer de forcer LaTeX à placer votre image là où vous le voulez, vous pouvez ajouter un point d'exclamation "!" à ces options. Mais cela n'ira jamais à l'encontre du "look" du document.

Si vous ne pouvez placer votre image là ou vous la voulez, il devient difficile de la mentionner. Dans mon exemple ci-dessus, si l'image de mon chien Médor se trouve à la page suivante, ma phrase n'a plus beaucoup de sens. Il s'agit donc d'y faire référence de la même manière que nous l'avons fait pour des chapitres et des sections dans la partie précédente, en y ajoutant une étiquette.

Pour cela, il faut y ajouter une légende. Ceci se fait grâce à la commande caption:

begin {figure}[ht]
includegraphics {medor.jpg}
caption {Voici la photo de Médor prise en juin 02}
label{medor }
end {figure}

Sur la figure ref {medor} vous pouvez voir la photo de Médor.

La numérotation sera effectuée automatiquement par LaTeX. Le contenu de la commande "caption" peut prendre du texte de la longueur que vous voulez, elle peut rester vide si vous ne désirez pas placer de légende, seule la numérotation apparaîtra. Vous pouvez également y faire des sauts de ligne avec la commande newline (étonnament la commande génère des erreurs et je ne sais pas pourquoi).

Pour centrer la figure, vous pouvez bien évidemment placer l'environnement "figure" dans un environnement "center", mais vous pouvez également utiliser la commande centering:

begin {figure}[ht]
centering
includegraphics
{medor.jpg }
caption {Voici la photo de Médor prise en juin 02}
label{medor }
end {figure}

Sur la figure ref {medor} vous pouvez voir la photo de Médor.

Bien entendu, il est souvent nécessaire de manipuler un peu l'image car elle est trop grande ou trop petite. Ceci se fait très simplement en passant des options à la commande includegraphics:

includegraphics[option=valeur] {monimage.jpg}

où "option" peut prendre les valeurs suivantes:

option valeur
scale facteur compris en 0 et 1
angle angle en degrés (0 a 360)
draft true ou false
width dimension
height dimension

Il y en a en fait d'autres, mais qui sont plus poussées et inutiles dans la plupart des cas (je ne les ai jamais utilisées).

L'option "scale" permet une mise à l'échelle de l'image ou facteur est le rapport avec l'image originale.

L'option "angle" permet une rotation de l'image et l'angle est donné en degrés (dans le sens inverse des aiguilles d'une montre).

L'option "draft" permet d'afficher un rectangle vide en lieu et place de l'image. Les dimensions seront toutefois celles de l'image.

Les options "width" et "height" (largeur et hauteur) prennent comme valeur une dimension. Cette dimension peut être donnée de plusieurs manières.. En centimètres bien sûr, par exemple "10cm", en pouces: "5in" ou en points "500pt", mais aussi en fonction de la taille de la page ou du texte grâce aux commandes paperwidth et textwidth (respectivement paperheight et textheight). La première commande donne la taille de la page (marges y comprises) tandis que la deuxième donne la taille effective du texte (sans les marges). Ceci est très utile pour avoir une image qui à la même largeur (ou longueur) que le texte, mais aussi une fraction de cette dimension. En effet, vous pouvez très bien ajouter un facteur devant ces commandes:

includegraphics[width=0.75 textwidth]{monimage.jpg }

Ainsi, l'image aura une largeur égale aux trois quarts de la largeur du texte.

Il existe encore de nombreuses fonctions d'image dans différents paquets de commandes pour LaTeX, mais celles-ci sont beaucoup plus poussées. Ce que je viens de vous décrire devrait suffire pour la plupart des cas (je n'ai jamais utilisé d'options plus poussées).

Il existe un équivalent de la table des matières (que nous avons découvert la dernière fois) pour les figures. Pour créer une table des figures, il suffit d'entrer la commande listoffigures, là où vous désirez voir apparaître cette liste (habituellement en début ou en fin de document).

Insérer un tableau

La création de tableaux est très puissante en LaTeX. Pour créer un tableau il faut utiliser l'environnement "tabular". Voici un exemple simple:

begin {document}

Voici un tableau:

begin {tabular}{lcr }

Ligne 1 & Element 1 & Element 2
Ligne 2 & Element 3 & Element 4
Ligne 3 & Element 4 & Element 5

end {tabular}

end {document}

Etudions cet exemple en détail. Tout d'abord, on commence l'environnement "tabular" grâce à la commande begin. Vous noterez que la syntaxe est un peu particulière puisqu' elle prend deux arguments (entre accolades). Tout d'abbord le nom de l'environnement (tabular) puis une suite de caractères. Cette chaîne de caractères (ici "lcr") définit deux choses: le nombre de colonnes ainsi que l'alignement des éléments de chacune de ces colonnes.

Dans notre exemple, "lcr" signifie que notre tableau possède trois colonnes (trois caractères). Il signifie aussi que la première colonne aura des éléments alignés à gauche ("l" pour left), que les éléments de la deuxième colonne seront centrés et que ceux de la troisième colonne seront alignés à droite ("r" pour right).

On entre ensuite les éléments. Pour passer à la colonne suivante, on utilise le caractère "&", pour terminer une ligne du tableau, on utilise la commmande , sauf pour la dernière ligne qui se termine par le end.

Si vous compilez cet exemple, vous obtiendrez ceci:

On y remarque deux choses:

  • La création d'un tableau n'implique pas de saut de ligne. Notre tableau est placé à la suite de la phrase "Voici un tableau:"
  • Le tableau n'est pas délimité par des barres horizontales et verticales.

Pour palier à la première constatation et mettre le tableau sur une nouvelle ligne vous pouvez simplement ajouter un à la fin de la phrase. Mais il y a encore mieux, vous pouvez faire d'une pierre deux coups en utilisant l'environnement "center" que nous avons défini dans la partie précédente. Le tableau sera alors placé à la ligne et centré.

Pour ajouter des barres verticales à notre tableau nous allons modifier la chaîne de caractères définissant le tableau. Si nous voulons séparer la première colonne des deux autres par une barre verticale nous allons transformer "lcr" en "l|cr". Ce caractère vertical est obtenu sur un clavier suisse-romand par alt-7 (sur un clavier français il semble que ce soit alt-shift-l). Si nous voulons séparer toutes les colonnes par une barre verticales, nous utiliserons "l|c|r", et enfin pour que notre tableau soit délimité par deux barres verticales nous utiliserons "|l|c|r|". Logique. Bien sûr, vous pouvez utilisez plusieurs barres à la suite: "|l||c|r|".

Pour obtenir une barre horizontale, nous utilisons la commande hline, que nous placerons entre deux lignes. Notre code deviendra par exemple:

begin {document}

Voici un tableau:

begin {center}

begin {tabular}{|l||c|r| }
hline
Colonne 1 & Colonne 2 & Colonne 3
hline
hline
Ligne 1 & Element 1 & Element 2
hline
Ligne 2 & Element 3 & Element 4
hline
Ligne 3 & Element 4 & Element 5
hline

end {tabular}

end {center}

end {document}

Voici son résultat:

Chaque élément du tableau peut contenir ce que vous voulez ! Du texte bien sûr, mais aussi un image (grâce à un includegraphics) ou même un autre tableau ! Essayez donc le code suivant:

begin {document}

Voici un tableau:

begin {center}

begin {tabular}{|l||c|r| }
hline
Colonne 1 & Colonne 2 & Colonne 3
hline
hline
Ligne 1 &

begin {tabular}{c|c }
Tableau & dans
hline
un & tableau
end {tabular}

& Element 2
hline
Ligne 2 & Element 3 & Element 4
hline
Ligne 3 & Element 4 & Element 5
hline

end {tabular}

end {center}

end {document}

Voici le résultat:

Pas mal, non ?

Comme pour les images, les tableaux peuvent être définis comme des éléments flottants auxquels on pourra alors faire référence. Pour les tableaux, on utilisera l'environnement "table" au lieu de l'environnement "figure". La syntaxe reste la même. Par exemple:

begin {table}[ht]
centering
begin {tabular}{lcr }

Ligne 1 & Element 1 & Element 2
Ligne 2 & Element 3 & Element 4
Ligne 3 & Element 4 & Element 5

end {tabular}
caption{Mon beau tableau}
label{beautableau }
end {table}

On pourra alors faire référence à ce tableau grâce à un ref{beautableau }.

Et comme pour les figures flottantes, il est possible de créer une liste des tableaux flottants qui se présentera comme une table des matières. Ceci se fait grâce à la commande listoftables.

Bien sûr, tous les environnements que nous venons de voir sont accessibles depuis le menu Macros de TeXShop. J'en profite pour vous signaler que vous pouvez associer des raccourcis-clavier aux environnements que vous utilisez fréquemment. Pour cela, vous trouverez dans le menu Macros, l'élément "Ouvrir l'éditeur des macros...". Vous obtiendrez cette fenêtre.

Pour ajouter un raccourci à une macro, entrez un caractère dans le champ "Touche" et éventuellement un modifieur. Par exemple, j'ai ici associé commande-option-f à l'insertion de l'environnement "figure". Vous pouvez par ailleurs également dans cet éditeur modifier la macro ou en ajouter d'autres.

Je tiens à insister sur cet éditeur de macros car c'est lui qui vous rendra la vie plus facile ! Bien entendu, il est très rébarbatif d'entrer ces antislashs et ces "begin" et "end". Mais les macros sont là pour le faire à votre place, alors profitez-en. Pour ma part, tous les environnements que nous avons vus jusqu'à présent ont un raccourci-clavier, ce qui rend la rédaction du document beaucoup plus aisée.

Je pense que c'est assez pour aujourd'hui, vous avez de quoi vous amuser avec les tableaux et les images. Essayez donc de mettre des images dans un tableau, de placer plusieurs images et tableaux pour voir la numérotation utilisée par LaTeX, de faire des tableaux dans des tableaux dans des tableaux, etc...

Dans la prochaine partie, qui sera l'avant-dernière de cette série d'articles (en tout cas pour commencer), nous attaquerons l'écriture des mathématiques avec LaTeX.

Aucun commentaire pour l'instant…