summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-modes.tex
blob: e371b288e5960f7834675f35688d53314aedef9a (plain)
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
\chapter{Les modes de compilation sous \LaTeX{}}

\label{compilation_details}

\section{Présentation des différents modes}

Revenons un instant sur l'interface \texttt{Texmaker}. Jusqu'à présent, tu as toujours compiler sous \texttt{PDFLaTeX}, comme je t'ai dit de faire. Normalement, à l'exception du code et de l'aperçu, ta fenêtre \texttt{Texmaker} devrait ressembler à :

\begin{figure}[H]
\includegraphics[width = \linewidth]{Aide_LaTeX7.png}
\caption{Ta fenêtre \texttt{Texmaker}}
\end{figure}

Il est là dans ce but donc intéressons-nous au cadre rouge sur cette image. Normalement, c'est l'état dans lequel il se trouve. Depuis tes débuts sous \texttt{Texmaker}, il y a de grandes chances que tu cliques sur la flèche horizontale à gauche pour lancer la compilation et que tu demandes l'affichage du résultat avec la flèche de droite.

Déjà, sache qu'il est possible d'aller beaucoup plus vite avec le clavier. En effet, \texttt{Texmaker} a mis en place des raccourcis, configurables dans \verb?Options? $\rightarrow$ \verb?Configurer Texmaker? $\rightarrow$ \verb?Raccourcis?. Par défaut, appuyer sur \keys{F6} permet de lancer la compilation sous \verb?PDFLaTeX? et, \textbf{une fois que cette dernière est terminée}, appuyer sur \keys{F7} permet d'afficher le résultat. \\

Il est même possible d'aller encore plus vite grâce à la compilation rapide (propriété propre à \texttt{Texmaker}, pas à \LaTeX{}). \texttt{Texmaker} est un bon logiciel car il permet justement de combiner à notre guise différentes options pour la compilation et de les réunir sous un seul bouton. La compilation rapide est paramétrable depuis \verb?Options? $\rightarrow$ \verb?Configurer Texmaker? $\rightarrow$ \verb?Compil rapide?. Par défaut, elle est assigné au bouton \keys{F1}.

Prenons un fichier \verb?.tex? quelconque et choisissons de mettre la compilation rapide sous \verb?PdfLaTeX + Voir PDF?. Appuyons sur \keys{F1} : normalement, la compilation s'est lancée toute seule et le résultat apparaît\footnote{Hormis à l'ouverture d'un document, il peut arriver qu'il faille appuyer deux fois sur \keys{F1} pour forcer l'affichage (petit bug technique de \texttt{Texmaker}).}. C'est plus pratique, ne trouves-tu pas ? \\

Si tu es un peu curieux, tu as pu te rendre compte qu'il existe plein d'autres possibilités pour la compilation rapide. Certaines d'entre elles contiennent justement de nouveaux modes de compilation \LaTeX{}. Un mode de compilation, c'est un peu comme une grosse boîte qui prend en entrée un fichier \verb?.tex? pour donner un fichier \verb?.pdf? en sortie. Je n'en sais pas plus sur leur fonctionnement respectif mais je vais tâcher d'être clair par la suite avec quelques schémas :

