1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
|
\chapter{Insérer des images}
\label{chap-img}\lettrine{U}{ne} bonne image suffit des fois à remplacer 13 lignes de texte. Découvrons quelques spécificités à leur sujet et comment en insérer sous \LaTeX{}. \\
\input{./Chapitres/code-base}
\section{Les formats d'images}
Il existe deux sortes d'images : les images matricielles et les images vectorielles. Les premières sont les plus courantes et portent généralement les extensions \verb?.jpg? (\textit{Joint Photographic Group}) ou \verb?.png? (\textit{Portable Network Graphics}). Les secondes sont les plus propres et utilisent des extensions comme \verb?.svg? (\textit{Scalable Vector Graphics}) ou \verb?.eps? (\textit{Encapsulated PostScript}).\footnote{La création, édition et visualisation des fichiers \verb?.svg? sont possibles grâce à des logiciels spécialisés, comme \Inkscape{}. Le format \verb?.eps?, moins connu et un peu délaissé de nos jours, peut être visualisé simplement grâce à des logiciels comme \texttt{EPS Viewer}.} \\
La base d'une image matricielle est le pixel, d'une couleur donnée et figée. Si tu zoomes sur l'image à la page précédente, tu devrais tomber sur ces fameux pixels. \textit{A priori}, rien de méchant : dès lors que ton image contient ``suffisamment'' de pixels par rapport à la taille affichée, elle ne devrait pas apparaître trop floutée.
Une image vectorielle est définie par l'intermédiaire d'outils géométriques (arcs de cercle, traits, courbes de Bézier, \dots{}). Je ne vais pas faire un cours dessus : d'abord parce que je n'en sais pas plus et ensuite parce que ce n'est pas le but de guide.
Ce qu'il faut retenir c'est que, peu importe à quel point tu zoomes, tu ne tomberas jamais sur un pixel et l'image vectorielle reste lisse et belle\footnote{J'ai l'impression de faire de la pub' pour l'Oréal\dots{}}. Et inversement, si l'image est grande de base, aucun pixel ne sera donc visible.
\begin{figure}[H]
\begin{minipage}{0.45\linewidth}
\includegraphics[angle = 90, width = \linewidth]{eclair_image-matricielle.png}
\end{minipage}
\hfill
\begin{minipage}{0.45\linewidth}
\includegraphics[angle = 90, width = \linewidth]{eclair.eps}
\end{minipage}
\caption*{\bfseries{}Cachez cette image matricielle (à gauche) que je ne saurais voir !}
\end{figure}
%\begin{conseil}{Un exemple d'images vectorielles}
%Si tu veux un exemple, retourne sur la page de garde et regarde les deux images que j'ai insérées. Tu auras beau zoomer, aucun pixel à la ronde. \\
%
%Un exemple encore plus simple est le texte. En effet, peu importe le texte que tu lis et le niveau de zoom, là encore, pas de pixel. C'est normal : les polices d'écriture sont définies comme une image vectorielle.
%
%Et heureusement ! Imagine un peu le résultat : conçois (mentalement) une ``police matricielle'' et augmente sa taille. Le résultat n'est pas terrible, n'est-ce pas ?
%\end{conseil}
\begin{definition}{Un exemple plus courant d'images vectorielles}
Dans un fichier PDF, tu trouves en réalité des images vectorielles partout. En effet, le texte affiché utilise une police spécifique, définie vectoriellement.
Et heureusement ! Quel enfer serait sinon la lecture si tout le texte était flou voire illisible faute d'avoir suffisamment de pixels.
\end{definition}
Le format \verb?.eps? fait un peu vieux jeu et reste surtout utilisé dans le domaine scientifique. Cependant, même s'il difficile à modifier avec des outils standards (comme \Paint{}), il est plus facile à implanter sous \LaTeX{} que le format \verb?.svg?, pour un résultat identique.
\begin{attention}{Conversion au format \texttt{.eps}}
Une image au format \verb?.eps? n'est pas automatiquement vectorielle. Supposons que tu ouvres sous \GIMP{} une image matricielle et que tu l'enregistres au format \verb?.eps?. Le rendu final reste une image matricielle.
Le format \verb?.eps? ne garantit pas automatiquement une image vectorielle derrière. Il n'y a pas non plus de transformation miraculeuse en arrière-plan. C'est bel et bien un format qui peut gérer ce type d'image mais il ne faut pas s'attendre à ce qu'il fasse de lui-même une belle conversion. \\
Pour conserver une véritable image vectorielle au format \verb?.eps?, il faut vectoriser l'image matricielle (passage du matriciel au vectoriel), sous \Inkscape{} par exemple\footnote{Cette méthode fonctionne parfaitement pour des formes simples, avec peu de variations de couleur. Le résultat est à travailler pour des images plus complexes, voire à créer directement au format vectoriel.}, sauvegarder le résultat au format \verb?.svg? (sécurité) puis enregistrer cette image vectorielle au format \verb?.eps?.
\end{attention}
\section{Les longueurs}
\label{longueurs}Après cette première introduction, nous allons continuer par un petit passage barbare, mais qui va se révéler utile pour la suite. J'en ai déjà brièvement parlé plus tôt\dots{} mais c'est l'occasion parfaite pour proprement présenter la notion de \og longueur \fg{} sous \LaTeX{}. \\
Sous \LaTeX{}, il est possible de travailler avec toutes sortes d'unités : \verb?mm?, \verb?cm? pour citer les plus courantes ; \verb?pt?, \verb?in? pour citer quelques cas moins usités ; \verb?ex? pour citer l'unité de distance la plus amusante que j'ai découverte à ce jour en informatique\footnote{Hauteur d'un \og \verb?x? \fg{} : cette unité de longueur dépend donc de la police utilisée.}.
Dès lors qu'une commande requiert une longueur en paramètre d'entrée, nous l'indiquons très clairement. Par exemple, \verb?\vspace{13mm}?. Cependant, \LaTeX{} permet d'aller plus loin, beaucoup plus loin en mettant des longueurs prédéfinies sous forme de commande.
\begin{conseil}{Quelques longueurs sous \LaTeX{}}
\LaTeX{} utilise des longueurs nativement, dans chaque nouveau document. Par exemple, à chaque nouveau paragraphe, \LaTeX{} met un alinéa. La taille de cet alinéa est une longueur définie par défaut et \LaTeX{} utilise sa valeur. \\
Il en va par exemple de même pour les marges ou les sauts de ligne. Naturellement, toutes ces longueurs peuvent être modifiables, même si ce n'est pas vraiment recommandé. C'est aussi ce qui garanti l'homogénéité (ou la cohérence, si tu préfères) d'un document réalisé avec \LaTeX{}.
\end{conseil}
Du coup, sans entrer plus dans les détails, voici deux longueurs fondamentales qui sont plutôt utiles :
\begin{itemize}[label = \ding{213}]
\item \verb?\linewidth? : longueur qui correspond à la largeur ``locale'' du texte (vis-à-vis de la page, dans un tableau, dans une boîte, etc.) ;
\item \verb?\baselineskip? : longueur qui correspond à un saut de ligne sous \LaTeX{}. \\
\end{itemize}
\begin{attention}{\texttt{\textbackslash{}linewidth} \textit{vs} \texttt{\textbackslash{}textwidth}}
Tu trouveras des fois dans la littérature ou dans des exemples sur Internet des gens qui emploie la longueur \verb?\textwidth?. \`A première vue, lors de son utilisation, elle présente peu de différences avec \verb?\linewidth?. Et pourtant, il y a bel et bien une différence !\footnote{Les points à venir ont été extraits et traduits de la page suivante : \url{https://tex.stackexchange.com/questions/16942/difference-between-textwidth-linewidth-and-hsize}.} \begin{itemize}[label = \ding{118}]
\item \verb?\textwidth? représente la largeur d'un bloc de texte (valeur constante, globale) ;
\item \verb?\linewidth? représente la largeur locale du texte, que ce dernier soit présent dans une colonne, un tableau, une liste ou une \verb?minipage?. \\
\end{itemize}
En règle générale, il vaut mieux utiliser \verb?\linewidth? pour spécifier la taille relative d'une image ou d'une boîte. Cette longueur s'adapte mieux à la situation et aux potentiels montages que tu peux réaliser (avec des \verb?minipage?, par exemple).
\end{attention}
Enfin, il peut être intéressant de savoir qu'un coefficient est toléré devant les longueurs. Par exemple, \verb?\vspace{2\baselineskip}? correspond à un double saut de ligne. \verb?0.5\linewidth? correspond à une longueur égale à la moitié de la page (marges exclues).
Voilà, je ne vais pas aller plus loin. Si tu veux en savoir plus sur les longueurs (création de longueurs, longueurs définies par défaut, etc.), je te recommande d'aller lire la page suivante : \url{http://en.wikibooks.org/wiki/LaTeX/Lengths}. \\
Bien, allons maintenant insérer des images. Retiens surtout la longueur suivante : \verb?\linewidth?. C'est celle qui va beaucoup nous servir ici.
\section{Insérer une image}
\subsection*{La commande de base}
\label{insertion_images}Je pense que tu devais attendre ce point depuis pas mal de temps. Ne traînons pas plus dans ce cas : place aux insertions d'images ! \\
Travailler avec des images sous \LaTeX{} est possible. Il faut au préalable charger le package \verb?graphicx?\footnote{Ne pas confondre avec le package de base \verb?graphics? dont \verb?graphicx? (avec un \og x \fg{} donc) est une version améliorée !}. Pour insérer une image, c'est très simple. Il faut utiliser la commande suivante, à l'endroit où tu souhaites afficher ton image : \begin{center}\verb?\includegraphics[options]{nom_img.format}?\end{center}
Mais je crois qu'un exemple sera plus parlant. Pour ce faire, prends une image plutôt grande de préférence, soit au format \verb?.jpg? ou \verb?.png?\footnote{Si tu ne connais pas le format de ton image, \verb?clic droit? puis \verb?Propriétés?.}, puis renomme-là \verb?fond?. De cette manière, tu auras moins de souci avec le code qui suit. Place cette image dans le même dossier que le fichier \verb?.tex? avec lequel tu travailles.
Si jamais tu te trompes de format d'images ou que l'image n'est pas dans le dossier, \LaTeX{} va te renvoyer un message d'erreur, du genre \og File \verb?nom_img.format? not found \fg{}.
\begin{codedisplay}{Première insertion d'images}
% Ajout dans le préambule !!!
%\usepackage{graphicx}
\includegraphics{fond.jpg}
\end{codedisplay}
Bon, si l'utilisation de la commande de base est aussi simple, tu conviendras que ce n'est pas très pratique avec une image très grande et qui déborde pas mal du document ! Voyons donc maintenant comment judicieusement utiliser les longueurs pour avoir un affichage convenable.
\subsection*{Utilisation des longueurs}
Pour ajuster la taille d'une image, \textbf{2 options \emph{utiles}} sont disponibles avec la commande \verb?\includegraphics? : \begin{enumerate}
\item \verb?width = <distance>? : forcer la largeur de l'image à \verb?<distance>?. Cette option se révèle salvatrice combinée avec la longueur \verb?linewidth?.
\item \verb?height = <distance>? : forcer la hauteur de l'image à \verb?<distance>?. Essentiellement utile pour des images dont le format \og portrait \fg{} est très prononcé, ou si tu veux remplir intégralement la page.
\end{enumerate}
Et c'est tout ce qu'il faut savoir ! Il existe bien une autre option comme \verb?scale? mais sans intérêt car la valeur à utiliser dépend de la taille de l'image.
Avec l'option \verb?width?, peu importe la taille de ton image, elle sera toujours bien insérée dans ton document. Bien entendu, si ton image reste petite et matricielle, elle risque d'être floue à l'affichage. Autrement, tu n'as plus à te soucier de retraiter tes images pour les avoir à une taille appropriée.
\begin{codedisplay}{Une image bien taillée}
% Ajout dans le préambule
%\usepackage{graphicx}
\includegraphics[width = \linewidth]{fond.jpg}
\begin{center}
\includegraphics[height = 0.25\linewidth]{fond.jpg}
\end{center}
\end{codedisplay}
Comme afficher ci-dessus, tu peux centrer ton image avec un environnement \verb?center?. La commande \verb?\centering? fonctionne aussi et va se révéler utile par la suite.
C'est déjà mieux, non ? Pardon ? Tu voudrais aussi une magnifique légende pour accompagner ton image ? Ta demande est légitime !
\subsection*{Légende et environnement flottant}
\textbf{Tout comme pour les tableaux,} l'insertion d'une légende à une image demande de placer celle-ci dans un \emph{environnement flottant}. Il s'agit d'une obligation sous \LaTeX{} pour garantir la qualité du document. Tu conviendras que le rendu ne serait pas très esthétique si l'image était en bas de page et la légende à la page suivante faute de place.
Visuellement, nous pouvons considérer l'environnement flottant comme une boîte qui va englober ton image et ta légende et dont la position est variable, selon la place restante sur ta page :
\begin{figure}[H]
\centering
\begin{tikzpicture}[every node/.style = {anchor = south west}]
\draw[red, very thick] (0,0) node {Environnement flottant} rectangle (\linewidth,-5.5);
\draw[Green] (1,-1) node {Image} rectangle (\linewidth-1cm,-3);
\draw[cyan] (2,-4) node {Légende} rectangle (\linewidth-2cm,-5);
\draw[<->, > = Stealth, red, line width = 5pt] (0.5,-2) -- (0.5,-4);
\end{tikzpicture}
\caption{Schématisation d'un environnement flottant}
\end{figure}
L'environnement flottant pour les images s'appelle \verb?figure?. Et comme \LaTeX{} fait bien les choses, il met à ta disposition différentes options pour positionner correctement cet environnement : \begin{itemize}[label = \ding{213}]
\item \verb?t? pour \verb?top? : l'image se retrouve en haut de page ;
\item \verb?b? pour \verb?bottom? : l'image se retrouve en bas de page ;
\item \verb?p? pour \verb?page? : l'image se retrouve sur une page particulière réservée aux éléments flottants ;
\item \verb?h? pour \verb?here? \textbf{(le plus pratique)} : l'image se retrouve là où elle est positionnée dans le code. \\
\end{itemize}
Cependant, il arrive à \LaTeX{} d'être un peu capricieux et l'option ``\verb?!?'' devant la lettre lui indique que l'utilisateur a raison. Si tu utilises donc l'option \verb?!h?, \LaTeX{} fait tout son possible pour placer l'environnement flottant là où il est placé dans le code.
Ainsi, si le code de l'image est écrit entre une zone de texte A et une autre zone de texte B, elle le sera aussi sur le document final\dots{} à condition qu'il y ait suffisamment de place, naturellement. Dans le cas contraire, l'image se retrouve à la page suivante et le texte est remonté en conséquence pour combler les blancs.
Enfin, pour placer une légende, la commande \verb?\caption{légende}? est toujours d'actualité pour les images et se place donc à l'intérieur de l'environnement flottant \verb?figure?.
% Comme pour les tableaux, hormis \begin{figure}[H], codedisplay impossible
\begin{code}{Environnement flottant (\texttt{figure}) \& légende (\texttt{\textbackslash{}caption})}
% Ajout dans le préambule
%\usepackage{graphicx}
% La base
\begin{figure}
\includegraphics[width = 0.5\linewidth]{fond.jpg}
\caption{Une première légende}
\end{figure}
% !h + centrage
\begin{figure}[!h]
\centering
\includegraphics[width = 0.5\linewidth]{fond.jpg}
\caption{Une autre légende}
\end{figure}
\end{code}
Si je rencontre quelques soucis pour afficher le résultat du code dans cette exemple, tu dois constater que la numérotation de la légende est automatisée par \LaTeX{}. Parfait, une tâche à laquelle nous n'aurons pas à nous soucier ! \\
Toutefois, certaines complications peuvent parfois se produire avec cette option \verb?!h?. C'est pourquoi la \textbf{solution ultime} -- que j'utilise constamment -- consiste en l'utilisation du package \verb?float? et de renseigner un \verb?H? à la place de \verb?!h?. L'image est \textit{vraiment} contrainte d'être à cet endroit.
Et s'il n'y a pas la place, \LaTeX{} laisse un blanc, ce qui laisse parfois un gros trou dans ton document\dots{} Difficile d'arriver à tout concilier !
\begin{codedisplay}{La meilleure solution (selon moi)}
% Ajout dans le préambule
%\usepackage{graphicx, float}
% Package float
\begin{figure}[H]
\centering
\includegraphics[width = 0.5\linewidth]{fond.jpg}
\caption{Avec une légende !}
\end{figure}
\end{codedisplay}
\begin{attention}{Disposition des images \& marges}
Quand une image ne rentre pas en bas d'une page, il peut être tentant dans un premier temps d'augmenter les marges du document pour laisser plus de place à l'image. \textbf{\color{red}C'est exactement ce qu'il \emph{ne faut pas} faire !}
Tout d'abord, augmenter les marges permet en effet de gagner quelques lignes de texte et donc de gagner la place attendue pour placer l'image. Mais la longueur \verb?\linewidth? est aussi augmentée en conséquence donc ton image est plus grande ! Ce n'est donc pas une solution.
De plus, changer les marges bouscule toute la structure et l'agencement de ton document, les blancs laissés par les images qui ne rentrent pas en bas de page (si choix de l'option \verb?H? avec le package \verb?float?). Tu risques donc de perdre un temps considérable à tout réajuster à chaque fois. \\
Je recommande donc de procéder de la manière suivante : \begin{enumerate}
\item Régler les marges à la création du document (marges natives inchangées, choix personnel ou consigne de mise en page du rapport).
\item Rédiger ton document, inclure les images.
\item Revenir sur ton document, réagencer les images, les réduire, faire des montages, etc. pour limiter les blancs et avoir le meilleur rendu (subjectif).
Tu peux aussi t'occuper de cette dernière étape chapitre par chapitre par exemple (changement de page par défaut entre deux chapitres).
\end{enumerate}
\end{attention}
Bien abordons désormais un dernier point capital : la gestion des images.
\subsection*{Bien ranger ses images}
Si jamais tu as beaucoup d'images dans ton rapport, tu peux vite noyer le dossier de travail où se trouve ton fichier \verb?.tex?.
Dans ce cas, tu peux placer tes images dans un dossier, \textbf{situé au même endroit que ton fichier \verb?.tex?}, puis utiliser la commande suivante dans le préambule : \begin{center}\verb?\graphicspath{{./nom_du_dossier/}}?\end{center}
Fais attention à bien placer cette commande \textbf{après} le package \verb?graphicx?, car il s'agit d'une commande de ce même package. \\
Grâce à cette commande au nom assez explicite, tu indiques à \LaTeX{} le répertoire/dossier où tu as rangé tes images.\footnote{En informatique, la ``commande'' \verb?./? fait référence au dossier où se trouve le fichier avec lequel tu travailles. Pour revenir au dossier parent, il faut utiliser \verb?../?.} Tu n'es pas limité à un seul chemin, tu peux en indiquer autant que nécessaire si besoin.
Si le dossier est placé à un autre endroit, la commande s'applique toujours mais, dans ce cas, il faut renseigner le chemin complet pour accéder jusqu'au dossier.
\begin{attention}{Nom des images et des dossiers}
\textcolor{BrickRed}{Le nom de tes images ou des dossiers où tu places tes images ne doit contenir \textbf{ni accent ni espace.}} Autrement, tu risques de ne pas pouvoir compiler ton document et tu ne vas pas comprendre l'erreur. \\
Le nom \verb?texte mathématiques? est donc à bannir. Tu peux par contre appeler ton image \verb?texte_maths?, \verb?textemathematiques?, \verb?texte-maths?, etc.
\end{attention}
Bien, voyons maintenant comment faire référence à une image.
\section{Les références}
Une image, une équation, un tableau, une partie\dots{} tous ces outils sont bien pratiques mais que valent-ils si tu ne peux y faire référence ? Par exemple, comment écrire \textbf{automatiquement} \og cf. l'image \no{}$x$ page $y$ \fg{} ?
Le but est bel et bien d'avoir une numérotation automatique : c'est bien plus pratique et moins fatiguant que de devoir corriger tout ton document à la main (et même impossible et impensable sur un rapport de plusieurs centaines de pages).
Naturellement, \LaTeX{} propose nativement une solution, ou je n'aborderais pas le sujet. Donc pas de nouveaux packages pour cette fois ! \\
Si tu veux créer une référence, il faut procéder en 2 étapes : \begin{enumerate}
\item Création de la référence avec la commande \verb?\?\verb?label{nom-ref}?. Cette commande est à placer \textbf{après} une légende par exemple (\verb?\caption? pour rappel).
Tu peux aussi l'utiliser dans un environnement mathématiques (si tu veux faire référence à une équation ou dans un paragraphe (pour renvoyer à un bout de texte en particulier).
\item Appel de la référence avec la commande \verb?\?\verb?ref{nom-ref}? (numéro de la légende, de l'équation ou section dans lequel se situe le texte). \\
\end{enumerate}
La commande \verb?\?\verb?pageref{nom-ref}? est disponible nativement (appel du numéro de page où se situe la référence et donc l'objet référence), tandis que les commandes \verb?\nameref? et \verb?\autoref? sont présentes avec le package \verb?hyperref?.
Et si tu veux encore d'autres fonctionnalités, il paraît que le package \verb?cleveref? est LA solution. Je dois encore le tester donc je ne vais pas m'épancher sur le sujet. \\
Voici un petit exemple pour mieux comprendre le fonctionnement des références :
\begin{codedisplay}{Faire référence à une image}
% Ajout dans le préambule
%\usepackage{graphicx, float}
\begin{figure}[H]
\centering
\includegraphics[width = 0.5\linewidth]{fond.jpg}
\caption{Légende}
\label{exemple-ref-img}
\end{figure}
Mon image est la \figurename{} \ref{exemple-ref-img}, située en page \pageref{exemple-ref-img}. \\
Avec le package \verb?hyperref? : \nameref{exemple-ref-img} \& \autoref{exemple-ref-img}.
\end{codedisplay}
Comme tu peux le constater, les références se mettent à jour automatiquement. Cette fonctionnalité est très puissante et extrêmement pratique : tu n'as plus à te soucier de devoir tout mettre à jour manuellement à chaque ajout d'une image. \LaTeX{} a tout en mémoire et l'adapte si besoin.
Pour information, le fonctionnement est similaire pour les formules mais l'appel de la référence se fait avec la commande \verb?\?\verb?eqref{nom-ref}?.
\begin{attention}{Une question ?}
\og Je ne comprends pas. J'ai compilé et j'ai \verb!??! à la place de mes références. Pourquoi ? \fg{} \\
Ce n'est rien de grave. C'est le même problème que pour le sommaire. \LaTeX{} stocke les références dans un fichier à part à la première compilation et ne s'en sert que lors de la seconde.
\textbf{Il faut donc juste compiler deux fois} pour afficher correctement les références ou les mettre à jour..
\end{attention}
Allez, un peu de courage. Tu touches presque à la fin de ce guide. Tu pourras alors être autonome sous \LaTeX{}, et taper de magnifiques rapports.
Et la suite n'est pas compliquée : c'est du code pour faire des montages d'images et t'éviter de chercher pendant des heures comme j'ai eu à le faire !
\section{Un peu de montage}
Je suis sûr que, si tu n'y penses pas maintenant, tu souhaiteras à l'avenir faire quelques montages avec des images. Par exemple, placer 2-3 images l'une à côté de l'autre ou une image avec du texte autour. \\
Pour ce dernier cas (image avec du texte autour), il existe des solutions, comme le package \verb?wrapfigure? qui fonctionne plutôt bien mais qui doit être utilisé avec des pincettes. Il est fortement recommandé d'aller jeter un coup d'\oe{}il à l'aide en ligne.
Concrètement, pour expliquer le fonctionnement de ce package, il permet de positionner une image sur la droite ou sur la gauche, dans un bloc de taille fixée par l'utilisateur. Le texte qui suit la commande épouse alors le contour de l'image avant de reprendre son cours initial.
Je m'arrache toujours les cheveux à chaque fois que je l'utilise car je trouve que le rendu n'est jamais à la hauteur et beaucoup de problèmes se posent dès qu'une légende est ajoutée à l'image. Je ne fournirai donc pas un exemple ici. \\
Heureusement, il existe d'autres solutions plus simples comme les \verb?minipage?. Si jamais tu as besoin de te remémorer le fonctionnement des \verb?minipage?, je te renvoie à la page \pageref{minipage-explications}. Sinon, pour aligner côte à côte deux images, il y a déjà une règle absolument primordiale, ou la compilation ne donnera pas le résultat espéré : \begin{center}
\large\bfseries\color{red!60!orange}NE PAS laisser une seule ligne blanche !
\end{center}
Ensuite, la petite recette de cuisine avec les \verb?minipage? fonctionne de la manière suivante : \begin{enumerate}
\item Création d'une 1\up{ère} \verb?minipage? de largeur $X_1$\verb?\linewidth?, avec $X_1 \in ]0\,;\,1[$.
\item Insertion classique de l'image avec la commande \verb?\includegraphics? et l'option \verb?width?. Utiliser la longueur \verb?\linewidth? (ou une valeur réduite) devient très pratique dans cette situation.
Par exemple, une image de largeur \verb?0.6\linewidth? dans une \verb?minipage? de largeur \verb?0.45\linewidth? (par rapport à la page ici) sera de largeur totale \verb?0.27\linewidth?, par rapport à la page du coup.
\item Séparation (espace blanc) avec la commande \verb?\hfill? : remplissage de l'espace horizontal restant après la création de la 2\up{nde} \verb?minipage?.
Cette séparation permet d'avoir l'image à gauche collée sur la marge de gauche, celle de droite sur la marge de droite, et d'avoir un beau séparateur (espace blanc) entre les deux.
\item Création de la 2\up{nde} \verb?minipage? de largeur $X_2$\verb?\linewidth?, avec $X_2 \in ]0\,;\,1[$ \textbf{et}. $X_1 + X_2 < 1$ (ou le \verb?\hfill? n'a aucun intérêt).
\item Si insertion de légende(s), encadrement de toutes les étapes précédentes par un environnement \verb?figure? et placement des légendes respectives au sein de chaque \verb?minipage?. \\
\end{enumerate}
Un exemple ici et maintenant et tout sera plus clair :
\begin{codedisplay}{\texttt{minipage} \& montage d'images}
% Ajout dans le préambule
%\usepackage{graphicx, float}
\begin{figure}[H]
\begin{minipage}[t]{0.45\linewidth}
\centering
\includegraphics[width = 0.6\linewidth]{fond.jpg}
\caption{Lég. 1}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\linewidth}
\includegraphics[width = \linewidth]{fond.jpg}
\caption{Lég. 2}
\end{minipage}
\end{figure}
\end{codedisplay}
Une fois que tu as saisi le principe pour 2 images, rien ne t'empêche d'en aligner autant que tu le souhaites, à condition d'avoir la place (ou tes images risquent d'être très petites).
Tu peux aussi moduler à ta guise la largeur des différentes \verb?minipage? : rien ne t'oblige à toutes les avoir de la même largeur, par exemple. \`A toi d'adapter cet exemple en fonction de ton besoin ! \\
Il est aussi possible de mettre du texte dans une \verb?minipage?, pour insérer une \textbf{courte} explication à côté de l'image. \textbf{\color{red}Attention toutefois si le texte est trop grand :} ta \verb?minipage? va prendre trop de hauteur, le rendu ne sera plus aussi esthétique et la place risque de manquer.
Dans ces cas-là, il faut soit être synthétique, soit utiliser le package \verb?wrapfig?, soit revoir le rendu souhaité.
\begin{codedisplay}{\texttt{minipage} \& texte}
% Ajout dans le préambule
%\usepackage{graphicx, float}
\begin{figure}[H]
\begin{minipage}{0.55\linewidth}
J'aime le chocolat !
\end{minipage}
\hfill
\begin{minipage}{0.4\linewidth}
\centering
\includegraphics[width = 0.86\linewidth]{fond.jpg}
\caption{Légende}
\end{minipage}
\end{figure}
\end{codedisplay}
Pour terminer, si tu veux t'amuser un peu, voici un premier aperçu d'une autre option sympathique intégrée avec le package \verb?graphicx? :
\begin{codedisplay}{\textit{Yolo} !}
% Ajout dans le préambule
%\usepackage{graphicx, float}
\begin{center}
\includegraphics[width = 0.5\linewidth, angle = 13]{fond.jpg}
\end{center}
\end{codedisplay}
Il existe pas mal d'autres options, ainsi que la très pratique commande \verb?\resizebox?, que nous aurons la chance de recroiser plus tard dans ce guide. Mais je te laisse aller lire la documentation officielle\footnote{Disponible sur \url{https://ctan.org/pkg/graphicx}.}. Les explications de base sont sur ce guide et c'est ce qui m'importe. \\
Et voilà, tu approches de la fin de ce guide. Tu peux clairement t'arrêter après le \autoref{chap-erreurs} \nameref{chap-erreurs} et revenir à ce guide beaucoup plus tard selon tes besoins.
|