\begin{figure}[H]
\centering
\begin{tikzpicture}[every node/.style = {align = center}]
\node (rect) at (0,0) [draw, thick, text width = 2.5cm, minimum width = 3cm, minimum height = 1.5cm, Orange] {Mode de compilation};
\draw[<-, > = triangle 60] (rect.west) --++ (-1,0) node[left, text width = 1.5cm, Red] {Fichier \texttt{.tex}};
\draw[->, > = triangle 60] (rect.east) --++ (1,0) node[right, text width = 1.5cm, Green] {Fichier \texttt{.pdf}};
\end{tikzpicture}
\caption{Schématisation d'un mode de compilation}
\end{figure}

Ensuite, si nous devons lister les différents modes de compilation, nous pouvons en relever 3 principaux :

\begin{itemize}[label = \ding{213}]
\item le mode \verb?PDFLaTeX?,

\item le mode \verb?LaTeX? puis \verb?Dvi -> PS? puis \verb?PS -> PDF?,

\item le mode \verb?XeLaTeX?.
\end{itemize}

Il en existe d'autres comme \verb?LuaLaTeX?, voire des solutions plus exotiques (\verb?KaTeX? pour du web par exemple). Ces 3 vont nous suffire pour tout le reste.

\begin{attentionbox}{Une question ?}
\og Je ne comprends pas à quoi peuvent bien servir ces nouveaux modes de compilation. Après tout, \verb?PDFLaTeX? fonctionne très bien jusqu'à présent \dots{} \fg{} \\

En effet, tu as tout à fait raison. Et la conclusion de ce chapitre ira dans ce sens. Mais il existe aussi des classes ou des situations particulières qui ne fonctionnent pas sous \verb?PDFLaTeX? \dots{} mais chaque chose en son temps !
\end{attentionbox}

\begin{figure}[H]
\centering
\begin{tikzpicture}[every node/.style = {align = center}]
\node (rect) at (0,0) [draw, thick, text width = 2.5cm, minimum width = 3cm, minimum height = 1.5cm, Orange] {\texttt{LaTeX} \linebreak ou \linebreak \texttt{XeLaTeX}};
\draw[<-, > = triangle 60] (rect.west) --++ (-1,0) node[left, text width = 1.5cm, Red] {Fichier \texttt{.tex}};
\draw[->, > = triangle 60] (rect.east) --++ (1,0) node[right, text width = 1.5cm, Green] {Fichier \texttt{.pdf}};
\draw[<-, > = triangle 60] (rect.north) --++ (0,1) node[above, Cyan] {Contraintes};
\end{tikzpicture}
\caption{Schématisation de l'utilisation d'un mode de compilation}
\end{figure}

Bon, voyons un peu ces ``contraintes'' (classes, packages, \dots{}) qui nous obligent à utiliser un mode de compilation plutôt qu'un autre. \\

\textcolor{BrickRed}{\textbf{Attention :}} je risque de citer des packages ou classes jamais abordés jusqu'à présent. Certes, selon le préambule, tu peux/dois aller te renseigner à leur sujet. Toutefois, sache aussi que je les présente plus loin dans ce guide.

\section{Utilisation des différents modes de compilation}

Si \LaTeX{} est très puissant, il connaît quelques limites et incompatibilités qui empêchent de générer certains résultats. C'est d'ailleurs le but du projet d'amélioration de \LaTeX{} : s'affranchir de ces limites, entre autres. Nom de code : \LaTeX{}3Project ; site officiel : \url{http://www.latex-project.org/latex3/}. \\

\`A l'heure actuelle, j'ai recensé les différents cas d'utilisation possibles suivants :

\begin{enumerate}
\item générer un \texttt{PDF} ``simple'' (rapport normal, avec juste des images et des commandes ``basiques''),

\item générer un \texttt{PDF} avec des dessins faits sous \texttt{PSTricks} (schémas, circuits électriques, \dots{}),

\item changer la police d'écriture (cf. p. \pageref{chgt_police}),

\item inclure et/ou fusionner des fichiers \texttt{PDF} dans le rapport (cf. p. \pageref{fusion_pdf}),

\item insérer des images vectorielles \texttt{.eps},

\item générer une bibliographie,

\item générer un index (cf. p. \pageref{index}) ;
\end{enumerate}

\noindent{}et du coup, pour chaque cas, il est donc possible de compiler de la manière suivante, \textcolor{RoyalPurple}{\textbf{avec les contraintes associées :}}

\begin{enumerate}
\item \verb?PDFLaTeX? $\Rightarrow$ images au format \verb?png? ou \verb?jpg?

\item[OU] \verb?LaTeX? $\Rightarrow$ images au format \verb?eps? $\Rightarrow$ convertir les images si besoin, \\ % Petit truandage pour que ça rende bien

\item \verb?LaTeX? $\Rightarrow$ le plus rapide

\item[OU] \verb?XeLaTeX? $\Rightarrow$ le plus long \dots{} \\

\item \verb?XeLaTeX? : attention, certaines commandes ne sont plus interprétées (le symbole \degres{} ne fonctionne plus avec \verb?\degres{}? mais s'écrit directement au clavier ; idem pour \verb?\og? et \verb?\fg? qui peuvent être appelés de manière plus générique par \verb?\guillemotleft{}? et \verb?\guillemotright{}?), \\

\item \verb?PDFLaTeX? OU \verb?XeLaTeX?, \\

\item \verb?PDFLaTeX? OU \verb?LaTeX?, \\

\item \verb?PDFLaTeX? OU \verb?LaTeX?, \\

\item \verb?PDFLaTeX? OU \verb?LaTeX? ou \verb?XeLaTeX?. \\
\end{enumerate}

Il faut donc bien comprendre que, \textit{a priori}, certaines combinaisons sont impossibles à réaliser :

\begin{itemize}[label = \ding{213}]
\item dessiner et inclure des \texttt{PDF} $\Rightarrow$ passer sous \verb?XeLaTeX? $\Rightarrow$ génération plus longue \dots{}

\item dessiner et générer une bibliographie $\Rightarrow$ passer sous \verb?LaTeX? $\Rightarrow$ génération rapide,

\item dessiner, générer une bibliographie ET inclure des \texttt{PDF} : \textbf{IMPOSSIBLE} \dots{} avec \texttt{PSTricks}. \\
\end{itemize}

Après plusieurs recherches et tentatives de réussir à tout générer sous \verb?PDFLaTeX?, comme en témoigne la génération d'index et ce guide, il existe une et une seule manière de réussir à tout combiner (dessins, bibliographie, index, inclusion de \texttt{PDF} et même écrire du code comme je l'ai fait tout le long de ce guide) : dessiner avec \texttt{TikZ}. 

Si tu es intéressé, tu peux aller te renseigner sur Internet ou profiter du chapitre à ce sujet, p. \pageref{chap_dessin_tikz}.

\begin{attentionbox}{Et les classes ?}
\og Tu as dit que des classes peuvent poser problèmes mais tu n'as cité que des packages pour l'instant. Essaierais-tu de nous tromper ? \fg{} \\

Ah, il y en a qui suit, cela fait plaisir. Non, je n'ai pas oublié. Je profite au contraire de la possibilité de générer de telles apartés pour en parler.

Actuellement, je n'ai rencontré qu'une seule classe qui oblige à compiler sous \verb?LaTeX? : \verb?Powerdot?, pour faire des diaporamas professionnels. Comme il peut être vite pénible d'avoir à convertir une multitude d'images au format \verb?.eps?, une solution consiste à utiliser \verb?Beamer?, qui a le bon goût de fonctionner sous \verb?PDFLaTeX?. \\

Pour plus d'informations sur \verb?Beamer?, je te renvoie à la page \pageref{beamer} de ce guide.
\end{attentionbox}

\section{Bilan}

Toujours en vie ? Je veux bien croire cette partie un peu technique. Elle demande un peu de pratique et de se frotter aux erreurs pour comprendre le fonctionnement et l'utilisation des modes de compilation. \\

Hormis le changement de police, il existe toujours un moyen de compiler sous \verb?PDFLaTeX? (mode rapide et simple à utiliser pour rappel). Et si les explications précédentes sont un peu indigestes de prime abord, j'ai finalisé ce chapitre par un arbre synthétique quant au choix d'un mode de compilation :

\begin{center}
\begin{tikzpicture}[grow cyclic, text width = 1.3cm, align = center, color = Red, level/.style = {level distance = 2cm, ->, > = triangle 60}, level 1/.style = {level distance = 2.5cm, sibling angle = 60}, level 3/.style = {sibling angle = 45}]
\tikzstyle{PDFstyle} = [Green]
\tikzstyle{Lastyle} = [Orange]
\tikzstyle{Xestyle} = [Cyan]

\node{\large{}Fichier \texttt{.tex}}
	child [color = Orchid] { node {Police}
		child [color = Black] { node {Native}
			child { node[PDFstyle] {\texttt{PDFLaTeX}}}
			child { node[Xestyle] {\texttt{XeLaTeX}}}
		}
		child [color = Black] { node {Externe}
			child { node[Xestyle] {\texttt{XeLaTeX}}}
		}
	}
	child [color = Orchid] { node {Inclure \texttt{PDF}}
		child { node[PDFstyle] {\texttt{PDFLaTeX}}}
		child { node[Xestyle] {\texttt{XeLaTeX}}}
	}
	child [color = Orchid] { node {Images}
		child [color = Black] { node {\texttt{.jpg} \linebreak \texttt{.png}}
			child { node[PDFstyle] {\texttt{PDFLaTeX}}}
			child { node[Xestyle] {\texttt{XeLaTeX}}}
		}
		child [color = Black] { node {\texttt{.eps}}
			child { node[PDFstyle] {\texttt{PDFLaTeX}}}
			child { node[Xestyle] {\texttt{XeLaTeX}}}
			child { node[Lastyle] {\texttt{LaTeX}}}
		}
	}
	child [color = Orchid] { node {Biblio.}
		child { node[PDFstyle] {\texttt{PDFLaTeX}}}
		child { node[Lastyle] {\texttt{LaTeX}}}
	}
	child [color = Orchid] { node {Index}
		child { node[PDFstyle] {\texttt{PDFLaTeX}}}
		child { node[Xestyle] {\texttt{XeLaTeX}}}
	}
	child [color = Orchid] { node {Dessiner}
		child [color = Black] { node {\texttt{PSTricks}}
			child { node[Lastyle] {\texttt{LaTeX}}}
			child { node[Xestyle] {\texttt{XeLaTeX}}}
		}
		child [color = Black] { node {\texttt{TikZ}}
			child { node[PDFstyle] {\texttt{PDFLaTeX}}}
			child { node[Xestyle] {\texttt{XeLaTeX}}}
		}
	};
\end{tikzpicture}
\end{center}

% Petit bilan dans une boite : PDFLaTeX = le plus générique et pratique (conversion directe du tex en pdf) ; LaTeX = série de transformation (rapide sur de petits documents ; plus de temps sur les plus longs car conversion eps to pdf ; emploi obligatoire de l'eps) ; XeLaTeX = un équivalent à PDFLaTeX (moins rapide, quelques rares différences dans les commandes ; utilisation de toutes les polices d'écriture)

Du coup, si tu veux utiliser plusieurs fonctionnalités, dès lors qu'elles débouchent sur le même mode de compilation, c'est bon, tu peux les utiliser facilement. Sinon, il faut trouver une autre solution ou essayer une autre approche.

%\begin{boite}[colback = Goldenrod, boxrule = 3 pt, coltitle = White]{Petit bilan}{BrickRed}
\begin{boite}{Petit bilan}{Gold}
Nous avons à disposition 3 modes de compilation :

\begin{itemize}[label = \ding{118}]
\item \verb?PDFLaTeX? : le plus pratique et simple à utiliser ; conversion directe du fichier \verb?.tex? en \verb?.pdf?, \\

\item \verb?LaTeX? et co. : série de transformations (efficaces sur de petits documents mais conversion \verb?PS -> PDF? plus longue sur des documents plus importants) ; emploi obligatoire du format \verb?.eps? pour les images, \\

\item \verb?XeLaTeX? : équivalent à \verb?PDFLaTeX? (moins rapide, quelques rares différences dans les commandes pour le texte) ; utilisation possible de n'importe quelle police d'écriture (\textit{Calibri}, \textit{Arial}, \dots{}).
\end{itemize}
\end{boite}

Bien, je crois avoir assez parlé de théorie désormais. Repassons à un peu plus de pratique sous \LaTeX{}.