diff options
author | Karl Berry <karl@freefriends.org> | 2018-12-28 23:28:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-12-28 23:28:50 +0000 |
commit | cd082213a920a9c5fd00d8c7a4926c3218b0daac (patch) | |
tree | 3e5e8ad54dd98c6b92bd867cf8789b22e5f9d9fc /Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres | |
parent | 17c7a9982754c99e891494680131de3d864ae09f (diff) |
guide-latex-fr (27dec18)
git-svn-id: svn://tug.org/texlive/trunk@49522 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres')
23 files changed, 6361 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/annexes.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/annexes.tex new file mode 100644 index 00000000000..98b0f0fe8ac --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/annexes.tex @@ -0,0 +1,168 @@ +% Changement de la numérotation (annexes) +\renewcommand{\thefigure}{A.\arabic{figure}} +\setcounter{figure}{0} +\renewcommand{\thetable}{A.\arabic{table}} +\setcounter{table}{0} + +% Page 1 -- Rappel de mise en forme + +\vspace*{\fill} + +\begin{table}[H] +\centering +\caption{Les différentes possibilités de mise en forme du texte} +\label{annexes-mise-en-forme} +\begin{tabular}{lll} \toprule +Texte & Rendu & Environnement \\ \midrule +\verb?\textbf{gras}? & \textbf{gras} & \verb?bfseries? \\ +\verb?\textit{italique}? & \textit{italique} & \verb?itshape? \\ +\verb?\emph{emphase}? & \emph{emphase} & \verb?em? \\ +\verb?\textsl{penché}? & \textsl{penché} & \verb?slshape? \\ +\verb?\textsc{Petites Capitales}? & \textsc{Petites Capitales} & \verb?scshape? \\ +\verb?\textsf{sans empattement}? & \textsf{sans empattement} & \verb?sffamily? \\ +\verb?\texttt{machine}? & \texttt{machine (à écrire)} & \verb?ttfamily? \\ \bottomrule +\end{tabular} +\end{table} + +\vspace*{\fill}\clearpage + +% Page 2 -- Symboles courants sous \LaTeX{} + +\vspace*{\fill} + +\begin{table}[H] +\centering +\caption{Liste non exhaustive des symboles disponibles sous \LaTeX{}} +\label{annexes-liste-symboles} +\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lll} \toprule +\textbf{Code} & \textbf{Rendu} & \textbf{Description} \\ \midrule +\verb?\&? & \& & Esperluette \\ +\verb?\oe? et \verb?\OE? & \oe{} et \OE & Ligature \oe \\ +\verb?\ae? et \verb?\AE? & \ae{} et \AE & Ligature \ae \\ +\verb?\ss? & \ss & Eszett \\ +\verb?\no? & \no & Numéro \\ \\ + +\verb?-? & - & Tiret court \\ +\verb?--? & -- & Tiret moyen \\ +\verb?---? & --- & Tiret long \\ +\verb?\dots? & \dots & Points de suspension \\ +\verb?\og? et \verb?fg? & \og et \fg & Guillemets français ouvrants \\ +\verb?``? {\footnotesize{}(accents graves)} & `` & Guillemets anglais ouvrants \\ +\verb?''? {\footnotesize{}(apostrophes)} & '' & Guillemets anglais fermants \\ +\verb?\%? & \% & Pourcent \\ +\verb?\euro? & \euro{} & Euro (package \verb?marvosym?) \\ +\verb?\$? & \$ & Dollar \\ +\verb?\textcopyright? & \textcopyright & Copyright \\ +\verb?\textregistered? & \textregistered & Marque déposée \\ +\verb?\texttrademark? & \texttrademark & Trademark \\ \\ + +\verb?\#? & \# & Dièse \\ +\verb?\{? & \{ & Accolade ouvrante \\ +\verb?\}? & \} & Accolade fermante \\ +\verb?\_? & \_ & \textit{Underscore} \\ +\verb?\textbackslash? & \textbackslash & \textit{Backslash} \\ +\verb?\textasciitilde? & \textasciitilde & Tilde \\ \bottomrule +\end{tabular*} +\end{table} + +\vspace*{\fill}\clearpage + +% Page 3 -- Symboles du package pifont + +\vspace*{\fill} + +\begin{table}[H] +\centering +\caption{Liste des symboles du package \texttt{pifont}} +\resizebox{\linewidth}{!}{\begin{tabular}{*{7}{cc|}cc} +32 & \ding{32} & 33 & \ding{33} & 34 & \ding{34} & 35 & \ding{35} & 36 & \ding{36} & 37 & \ding{37} & 38 & \ding{38} & 39 & \ding{39} \\ +40 & \ding{40} & 41 & \ding{41} & 42 & \ding{42} & 43 & \ding{43} & 44 & \ding{44} & 45 & \ding{45} & 46 & \ding{46} & 47 & \ding{47} \\ +48 & \ding{48} & 49 & \ding{49} & 50 & \ding{50} & 51 & \ding{51} & 52 & \ding{52} & 53 & \ding{53} & 54 & \ding{54} & 55 & \ding{55} \\ +56 & \ding{56} & 57 & \ding{57} & 58 & \ding{58} & 59 & \ding{59} & 60 & \ding{60} & 61 & \ding{61} & 62 & \ding{62} & 63 & \ding{63} \\ +64 & \ding{64} & 65 & \ding{65} & 66 & \ding{66} & 67 & \ding{67} & 68 & \ding{68} & 69 & \ding{69} & 70 & \ding{70} & 71 & \ding{71} \\ +72 & \ding{72} & 73 & \ding{73} & 74 & \ding{74} & 75 & \ding{75} & 76 & \ding{76} & 77 & \ding{77} & 78 & \ding{78} & 79 & \ding{79} \\ +80 & \ding{80} & 81 & \ding{81} & 82 & \ding{82} & 83 & \ding{83} & 84 & \ding{84} & 85 & \ding{85} & 86 & \ding{86} & 87 & \ding{87} \\ +88 & \ding{88} & 89 & \ding{89} & 90 & \ding{90} & 91 & \ding{91} & 92 & \ding{92} & 93 & \ding{93} & 94 & \ding{94} & 95 & \ding{95} \\ +96 & \ding{96} & 97 & \ding{97} & 98 & \ding{98} & 99 & \ding{99} & 100 & \ding{100} & 101 & \ding{101} & 102 & \ding{102} & 103 & \ding{103} \\ +104 & \ding{104} & 105 & \ding{105} & 106 & \ding{106} & 107 & \ding{107} & 108 & \ding{108} & 109 & \ding{109} & 110 & \ding{110} & 111 & \ding{111} \\ +112 & \ding{112} & 113 & \ding{113} & 114 & \ding{114} & 115 & \ding{115} & 116 & \ding{116} & 117 & \ding{117} & 118 & \ding{118} & 119 & \ding{119} \\ +120 & \ding{120} & 121 & \ding{121} & 122 & \ding{122} & 123 & \ding{123} & 124 & \ding{124} & 125 & \ding{125} & 126 & \ding{126} \\ + & & 161 & \ding{161} & 162 & \ding{162} & 163 & \ding{163} & 164 & \ding{164} & 165 & \ding{165} & 166 & \ding{166} & 167 & \ding{167} \\ +168 & \ding{168} & 169 & \ding{169} & 170 & \ding{170} & 171 & \ding{171} & 172 & \ding{172} & 173 & \ding{173} & 174 & \ding{174} & 175 & \ding{175} \\ +176 & \ding{176} & 177 & \ding{177} & 178 & \ding{178} & 179 & \ding{179} & 180 & \ding{180} & 181 & \ding{181} & 182 & \ding{182} & 183 & \ding{183} \\ +184 & \ding{184} & 185 & \ding{185} & 186 & \ding{186} & 187 & \ding{187} & 188 & \ding{188} & 189 & \ding{189} & 190 & \ding{190} & 191 & \ding{191} \\ +192 & \ding{192} & 193 & \ding{193} & 194 & \ding{194} & 195 & \ding{195} & 196 & \ding{196} & 197 & \ding{197} & 198 & \ding{198} & 199 & \ding{199} \\ +200 & \ding{200} & 201 & \ding{201} & 202 & \ding{202} & 203 & \ding{203} & 204 & \ding{204} & 205 & \ding{205} & 206 & \ding{206} & 207 & \ding{207} \\ +208 & \ding{208} & 209 & \ding{209} & 210 & \ding{210} & 211 & \ding{211} & 212 & \ding{212} & 213 & \ding{213} & 214 & \ding{214} & 215 & \ding{215} \\ +216 & \ding{216} & 217 & \ding{217} & 218 & \ding{218} & 219 & \ding{219} & 220 & \ding{220} & 221 & \ding{221} & 222 & \ding{222} & 223 & \ding{223} \\ +224 & \ding{224} & 225 & \ding{225} & 226 & \ding{226} & 227 & \ding{227} & 228 & \ding{228} & 229 & \ding{229} & 230 & \ding{230} & 231 & \ding{231} \\ +232 & \ding{232} & 233 & \ding{233} & 234 & \ding{234} & 235 & \ding{235} & 236 & \ding{236} & 237 & \ding{237} & 238 & \ding{238} & 239 & \ding{239} \\ + & & 241 & \ding{241} & 242 & \ding{242} & 243 & \ding{243} & 244 & \ding{244} & 245 & \ding{245} & 246 & \ding{246} & 247 & \ding{247} \\ +248 & \ding{248} & 249 & \ding{249} & 250 & \ding{250} & 251 & \ding{251} & 252 & \ding{252} & 253 & \ding{253} & 254 & \ding{254} +\end{tabular}} +\end{table} + +\vspace*{\fill}\newpage + +% Page 4 -- Symboles mathématiques courants + +%\vspace*{\fill} + +\begin{table}[H] +\centering +\caption{Liste non exhaustive des symboles mathématiques disponibles sous \LaTeX{}} +\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lll} \toprule +\textbf{Code} & \textbf{Rendu} & \textbf{Description} \\ \midrule +\verb?$i_2$? & $i_2$ & Indice \\ +\verb?$i^3$? & $i^3$ & Exposant \\ +\verb?$\frac{a}{b}$? & $\frac{a}{b}$ & Fraction \\ +\verb?$\cfrac{a}{b + \cfrac{c}{d}}$? & $\cfrac{a}{b + \cfrac{c}{d}}$ & Fraction (étages) \\ \\ + +\verb?$\times$? & $\times$ & Multiplication \\ +\verb?$\pm$? & $\pm$ & Plus ou moins \\ +\verb?$\leq$? et \verb?$\geq$? & $\leq$ et $\geq$ & Inégalités larges \\ +\verb?$\leqslant$? et \verb?$\geqslant$? & $\leqslant$ et $\geqslant$ & Inégalités larges (bis) \\ +\verb?$\equiv$? & $\equiv$ & Congruence \\ +\verb?$\neq$? & $\neq$ & Non égal \\ +\verb?$\simeq$? & $\simeq$ & Environ égal \\ +\verb?$\approx$? & $\approx$ & Environ égal (bis) \\ +\verb?$\sim$? & $\sim$ & \'Equivalence \\ \\ + +\verb?$\forall$? & $\forall$ & Pour tout élément \\ +\verb?$\exists$? & $\exists$ & Existence \\ +\verb?$\Rightarrow$? & $\Rightarrow$ & Implication \\ +\verb?$\infty$? & $\infty$ & Infini \\ +\verb?$\int$? & $\int$ & Intégrale simple \\ +\verb?$\iint$? & $\iint$ & Intégrale double \\ +\verb?$iiint$? & $\iiint$ & Intégrale triple \\ +\verb?$\oint$? & $\oint$ & Intégrale curviligne \\ +\verb?$\int_0^{+\infty} f(x)\,dx$? & $\int_0^{+\infty} f(x)\,dx$ & Intégration \\ +\verb?$\sum$? & $\sum$ & Somme \\ +\verb?$\partial$? & $\partial$ & Dérivée partielle \\ \bottomrule +\end{tabular*} +\end{table} + +%\vspace*{\fill} +\clearpage + +% Page 5 -- Lettres grecques + +\vspace*{\fill} + +\begin{table}[H] +\caption{La liste complète des lettres grecques sous \LaTeX{}} +\begin{tabular}{*{8}l} +$\alpha$ & \verb?\alpha? & $\eta$ & \verb?\eta? & $\xi$ & \verb?\xi? & $\tau$ & \verb?\tau? \\ +$\beta$ & \verb?\beta? & $\theta$ & \verb?\theta? & $\pi$ & \verb?\pi? & $\upsilon$ & \verb?\upsilon? \\ +$\gamma$ & \verb?\gamma? & $\vartheta$ & \verb?\vartheta? & $\varpi$ & \verb?\varpi? & $\phi$ & \verb?\phi? \\ +$\delta$ & \verb?\delta? & $\kappa$ & \verb?\kappa? & $\rho$ & \verb?\rho? & $\varphi$ & \verb?\varphi? \\ +$\epsilon$ & \verb?\epsilon? & $\lambda$ & \verb?\lambda? & $\varrho$ & \verb?\varrho? & $\chi$ & \verb?\chi? \\ +$\varepsilon$ & \verb?\varepsilon? & $\mu$ & \verb?\mu? & $\sigma$ & \verb?\sigma? & $\psi$ & \verb?\psi? \\ +$\zeta$ & \verb?\zeta? & $\nu$ & \verb?\nu? & $\varsigma$ & \verb?\varsigma? & $\omega$ & \verb?\omega? \\ \\ +$\Gamma$ & \verb?\Gamma? & $\Lambda$ & \verb?\Lambda? & $\Sigma$ & \verb?\Sigma? & $\Psi$ & \verb?\Psi? \\ +$\Delta$ & \verb?\Delta? & $\Xi$ & \verb?\Xi? & $\Upsilon$ & \verb?\Upsilon? & $\Omega$ & \verb?\Omega? \\ +$\Theta$ & \verb?\Theta? & $\Pi$ & \verb?\Pi? & $\Phi$ & \verb?\Phi? +\end{tabular} +\end{table} + +\vspace*{\fill}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code_base.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code_base.tex new file mode 100644 index 00000000000..aac7623de4a --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code_base.tex @@ -0,0 +1,18 @@ +Par la suite, pour alléger les exemples, le préambule ne sera plus renseigné dans les codes \LaTeX{} mis à disposition. Ces derniers seront basés sur l'architecture du code minimal fourni ci-après. L'ajout de nouveaux packages sera signalé au début du code par un commentaire. + +\begin{code}{Le code minimal} +\documentclass[a4paper, 12pt]{report} + +% PDFLaTeX +\usepackage{lmodern} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} + + +\begin{document} + +% Ecrire le code ici ! + +\end{document} +\end{code}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/config.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/config.tex new file mode 100644 index 00000000000..3922058dffb --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/config.tex @@ -0,0 +1,158 @@ +% PDFLaTeX +\usepackage{lmodern} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lettrine, lipsum} % Pour mettre des lettrines - Pour les tests + +\usepackage{fancyhdr, fourier-orns} % En-têtes et pieds de pages -- Bonus pour les en-têtes (\headrule) +\fancyhf{} % Efface tout +\fancypagestyle{mainstyle}{ +\renewcommand{\headrulewidth}{0pt} +\fancyhead[L]{\textsc{\nouppercase{\leftmark}}} % Mettre l'en-tête en small capitals +\renewcommand{\footrulewidth}{0pt} +\fancyfoot[C]{\thepage}} +\pagestyle{plain} % mainstyle appliqué plus tard +\renewcommand{\headrule}{\hrulefill \raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright\quad}\hrulefill} + +\usepackage{graphicx, float, subcaption} % Pour mettre les images +\graphicspath{{./Images/}} % Sous-répertoire pour mettre les images + +\usepackage{enumitem, multicol, pifont, eurosym} % Pour les listes à puce +\setlist[itemize, 1]{label = {--}, itemsep = \baselineskip} +\setlist[enumerate, 1]{label = \arabic*), itemsep = \baselineskip} + +\usepackage{amsmath, amsfonts, amssymb, mathrsfs, esvect, stmaryrd} % Pour faire des maths + +\usepackage{array, booktabs, longtable} % Pour les tableaux +\renewcommand{\arraystretch}{1.3} +\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} + +\usepackage[breakable, listings, skins]{tcolorbox} % Boîtes personnalisables +\usepackage{pgfornament, pgfplots} % TikZ et tracé de fonctions +\usetikzlibrary{arrows, arrows.meta, decorations.text, mindmap, positioning} + +\usepackage{pdfpages, qrcode} % Pour inclure des PDF -- Pour le QR Code + +\usepackage[hyphens]{url} % Pour des césures correctes dans les URLs +\usepackage[pdfauthor = {{Adrien Bouzigues - I13 Cl215}}, pdftitle = {{Initiation à LaTeX}}, pdfstartview = Fit, pdfpagelayout = SinglePage, pdfnewwindow = true, bookmarksnumbered = true, breaklinks, colorlinks, linkcolor = red, urlcolor = black, citecolor = cyan, linktoc = all]{hyperref} % Renvois -- Options Adobe + +% Chargement après hyperref selon le guide d'utilisation +\usepackage[os = win]{menukeys} % Pour "écrire" des touches claviers +\renewmenumacro{\keys}[+]{shadowedroundedkeys} % Style choisi pour les touches -- [+] = séparateur + +\makeatletter\@addtoreset{section}{chapter}\makeatother % RAZ des numéros de section après un chapitre +\renewcommand{\thepart}{\Roman{part}} +\renewcommand{\thechapter}{\arabic{chapter}} +\renewcommand{\thesection}{\thechapter.\arabic{section}} + + +% Commandes créées +% Page de garde et mind map +\definecolor{BlueFR}{RGB}{0,35,149} +\definecolor{RedFR}{RGB}{237,41,57} +\definecolor{NewOrange}{RGB}{247,111,43} +\definecolor{Gold}{RGB}{255,215,0} +\definecolor{NewGold}{RGB}{130,114,46} +\definecolor{LOrchid}{RGB}{177,97,245} +\definecolor{LOrange}{RGB}{255,102,32} +\definecolor{LLimeGreen}{RGB}{140,251,0} +\definecolor{LCyan}{RGB}{4,254,251} +\definecolor{LRed}{RGB}{255,12,12} + +% Aperçu Texmaker (Aide_LaTeX1.png) -- Hred = Red - Hyellow = Gold +\definecolor{Horange}{RGB}{255,156,0} +\definecolor{Hgreen}{RGB}{0,167,0} +\definecolor{Hblue}{RGB}{0,234,255} +\definecolor{Hpurple}{RGB}{169,15,219} + + +% Raccourcis +\newcommand{\Windows}{\texttt{Windows}} +\newcommand{\Linux}{\texttt{Linux}} +\newcommand{\Apple}{\texttt{Apple}} +\newcommand{\LinkedIn}{\texttt{LinkedIn}} +\newcommand{\MiKTeX}{\texttt{MiKTeX}} +\newcommand{\Texmaker}{\texttt{Texmaker}} +\newcommand{\TikZ}{Ti\textit{k}Z} +\newcommand{\Paint}{\texttt{Paint}} +\newcommand{\GIMP}{\texttt{GIMP}} +\newcommand{\Inkscape}{\texttt{Inkscape}} + + +% "Boîtes" -- Package tcolorbox +% Boîtes types +\newtcolorbox{boitetype}[4][]{enhanced, breakable, before upper = {\parindent17.6pt}, beforeafter skip = \baselineskip, colframe = #3, colback = #4, boxrule = 2pt, arc = 4mm, fonttitle = \bfseries, title = {#2}, coltitle = black, #1} % before upper = alinéa dans boîte + +\newtcolorbox{boitecointype}[7][]{% +cornerrulewidth/.store in = {\tcbcornerrulewidth}, +cornerrulewidth = #7, +topcornercolor/.store in = {\tcbtopcornercolor}, +topcornercolor = #3, +bottomcornercolor/.store in = {\tcbbottomcornercolor}, +bottomcornercolor = #4, +enhanced, breakable, before upper = {\parindent17.6pt}, beforeafter skip = \baselineskip, sharp corners, boxrule = 0pt, colback = #5, title = {#2}, fonttitle = \bfseries, coltitle = black, colbacktitle = #6, underlay unbroken = { + \draw[\tcbtopcornercolor, line width = \tcbcornerrulewidth] ([xshift = -\tcbcornerrulewidth/2]frame.west) -- ([shift = {(-\tcbcornerrulewidth/2,\tcbcornerrulewidth/2)}]frame.north west) -- ([yshift = \tcbcornerrulewidth/2]frame.north); + \draw[\tcbtopcornercolor, line width = \tcbcornerrulewidth] ([xshift = \tcbcornerrulewidth/2]frame.east) -- ([shift = {(\tcbcornerrulewidth/2,-\tcbcornerrulewidth/2)}]frame.south east) -- ([yshift = -\tcbcornerrulewidth/2]frame.south); +}, underlay first = { + \draw[\tcbtopcornercolor, line width = \tcbcornerrulewidth] ([xshift = -\tcbcornerrulewidth/2]frame.west) -- ([shift = {(-\tcbcornerrulewidth/2,\tcbcornerrulewidth/2)}]frame.north west) -- ([yshift = \tcbcornerrulewidth/2]frame.north); +}, underlay last = { + \draw[\tcbtopcornercolor, line width = \tcbcornerrulewidth] ([xshift = \tcbcornerrulewidth/2]frame.east) -- ([shift = {(\tcbcornerrulewidth/2,-\tcbcornerrulewidth/2)}]frame.south east) -- ([yshift = -\tcbcornerrulewidth/2]frame.south); +}, #1} + + +% Construction des autres boîtes en fonction d'une boîte type +\newenvironment{boite}[3][]{\begin{boitetype}[#1]{#2}{#3}{white}}{\end{boitetype}} +\newenvironment{boitecoin}[3][]{\begin{boitecointype}[#1]{#2}{#3}{#3}{#3!5!white}{#3!50}{2pt}}{\end{boitecointype}} + +\newenvironment{regles}[2][]{\begin{boitetype}[sharp corners, boxrule = 3pt, coltitle = white, #1]{#2}{BrickRed}{Goldenrod}}{\end{boitetype}} +\newenvironment{definition}[2][]{\begin{boitecoin}[#1]{#2}{Green}}{\end{boitecoin}} +\newenvironment{conseil}[2][]{\begin{boitetype}[#1]{#2}{cyan}{cyan!40}}{\end{boitetype}} +\newenvironment{attention}[2][]{\begin{boitetype}[left = 6mm, coltitle = white, sharp corners = west, underlay = {% + \path[fill = yellow!50!black] (frame.south west) rectangle node[white] {\huge\bfseries{}!} ([xshift = 4mm]frame.north west); +}, drop fuzzy shadow, #1]{#2}{yellow!20!black}{yellow!50}}{\end{boitetype}} % Nouvelle boîte "attention" -- Inspiration : boîte "marker" (code source guide tcolorbox) + +% Utilité ? --> Si non, à supprimer ! +%\newenvironment{exemple}[2][]{\begin{boitetype}[sharp corners, boxrule = 0pt, #1]{#2}{Goldenrod}{Goldenrod!40}}{\end{boitetype}} + +% !!! A supprimer !!! Temporaire (génération V2) +\newenvironment{conseilbox}[2][]{\begin{boitetype}[#1]{#2}{cyan}{cyan!40}}{\end{boitetype}} +\newenvironment{attentionbox}[2][]{\begin{boitetype}[#1]{#2}{orange}{orange!40}}{\end{boitetype}} +% !!! Fin suppression !!! + +% Boite type avec listing impossible --> problème lors de l'appel du nouvel environnement (en gros, avec une couche supplémentaire \newenvironment, listing n'arrive pas à bien détecter le début et la fin de l'environnement donc erreur) +%\newtcblisting{code}[2][]{enhanced, breakable, before upper = {\parindent17.6pt}, beforeafter skip = \baselineskip, colframe = LimeGreen, colback = LimeGreen!5, boxrule = 2pt, arc = 4mm, fonttitle = \bfseries, title = {#2}, coltitle = black, colbacktitle = LimeGreen!50, listing options = {basicstyle = \ttfamily\small, keepspaces = true, columns = flexible, breaklines = true, inputencoding = utf8, language = TeX, numbers = none, showstringspaces = false, commentstyle = \color{gray}}, listing only, #1} % Ou passer en "listing and text" ? (affichage du résultat ==> enlever/commenter tous les préambules) + +% Stockage de 2 variables principales (plus propre) +% Autre solution : utiliser le code source tcolorbox (tcbcol@frame : couleur définie par colback) +% Attention : breakable impossible si "listing side text"... +\newtcblisting{code}[2][]{ +maincolor/.store in = {\tcbmaincol}, +maincolor = LimeGreen, +rulewidth/.store in = {\tcbrulewidth}, +rulewidth = 2pt, +enhanced, breakable, beforeafter skip = \baselineskip, sharp corners, boxrule = \tcbrulewidth, colframe = \tcbmaincol, colback = \tcbmaincol!15, colbacktitle = \tcbmaincol!50, coltitle = black, fonttitle = \bfseries, title = {#2}, attach boxed title to top center = {yshift = -\tcbrulewidth/2-\tcboxedtitleheight/2, yshifttext = -\tcboxedtitleheight/2}, boxed title style = {boxrule = \tcbrulewidth, frame code = { + \path[tcb fill frame] ([xshift = -3mm]frame.west) -- (frame.north west) -- (frame.north east) -- ([xshift = 3mm]frame.east) -- (frame.south east) -- (frame.south west) -- cycle;}, interior code = { + \path[tcb fill interior] ([xshift = -2mm]interior.west) -- (interior.north west) -- (interior.north east) -- ([xshift = 2mm]interior.east) -- (interior.south east) -- (interior.south west) -- cycle;}}, +listing options = {basicstyle = \ttfamily\small, keepspaces = true, columns = flexible, breaklines = true, breakatwhitespace = true, inputencoding = utf8, language = TeX, numbers = none, showstringspaces = false, commentstyle = \color{gray}}, listing only, drop fuzzy shadow, #1} + +\newtcblisting{codedisplay}[2][]{ +maincolor/.store in = {\tcbmaincol}, +maincolor = LimeGreen, +rulewidth/.store in = {\tcbrulewidth}, +rulewidth = 2pt, +enhanced, breakable, beforeafter skip = \baselineskip, sharp corners, boxrule = \tcbrulewidth, colframe = \tcbmaincol, colback = \tcbmaincol!15, colbacktitle = \tcbmaincol!50, coltitle = black, fonttitle = \bfseries, title = {#2}, attach boxed title to top center = {yshift = -\tcbrulewidth/2-\tcboxedtitleheight/2, yshifttext = -\tcboxedtitleheight/2}, boxed title style = {boxrule = \tcbrulewidth, frame code = { + \path[tcb fill frame] ([xshift = -3mm]frame.west) -- (frame.north west) -- (frame.north east) -- ([xshift = 3mm]frame.east) -- (frame.south east) -- (frame.south west) -- cycle;}, interior code = { + \path[tcb fill interior] ([xshift = -2mm]interior.west) -- (interior.north west) -- (interior.north east) -- ([xshift = 2mm]interior.east) -- (interior.south east) -- (interior.south west) -- cycle;}}, +listing options = {basicstyle = \ttfamily\small, keepspaces = true, columns = flexible, breaklines = true, breakatwhitespace = true, inputencoding = utf8, language = TeX, numbers = none, showstringspaces = false, commentstyle = \color{gray}}, listing side text, righthand ratio = 0.4, sidebyside gap = 13mm, bicolor, colbacklower = white, drop fuzzy shadow, #1} + +% Boîte spéciale code TikZ ??? + +% Ne fonctionne pas... +%\newenvironment{code}[2][]{\begin{boitecodetype}[#1]{#2}{LimeGreen}{LimeGreen!5!white}{LimeGreen!50}{2pt}{TeX}}{\end{boitecodetype}} + +% Nécessaire ? --> chapitre PSTricks... +\newtcblisting{codePY}[2][]{breakable, beforeafter skip = \baselineskip, colframe = Orchid, colback = white, boxrule = 2pt, arc = 6pt, title = \textbf{#2}, coltitle = black, listing options = {basicstyle = \ttfamily\small, keepspaces = true, columns = flexible, breaklines = true, inputencoding = utf8, language = Python, xleftmargin = 17pt, numbers = left, numbersep = 13pt, numberstyle = \ttfamily\footnotesize\color{OrangeRed}, showstringspaces = false, commentstyle = \color{gray}, keywordstyle = \color{Blue}, stringstyle = \color{orange}}, listing only, #1} + +% Pour résoudre le problème des accents dans le code (listings sous tcolorbox) +\lstset{literate = {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 {ç}{{\c{}c}}1 {°}{{\degres{}}}1}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/intro.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/intro.tex new file mode 100644 index 00000000000..6e8080394d1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/intro.tex @@ -0,0 +1,163 @@ +% Licence Creative Commons +\vspace*{\stretch{1}} + +\begin{center} +\begin{tikzpicture} +% Paramétrage +\def\poly{13} +\pgfmathsetmacro\polyg{\poly - 1} +\def\R{0.43\linewidth} +\def\ornament{87} + +% Tracé du polygone avec des "fioritures" +\draw[NewOrange] (90:\R) \foreach \i in {1,...,\polyg} {to[ornament = \ornament] (90-\i*360/\poly:\R)} to[ornament = \ornament] cycle; % Usage de \polyg pour bien fermer avec un cycle + +% Image au centre - Décalage possible (ajuster à la main) +\node[text width = 0.55\linewidth, align = left] at (0,0) {\vspace{\baselineskip} + +Cette {\oe}uvre, création, site ou texte est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International. \\[\baselineskip] + +Pour accéder à une copie de cette licence, merci de vous rendre à l'adresse suivante \url{http://creativecommons.org/licenses/by-nc-nd/4.0/} ou d'envoyer un courrier à : \\[\baselineskip] + +\begin{center} Creative Commons \\ +444 Castro Street, Suite 900 \\ +Mountain View, California, 94041 \\ +USA \end{center} +}; +\end{tikzpicture} +\end{center} + +\begin{figure}[H] +\centering +\includegraphics[width = 0.7\linewidth]{licence.eps} +\end{figure} + +\vspace*{\stretch{1}} + +\begin{Large} +\color{Red}\textbf{Toutes les versions de ce guide sont soumises à cette licence Creative Commons, y compris les plus anciennes qui peuvent circuler et qui n'y font pas explicitement mention.} +\end{Large} + +\vspace*{\stretch{1}} + +\newpage + +% Mind Map +\vspace*{\stretch{1}} + +%\resizebox{<horizontal size>}{<vertical size>}{} +% Réduction proportionnelle (argument "!") du dessin +\resizebox{\linewidth}{!}{% +\begin{tikzpicture}[mindmap, grow cyclic, align = center, every node/.style = {concept, align = center}, concept color = Gold, level 1/.append style = {level distance = 5cm, sibling angle = 72}, level 2/.append style = {level distance = 3cm, sibling angle = 72}] +\node{\huge\textbf{\LaTeX{}}} + child [concept color = LOrchid] { node {Texte \\ (\pageref{chap_texte} \& \pageref{chap_texte_anx})} + child { node {Mise en forme}} + child { node {Organiser}} + child { node {Page de garde}} + child { node {Sommaire}} + child { node {En-têtes et pieds}} + } + child [concept color = LOrange] { node {Maths \\ (\pageref{chap_maths} \& \pageref{chap_maths_anx})} + child { node {Formules}} + child { node {Ali\-gne\-ment}} % Pour indiquer à LaTeX où faire la césure - Sinon, c'est moche + child { node {Déli\-mi\-teurs}} % Idem + child { node {Matrices}} + } + child [concept color = LLimeGreen] { node {Tableaux \\ (\pageref{chap_table} \& \pageref{chap_table_anx})} + child { node {Tableaux}} + child { node {Boîtes}} + child { node {\texttt{tcolorbox}}} + } + child [concept color = LCyan] { node {Images \\ (\pageref{chap_img} \& \pageref{chap_img_anx})} + child { node {Formats}} + child { node {Insertion}} + child { node {Montage}} + } + child [concept color = LRed] { node {Dessiner \\ (\pageref{chap_dessin_pst} \& \pageref{chap_dessin_tikz})} + child { node {\texttt{PSTricks}}} + child { node {\texttt{TikZ}}} + }; +\end{tikzpicture} +} + +\vspace*{\stretch{1}} + +\newpage + +% Sommaire +{ +\hypersetup{hidelinks} % Sommaire en "noir" +\renewcommand{\contentsname}{Sommaire} +\tableofcontents % Penser à compiler deux fois +} + +\clearpage % Mieux qu'un \newpage ou des erreurs dans le sommaire sinon + +\chapter*{Préambule} + +\phantomsection % Lien hyperref cohérent +\addcontentsline{toc}{part}{Préambule} % Ajout table des matières + +\lettrine{C}{e} guide a tout d'abord été construit pour mon usage personnel afin de regrouper toutes mes connaissances en \LaTeX{}. Il sert aussi à mes camarades de promotion qui désirent se mettre à \LaTeX{}. + +Accessoirement, dans l'éventualité où un parfait inconnu viendrait à lire ce guide, j'espère qu'il pourra l'aider à son tour dans son initiation à \LaTeX{}. \\ + +D'autre part, mes connaissances en \LaTeX{} restent limitées. Je n'ai pas la science infuse et ce guide est loin d'être exhaustif. \textbf{Je propose juste des solutions qui fonctionnent.} N'hésite donc pas à aller te documenter ailleurs si un point ne te semble pas clair ou si tu cherches d'autres informations. + +S'ils ne sont pas légion, il existe d'autres guides en français pour apprendre le \LaTeX{}. Pour ma part, je recommande l'excellent \textit{\LaTeX{}\dots{} pour le prof de maths !} d'Arnaud \textsc{Gazagnes}\footnote{Disponible sur : \url{http://math.univ-lyon1.fr/irem/spip.php?article340}.}, très complet et bien expliqué. Je suis aussi tombé plus récemment sur \textit{Rédaction avec \LaTeX{}} de Vincent \textsc{Goulet}\footnote{Disponible sur : \url{https://ctan.org/pkg/formation-latex-ul}.}, très agréable à lire et bien détaillé lui aussi. \\ + +Et si jamais tu désires retrouver mon guide à jour ainsi que les fichiers d'aide que j'ai récoltés, ils sont disponibles à l'adresse suivante : \begin{center} \url{http://drive.google.com/drive/folders/0BzU2BdcGjfU5Tk1XaXhxbk5JcEE?usp=sharing} \end{center} + +N'hésite pas à laisser des commentaires ou à signaler des fautes dans le GForm mis à disposition. Sur ce, bonne lecture ! + +\begin{flushright} +Adrien \textsc{Bouzigues} \\ +I13 Cl215 +\end{flushright} + +\newpage + +% QR Code - Dessin final +\vspace*{\stretch{1}} + +\begin{figure}[H] +\centering +\qrcode[height = 0.45\linewidth]{http://drive.google.com/drive/folders/0BzU2BdcGjfU5Tk1XaXhxbk5JcEE?usp=sharing} +\caption*{\large\textcolor{BrickRed}{Lien de mon \texttt{Drive} \LaTeX{}\dots{} sous la forme d'un code QR !}} +\end{figure} + +\vspace*{\stretch{1}} + +\begin{center} +\begin{tikzpicture} +% Symbole au centre +\tikzset{pgfornamentstyle/.style = {fill opacity = 0.5, line width = 1.3pt}} +\node[anchor = east] at (\linewidth,-0.17\linewidth) +{\pgfornament[width = 0.2\linewidth, color = Green]{24}}; + +% Texte arrondi +\draw[White, postaction = {decorate}, decoration = {text along path, text = {|\fontsize{35pt}{15pt}\selectfont\color{NewGold}\scshape|TikZ Seal Of Quality}, text align = center}] +(0.5\linewidth,0) arc [start angle = -180, end angle = 0, radius = 0.4\linewidth]; +\end{tikzpicture} +\end{center} + +\vspace*{\stretch{1}} + +\newpage + +\vspace*{0.1\paperheight} + +% Dédicace +\begin{flushright} +\itshape{}\^O Capitaine ! Mon Capitaine ! + +Pendant chaque traversée, + +Tu restes à mes côtés + +Et soutiens mon avancée. +\end{flushright} + +\hfill \hrulefill + +\newpage
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-compilation.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-compilation.tex new file mode 100644 index 00000000000..c4fe84bf364 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-compilation.tex @@ -0,0 +1,160 @@ +\chapter{Compiler avec \LaTeX{}} + +\label{compilation_intro}\lettrine{P}{our} faire du \LaTeX{}, il faut déjà connaître le point suivant : \LaTeX{} est un langage et un système de composition de documents. Généralement, en informatique, un langage requiert une étape obligatoire : la compilation. Et \LaTeX{} n'échappe pas à cette règle. + +\section{Principe de la compilation} + +Quand tu vas rédiger un document sous \LaTeX{}, tu vas devoir procéder en 3 temps : + +\begin{figure}[H] +\centering +\resizebox{0.95\linewidth}{!}{\input{./Images/compilation_schema}} +\caption{Les 3 étapes pour rédiger un document sous \LaTeX{}} +\end{figure} + +Pour entrer un peu plus dans les détails, tu dois donc : \begin{enumerate} +\item écrire ton document en \LaTeX{} (respect de ses conventions et utilisation de commandes spécifiques) ; + +\item demander à un moteur \LaTeX{} de transformer ton document et ses commandes en un fichier lisible et utilisable : c'est la compilation ; + +\item profiter du résultat fourni (format PDF) ou l'évaluer pour ensuite apporter des modifications au document, et ainsi de suite. \\ +\end{enumerate} + +Quant au moteur \LaTeX{} utilisé, il en existe plusieurs. Pour débuter, je recommande d'utiliser plutôt pdf\TeX{} (intitulé apparemment PDF\LaTeX{} sous \Texmaker{}), qui permet de passer d'un coup du document \LaTeX{} au fichier PDF final. + +Quant aux autres moteurs, je les aborde bien plus loin dans ce guide, en page \pageref{compilation_details}. Je recommande plutôt de t'y rendre une fois que tu as un peu d'expérience sous \LaTeX{}, pour ne pas perdre du temps et acquérir des bases solides. \\ + +Nous savons désormais que nous devons compiler avec le moteur pdf\TeX{}\dots{} mais nous ne savons toujours pas comment faire ! Pas de panique : les logiciels que je t'ai fait installer prennent tout en charge. + +\section{Démarrer avec \Texmaker{}} + +Pour gérer et éditer ses fichiers \LaTeX{}, \Texmaker{} est un excellent logiciel. Et je sais de quoi je parle car, avant de m'y mettre, j'utilisais un autre logiciel, tellement exécrable que j'ai fini par oublier son nom. Aujourd'hui, je ne fais rien sans \Texmaker{}. Voyons un aperçu de ce dernier : + +\begin{figure}[H] +\includegraphics[width = \linewidth]{Aide_LaTeX1.png} +\caption{Aperçu de \Texmaker{}} +\end{figure} + +Revenons sur chaque point : + +\begin{itemize}[label = \ding{213}] +\item \textcolor{red}{barre de menus et d'outils :} plein de commandes \LaTeX{} préremplies. Personnellement, je l'utilise très rarement (y compris le bouton de sauvegarde). Je préfère utiliser les raccourcis clavier (en l'occurrence, \keys{\ctrl + S}) ; + +\item \textcolor{Horange}{structure du document :} très pratique pour naviguer dans le code du document ouvert ; + +\item \textcolor{Hgreen}{raccourcis de commandes :} encore des commandes. Il peut être intéressant d'y jeter un coup d'{\oe}il une fois ce guide bien avancé. Il y a principalement des commandes pour les formules mathématiques et quelques unes pour la mise en forme du texte ; + +\item \textcolor{Gold}{code \LaTeX{} :} c'est ici que tu tapes le texte de ton document et les commandes \LaTeX{} nécessaires pour le mettre en forme ; + +\item \textcolor{Hpurple}{informations du compilateur :} le résultat lors de la génération du PDF. Très utile, s'il y a des erreurs, pour pouvoir se corriger ; + +\item \textcolor{Hblue}{aperçu du PDF :} une fenêtre avec l'aperçu du fichier PDF généré. \\ +\end{itemize} + +Si jamais cet aperçu n'est pas disponible (fenêtre d'affichage inexistante comme sur mon image), il faut procéder de la manière suivante : \begin{enumerate} +\item Aller dans \verb?Options? puis dans \verb?Configurer Texmaker?. + +\item Dans l'onglet \verb?Afficheur Pdf?, choisir les options \verb?Afficheur Pdf interne? et \verb?Intégré à la fenêtre?. Valider. + +\item Un bouton \verb?Pdf Viewer? est alors disponible en bas à gauche et te permet d'activer ou non cette fenêtre d'aperçu. +\end{enumerate} + +Si jamais ce n'est pas clair, j'espère que cette capture d'écran permettra de lever le moindre doute : + +\begin{figure}[H] +\includegraphics[width = \linewidth]{apercu_pdf.png} +\caption{Procédure pour obtenir l'aperçu du PDF} +\end{figure} + +\begin{conseil}{L'aide en ligne} +Si jamais tu as d'autres questions sur \Texmaker{}, son site officiel (\url{http://www.xm1math.net/texmaker/index_fr.html}) est le meilleur endroit pour avoir des réponses et fournit aussi un tutoriel pour débuter avec \LaTeX{}. + +Si certains points de ce guide te semblent obscures, tu peux donc t'y rendre, ainsi que sur \url{http://fr.wikibooks.org/wiki/LaTeX}. \\ + +N'hésite pas quand tu débutes. Les deux sites sont en français et répondent à beaucoup de questions assez facilement (\textit{i.e.} avec un code simple). +\end{conseil} + +\section{Compiler avec \Texmaker{}} + +Maintenant que l'environnement propre à \Texmaker{} a été présenté, voyons un peu plus dans le détail un dernier point : la compilation. Pour commencer, reprenons le code \og Bonjour monde ! \fg{} utilisé en page \pageref{hello_world} : + +\begin{code}{Bonjour monde !} +\documentclass[]{report} + + +\begin{document} + +Bonjour monde ! + +\end{document} +\end{code} + +Je suppose que tu as suivi les premières indications fournies en page \pageref{hello_world}, soit ouvrir \Texmaker{}, recopier le code \og Bonjour monde ! \fg{} fourni et enregistrer ton document. + +Si tu n'as pas précisé d'extension, tu remarqueras au passage que ton fichier a été sauvegardé avec l'extension \verb?.tex?, qui correspond à l'extension pour des fichiers \LaTeX{}. \\ + +Il existe ensuite 3 façons de lancer la compilation de ton document \LaTeX{} : \begin{itemize}[label = \ding{213}] +\item via l'invite de commandes de ton système d'exploitation (le CMD pour les utilisateurs de \Windows{})\dots{} maisje n'en parlerai pas pendant ce guide. + +Sache cependant que c'est possible mais ne présente aucun intérêt comme \Texmaker{} propose des solutions plus pratiques ; + +\item via \Texmaker{} avec des clics souris ; + +\item via \Texmaker{} avec des raccourcis clavier (le plus rapide à mon sens). +\end{itemize} + +Revenons sur les 2 derniers points plus dans le détail, pour que tu comprennes bien les actions à effectuer. \\ + +Pour une compilation via \Texmaker{} avec des clics souris, il faut procéder en 3 temps (cf. \figurename{} \ref{compilation_clics} si besoin) : \begin{enumerate} +\item Choisir le moteur de compilation, PDF\LaTeX{} dans notre cas, en haut dans la barre d'outils. + +\item Lancer la compilation en cliquant sur la flèche à gauche du choix du moteur de compilation. Attendre que la compilation soit terminée. + +\item Juste à droite du choix du moteur de compilation, bien choisir l'option \verb?Voir PDF? et cliquer sur la flèche associée pour afficher le résultat. +\end{enumerate} + +\begin{figure}[H] +\centering +\includegraphics[width = 0.85\linewidth]{compilation_clics.png} +\caption{Lancer la compilation avec des clics souris (\Texmaker{})} +\label{compilation_clics} +\end{figure} + +Pour une compilation via \Texmaker{} avec des raccourcis clavier, il faut procéder en 2 temps (cf. \figurename{} \ref{compilation_clavier} si besoin) : \begin{enumerate} +\item Lancer la compilation avec le moteur PDF\LaTeX{} avec la touche \keys{F6}. + +\item Afficher le résultat avec la touche \keys{F7}. +\end{enumerate} + +Ces raccourcis sont personnalisables dans les options de \Texmaker{}, comme décrit ci-après (\figurename{} \ref{compilation_clavier}). + +\begin{figure}[H] +\centering +\includegraphics[width = 0.85\linewidth]{compilation_clavier.png} +\caption{Configuration des raccourcis clavier pour lancer la compilation (\Texmaker{})} +\label{compilation_clavier} +\end{figure} + +Mais il y a encore plus rapide : lancer la compilation ET avoir l'aperçu du PDF actualisé en un seul raccourci clavier. C'est ce que \Texmaker{} appelle la \og compilation rapide \fg{}\footnote{Il s'agit du nom attribué par le concepteur de \Texmaker{}. Le temps nécessaire pour compiler le document n'est en rien diminué.}. + +Tout d'abord, il faut s'assurer que la compilation rapide est bien programmée. Pour ce faire, il faut configurer \Texmaker{} de la manière suivante : + +\begin{figure}[H] +\centering +\includegraphics[width = 0.85\linewidth]{compilation_rapide.png} +\caption{Configuration de la compilation rapide (\Texmaker{})} +\end{figure} + +Ensuite, il suffit d'appuyer sur la touche \keys{F1} pour lancer la compilation rapide. Il s'agit de la touche par défaut, paramétrable dans les options \Texmaker{} comme indiqué en \figurename{} \ref{compilation_clavier}. \\ + +Enfin, pour terminer les explications, il faut savoir que les compilations réalisées sous \Texmaker{} sont équivalentes à l'utilisation de l'invite de commandes. Grâce à \Texmaker{}, cette utilisation est transparente et grandement simplifiée\dots{} pour les non-initiés nous dirons ! + +\begin{attention}{La compilation : le conseil personnel} +Peu importe le moteur utilisé pour la compilation, tu peux remarquer qu'un fichier \verb?.tex? entraîne toujours la génération d'autres fichiers. \textbf{\color{orange}C'est pourquoi je recommande toujours de travailler avec le fichier \verb?.tex? placé dans un dossier,} pour éviter de submerger tes autres dossiers et de te perdre parmi les fichiers. \\ + +Enfin, ces fichiers secondaires n'ont besoin d'être conservés que le temps de travailler sur un document \LaTeX{}. \textbf{\color{Green}Le seul fichier qui compte est celui avec l'extension \verb?.tex?.} C'est lui qui contient tout le code nécessaire à la compilation et à l'obtention du PDF final. +\end{attention} + +\vspace{\baselineskip} + +Attaquons désormais la raison première de ce guide : faire du \LaTeX{}.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-historique.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-historique.tex new file mode 100644 index 00000000000..c6c8c004d93 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-historique.tex @@ -0,0 +1,123 @@ +\chapter{Pourquoi (utiliser) \LaTeX{} ?} + +\lettrine{C}{omme} toute chose, \LaTeX{} possède une histoire qui lui est propre, des avantages mais aussi des inconvénients -- rien n'est parfait en ce monde. Toutefois, \LaTeX{} est aussi un langage qui continue d'exister à l'heure actuelle et qui reste une référence dans le milieu scientifique. + +C'est pourquoi je te propose un petit interlude culturel avant d'entrer dans le vif du sujet\dots{} et peut-être aussi pour finir de te convaincre de son utilité ! + +\section{Historique : de \TeX{} à \LaTeX{}} + +\subsection*{La (petite) histoire} + +Donald \textsc{Knuth} est un mathématicien et informaticien américain, professeur émérite à l'université de Stanford. Il est l'auteur d'une bible de la programmation intitulée \textit{The Art of Computer Programming} (TAOCP).\footnote{Cet historique est extrait des \og Fiches à Bébert \fg{}, dont le texte complet est disponible sur : \url{http://lesfichesabebert.fr/divers/tex.html}.} \\ + +Le premier volume paru en 1965, a été publié à l'ancienne avec des caractères en plomb. Quand en 1976 Donald \textsc{Knuth} décide de publier la seconde édition du volume 2 de TAOCP, les caractères en plomb ont été abandonné au profit de la photocomposition. + +Donald \textsc{Knuth} trouve alors la qualité d'impression de ces machines, médiocre (notamment pour l'écriture des formules mathématiques) et décide de créer deux logiciels pour pouvoir produire ses publications avec une qualité typographique professionnelle. \\ + +Le premier, \TeX{}, sert à la composition de documents ; le second, METAFONT, à produire des polices vectorielles. Donald \textsc{Knuth} va mettre plusieurs années avant de sortir en 1983 la version définitive de \TeX{} qui utilise la police Computer Modern qu'il a créé à l'aide de METAFONT. + +En effet, Donald \textsc{Knuth} s'était fixé comme but d'arriver à un produit qui devrait être parfait et qui devrait le rester au cours du temps. C'est cette version qui est toujours utilisée et qui fonctionne depuis 30 ans. + +Donald \textsc{Knuth} est quand même intervenu sur \TeX{} à plusieurs reprise, notamment en 1989 pour l'adapter aux caractères nécessaires pour la composition de texte avec d'autres langues que l'anglais (version 2.991). La version actuel de \TeX{} est la 3.14159265 (janvier 2014). \\ + +L'autre trait de génie de Donald \textsc{Knuth} est de confier \TeX{} à l'American Mathematical Society et d'en faire un logiciel libre. + +\`A partir de là, d'autres informaticiens vont s'emparer de \TeX pour l'adapter (sortie de document au format PDF, utilisation de format d'image inconnue en 1983, adaptation à d'autres langues que l'anglais\dots{}) et l'enrichir (module permettant la création de formule chimique, de partition musicale, de diagrammes électrique ou physique\dots{}). \\ + +En 1982, Leslie \textsc{Lamport}, un chercheur en informatique américain, écrit \LaTeX{} (Lamport \TeX{}) un nouveau jeu de macros beaucoup plus simple à utiliser que \TeX{}. + +C'est un succès et pratiquement plus personne n'utilise \TeX{}. L'apparition des packages, qui permettent facilement d'augmenter les fonctionnalités, ont rendu \LaTeX{} incontournable (édition d'ouvrages scientifiques ou article de recherches, notamment). + +La version actuelle de \LaTeX{} est \LaTeX{}$2\varepsilon$, qui date de 1994. Elle est maintenue par le \LaTeX{}3 Project team qui nous prépare la version 3 de \LaTeX{} depuis 20 ans ! \\ + +\`A la fin des années 90, Hàn Thê Thành crée le moteur pdf\TeX{} qui permet de sortir les documents au format PDF, plus convivial que le format d'origine de \TeX{} le DVI. + +La dernière version la 1.40.11 date de 2011. pdf\TeX{} n'est plus développé, seules des corrections de bug y sont apportées. + +\textbf{C'est ce moteur que nous allons utiliser par la suite,} qui permet de passer du fichier \LaTeX{} au fichier PDF final voulu. + +\subsection*{\'Etymologie et prononciation} + +Si je remercie encore une fois Bébert pour ce magnifique historique, je me dois désormais d'intervenir sur un point qu'il ne traite pas sur cette page : l'étymologie et la prononciation de \LaTeX{}. + +C'est un point extrêmement crucial qui peut te permettre de briller lors de soirées mondaines et d'éviter de passer pour un blaireau lors de conversations avec d'autres utilisateurs de \LaTeX{}. \\ + +De ce que j'ai lu un jour quelque part sur Internet, Donald \textsc{Knuth} a nommé son logiciel \TeX{} comme pour \og technologie \fg{}. + +Mais, il s'avère qu'il est aussi féru de grec. Et \og technologie \fg{}, en grec, s'écrit \og $\tau\varepsilon\chi\nu{\rm o}\lambda{\rm o}\gamma\iota\alpha$ \fg{}, le $\chi$ correspondant au \og chi \fg{} mais que l'on prononce \og khi \fg{}. + +Et c'est donc pourquoi \TeX{} se prononce \og tech \fg{} mais s'écrit avec un ``X''. \\ + +Quant à \LaTeX{}, il s'agit juste d'ajouter les premières lettres du nom de son créateur, Leslie \textsc{Lamport}. \TeX{} est donc devenu \LaTeX{}\dots{} et se prononce \textit{a priori} de la même façon. + +Toutefois, Leslie \textsc{Lamport} indique explicitement dans son livre \textit{LaTeX: A Document Preparation System} qu'il n'encourage aucune prononciation particulière pour \LaTeX{}\dots{} mais là encore, si tu ne veux pas passer pour un blaireau, je t'encourage vivement à t'en tenir à la prononciation usuelle, soit \og latech \fg{} ! \\ + +Bien, maintenant que ce point a été abordé, venons-en aux avantages à utiliser \LaTeX{} avec, pour commencer, des témoignages ! + +\section{Pourquoi utiliser \LaTeX{} ?} + +Durant l'été 2017, j'ai posé la question suivante sur le groupe \og TeX / LaTeX User Group \fg{} de \LinkedIn{} : + +\begin{boite}[before upper = {}]{La question posée}{yellow!70!orange} +{\Large\textbf{LaTeX professional experience}} \\ + +Hello everybody, \\ + +I'm actually an engineering student and one of my main hobbies is writing stuffs in LaTeX (scientifical reports, lessons' synthesis, letter\dots{}, even a LaTeX manual user for beginners (in French) !). I was wondering if LaTeX is really helpful, in daily life, at work. \\ + +So, if anyone would like to share his opinion/experience, about how he uses LaTeX at work (or not), feel free to answer my message. \\ + +Thanks a lot and have a good summer, +\end{boite} + +J'espère pour toi que l'anglais n'est pas une contrainte car c'est loin d'être fini. Si toutes les réponses sont intéressantes, je trouve mon guide un peu terni par 6 pages de commentaires\dots{} Je vais donc faire un petit résumé : + +\begin{itemize}[label = \ding{213}] +\item certains pensent qu'utiliser \LaTeX{} est pertinent uniquement dans un milieu académique ou scientifique (recherche, surtout pour les mathématiques) ; + +\item beaucoup travaillent avec des gens qui fonctionnent exclusivement sous Word. Toutefois, pour la diffusion de notes internes, l'utilisation de \LaTeX{} est appréciée (clarté du message, mise en page propre, simplicité\dots{}) ; + +\item beaucoup reconnaissent que \LaTeX{} possède une forte courbe d'apprentissage, surtout au début\footnote{Mais je te rassure, ce guide est justement conçu pour t'aider à passer ce cap difficile}. Toutefois, ils utilisent aussi \LaTeX{} dans leur quotidien (lettres, CV, rendus\dots{}) car ils préfèrent sa facilité d'utilisation par rapport à Word une fois l'apprentissage bien avancé ; + +\item quasiment tous considèrent qu'apprendre à utiliser \LaTeX{} n'est pas une perte de temps et peut se révéler utile. \\ +\end{itemize} + +Si tu n'es pas convaincu ou si tu crains que j'ai truqué les réponses, laisse-moi au moins en partager deux, que tu puisses te faire une idée : + +\begin{boite}{Les 2 réponses les plus pertinentes à mon sens}{cyan!60!green} +\begin{itemize}[label = \ding{118}, leftmargin = *] +\item \textcolor{orange}{\textbf{Ed Blackburne :}} I use LaTeX everyday at work. My responsibilities include the production of Model Validation on reports per SR11-7. These are (generally) very technical and must be compliant with our Enterprise standards as well as regulatory guidance. Although many of my colleagues use MS Word, my team enjoys increased productivity from LaTeX. + +Additionally, for the econometric models, my team utilizes R/knitR/LaTeX to create dynamic reports (using methods borrowed from reproducible research techniques). + +I have created company-specific memo templates that I use on a daily basis, as well. + +If you write technical documents and/or need references (that work) I highly encourage investing the minimal effort to become a competent LaTeX user. + +\item \textcolor{orange}{\textbf{Brian Dunn :}} While LaTeX has a learning curve to use it well, so does MS Word or LibreOffice Writer, many people never use a word processor's formatting ``styles'', for example, and instead manually format everything. + +In talking with people at industrial trade shows, I occasionally come across a company which uses LaTeX for their documentation. Usually they are small engineering operations, and often European. Most places use poorly-formatted MS-Word generated documentation, or else InDesign when they want a professional image. I also found that companies which are suffering are not interested in improving their documentation, sales literature, or websites, even though their competitors which are doing well have very nice public-facing literature. +\end{itemize} +\end{boite} + +Toujours pas convaincu ? Voici alors une ribambelle d'arguments qui devraient, j'espère, finir de te convaincre d'utiliser \LaTeX{}. + +\section{Autres arguments} + +Utiliser \LaTeX{} au lieu d'un autre logiciel de traitement de texte plus\dots{} conventionnel présente un certain nombre d'avantages, dont voici la liste (non exhaustive) : \begin{itemize}[label = \ding{213}] +\item \LaTeX{} est entièrement gratuit et utilisable sur n'importe quel système d'exploitation ; + +\item un fichier \LaTeX{} est utilisable par n'importe qui (à condition d'avoir les logiciels adaptés à \LaTeX{}) et sous n'importe quelle version de \LaTeX{} ; + +\item \LaTeX{} génère un fichier PDF prêt à l'impression et lisible par n'importe qui ; + +\item \LaTeX{} propose une mise en page professionnelle et déjà paramétrée. La gestion de la numérotation des pages, des en-têtes et des pieds de page est relativement simple ; + +\item écrire des formules mathématiques devient assez facile (avec un peu de pratique) ; + +\item \LaTeX{} gère intégralement les notes de bas de pages, les renvois, le sommaire, les images, les tableaux, les légendes et la numérotation, les références bibliographiques ou la mise en place d'un index ; + +\item \LaTeX{} réalise aussi les césures les plus appropriées et prend en compte les ligatures. \\ +\end{itemize} + +Convaincu cette fois ? Pas vraiment ? Tu hésites encore ? Dans ce cas, continuons sur notre lancée et installons \LaTeX{} sur notre ordinateur. Tu ne peux pas savoir avant d'essayer, n'est-ce pas ?
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-installation.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-installation.tex new file mode 100644 index 00000000000..f1cf6fcf245 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p1-installation.tex @@ -0,0 +1,94 @@ +\chapter{Installation de \LaTeX{}} + +\lettrine{A}{vant} de commencer, je suppose que tu utilises un système d'exploitation \Windows{}. Dans le cas contraire, un utilisateur \Linux{} devrait savoir se débrouiller pour tout installer. + +Si tu es un utilisateur d'\Apple{}, je considère déjà ta cause perdue d'avance et tu trouveras des équivalents grâce à Google\dots{} enfin, c'est ce que je disais initialement. Désormais, les programmes que je présente par la suite te sont aussi accessibles. + +\section{Installation de \MiKTeX{}} + +\texttt{MiKTeX} est une distribution \LaTeX{}. Bon, je dois t'avouer que je ne sais pas moi-même ce qu'est une distribution\dots{} Ce qui m'intéresse, c'est d'arriver à faire fonctionner l'outil en question. Je vais donc sortir mon joker Wikipédia pour cette fois : + +\begin{definition}{Définition d'une distribution (informatique)} +{\noindent\huge\bfseries\color{gray!75}\og} + +On parle souvent de distribution pour désigner un ensemble de logiciels formant un tout cohérent et prêt à installer, incluant des jeux de paquetages, le noyau du système d'exploitation, en particulier le noyau Linux pour les distributions GNU/Linux (comme Debian, Mandriva, Red Hat, Ubuntu, etc.), un système d'installation et des utilitaires de configuration. \\ + +Cela désigne aussi un ensemble de paquets et d'outils utiles à la création d'un document au format LaTeX et pour en faciliter l'utilisation. Parmi les distributions LaTeX courantes, on trouve MiKTeX, TeXLive, MacTeX2. \\ + +Par ailleurs, une base de données distribuées est répartie sur plusieurs n{\oe}uds, généralement sur différents serveurs. + +{\hfill\huge\bfseries\color{gray!75}\fg} \\ + +\begin{flushright} +Wikipédia -- Disponible sur : + +\url{http://fr.wikipedia.org/wiki/Distribution#Informatique} +\end{flushright} +\end{definition} + +Je ne sais pas si c'est plus clair ainsi\dots{} Ce qui est certain, c'est que le seul élément intéressant à retenir est le suivant : \MiKTeX{} est l'outil qui te permet de transformer tes futures lignes de code \LaTeX{} en un PDF propre et lisible par tous. \\ + +Pour installer \MiKTeX{}, il faut procéder de la manière suivante\footnote{Si besoin, un descriptif encore plus détaillé et imagé est disponible à l'adresse suivante : \url{http://miktex.org/howto/install-miktex}.} : \begin{enumerate} +\item aller sur : \url{http://miktex.org/download} et télécharger l'exécutable ; + +\item lancer l'exécutable et suivre les instructions d'installation ; + +\item \textbf{laisser les options par défaut} \textcolor{red}{\textbf{DONT}} le ``choix de poste'' \og \texttt{Install MiKTeX only for me} \fg{}. + +Pour débuter, elles conviennent parfaitement et le choix \og \texttt{only for me} \fg{} permet d'éviter tout problème par la suite. \\ +\end{enumerate} + +\begin{attention}{\textit{Nota Bene}} +Je tiens à préciser que je n'ai aucun revenu financier grâce à \texttt{MiKTeX}. Je conseille cette distribution car c'est celle que j'utilise et qui fonctionne parfaitement pour ma part. + +Elle a aussi l'avantage de proposer un gestionnaire de packages, via \texttt{MiKTeX Console} ou l'interface de \MiKTeX{}. Nous aurons l'occasion d'y revenir plus tard dans ce guide, une fois que la notion de packages aura été introduite. \\ + +En revanche, tu es libre de choisir la distribution de ton choix et d'en prendre une autre. \`A toi d'en trouver une sur Internet : il y a un peu de choix. +\end{attention} + +\section{Installation de \Texmaker{}} + +Techniquement, cette étape n'est pas nécessaire car tu pourrais écrire ton fichier \LaTeX{} dans un fichier \texttt{.txt} (bloc-note) si le c{\oe}ur t'en dit. Cependant, le code sera plus compliqué à relire, il faut taper toutes les commandes à la main et il faut indiquer à \texttt{Windows} -- via des commandes dans le \texttt{CMD} -- de transformer ton code en PDF grâce à \MiKTeX{}. + +Avec \Texmaker{}, tous ces tracas sont épargnés : tu as à disposition un éditeur de fichiers \LaTeX{} performant, de la coloration syntaxique, un système d'auto-complétion des formules fort pratique et agréable, et toutes les commandes pour utiliser \MiKTeX{} sont intégrées et faciles à utiliser. \\ + +Pour cela, il faut aller sur le site de \Texmaker{} : \url{http://www.xm1math.net/texmaker/download.html}. Là encore, il suffit de télécharger l'exécutable, le lancer, suivre les instructions et laisser les options par défaut (comme pour \MiKTeX{}). + +\begin{attention}{\textit{Nota Bene}} +Même remarque pour \Texmaker{} que pour \MiKTeX{} : tu peux choisir un autre éditeur \LaTeX{}, même si celui-ci est vraiment très pratique selon moi. + +Il est aussi intégralement en français, avantage non négligeable quand tu débutes. +\end{attention} + +\section{Vérification finale} + +\label{hello_world}Si tu tiens à t'assurer que tout fonctionne, tu peux d'ores et déjà procéder à une vérification finale comme décrit ci-après. + +\textbf{Si jamais tu rencontres le moindre problème, ne t'attarde pas sur cette partie et poursuis au chapitre suivant,} qui détaille l'utilisation des logiciels récemment installés. \\ + +\begin{enumerate} +\item Ouvrir \Texmaker{}. + +\item En haut à gauche : \verb?Fichier? puis \verb?Nouveau? (ou \keys{\ctrl + N} pour les connaisseurs). + +\item Recopier le code \og Bonjour monde ! \fg{}, fourni en-dessous, et sauvegarder \textbf{dans un dossier} (le nom importe peu). + +\item Appuyer sur \keys{F6}, attendre un peu, puis aller dans le dossier où tu as sauvegardé le fichier : tu devrais y trouver un PDF avec la ligne \og Bonjour monde ! \fg{} écrite. +\end{enumerate} + +\begin{code}{Bonjour monde !} +\documentclass[]{report} + + +\begin{document} + +Bonjour monde ! + +\end{document} +\end{code} + +Tout fonctionne donc parfaitement ! Tu peux poursuivre sereinement la suite du guide. + +\textbf{Dans le cas contraire,} ne perds pas ton temps et passe directement à la suite. Nous allons rapidement aborder le fonctionnement de \Texmaker{}. \\ + +\textcolor{red}{Si jamais des problèmes persistent par la suite,} je ne peux que te conseiller de tout désinstaller et de bien tout réinstaller comme indiqué précédemment.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-erreurs.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-erreurs.tex new file mode 100644 index 00000000000..8a04052ad64 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-erreurs.tex @@ -0,0 +1,90 @@ +\chapter{Traitement des erreurs} + +\label{chap_erreurs}Les erreurs peuvent être nombreuses sous \LaTeX{} et pas toujours évidentes à corriger. Tout d'abord, nous appelons \og erreur \fg{} en \LaTeX{} tout bout de code qui nuit à la compilation du document et l'empêche de se poursuivre. Une erreur ne permet donc pas au compilateur de produire le fichier PDF espéré. + +Ensuite, il est important de savoir que toutes les erreurs qui vont être abordées sont retournées par \LaTeX{}, suite à la compilation. Ces erreurs sont affichées par \Texmaker{}, dans une fenêtre spécifique tout en bas (bouton \og \verb?Messages/Log? \fg{} en bas à gauche pour faire apparaître la fenêtre \og Informations du compilateur \fg{} si inexistante). + +\begin{figure}[H] +\includegraphics[width = \linewidth]{aide_LaTeX1.png} +\caption{Rappel de l'organisation de l'interface de \Texmaker{}} +\end{figure} + +\textbf{Quand il y a une erreur, cette fenêtre t'indique aussi la ligne de code qui pose problème à \LaTeX{} pour compiler} (colonne \verb?Line?). 90 \% du temps, c'est sur cette ligne ou dans ses environs qu'il faut relire son code et chercher l'erreur. + +Voyons maintenant la liste des erreurs couramment rencontrées quand tu débutes avec \LaTeX{}, et mes conseils personnels pour les éviter, synthétisée sous forme d'un tableau. \\ + +\begin{longtable}{p{0.45\linewidth}p{0.45\linewidth}} +% Définition des headers & footers du longtable +{\hspace*{\fill}\textsc{Les erreurs courantes}\hspace*{\fill}} & {\hspace*{\fill}\textsc{Comment les corriger}\hspace*{\fill}} \\ \hline +\endhead +& \hfill\textit{(suite sur la page suivante)} \\ +\endfoot +\multicolumn{2}{@{\hrulefill}c@{\hrulefill}}{\raisebox{-3pt}{~~\textsc{Fin du tableau}~~}} +\endlastfoot +% Contenu du longtable +\verb?Missing $ inserted? & 2 cas fréquents : \begin{itemize}[label = \ding{213}, leftmargin = *] +\item oubli de fermer un mode mathématiques $\Rightarrow$ le fermer avec le symbole \verb?$? manquant ; +\item emploi d'un symbole propre au mode mathématiques (\verb?^? ou \verb?_? par exemple) $\Rightarrow$ supprimer le \verb?^? inutile ou utiliser la commande \verb?\_? pour afficher un \textit{underscore} en mode texte. +\end{itemize} \\ + +\verb?Missing } inserted? \par ou \par \verb?I suspect you have? \par \verb?forgotten a `}'? & Très probablement, oubli de fermer une commande par une accolade \verb?}? $\Rightarrow$ Commencer par chercher les erreurs parmi les lignes de codes écrites ou modifiées depuis la dernière compilation. \par Au début, \textbf{compiler régulièrement son code} permet de simplifier la correction de cette erreur.\footnote{C'est plus pratique de corriger plein de petites erreurs que de s'arracher les cheveux sur un très grand nombre.} \\ \\ + +\verb?! Too many }'s.? & Plus rare : oubli d'une accolade ouvrante. Mêmes conseils que ci-dessus. \\ \\ + +\verb?There's no line to end here? & Saut de ligne incompris par \LaTeX{} (après un environnement \verb?center? par exemple). \par $\Rightarrow$ Commencer par regarder le résultat sans saut de ligne : certains environnements laissent un peu de blanc avant et après (comme \verb?center? justement). Autrement, utiliser la commande \verb?\vspace?. \\ \\ + +\verb?undefined control sequence? & 2 cas possibles : \begin{itemize}[label = \ding{213}, leftmargin = *] +\item oubli d'un élément à un endroit, comme une virgule lors d'un espace insécable (\verb?\13? \textit{vs} \verb?\,13?) ; + +\item appel d'une commande inexistante ou appel d'une nouvelle commande bien définie mais faute de frappe lors de son écriture. +\end{itemize} \par $\Rightarrow$ Vérifier le code et le corriger. \\ \\ + +\verb?Package inputenc Error:? \par \verb?Unicode char?, suivi éventuellement d'un caractère et de son code UTF-8 & Utilisation d'un caractère du clavier interdit avec ce moteur de compilation. \par L'exemple le plus courant : symbole \degres{} (commande \verb?\degres{}? sous PDF\LaTeX{} ; appel ``normal'' au clavier sous Xe\LaTeX{}).\footnote{Les moteurs de compilation sont abordés dans la partie suivante si tu es intéressé.} \par ~ \par Erreur fréquente si texte copier-collé d'un autre document (Word, PDF, page Internet) \par $\Rightarrow$ Dans un 1\up{er} temps, reprendre tous les accents et les apostrophes.\footnote{Dans ce cas, la fonction \verb?Remplacer? de \Texmaker{} peut se révéler très utile.} \\ \\ + +\verb?Option clash for package? \par \verb?<nom_package>? & Conflit entre certains packages. \par $\Rightarrow$ Charger les packages dans un ordre bien précis. (exemple : package \verb?xcolor? avanr \verb?wallpaper?). \\ \\ + +\verb?Extra alignment tab has? \par \verb?been changed to \cr? & Erreur dans un tableau : oubli hautement probable d'indiquer un changement de ligne (\verb?\\?). \par $Rightarrow$ Ajouter le \verb?\\? manquant. \\ \\ + +\verb?! [...] \begin{document}? \par \verb?ended by \end{<env>}? \par ou \par \verb?! [...] \begin{<env>}? \par \verb?[...] ended by \end{document}? & Environnement mal ouvert ou fermé. Très fréquent à cause de l'auto-complétion. \par $\Rightarrow$ Aller à la ligne indiquée par l'erreur, regarder l'environnement concerné, corriger selon le besoin. +\end{longtable} + +Voilà dans les grandes lignes les principales erreurs que j'ai recensées jusqu'à présent. Avec l'expérience, tu verras que tu en feras de moins en moins ou que tu les corrigeras très rapidement. + +Sache aussi que tu peux te rendre sur \url{http://fr.wikibooks.org/wiki/LaTeX/\%C3\%80_l\%27aide_!} si tu veux des informations complémentaires. + +\begin{conseil}{Mon conseil le plus important} +Dès que tu ouvres un \verb?$? ou un \verb?\[? ou un \verb?{? ou un délimiteur, ferme-le en suivant. Puis, tu reviens en arrière et tu écris ton code. Le nombre d'erreurs devrait diminuer. + +L'auto-complétion de \texttt{Texmaker} est aussi très pratique pour éviter ce genre de désagréments. +\end{conseil} + +Par ailleurs, je souhaite revenir sur l'erreur \verb?Option clash for package?. Si jamais tu veux tester un nouveau package pour ton rapport ou adapter un code trouvé sur Internet, \textbf{\color{orange!65!red}ne jamais le faire sur ton document final !} C'est le meilleur moyen de perdre du temps (compilation et adaptation du code). Il vaut mieux procéder par étapes : \begin{enumerate} +\item Copie du code à adapter sur un nouveau fichier \verb?.tex? de test, avec juste les packages absolument nécessaires. + +\item 1\up{ère} compilation pour s'assurer que le code copié fonctionne. Suppression des éléments inutiles et/ou gênants pour la compilation (commandes définies par l'utilisateur et non fournies par exemple). + +\item Adaptation du code jusqu'à obtention du résultat souhaité. + +\item Copie du code final dans ton rapport, ajout du/des package(s) requis, compilation et gestions des dernières potentielles erreurs. +\end{enumerate} + +Tu verras que tu perdras moins de temps à compiler, à étudier le résultat dans l'affichage \Texmaker{} et tu travailles sur un fichier de test, sans pollué ton rapport. + +\begin{regles}{La règle absolue avec les packages} +Par défaut, \emph{toujours} charger le package \verb?hyperref? \emph{en dernier} ! (sauf indication contraire : cf. la documentation du package \verb?menukeys? par exemple). +\end{regles} + +\vspace{\baselineskip} + +Et voilà, la première partie de ce guide est (enfin) terminée. Toutes mes félicitations si tu es arrivé jusqu'ici ! J'espère avoir pu t'être d'une aide quelconque et que mes explications étaient assez claires. + +Ce n'est pas absolument pas évident de débuter en \LaTeX{}. Et si je commence à avoir pas mal de repères et d'expériences, la route est encore longue avant de pouvoir maîtriser les innombrables facettes de ce langage. \\ + +Tu trouveras dans la partie suivante mes notes personnelles sur du code \LaTeX{} plus poussé, pour arriver à produire des résultats de plus en plus complexes. Je tenais initialement à les regrouper dans ce guide pour mon usage personnel mais je me suis rendu compte qu'elles peuvent aussi aider mes lecteurs. \\ + +\begin{center} +\begin{LARGE} +\bfseries{}Bon courage pour la suite et, surtout, n'oublie pas : \\[\baselineskip] +\LaTeX{}, c'est la vie ! +\end{LARGE} +\end{center}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-images.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-images.tex new file mode 100644 index 00000000000..0df289fc060 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-images.tex @@ -0,0 +1,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 n\degres{}$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.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-maths.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-maths.tex new file mode 100644 index 00000000000..94af36ef98f --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-maths.tex @@ -0,0 +1,451 @@ +\chapter{Les mathématiques sous \LaTeX{}} + +\label{chap_maths}\lettrine{C}{omme} tu peux le constater, il y a fort à faire sous \LaTeX{}. Les combinaisons sont déjà impressionnantes. Je te laisse maintenant découvrir la raison d'être de \LaTeX{}, ce pourquoi il a été créé : écrire proprement des formules mathématiques ! \\ + +\input{./Chapitres/code_base} + +\section{Le mode mathématiques} + +Bon, c'est bien beau de vouloir faire écrire des maths à \LaTeX{}, encore faut-il lui indiquer qu'il s'agit justement de maths ! C'est le principe du \og mode mathématiques \fg{}. + +Celui-ci est défini soit par le symbole \$ \textbf{(un ouvrant et un fermant)}, soit par des ``backslash-crochets'' \verb?\[? et \verb?\]?, soit par l'environnement \verb?equation? : + +\begin{codedisplay}{Le mode mathématiques} +\'Ecrire x = 2 ! et $x = 2 !$ ne donnent pas le même résultat ! \\ + +De même si j'écris \[x = 2 !\] % Pas de \\ car déjà un saut de ligne + +On obtient la même chose avec : + +\begin{equation} +x = 2 ! +\end{equation} + +mais l'équation est numérotée ! \\ + +Que donne $a b c d$ ? +\end{codedisplay} + +\begin{conseil}{Repérer le mode mathématiques sous \Texmaker{}} +Il est très aisé de voir si du texte est en mode mathématiques : \Texmaker{} affiche ce texte en vert ! +\end{conseil} + +\begin{conseil}{Le conseil personnel} +J'utilise très peu l'environnement \verb?equation?, sauf quand j'ai besoin de numéroter des formules. Si je n'ai pas besoin de numérotation, l'environnement \verb?equation*? donne le même résultat que \verb?\[? et \verb?\]?. +\end{conseil} + +De ce que tu as pu observer dans l'exemple, le mode mathématiques met le texte en italique et supprime les espaces. En effet, dans ce mode, \LaTeX{} considère que tout ce qui est écrit n'est que produit (comme pour l'exemple \verb?$a b c d$?). + +L'utilisation de \verb?\[? et \verb?\]? permet d'aller à la ligne et de centrer la formule. Cette option est très pratique pour présenter un résultat ou une longue équation. + +\begin{attention}{Une question ?} +\og Si le mode mathématiques revient à mettre du texte en italique, pourquoi ne pas écrire du texte et utiliser la commande \verb?\textit? ? \fg{} \\ + +Outre l'aspect esthétique de la formule, le mode mathématiques est le seul mode qui tolère et permette d'appeler les commandes que nous verrons par la suite, pour écrire des formules mathématiques (fraction, somme, intégrale, dérivée partielle\dots{}). +\end{attention} + +S'il est possible de mélanger le mode mathématiques avec du texte grâce au \$, c'est plus délicat avec les autres commandes, tant pour l'écriture en italique que pour l'absence d'espace. Mais il existe une solution. + +\section{Vers les espaces insécables} + +\label{espaces_insecables}Pour pouvoir librement écrire du texte dans le mode mathématiques, la commande \verb?\text{texte_à_écrire}? est très utile. \textbf{\color{BrickRed}C'est vraiment la commande la plus simple qui existe : à utiliser en priorité pour ce genre de situation !} \\ + +Mais, tu peux aussi avoir envie de jouer un peu sur l'espacement entre les différents symboles, si tu trouves qu'ils sont trop rapprochés. Il existe alors des commandes bien plus efficaces et pratiques que \verb?\hspace{<distance>}? pour le mode mathématiques. + +Ces commandes portent le nom d'\textbf{espaces insécables} -- insécables car \LaTeX{} ne peut y toucher et se plie à la volonté de l'utilisateur. \textbf{Ces espaces sont utilisables aussi bien dans le mode mathématiques que sur du texte normal.} + +Ils permettent aussi de bien imposer l'espace souhaité et évite d'avoir un symbole ou un signe de ponctuation qui se balade seul en début de phrase. Nous pouvons relever : + +\begin{itemize}[label = \ding{118}] +\begin{multicols}{2} \raggedcolumns +\item \verb?\!? : espace\!très\!petit, + +\item \verb?\,? : espace\,fin, + +\item \verb?\:? : espace\:moyen, + +\item \verb?~? (tilde) : espace~normal, \columnbreak + +\item \verb?\;? : espace\;large, + +\item \verb?\quad? : espace\quad très \quad large, + +\item \verb?\qquad? : espace \qquad encore \qquad plus \qquad large. +\end{multicols} +\end{itemize} + +\vspace{\baselineskip} + +Toutefois, si j'utilisais initialement les espaces insécables à outrance, ils peuvent vite se révéler pénibles à écrire. Il faut donc généralement faire confiance à \LaTeX{} pour la mise en forme et \textbf{les utiliser avec parcimonie.} + +Personnellement, je les utilise surtout, par exemple, après le symbole $\forall$ (\verb?\forall?) car l'espacement est très faible. \`A toi de choisir ta préférence : + +\begin{table}[H] +\centering +\begin{tabular}{rcl} +$\forall x$ & \textit{vs} & $\forall\,x$ \\ +\verb?$\forall x$? & \textit{vs} & \verb?$\forall\,x$? +\end{tabular} +\end{table} + +\begin{codedisplay}{Commande \texttt{\text} et espaces insécables} +Nous obtenons donc $x + y = 3$ et $y = 2$ donc : \[x = 1 \text{ (obvious)}\] +% Présence d'un espace au début dans \text : séparation du texte de l'équation + +% Utiliser \quad aussi possible : exemple d'utilisation assez fréquent +Nous obtenons alors : \[x = 1 \quad \text{et} \quad y = 2\] +\end{codedisplay} + +Si jamais tu veux appliquer un espace insécable de manière définitive sur une commande \LaTeX{}, il existe des moyens de remplacer la définition initiale de la commande par la même avec l'espace insécable. + +Ainsi, tu continuerais à écrire \verb?$\forall x$? mais le résultat serait identique à \verb?$\forall\,x$?. Il faut procéder de la manière suivante dans le préambule : + +\begin{code}{Changement de la définition d'une commande} +% Renommer la commande initiale (sinon bug : boucle infinie) +\let\oldforall\forall +% Modification de la commande +\renewcommand{\forall}{\oldforall\,} +\end{code} + +Bref, après cette brève initiation aux mathématiques, allons \emph{vraiment} écrire des formules mathématiques. + +\section{Des exemples de formules} + +Avant de se lancer, les mathématiques n'échappent pas à la règle : il faut charger des packages avant de commencer. + +Après plusieurs recherches, je recommande \verb?amsmath?, \verb?amsfonts? et \verb?amssymb?. Il semblerait que ces trois packages suffisent pour traiter 95 \% des formules mathématiques. Commençons donc par un premier exemple : + +\begin{codedisplay}{Les premiers symboles mathématiques} +% Ajout au préambule ! +%\usepackage{amsmath, amsfonts, amssymb} + + +Indice : $i_2$ \\ +% Encadrement avec des {} +$i_{13}$ différent de $i_13$ \\ + +Exposant : $i^3$ ou $i^{13}$ \\ + +Fraction : $\frac{x}{y}$ \\ + +Racine carrée : $\sqrt{13}$ \\ +Racine énième : $\sqrt[n]{13}$ \\ + +Mix de formules (exemple) : $\sqrt{\frac{a}{b}}$ +\end{codedisplay} + +Pardon ? Il n'y en a pas assez ? Ok, navré, poursuivons : + +\begin{codedisplay}{D'autres symboles mathématiques} +Intégrale : $\int_0^{13} f(x)\,dx$ \\ +% Attention aux bornes : les {} sont vite oubliées +Somme : $\sum_{i = 13}^n x^i$ \\ + +\'Equation : $x + y - z = 3 \times t + f$ \\ +% Symbole +, - et = au clavier ; \times pour un produit + +$x < y$, $y \leq z$, $z \geqslant c$, $c > d$ mais $d \neq f$ alors que $f \simeq g$ ! \\ +% D'autres symboles - A toi de voir si tu préfères \leq à \leqslant (idem pour \geq) +\end{codedisplay} + +Ok pour toi ? Comment ? J'ai oublié de mentionner les lettres grecques ? Toutes mes excuses. Les voici : + +\begin{codedisplay}{Les lettres grecques} +Les lettres grecques ? Facile : $\alpha$, $\beta$, $\mu$, etc. \\ + +En majuscules ? $\Omega$, $\Delta$, $\Lambda$, etc. +% Ne fonctionne pas pour toutes les majuscules : \Alpha entraîne une erreur +\end{codedisplay} + +Si jamais tu souhaites connaître la liste exacte des commandes pour écrire les lettres grecques, la voici : + +\begin{table}[H] +\caption{La liste complète des lettres grecques sous \LaTeX{}} +\begin{tabular}{*{8}l} +$\alpha$ & \verb?\alpha? & $\eta$ & \verb?\eta? & $\xi$ & \verb?\xi? & $\tau$ & \verb?\tau? \\ +$\beta$ & \verb?\beta? & $\theta$ & \verb?\theta? & $\pi$ & \verb?\pi? & $\upsilon$ & \verb?\upsilon? \\ +$\gamma$ & \verb?\gamma? & $\vartheta$ & \verb?\vartheta? & $\varpi$ & \verb?\varpi? & $\phi$ & \verb?\phi? \\ +$\delta$ & \verb?\delta? & $\kappa$ & \verb?\kappa? & $\rho$ & \verb?\rho? & $\varphi$ & \verb?\varphi? \\ +$\epsilon$ & \verb?\epsilon? & $\lambda$ & \verb?\lambda? & $\varrho$ & \verb?\varrho? & $\chi$ & \verb?\chi? \\ +$\varepsilon$ & \verb?\varepsilon? & $\mu$ & \verb?\mu? & $\sigma$ & \verb?\sigma? & $\psi$ & \verb?\psi? \\ +$\zeta$ & \verb?\zeta? & $\nu$ & \verb?\nu? & $\varsigma$ & \verb?\varsigma? & $\omega$ & \verb?\omega? \\ \\ +$\Gamma$ & \verb?\Gamma? & $\Lambda$ & \verb?\Lambda? & $\Sigma$ & \verb?\Sigma? & $\Psi$ & \verb?\Psi? \\ +$\Delta$ & \verb?\Delta? & $\Xi$ & \verb?\Xi? & $\Upsilon$ & \verb?\Upsilon? & $\Omega$ & \verb?\Omega? \\ +$\Theta$ & \verb?\Theta? & $\Pi$ & \verb?\Pi? & $\Phi$ & \verb?\Phi? +\end{tabular} +\end{table} + +\begin{conseil}{Utiliser \Texmaker{}} +Que ce soit pour les lettres grecques ou plein d'autres éléments mathématiques, \Texmaker{} offre des raccourcis sur le côté gauche de la fenêtre. \\ + +N'hésite pas à aller jeter un coup d'\oe{}il au début. Je trouve que c'est mieux de taper les commandes mais il faut bien les avoir vues une ou deux fois avant pour savoir qu'elles existent. +\end{conseil} + +\begin{attention}{Une question ?} +\og J'ai tenté un \verb?mathrm? sur une lettre grecque pour enlever son ``caractère italique'' mais ça n'a pas fonctionné\dots \fg{} \\ + +Ah, j'ai affaire à un petit malin (qui a le mérite d'être allé fouiner une nouvelle commande). Tout d'abord, \verb?\mathrm? est une commande qui ne fonctionne qu'en mode mathématiques et qui permet de redresser le texte (enlever l'italique). Il faut donc bien écrire : \begin{center} \verb?$\mathrm{\mu}$? \end{center} + +Cependant, \verb?mathrm? ne fonctionne pas dans le cas des lettres grecques. C'est pourquoi tu peux ajouter le package suivant : \verb?upgreek?. Il permet d'écrire les lettres grecques droites. La commande \verb?$\upmu$? est censée fonctionner. \\ + +\textbf{Attention,} ce package ne concerne pas toutes les lettres grecques ! \verb?\upOmega? ne fonctionne pas car $\Omega$ est déjà considérée comme droite. Cette commande est donc à manier avec prudence et qu'en cas de nécessité absolue : les lettres grecques en italique rendent déjà très bien. +\end{attention} + +Bon, je crois que nous avons déjà pas mal fait le tour. J'ai bâillonné l'élève curieux qui voulait savoir comment améliorer l'affichage de la fraction, de la somme et de l'intégrale : nous allons traiter ce point immédiatement. + +\section{L'affichage et les délimiteurs} + +Tu l'as peut-être remarqué : écrire une somme doit donner un résultat un peu différent de ce que tu peux lire sur cette page. Il doit en aller de même si tu écris une intégrale ou un empilement de fraction : \[\sum_k x^k \quad \int_0^x (ft)\,dt \quad \frac{\cfrac{a}{b}}{\cfrac{c}{d}}\] + +Pour avoir un affichage ``normal'', il faut indiquer à \LaTeX{} de forcer toutes les équations en mode mathématiques avec l'affichage \verb?displaystyle?. + +La commande \verb?\everymath{\displaystyle}? \textit{juste après} \verb?\begin{document}? suffit donc pour avoir le même rendu que moi\dots{} sauf pour les fractions. Pour ces dernières, il faut utiliser la commande \verb?\cfrac{x}{y}? ou \verb?\dfrac{a}{b}? Dès lors, l'affichage de tes équations devrait être meilleur : + +\begin{code}{Forcer l'affichage} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +\everymath{\displaystyle} % Commande indispensable ! + +Somme : $\sum_k x^k$ \\ + +Intégrale : $\int_0^x (ft)\,dt$ \\ + +Fractions : $\frac{\frac{a}{b}}{\frac{c}{d}} \neq +\cfrac{\cfrac{a}{b}}{\cfrac{c}{d}}$ +\end{code} + +Bien, maintenant que les choses sont correctement posées, tu peux avoir le meilleur rendu au monde mais \LaTeX{} reste toujours extrêmement puissant, à condition de le lui dire. + +En effet, écrire $(\cfrac{a}{b})$ et $\left( \cfrac{a}{b} \right)$ sont deux choses totalement différentes. \LaTeX{} est donc capable d'adapter la taille des parenthèses, crochets, accolades et autres, en mode mathématiques, et toujours à condition de le lui signaler. Cette particularité est appelé un \textit{délimiteur}. + +\begin{regles}{Les règles élémentaires des délimiteurs} +\begin{enumerate}[label = \textbf{\color{BrickRed}Règle \no\arabic* :}, leftmargin = *] +\item Un délimiteur n'existe qu'en mode mathématiques. + +\item \textbf{Un délimiteur entrant implique un délimiteur sortant.} + +\item Un délimiteur entrant est défini par la commande \verb?\left? suivi du nom du délimiteur ; pour le sortant, de même avec \verb?\right?. + +\item Si tu ne veux pas afficher un délimiteur, il faut utiliser la commande \verb?\left.? ou \verb?\right.? (il y a un point à la fin). +\end{enumerate} +\end{regles} + +Voyons de suite les noms des délimiteurs et leur fonctionnement avec un exemple : + +\begin{codedisplay}{Les délimiteurs en action} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +Parenthèses : $\left( \cfrac{a}{b} \right)$ \\ +Crochets : $\left[ \cfrac{a}{b} \right]$ \\ +Mix possible : $\left( \cfrac{a}{b} \right]$ \\ +% Aucun problème tant que la règle 2 est respectée + +Accolade à gauche : $\left\{ \cfrac{a}{b} \right.$ \\ +Accolade à droite : $\left. \cfrac{a}{b} \right\}$ \\ + +Bonus $\left\langle \left\lbrace \cfrac{a}{b} \right\rbrace \right\rangle$ \\ +% \lbrace ou \rbrace équivalent à \{ ou \} +% Selon moi : \{ plus logique +\end{codedisplay} + +Il faut aussi savoir que les délimiteurs sont parfois inutiles : + +\begin{table}[H] +\centering +\begin{tabular}{rcl} +$(a \times b)$ & \textit{vs} & $\left( a \times b \right)$ \\ +\verb?$(a \times b)$? & \textit{vs} & \verb?$\left( a \times b \right)$? +\end{tabular} +\end{table} + +Les délimiteurs sont donc pratiques et intéressants à utiliser dès lors qu'il y a un ``étage'' dans l'équation. Autrement, mieux vaut les éviter, pour simplifier l'écriture des équations et réduire les erreurs. \\ + +C'est bon ? Pas de questions ? Ouah, je dois commencer à bien expliquer les choses pour une fois ! La suite ? Une petite escale dans le monde des matrices\dots{} + +\section{Les matrices} + +Je préfère le répéter au cas où mais il faut naturellement employer le mode mathématiques. En revanche, pas besoin de nouveaux packages. Tout est déjà inclus avec les trois de base (\verb?amsmath?, \verb?amsfonts? et \verb?amssymb?). + +Ce n'est pas compliqué mais c'est aussi soumis à quelques règles. Je préfère donc bien les poser maintenant car nous en aurons besoin un peu plus loin dans ce guide : + +\begin{regles}{Règles de base pour les matrices -- Introduction aux tableaux} +\begin{enumerate}[label = \textbf{\color{BrickRed}Règle \no\arabic* :}, leftmargin = *] +\item Il faut considérer une matrice $n \times m$ comme un tableau vide à $n \times m$ cases. + +\item Une matrice est générée par l'environnement \verb?pmatrix?. + +\item Les colonnes sont séparées par une esperluette ``\&'' (touche \keys{1} sous \Windows{}). + +\item Le passage à la ligne suivante se fait grâce à \verb?\\?. +\end{enumerate} +\end{regles} + +De même, ne nous privons pas d'un petit exemple pour comprendre et digérer le tout : + +\begin{codedisplay}{Les matrices -- 1\up{ers} exemples} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +Matrice 2 x 2 : $\begin{pmatrix} +a & b \\ c & d +\end{pmatrix}$ \\ + +Matrice 2 x 4 : \[\begin{pmatrix} +a & b & c & d \\ +e & f & g & h +\end{pmatrix}\] +\end{codedisplay} + +Il restera toujours des cas un peu plus délicats à traiter : + +\begin{codedisplay}{Les matrices -- Cas plus technique} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +Matrice à trou : \[\begin{pmatrix} +1 & 1 & \cdots & 1 \\ +1 & 2 & \cdots & 2 \\ +\vdots & \vdots & \ddots & \vdots \\ +1 & 2 & \cdots & n +\end{pmatrix}\] +\end{codedisplay} + +Comme indiqué dans les règles, il faut donc utiliser le symbole \verb?&? pour changer de colonne et la commande \verb?\\? pour passer à la ligne suivante. Si l'espace entre les \verb?&? est optionnel, il est quand même recommandé pour faciliter la relecture de ton code. + +Surtout au début, pour des matrices plus complexes comme des matrices à trou, il ne faut pas hésiter à faire un dessin pour bien visualiser l'agencement des différents éléments de la matrice. \\ + +Il n'existe pas qu'un seul environnement pour écrire des matrices. Nous pouvons relever : + +\begin{itemize}[label = \ding{118}] +\begin{multicols}{2} +\item \verb?matrix? : aucun délimiteurs ; + +\item \verb?pmatrix? : parenthèses ; + +\item \verb?vmatrix? : barres verticales ; + +\item \verb?Vmatrix? : doubles barres verticales ; + +\item \verb?bmatrix? : crochets ; + +\item \verb?Bmatrix? : accolades. +\end{multicols} +\end{itemize} + +\vspace{\baselineskip} + +Un bon exemple de création de commande avec plusieurs arguments intervient ici. J'ai eu un jour à rédiger un corrigé d'exercices de physique. Ce corrigé contient énormément de vecteurs. J'ai donc inventé la commande \verb?vcol? de la manière suivante : \begin{center}\verb?\newcommand{\vcol}[3]? \\ +\verb?{\begin{pmatrix} #1 \\ #2 \\ #3 \end{pmatrix}}?\end{center} + +\noindent{}qui s'appelle de cette façon : \verb?$\vcol{a}{b}{c}$?. Plus pratique, n'est-ce pas ? Je te garantis que c'est vrai, surtout que tu dois écrire un très grand nombre de fois un vecteur colonne sur la même page ! \\ + +Bon, finissons-en avec les mathématiques sous \LaTeX{} par la présentation et l'alignement des équations. + +\section{Aligner des équations} + +Comme une image sera plus parlante que des mots, j'aimerais obtenir ce résultat : \\ + +\label{alignement-maths}\og Nous cherchons $a$ tel que : \begin{align*} +P(\mu \in I) & = 1 - \alpha \\ + & = 0,9 \intertext{car l'énoncé indique que $1 - \alpha = 0,9$} + & = P \left( \cfrac{\bar{X} - \mu}{S} \sqrt{n - 1} \in \left[ -\cfrac{a}{S} \sqrt{n - 1}\,;\,\cfrac{a}{S} \sqrt{n - 1} \right] \right) \\ + & = 2 \mathcal{S}_{n - 1} \left( \cfrac{a}{S} \sqrt{n - 1} \right) - 1 +\end{align*} + +Nous pouvons donc conclure par\footnote{Si c'est du chinois pour toi, je te rassure, ce sont des statistiques !} : \[\left\{ \begin{array}{rcl} +I & = & [74,98 - 0,0428\,;\,74,98 + 0,0428] \\ +n & = & 20 \\ +1 - \alpha & = & 0,9 +\end{array} \right. \quad \text{. \fg{}}\] + +\vspace{\baselineskip} + +Pour obtenir ce résultat avec des équations bien alignées, tu dois utiliser l'environnement \verb?align? (ou \verb?align*? pour éviter la numérotation de chaque ligne). + +\begin{attention}{\textbf{Ne pas utiliser \texttt{eqnarray} !!!}} +Après avoir vagabondé sur Internet et essayé différents rendus, je préfère utiliser \verb?align?. Après d'autres recherches, Lars \textsc{Madsen} préconise lui aussi très fortement l'usage de \verb?align? et recommande de bannir toute utilisation de \verb?eqnarray? (un autre environnement pour aligner des équations)\footnote{Article disponible sur : \url{http://www.tug.org/pracjourn/2006-4/madsen/madsen.pdf}.}. \\ + +S'il y a donc un point à retenir : \textbf{\og Avoid \verb?eqnarray? ! \fg{}} et utilise bien l'environnement \verb?align?. +\end{attention} + +Pour le second résultat avec des accolades, il faut utiliser les délimiteurs et un tableau avec l'environnement \verb?array?. + +Si \verb?array? fonctionne en mode mathématiques, \textbf{fais attention :} \verb?align? s'emploie sans ! C'est parti pour un exemple. Reproduisons le cas présent en page \pageref{alignement-maths} : + +\begin{codedisplay}{Aligner des équations -- 1\up{ère} partie} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +Nous cherchons $a$ tel que : \begin{align*} +P\,(\mu \in I) & = 1 - \alpha \\ + & = 0,9 \intertext{car l'énoncé indique que $1 - \alpha = 0,9$} + & = P \left( \cfrac{\bar{X} - \mu}{S} \dots{} \right) \\ + & = 2 \mathcal{S}_{n - 1} \left( \cfrac{a}{S} \dots{} \right) +\end{align*} +\end{codedisplay} + +Que relevons-nous de concret sur ce premier cas de figure ? \begin{itemize}[label = \ding{118}] +\item l'environnement \verb?align? (ou \verb?align*?) utilise un \verb?&? \textbf{-- et un seul --} comme point de repère pour l'alignement. C'est pourquoi il est plutôt recommandé de le placer avant le signe \verb?=? ; + +\item une nouvelle ligne est annoncée par un saut de ligne \verb?\\?, comme pour une matrice ; + +\item la commande \verb?\intertext{texte}? permet d'ajouter une remarque entre 2 équations. Notons au passage l'absence (volontaire) de saut de ligne (\verb?\\?) : \verb?\intertext? entraîne déjà un espacement suffisant ; + +\item plus anecdotique : la commande \verb?\mathcal{texte}? permet de ``transformer'' les caractères (utilisation d'une autre police adaptée aux symboles mathématiques). \\ +\end{itemize} + +\begin{codedisplay}{Aligner des équations -- 2\up{nde} partie} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +Nous pouvons donc conclure par : \[\left\{\begin{array}{rcl} +I & = & [74,98 \dots{} ] \\ +n & = & 20 \\ +1 - \alpha & = & 0,9 +\end{array} \right.\] +\end{codedisplay} + +Nous constatons que l'environnement \verb?array? fonctionne de manière très similaire aux matrices. Il faut indiquer le nombre de colonnes via des lettres (\verb?l?, \verb?c? ou \verb?r?). + +Le nombre de lettres correspond au nombre de colonnes et le nom parle de lui-même pour positionner le contenu à l'intérieur de la colonne : \verb?left?, \verb?center? ou \verb?right?. + +L'utilisation d'un délimiteur est parfaitement envisageable (et recommandé) pour avoir l'accolade de taille variable à gauche. \textbf{L'usage du mode mathématiques devient dès lors obligatoire et justifie l'emploi de l'environnement \verb?array? au lieu d'\verb?align?.} \\ + +Enfin, si jamais tu désires avoir une résolution d'équations avec un seul numéro global comme référence (ce que ne permet pas l'environnement \verb?align?), tu peux procéder de la façon suivante : + +\begin{codedisplay}{Des équations -- Un numéro} +% Toujours dans le préambule +%\usepackage{amsmath, amsfonts, amssymb} + + +\begin{equation} +\begin{split} +x & = y + z \\ + & = 13 +\end{split} +\end{equation} +\end{codedisplay} + +Il faut donc utiliser l'environnement \verb?equation? pour passer en mode mathématiques avec un numéro pour l'équation, puis utiliser l'environnement \verb?split? pour écrire tes équations bien alignées. + +L'environnement \verb?split? fonctionne de la même manière que l'environnement \verb?align? (ou \verb?align*?). \\ + +Que vais-je bien pouvoir t'expliquer désormais ? Et surtout, comment vais-je bien pouvoir remplir le bas de cette page avant de passer au prochain chapitre\dots{} \\ + +\begin{center} +\begin{minipage}{0.5\linewidth} +\includegraphics[width = \linewidth]{Aide_LaTeX5.png} +\end{minipage} +\hfill +\begin{minipage}{0.45\linewidth} +Tu auras le droit à un gâteau si tu me croises un jour et que tu me donnes l'origine de cette image. Et il y a une référence dans cette référence\dots{} \textit{\#{}The cake is a lie !} +\end{minipage} +\end{center}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-regles.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-regles.tex new file mode 100644 index 00000000000..6104dd037ee --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-regles.tex @@ -0,0 +1,186 @@ +\chapter{Les règles de base} + +\section{Les règles pour faire du \LaTeX{}} + +Ces règles sont officieuses : je les ai élaborées à partir de mon expérience personnelle avec \LaTeX{}. Elles restent donc pragmatiques et peuvent paraître un peu farfelues mais sont importantes à mes yeux : + +\begin{regles}{Les 5 règles pragmatiques} +\begin{enumerate}[label = \textbf{\color{BrickRed}Règle \no\arabic* :}, leftmargin = *] +\item Tout est possible en \LaTeX{}\footnote{Y compris écrire des partitions de musique : \url{http://fr.wikibooks.org/wiki/LaTeX/\%C3\%89crire_de_la_musique}}. + +\item La règle \no{}1 est toujours vraie. + +\item \LaTeX{} implique d'écrire des commandes soit des lignes de code. Aérer et ordonner son code en facilite la relecture. + +\item La voie de la perfection en \LaTeX{} passe par une recherche régulière sur Internet. + +\item Si tu rencontres des difficultés, il ne faut pas hésiter à demander des conseils. +\end{enumerate} +\end{regles} + +Passons maintenant sur des règles plus concrètes vis-à-vis de l'écriture d'un code \LaTeX{}. + +\section{Les 3 règles d'or en \LaTeX{}} + +Pour écrire du code \LaTeX{}, il existe 3 règles, suffisamment importantes à mon sens pour être en or : + +\begin{regles}{Les 3 règles d'or en \LaTeX{}} +\begin{enumerate}[label = \textbf{\color{BrickRed}Règle d'or \no\arabic* :}, leftmargin = *] +\item Toute commande \LaTeX{} débute par un \textit{backslash} ``\verb?\?''. + +\Windows{} : \keys{\AltGr + 8} + +\Apple{} : \keys{\Alt + \shift + /} + +\item Tout texte concerné par une commande \LaTeX{} est délimité par des accolades ``\{'' et ``\}''. + +\Windows{} : \keys{\AltGr + 4} et \keys{\AltGr + =} + +\Apple{} : \keys{\Alt + (} et \keys{\Alt + )} + +\item Toute commande \LaTeX{} qui comprend un \verb?begin? finit par un \verb?end?. + +Ce genre de structure s'appelle un \textbf{environnement}. +\end{enumerate} +\end{regles} + +Il s'agit donc, selon moi, de la base pour écrire du code \LaTeX{}. Respecter ces règles permet d'éviter un bon nombre d'erreurs, nombreuses quand tu débutes. + +Ces 3 règles prendront leur sens sous peu, quand nous allons mettre en forme notre document et commencer à faire du \LaTeX{} (cf. \ref{mise-forme} \nameref{mise-forme}, p. \pageref{mise-forme}). + +\section{La base d'un document \LaTeX{}} + +\label{documentclass}Pour commencer, démarrons un fichier \LaTeX{} : ouvrons \Texmaker{}, créons un nouveau fichier et enregistrons-le au format \verb?.tex?\footnote{Pour information/rappel, un fichier \LaTeX{} possède toujours l'extension \verb?.tex?}. \\ + +\begin{attention}{Codes \LaTeX{} fournis} +\textbf{Tout au long de ce guide, des exemples de code \LaTeX{} sont fournis dans des encadrés verts clairs. Ils ont été testés par mes soins avec le moteur PDF\LaTeX{} : tout devrait donc fonctionner aussi de ton côté.} + +Toutefois, la copie du code depuis ce guide au format PDF semble encore présenter quelques lacunes : saut de ligne lors d'une coupure (ligne de code trop longue), apostrophe différente de celle présente sous \Texmaker{}\dots{}. Des erreurs lors de la génération du document PDF peuvent alors survenir. \\ + +\`A toi de voir si tu préfères recopier chaque ligne de code -- ce qui facilite la mémorisation et l'apprentissage selon moi -- ou si tu préfères copier-coller et habilement utiliser la fonction \og Remplacer \fg{} de \Texmaker{}. +\end{attention} + +\vspace{\baselineskip} + +La base d'un document \LaTeX{} est la suivante : + +\begin{code}{La base d'un document \LaTeX{}} +\documentclass[options]{classe} + +% Préambule + + +\begin{document} + +% Ici s'écrit notre texte +% Notons que le symbole "%" permet de mettre un commentaire + +\end{document} + +Tout ce que j'écris après \end{document} n'a aucun intérêt et ne sera pas interprété par LaTeX. +\end{code} + +Plusieurs points importants sont à retenir : + +\begin{itemize}[label = \ding{213}] +\item \verb?\documentclass? permet de définir le type de document (appelé \og \textit{classe} \fg{} en \LaTeX{}) sur lequel tu vas travailler ; + +\item la zone entre \verb?\documentclass? et \verb?\begin{document}? s'appelle le préambule. Je décris cette partie en \ref{preambule} \nameref{preambule}, p. \pageref{preambule} ; + +\item un premier exemple d'illustration de la règle d'or n\degres{}3 : un \verb?begin? implique un \verb?end?. + +Seuls le texte et les commandes \LaTeX{} écrits entre \verb?\begin{document}? et \verb?\end{document}?, hormis les commentaires, sont interprétés par \LaTeX{} lors de sa création du fichier PDF final ; + +\item tout ce qui peut être écrit après \verb?\end{document}? n'est pas pris en compte par \LaTeX{}. \\ +\end{itemize} + +Que mettre maintenant dans la ligne \verb?\documentclass? ? Il s'agit ici de définir le type de document à mettre en forme. En \LaTeX{}, le terme consacré est \og \textit{classe} \fg{}. Définir la classe d'un document \LaTeX{} revient à utiliser un gabarit spécifique pour le document, défini par défaut dans le code source de \LaTeX{}, et entièrement personnalisable par la suite si besoin. \\ + +Il existe plusieurs classes, à renseigner à l'endroit où il y a écrit \verb?classe? dans mon exemple générique : \verb?report? pour taper des rapports ; \verb?article? pour des articles scientifiques ; \verb?book? pour des livres et \verb?letter?, tu as compris je pense, pour des lettres. + +La partie \verb?options? permet ensuite de renseigner toutes les options propres à une classe. Les plus communs sont la taille du papier (A4 : \verb?a4paper?, A5 : \verb?a5paper?) ainsi que la taille de police de base (\verb?10pt?, \verb?11pt? ou \verb?12pt?). Mais il en existe d'autres, en fonction des classes utilisées. \\ + +\textbf{Personnellement, je recommande de commencer un nouveau document} par \verb?\documentclass[a4paper, 12pt]{report}?. Ce choix convient pour 90~\% des cas : ainsi, le risque de problème est moindre. + +Néanmoins, il faut bien garder à l'esprit que d'autres options de présentation de document existe (\verb?book?, \verb?article? ou \verb?letter?). Ces derniers peuvent toujours servir. + +\begin{conseil}{Pour aller plus loin} +Des explications plus précises et poussées (toutes les options de \verb?report?, \verb?article?, etc.) sont disponibles à \url{http://fr.wikibooks.org/wiki/LaTeX/Les_classes}. \\ + +Ce qu'il faut bien comprendre et surtout retenir, c'est que \textbf{la forme finale de ton document est intrinsèquement liée à sa classe et aux options choisies.} +\end{conseil} + +\begin{attention}{Une question ?} +\og Et si je veux changer la police en 14pt, comment faire ? \fg{} \\ + +Ah, je vois que le fond de la classe suit. J'aborde ce point en \ref{mise-forme} \nameref{mise-forme}, p. \pageref{mise-forme}. +\end{attention} + +C'est bon ? Toujours là ? Tu verras, avec de la pratique, les bases vont rentrer. Plus qu'un dernier point un peu théorique à aborder et nous passerons à la pratique. Promis ! + +\section{Les packages} + +\label{preambule}Si le lecteur curieux ne s'est pas encore empressé de faire des essais, je lui recommande d'essayer le code suivant : + +\begin{code}{Un premier essai} +\documentclass[a4paper, 12pt]{report} + +\begin{document} + +J'aime écrire en \LaTeX{} ! + +\end{document} + +% N.B. : Les sauts de ligne, c'est important pour la lisibilité (règle pragmatique n°3) +\end{code} + +Si jamais tu ne sais pas quoi faire du code, je ne peux que t'inviter à te rendre en page \pageref{compilation_intro}. Tu y trouveras tout un chapitre consacré à la compilation sous \LaTeX{}, soit l'étape pour transformer ton code en un PDF ! \\ \\ + +Normalement, suite à la compilation, tu as dû obtenir : \begin{center} J'aime crire en \LaTeX{} ! \end{center} + +Analysons le résultat. La règle d'or n\degres{}1 commence à prendre du sens : une commande \LaTeX{} commence par un \textit{backslash} ``\verb?\?'' (Ou contre-oblique pour les puristes). Cette commande me permet d'écrire le mot \og LaTeX \fg{} d'une manière plus élégante. + +Par contre, aucune trace du ``é''. C'est bizarre : moi j'arrive à l'écrire sans souci ! C'est parce que tu n'as pas dit à \LaTeX{} d'écrire en \texttt{UTF-8}\footnote{L'\texttt{UTF-8} est un codage de caractères informatiques, qui tolère les accents : \url{http://fr.wikipedia.org/wiki/UTF-8}.} ! \\ + +Pour ce faire, il faut dire à \LaTeX{} de charger des options supplémentaires. Dans le jargon \LaTeX{}, ces options sont appelées des \textit{packages}. Dans la littérature française, le terme de \og paquetages \fg{} est parfois employé. + +\textbf{Les packages sont toujours renseignés dans le préambule,} soit entre les lignes \verb?\documentclass[options]{classe}? et \verb?\begin{document}?. Pour charger un package, il faut utiliser la commande : \begin{center} \verb?\usepackage[options_du_package]{nom_du_package}? \end{center} + +Pour rédiger des documents en français, il est recommandé de remplir le préambule de la manière suivante : + +\begin{code}{Un exemple qui fonctionne bien} +\documentclass[a4paper, 12pt]{report} + +\usepackage{lmodern} % Police standard sous LaTeX : Latin Modern +% (alternative à la police d'origine développée par Donald Knuth : Computer Modern) +\usepackage[french]{babel} % Pour la langue française +\usepackage[utf8]{inputenc} % Pour l'UTF-8 +\usepackage[T1]{fontenc} % Pour les césures des caractères accentués + + +\begin{document} + +J'aime écrire en \LaTeX{} ! + +\end{document} +\end{code} + +Je sens la curiosité briller dans ton regard donc je vais essayer de te donner un peu plus de détails que les commentaires fournis\footnote{Les explications qui suivent proviennent du site \url{http://blog.dorian-depriester.fr/latex/mais-a-quoi-bon-servent-les-packages-fontenc-et-inputenc}} : \begin{itemize}[label = \ding{118}] +\item le package \verb?inputenc?, avec l'option \verb?utf8?, permet de prendre en compte l'utilisation de caractères accentués dans le fichier source (soit ton fichier \verb?.tex?). Concrètement, \verb?inputenc? se contente en fait de faire lui-même la conversion entre les caractères accentués et les commandes d'accentuation propres à \LaTeX{} ; + +\item si \verb?inputenc? gère l'affichage des caractères accentués, la césure reste catastrophique ! Pour indiquer au compilateur les règles de césure pour les mot accentués, il faut donc utiliser le package \verb?fontenc?, avec l'encodage \verb?T1? en option ; + +\item là encore, le résultat est loin d'être parfait. Le fait de charger \verb?fontenc? remplace les polices par défaut par des fontes de type 3, c'est-à-dire non vectorielles. En clair, si tu zoomes sur un caractère accentué de ton PDF, il sera pixélisé. D'où le chargement en amont de la police \textit{Latin Modern}, via le package \verb?lmodern? ; + +\item enfin, pour s'adapter à la langue de Molière, le package \verb?babel? avec l'option \verb?french? est indispensable ! \\ +\end{itemize} + +\begin{attention}{Une question ?} +\og Pourquoi dire à \LaTeX{} d'aller chercher des options alors que rien n'a été précisé pour la commande \verb?\LaTeX{}?, par exemple ? \fg{} \\ + +Tout simplement parce qu'il s'agit d'une commande présente de base dans le code source de \LaTeX{}. Il n'y a donc pas besoin de charger quoi que ce soit au préalable. \\ + +Sache aussi que les packages sont construits par les utilisateurs \LaTeX{}. C'est pourquoi tout est possible avec \LaTeX{} : tout est modifiable ou n'attend qu'à être créé. +\end{attention} + +C'est bon ? Toujours de la partie ? Dis-toi que, désormais, tu vas enfin pouvoir écrire des paragraphes. Passons donc à la pratique !
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-tableaux.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-tableaux.tex new file mode 100644 index 00000000000..015b04a792b --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-tableaux.tex @@ -0,0 +1,309 @@ +\chapter{Les tableaux et boîtes sous \LaTeX{}} + +\label{chap_table}\lettrine{S}{ynthétiser} l'information n'est pas toujours évident. Et pourtant, un bon tableau suffit parfois à véhiculer un message ou à lister des éléments. Voyons comment en créer sous \LaTeX{}. \\ + +\input{./Chapitres/code_base} + +\section{Conventions} + +C'est le passage un peu rébarbatif du guide mais qu'il faut rappeler si tu t'intéresses un peu à la mise en forme de documents. Les conventions que je vais énoncer ci-après proviennent à l'origine du guide du package \verb?booktabs?\footnote{Disponible sur : \url{https://www.ctan.org/pkg/booktabs}.}, qui permet d'améliorer la qualité des tableaux sous \LaTeX{}. + +\begin{regles}{Les conventions pour rédiger des tableaux} +{\noindent\huge\bfseries\color{gray!75}\og} + +Tu ne feras pas de graves erreurs si tu te rappelles à tout moment de +deux simples commandements : \begin{enumerate} +\item Ne jamais, au grand jamais, utiliser de filets verticaux. + +\item Ne jamais utiliser de filets doubles. \\ +\end{enumerate} + +Ces commandements peuvent sembler extrêmes mais en des années d'expérience je +n'ai jamais trouvé un bon argument pour passer outre. + +Par exemple, si tu estimes que les informations dans la moitié gauche d'une table sont si différentes de celles de la droite qu'il faut les séparer par une ligne verticale, alors tu devrais plutôt utiliser deux tables. + +Le second commandement est très, très occasionnellement violé. [\dots{}] \\ + +Il y a trois autres conseils que je pourrai citer ici car ils sont si peu connus en dehors des cercles des typographes et éditeurs professionnels : \begin{enumerate} +\item Place les unités dans l'en-tête de la colonne (pas dans le corps de la table). + +\item Fais toujours précéder un point décimal (une virgule décimale en français) par un chiffre ; donc 0.1 (ou 0,1) et pas simplement .1 (,1). + +\item N'utilises pas de signes \og ditto \fg{} ou toute convention analogue pour répéter une valeur précédente. Dans la plupart des cas, un blanc fait aussi bien l'affaire. Sinon, répètes la valeur. \\ +\end{enumerate} + +Est-ce que c'est moi qui suis pédant ? Ces derniers conseils sont de plus en plus souvent ignorés dans les travaux publiés. Pour moi, ceci montre simplement que la typographie est celle d'un amateur. + +{\hfill\huge\bfseries\color{gray!75}\fg} \\ + +\begin{flushright} +Guide du package \verb?booktabs? + +\url{https://www.ctan.org/pkg/booktabs} +\end{flushright} +\end{regles} + +Maintenant que les conventions sont posées, voyons désormais comment créer un tableau. + +\section{Création de tableaux} + +Nativement, tous les éléments sont disponibles sous \LaTeX{} pour créer des tableaux extrêmement simples. Pour ce faire, il faut utiliser l'environnement \verb?tabular?. + +Si tu te souviens bien de la construction de l'environnement \verb?array? (tableaux en mode mathématiques), tu vas vite te rendre compte que le fonctionnement de base de l'environnement \verb?tabular? (tableaux en mode texte) est identique. Un petit exemple, comme toujours : + +\begin{codedisplay}{Premiers tableaux} +\begin{tabular}{cc} +Centrage & Ici aussi \\ +Ok ! & $\alpha = 13$ +\end{tabular} \\ \\ + +\begin{tabular}{ll} \hline +Tableau & simple \\ \hline +sous & \LaTeX{} \\ \hline +\end{tabular} +\end{codedisplay} + +Comme tu peux le constater, je ne t'ai pas menti : la construction est rigoureusement identique à celle de l'environnement \verb?array?. La seule différence ? Comme il s'agit d'un tableau en mode texte, il est tout à fait licite d'introduire un mode mathématiques local (avec des \verb?$?) pour écrire des mathématiques dans une cellule du tableau. + +Pour la séparation avec un filet\footnote{Terme consacré apparemment : c'est l'équivalent d'un ``trait''.} horizontal, il faut donc appeler la commande \verb?\hline? \textbf{après} un saut de ligne (hormis au début du tableau). + +\begin{attention}{Une question ?} +\og Par rapport à ton exemple, mes tableaux sont plus resserrés. Pourquoi n'avons-nous pas le même résultat ? \fg{} \\ + +Question très pertinente : j'ai en effet une corde supplémentaire à mon arc. J'ai indiqué dans le \textbf{préambule} de ce guide une commande qui impacte tous mes tableaux et permet de les aérer un peu plus. Cette commande est la suivante : \begin{center} \verb?\renewcommand{\arraystretch}{1.3}? \end{center} + +Elle permet d'agrandir la hauteur minimale d'une ligne, ce qui permet d'aérer les tableaux. Le coefficient de \verb?1.3? est un choix personnel : libre à toi de le modifier à ta convenance. +\end{attention} + +\begin{conseil}{La petite astuce} +Si jamais tu as un ``grand nombre'' de colonnes à déclarer lors de la création de ton tableau, il existe un petit raccourci. + +Au lieu d'écrire \verb?c...c? (\verb?N? fois), tu peux écrire \verb?*{N}{|c}|?. Ainsi, tu crées \verb?N? colonnes centrées. Pratique, non ? +\end{conseil} + +Si tu veux des options plus poussées sur les tableaux (fusion de cellules, remplissage, mise en gras d'une colonne entière\dots{}), je te renvoie à la 3\up{ème} partie de ce guide où tu peux trouver des réponses. Internet peut aussi t'aider si besoin. + +Sache encore que, dès l'instant où tu arpentes le chemin d'une personnalisation très poussée et sophistiquée, tu risques de perdre beaucoup de temps à faire en sorte que le code \LaTeX{} fonctionne. Avec les éléments de base que je viens de te présenter, j'estime que tu peux déjà faire 70 \% des tableaux nécessaires. + +Pour les 30 \% restants, à titre indicatif et si tu es curieux, tu peux te tourner vers les packages suivants : \verb?array?, \verb?booktabs?, \verb?longtable? et \verb?multirow? (fusion de lignes ; fusion de colonnes possible de base avec la commande \verb?\multicolumn?). \\ + +Maintenant que les éléments de base ont été présentés, passons à un autre élément important. + +\section{Insérer une légende} + +Avoir un tableau, c'est bien. Avoir un tableau avec une légende, c'est mieux. Et avoir une légende avec une numérotation automatique, c'est encore mieux ! Fort heureusement, \LaTeX{} propose tous ces éléments nativement. + +Je ne vais pas rentrer dans les détails du concept, que je développe plus amplement dans le prochain chapitre. Sache juste, pour commencer, qu'il te faut procéder de la manière suivante : \begin{enumerate} +\item Insertion du tableau dans un environnement \verb?table?. + +\item Insertion de la légende avant ou après le tableau (au choix) grâce à la commande \verb?\caption{Légende}?. \\ +\end{enumerate} + +Un exemple minimaliste serait alors le suivant : + +% codedisplay impossible ici (ou emploi de \begin{table}[H]) +\begin{code}{Tableau \& légende} +\begin{table} +\centering +\caption{Légende du tableau} +\begin{tabular}{ccc} +Tableau & de & test \\ \hline +sous & \LaTeX{} +\end{tabular} +\end{table} +\end{code} + +Passons maintenant à un autre élément disponible sous \LaTeX{} pour faire un peu de mise en forme sans nécessairement passer par un tableau : les boîtes. + +\section{Les boîtes} + +\subsection*{La théorie} + +Si tu peux tout à fait utiliser un tableau pour encadrer des formules, des images ou du texte, il existe d'autres solutions plutôt complètes et personnalisables sous \LaTeX{}. En l'occurrence, parlons des boîtes. \\ + +Sous \LaTeX{}, tout tient dans une boîte : les lettres, les paragraphes, les tableaux, les images, les équations\dots{} Bref, tout ! Concrètement, une \textit{box} (boîte) est le terme technique en \LaTeX{} pour un contenant invisible qui peut contenir soit un élément visible, soit une autre boîte, soit rien du tout. Ensuite, chaque boîte est connecté grâce à de la \textit{glue} (colle), qui détermine la séparation entre les boîtes. + +Dans un document traditionnel, les ``lettres-boîtes'' sont donc collées à d'autres pour former des mots, eux-mêmes collés élastiquement à d'autres mots pour former des phrases. Ces phrases sont découpées en lignes et placées dans un paragraphe (boîte encore une fois), écarté ou collé à d'autres paragraphes de manière élastique là encore, cette fois pour former des pages suffisamment aérées et remplies. + +C'est donc ainsi que \LaTeX{} construit un document et les pages qui le compose, en collant les boîtes ensembles et grâce aux règles de base (natives) et à celles définies par l'utilisateur. \\ + +Concrètement, une boîte ressemble à : + +\begin{figure}[H] +\begin{tikzpicture}[arrow/.style = {<->, > = Triangle}, legend/.style = {align = center, text width = 2cm}] +\node[draw, font = \fontsize{110pt}{55pt}\selectfont, inner sep = 0pt] (lettre) {p}; + +\def\shift{7pt} +\draw[arrow, Green] ([xshift = -\shift]lettre.north west) -- node[left, legend] {hauteur \textbackslash\texttt{height}} ([shift = {(lettre.west)}, xshift = -\shift]lettre.base); +\draw[arrow, cyan] ([shift = {(lettre.west)}, xshift = -\shift]lettre.base) -- node[left, legend] {profondeur \\ \textbackslash\texttt{depth}} ([xshift = -\shift]lettre.south west); +\draw[arrow, orange] ([yshift = \shift]lettre.north west) -- node[above, legend] {largeur \\ \textbackslash\texttt{width}} ([yshift = \shift]lettre.north east); +\draw[arrow, red, very thick] ([shift = {(lettre.west)}]lettre.base) -- ([shift = {(lettre.east)}]lettre.base) node[right] {ligne de base}; +\end{tikzpicture} +\hfill +\begin{tikzpicture} +\node[draw = Green, very thick] { + \begin{tikzpicture}[every node/.style = {draw = cyan, font = \fontsize{90pt}{45pt}\selectfont, anchor = south west, inner sep = 0pt}] + \node (lettreA) {I}; + \node (lettreB) at (lettreA.south east) {n}; + \node (lettreC) at (lettreB.south east) {d}; + \node (lettreD) at (lettreC.south east) {i}; + \end{tikzpicture} +}; +\end{tikzpicture} +\caption{Schéma d'une boîte et de ses composants} +\end{figure} + +Les différentes dimensions de la boîte sont contenues au sein de 4 variables : \verb?\width? pour la largeur de la boîte ; \verb?\height? pour sa hauteur ; \verb?\depth? pour sa profondeur ; et \verb?\totalheight? pour sa hauteur totale soit \verb?\height? + \verb?\depth?. + +Ces variables ne peuvent être utilisées que pour des boîtes. Passons à un peu de pratique pour voir comment appeler les boîtes en question et se servir de ces dimensions qui leur sont propres. + +\subsection*{La pratique} + +Tout d'abord, les \verb?framebox? constituent la base en \LaTeX{}. La commande est assez simple : \begin{center}\verb?\framebox[largeur][pos]{texte}?\end{center} + +\noindent{}avec les choix suivants pour \verb?pos?\footnote{Par défaut, si rien n'est indiqué pour \verb?pos?, le texte est centré à l'intérieur de la boîte.} : \begin{itemize}[label = \ding{118}] +\item \verb?l? pour aligner \verb?texte? sur la gauche de la boîte ; +\item \verb?r? pour aligner \verb?texte? sur la droite de la boîte ; +\item \verb?s? pour aligner \verb?texte? sur toute la longueur de la boîte. \\ +\end{itemize} + +Si \verb?texte? fait référence à l'objet à encadrer (texte, image, formule\dots{}), \verb?largeur? fait référence à la largeur de la boîte. Tu peux renseigner une unité de distance (\verb?13pt?, \verb?215mm?, etc.). + +Naturellement, si tu renseignes \verb?1cm? alors que le texte en fait 2, le résultat risque de ne pas être satisfaisant. Les dimensions propres aux boîtes peuvent alors être utilisées, comme \verb?\width? : + +\begin{codedisplay}{Utilisation des \texttt{framebox}} +\framebox[1cm]{Texte} \\ +\framebox[13pt][r]{Test} \\ +\framebox[45mm][s]{Plus grande boîte} \\ + +\framebox[\width]{Pile poil !} \\ +\framebox[2\width]{Espacement} \\ +\framebox[\linewidth]{Largeur de la page} +\end{codedisplay} + +Comme démontré avec le dernier cas de figure, la longueur \verb?\linewidth?, présente nativement sous \LaTeX{}, peut être utilisée pour créer une boîte de largeur égale à celle de la page.\footnote{La notion de \og longueur \fg{} sous \LaTeX{} est abordée plus amplement en page \pageref{longueurs}.} \\ + +Il existe un raccourci pour appeler plus simplement une \verb?framebox? avec la commande \verb?\fbox?. Aucune option n'a besoin d'être indiqué, juste la partie \verb?texte?. La taille de la boîte s'adapte alors au contenu : + +\begin{codedisplay}{Le petit raccourci sympathique} +\fbox{Un peu de texte} \\ +\fbox{Un peu plus de texte} \\ + +\fbox{Des maths : $i = \sqrt{169}$} +\end{codedisplay} + +\begin{conseil}{De l'utilisation des \texttt{fbox}} +Les \verb?fbox? sont très pratiques, pour comprendre comment un paragraphe ou une image est agencé, ainsi que la taille qu'il occupe. \\ + +Lors de montages ou de nouvelles créations, il peut se révéler très utile d'encadrer les différents éléments grâce à des \verb?fbox? pour comprendre comment \LaTeX{} les agence et pouvoir apporter les correctifs nécessaires afin d'avoir le résultat souhaité ! +\end{conseil} + +Tu trouveras aussi dans la littérature les \verb?makebox?, dont l'appel est rigoureusement identique à une \verb?framebox?. Il s'agit tout simplement d'une \verb?framebox? sans cadre, ce qui ne présente que peu d'intérêt selon moi. + +Techniquement, la \verb?framebox? est construite à partir d'une \verb?makebox? mais j'ai trouvé plus judicieux de présenter directement la première. Bien, terminons avec une autre boîte bien utile. + +\subsection*{La plus utile} + +La boîte qui se révèle bien utile pour faire quelques montages reste la \verb?parbox? et l'environnement qui lui est associé : la \verb?minipage?. Sa syntaxe est la suivante : \begin{center}\verb?\parbox[ext][hauteur][int]{largeur}{texte}?\end{center} + +\noindent{}avec \verb?hauteur? et \verb?largeur? respectivement la hauteur et la largeur de la boîte (distance manuelle comme \verb?13mm? ou une longueur propre aux boîtes comme \verb?\width? ou une longueur \LaTeX{} comme \verb?\linewidth?). + +\begin{codedisplay}{Fonctionnement de base d'une \texttt{parbox}} +\parbox{13mm}{Texte} \\ + +\fbox{ % Intérêt de la fbox ! +\parbox{\linewidth-2cm}{Partie A \\ Partie B} +} +\end{codedisplay} + +Ensuite, \verb?ext? correspond à l'alignement externe de la \verb?parbox? par rapport à la ligne de base\footnote{Ligne sur laquelle reposent les lettres.}, avec les choix suivants : \begin{itemize}[label = \ding{118}] +\item \textcolor{Green}{\verb?m? (par défaut) ou si aucune option n'est donnée} pour centrer la boîte sur la ligne de base ; +\item \verb?b? pour aligner le bas (\textit{bottom}) de la boîte sur la +ligne de base ; +\item \verb?t? pour aligner le haut (\textit{top}) de la boîte sur la +ligne de base. +\end{itemize} + +\begin{codedisplay}[sidebyside = false, listing and text]{Alignement externe} +A : \parbox[b]{2cm}{Par. 1 \\ Par. 2} \hfill +B : \parbox{2cm}{Par. 3 \\ Par. 4} \hfill +C : \parbox[t]{2cm}{Par. 5 \\ Par. 6} +\end{codedisplay} + +Enfin, \verb?int? désigne l'alignement interne de la boîte, pour pouvoir positionner verticalement le texte dans la boîte, \textbf{sous réserve qu'une hauteur ait été indiquée}. Elle peut prendre quatre valeurs : \begin{itemize}[label = \ding{118}] +\item \verb?b? pour repousser le texte vers le bas de la boîte ; +\item \verb?t? pour situer le texte en haut de la boîte ; +\item \textcolor{Green}{\verb?c? (par défaut) ou si aucune option n'est donnée} pour centrer verticalement le texte ; +\item \verb?s? pour étirer verticalement le texte. \\ +\end{itemize} + +Toutefois, comme tu as pu le constater avec mes exemples, il n'est pas évident de gérer plusieurs paragraphes dans une \verb?parbox?. Il est même impossible d'y introduire d'autres environnements ! + +\label{minipage-explications}Il faut donc inclure le tout dans l'environnement équivalent : \verb?minipage?. L'appel à cet environnement se fait de la manière suivante, avec des paramètres identiques à ceux d'une \verb?parbox?, mais dans un ordre différent : \begin{verbatim} +\begin{minipage}[ext][hauteur][int]{largeur} +texte +\end{minipage} +\end{verbatim} + +Il convient donc de définir correctement une \verb?minipage? si tu veux éviter les erreurs. Dès l'instant où tu renseignes une des options non obligatoires (\verb?ext?, \verb?hauteur? ou \verb?int?), il faut toutes les indiquer ou le rendu ne sera pas conforme : + +\begin{codedisplay}{Appel de \texttt{minipage}} +\begin{minipage}{0.8\linewidth} +Texte avec un \\ +retour à la ligne ! +\end{minipage} \\ \\ + +\fbox{ +\begin{minipage}[m][1cm][b]{2cm} +Lorem +\end{minipage} +} \& ipsum +\end{codedisplay} + +\begin{attention}{De l'utilisation des \texttt{minipage}} +\textcolor{red}{\bfseries{}Il ne faut pas utiliser une \verb?minipage? pour simplement avoir un texte sur 2 colonnes !} + +D'abord, le résultat ne correspondra pas à tes attentes, ne sera pas esthétique et sera difficile à gérer. Ensuite, \LaTeX{} met à disposition l'option \verb?twocolumn? lors de la définition de la classe. \\ + +Une \verb?minipage? sert donc exclusivement pour des montages, par exemple une image à côté d'une autre image ou d'un texte, comme nous aurons l'occasion de le voir par la suite. + +Enfin, il faut savoir qu'il n'y a pas d'alinéa dans une \verb?minipage? : dans sa définition, par défaut, l'indentation est nulle. +\end{attention} + +\subsection*{Le petit bonus} + +Si tu veux continuer à arpenter le chemin des boîtes et avoir encore plus de personnalisation, je te recommande le package \verb?fancybox?. Il permet, entre autres, d'ajouter du surlignage et de l'ombrage aux boîtes. \\ + +Mais il existe un autre package bien plus puissant\dots{} + +\section{Le Saint-Graal des boîtes} + +Découvert lors de la rédaction de la première version de ce guide (été 2016), le package \verb?tcolorbox? est extrêmement complet et permet une personnalisation totale des boîtes. Tous les encadrés que tu as pu rencontrer jusqu'à présent dans ce guide sont générés grâce à ce package ! + +Si tu fouines un peu sur Internet, tu devrais trouver la documentation officielle\dots{} allez, je suis gentil, je te donne le lien : \url{http://fr.lmgtfy.com/?q=tcolorbox+help}. + +C'est actuellement 500 pages complexes mais qui assez illustrées, pour te permettre donc de réaliser des boîtes aussi jolies que celles présentes dans ce guide et bien plus. Beaucoup plus ! \\ + +Pour te donner un premier aperçu, voici un exemple extrêmement simple : + +\begin{codedisplay}{Première utilisation de \texttt{tcolorbox}} +% Ajout dans le préambule +%\usepackage{tcolorbox} + +\begin{tcolorbox}[colframe = orange, colback = orange!50, boxrule = 2pt, arc = 6pt, title = {Un titre}, coltitle = black] +J'adore ce package ! \\ +De toute mon âme ! +\end{tcolorbox} +\end{codedisplay} + +Et il ne s'agit que la partie émergée de l'iceberg ! La documentation officielle décrit toutes les options disponibles, les différentes boîtesmise à disposition, la création d'environnement pour appeler ses propres boîtes\dots{} \\ + +Mais je crois m'être légèrement emporté. Je reviens sur ce package plus en détail dans la partie suivante. Le but de cette partie reste de te présenter les bases sous \LaTeX{}. + +Passons désormais à un point plus sympathique mais que j'avais envie de garder pour la fin. Oh, mais je suis persuadé que tu l'attendais depuis un petit moment : comment insérer une image ! \\ + +\begin{figure}[H] +\centering +\includegraphics[width = 0.75\linewidth]{Aide_LaTeX6.png} +\end{figure}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-texte.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-texte.tex new file mode 100644 index 00000000000..091e3a3a9d5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p2-texte.tex @@ -0,0 +1,805 @@ +\chapter{Gestion du texte et mise en forme} + +\label{chap_texte}\lettrine{M}{aintenant} que nous connaissons les règles de base pour faire du \LaTeX{} et que les packages ont été introduits, nous allons pouvoir commencer à écrire du texte sous \LaTeX{}. \\ + +\input{./Chapitres/code_base} + +\section{Notre premier texte} + +Prêt à enfin écrire un roman ? Bon, nous allons attaquer en douceur. Et, petit à petit, tu auras suffisamment d'outils à ta disposition pour profiter des fonctionnalités offertes par \LaTeX{}. Poursuivons avec le code suivant : + +\begin{code}{Un nouvel essai} +J'aime écrire en \LaTeX{} ! Vraiment ! Surtout avec des phrases longues qui prennent de la place. % Saut de ligne + +Et toi ? Qu'en est-il ? \\ % Beaucoup d'espace et un nouveau symbole (\\) + + +Pardon ? Tu débutes ? Tu vas voir, c'est facile. % Double saut de ligne +\end{code} + +Tu devrais normalement obtenir : + +\begin{boite}{Le résultat}{Cerulean} +J'aime écrire en \LaTeX{} ! Vraiment ! Surtout avec des phrases longues qui prennent de la place. + +Et toi ? Qu'en est-il ? \\ + + +Pardon ? Tu débutes ? Tu vas voir, c'est facile. +\end{boite} + +Nous pouvons relever plusieurs points : + +\begin{itemize}[label = \ding{213}] +\item un saut de ligne à l'écran est interprété comme un retour à la ligne ; + +\item la commande \verb?\\? permet un véritable saut de ligne et donc de créer un nouveau paragraphe ; + +\item les espaces et saut de ligne intempestifs ne sont pas pris en compte ; + +\item les alinéas sont automatiques (pas besoin de faire de tabulations). \\ +\end{itemize} + +Contrairement à Word, à première vue, \LaTeX{} possède une façon un peu curieuse d'aller à la ligne ou de faire un saut de ligne (nouveau paragraphe). Mais rappelons que la raison d'être de \LaTeX{} est de séparer le fond de la forme : nous tapons le fond pour laisser \LaTeX{} le mettre en forme lors de la compilation. + +Mais l'utilisateur garde le contrôle et peut influer sur la forme grâce à des commandes \LaTeX{}. C'est bien ce qui se passe ici. Si l'utilisateur veut un retour à la ligne, il doit sauter une ligne dans son code. S'il veut sauter une ligne, il doit utiliser la commande \verb?\\? et sauter une ligne dans son code. \\ + +Nous avons aussi pu remarquer que \LaTeX{} gère tous les problèmes liés à l'espacement entre les mots. Il est donc inutile de faire un grand nombre d'espaces ou de saut de ligne pour aérer son texte. Encore une fois, ce n'est pas la politique de \LaTeX{} et il faut passer par des commandes si besoin. + +Si le saut de ligne est disponible grâce à la commande \verb?\\? -- qui, au passage, est cumulable --, l'utilisateur peut jouer sur l'espacement vertical grâce à la commande \verb?\vspace{longueur}?, avec \verb?v? pour vertical et \verb?space? pour espace. Il en va de même pour un espacement horizontal avec la commande \verb?\hspace{longueur}?. \\ + +La longueur est totalement libre, à condition de renseigner correctement l'unité : \verb?13mm? ou \verb?215pt?, par exemple. Concrètement, nous pouvons procéder de la manière suivante : + +\begin{codedisplay}{Gérer l'espacement} +J'aime toujours écrire en \LaTeX{}. + +\vspace{1cm} + +Surtout \hspace{8mm} quand je laisse du blanc ! +\end{codedisplay} + +Si j'ai rapidement annoncé qu'il était possible de cumuler la commande \verb?\\? pour engendrer la création de plusieurs sauts de ligne, il existe aussi une longueur\footnote{Nous aurons l'occasion de revenir sur ce point en page \pageref{longueurs}.} définie nativement sous \LaTeX{} et qui correspond à un saut de ligne. + +Cette longueur est disponible grâce à la commande \verb?\baselineskip?. Voyons son utilisation sur un cas pratique : + +\begin{codedisplay}{Sauts de ligne et longueur \texttt{baselineskip}} +Il est possible de sauter plusieurs \\ \\ % Double saut de ligne + +lignes \\ \\ \\ % Triple saut de ligne + +ainsi. + +\vspace{2\baselineskip} % Double saut de ligne + +Cette solution est aussi possible, tout comme celle-ci ! \\[\baselineskip] % Double saut de ligne + +Bref, beaucoup de façons de sauter des lignes, de manière plutôt concise. +\end{codedisplay} + +Enfin, sache qu'il est possible de rentrer des valeurs négatives, comme \verb?-13mm? ou \verb?-215pt?. C'est surtout pratique pour remonter du texte lors de montages, voire des images si besoin. Je recommande juste de limiter cette pratique : tu risques de perdre beaucoup de temps à ajuster ton document. + +\begin{attentionbox}{Une question ?} +\og Que se passe-t-il si je vais juste à la ligne dans mon code \LaTeX{} ? \fg{} \\ + +Rien. Seul un saut de ligne à l'écran compte comme un retour à la ligne. + +Cependant, pour obtenir un retour à la ligne sur ton document, tu peux aussi terminer ta phrase par la commande \verb?\\? et faire un simple retour à la ligne dans ton code. +\end{attentionbox} + +Bon, maintenant que nous avons toutes les cartes en main pour écrire des paragraphes, passons à de la mise en forme. + +\section{Un peu de mise en forme} + +\label{mise-forme}Comme je l'ai déjà annoncé, avec \LaTeX{}, tu rédiges le fond et lui laisses le soin de s'occuper de la forme. Si nous en avons eu un premier aperçu, tu vas pouvoir t'en rendre véritablement compte dès à présent. + +Si tu veux mettre un texte en gras ou en italique, il faut donc l'indiquer à \LaTeX{} par le biais de commandes bien spécifiques : + +\begin{codedisplay}{Gras \& italique} +\textbf{texte en gras} \\ + +\textit{texte en italique} +\end{codedisplay} + +Comme tu peux le constater, tu écris la commande -- qui débute par un \textit{backslash} -- et tu encadres le texte concerné par des accolades. Fort heureusement, \LaTeX{} ne propose pas uniquement le gras et l'italique : + +\begin{table}[H] +\caption{Les différentes possibilités de mise en forme du texte} +\label{table-mise-forme} +\centering +\begin{tabular}{lll} \toprule +Texte & Rendu & Environnement \\ \midrule +\verb?\textbf{gras}? & \textbf{gras} & \verb?bfseries? \\ +\verb?\textit{italique}? & \textit{italique} & \verb?itshape? \\ +\verb?\emph{emphase}? & \emph{emphase} & \verb?em? \\ +\verb?\textsl{penché}? & \textsl{penché} & \verb?slshape? \\ +\verb?\textsc{Petites Capitales}? & \textsc{Petites Capitales} & \verb?scshape? \\ +\verb?\textsf{sans empattement}? & \textsf{sans empattement} & \verb?sffamily? \\ +\verb?\texttt{machine}? & \texttt{machine (à écrire)} & \verb?ttfamily? \\ \bottomrule +\end{tabular} +\end{table} + +Je vais revenir plus en détail sur l'emphase, avec la commande \verb?\emph{texte}?, qui ne correspond \emph{pas} à de l'italique. + +En typographie, l'emphase permet d'accentuer un mot ou une phrase grâce à un style ou une police différente de celle du reste du texte. Essayons avec un exemple répandu de faux texte : le \textit{lorem ipsum}\footnote{Pour plus de renseignements : \url{http://fr.wikipedia.org/wiki/Faux-texte} et \url{http://fr.lipsum.com/}.}. + +\begin{codedisplay}{L'emphase ou \textit{emphasis}} +\textbf{Lorem ipsum dolor sit amet, consectetur adipiscing elit. \emph{Nunc est leo, facilisis non nisi eget,} auctor eleifend metus.} \\ + +\textit{Vestibulum porttitor, ligula vitae suscipit bibendum, \emph{lorem ligula vestibulum ipsum,} sed ultricies tellus dolor sit amet odio.} +\end{codedisplay} + +Comme tu peux le constater, \LaTeX{} a adapté la mise en forme du texte avec emphase en fonction de la mise en forme du paragraphe ! \\ + +Voyons maintenant sur un exemple comment augmenter ou réduire la taille de la police, ainsi que les notes de bas de page : + +\begin{codedisplay}{Taille de police et note de bas de page} +% Différentes tailles de texte +{\tiny tiny} {\scriptsize scriptsize} {\footnotesize footnotesize} {\small small} {\normalsize normalsize} {\large large} {\Large Large} {\LARGE LARGE} {\huge huge} {\Huge Huge} \\ + +% Note +Note de bas de page\footnote{La note en question.}. +\end{codedisplay} + +Comme tu peux le constater, \LaTeX{} gère lui-même la numérotation des notes de bas de page, sans rien avoir besoin de lui indiquer. Pratique, n'est-ce pas ? \\ + +Si jamais tu as besoin d'appliquer une mise en forme ou une taille de police à plusieurs paragraphes, \LaTeX{} ne saura pas interpréter le changement de paragraphe. Dans ce cas, il faut passer par un environnement\footnote{Pour la mise en forme du texte, utiliser les noms définis dans la colonne \og Environnement \fg{} de la \tablename{} \ref{table-mise-forme}.} : + +\begin{codedisplay}{Mise en forme et taille -- Environnement} +\begin{Large} +Paragraphe 1. + +Paragraphe 2. \\ +\end{Large} + +\begin{bfseries} +Paragraphe 3. + +Paragraphe 4. +\end{bfseries} +\end{codedisplay} + +\LaTeX{} propose aussi un moyen très simple pour accentuer les majuscules. Il suffit d'utiliser un \textit{backslash}, suivi de l'accent désiré. Puis, tu écris ton mot normalement, avec une majuscule. + +\begin{codedisplay}{Accentuation} +% Accent sur les majuscules +\'E, \`E, \^E et \c{C} \\ + +% "o pris dans e" +\OE{}il, c\oe{}ur +\end{codedisplay} + +Il existe aussi des commandes spécifiques pour des symboles fréquemment utilisés. Je pense notamment aux guillemets et aux points de suspension. La preuve par l'exemple : + +\begin{codedisplay}{Autres symboles utiles} + +% Guillemets +\og guillemets français \fg{} et ``guillemets anglais'' \\ + +% Points de suspension +Points de suspension\dots{} \\ + +% Tirets +Tiret court : - \\ +Tiret moyen : -- \\ +Tiret long : --- \\ + +% Esperluette - Pourcentage +\& et \textit{\&} ; \% +\end{codedisplay} + +Une liste plus complète des symboles utiles sous \LaTeX{} est disponible en annexes, p. \pageref{annexes-liste-symboles}. Nous remarquons au passage que le \textit{backslash} sert aussi de \textbf{caractère d'échappement} pour tous les symboles utilisés lors de l'écriture du code \LaTeX{} (\&, \$, \#, \_, \{ ou \} par exemple). + +\begin{conseil}{Les marges} +Les gens me demandent souvent comment modifier les marges sous \LaTeX{}. Personnellement, j'ai fini par m'habituer aux marges natives de \LaTeX{} : je les modifie donc que pour des besoins très particuliers. \\ + +Si tu tiens à savoir pourquoi les marges sont plus grandes que celles d'un document Word, c'est parce que \LaTeX{} a initialement été inventé par des Américains (conventions américaines). + +De plus, \LaTeX{} sert pour rédiger des rapports scientifiques : leur reliure demande alors une marge plus importante s'ils sont épais. \\ + +Autrement, si tu as absolument besoin de modifier les marges de ton document, je te recommande le package \verb?geometry?, ainsi que la page suivante : \url{http://fr.wikibooks.org/wiki/LaTeX/Mise_en_page#Modification_des_marges}. +\end{conseil} + +Bien, nous avons fait un premier tour d'horizon des premières possibilités offertes par \LaTeX{} pour mettre en forme le texte. Passons à un peu d'organisation. + +\section{Organiser son document} + +\subsection*{La base} + +Taper du texte brut, c'est bien. Mais mettre des titres, c'est mieux. Là encore, rien à gérer. \LaTeX{} met en forme le titre selon son importance et s'occupe de la numérotation. Par ordre d'importance, nous pouvons avoir : + +\begin{itemize}[label = \ding{213}] % Emploi de \verb?\? ou c'est le bordayl dans la structure de Texmaker +\begin{multicols}{2} \raggedcolumns +\item \verb?\?\verb?part{titre}? ; + +\item \verb?\?\verb?chapter{titre}? ; + +\item \verb?\?\verb?section{titre}? ; + +\item \verb?\?\verb?subsection{titre}? ; + +\item \verb?\?\verb?subsubsection{titre}? ; + +\item \verb?\?\verb?paragraph{titre}? ; + +\item \verb?\?\verb?subparagraph{titre}?. \\ +\end{multicols} +\end{itemize} + +\begin{attention}{\textit{Nota Bene}} +La commande \verb?\part? n'est disponible que pour un document de classe \verb?report? (cf. \ref{documentclass} \nameref{documentclass} p. \pageref{documentclass}). \\ + +De même, la commande \verb?\chapter? n'est valable que pour les classes \verb?book? et \verb?report?. +\end{attention} + +Si tu veux sauter une page, la commande \verb?\newpage? est là. Un exemple d'organisation serait donc : + +\begin{code}{Exemple d'organisation} +% Enlever les % ici + +%\part{Partie I} + +%\section{Section 1.1} + +Comment est-ce numéroté ? + +%\section{Section 1.2} + +D'une manière bizarre ! + +%\part{Partie II} + +%\chapter{Chapitre 1} + +%\section{Section 1.1} + +Lorem ipsum\dots{} + +\newpage + +Bis repetita\dots{} +\end{code} + +\subsection*{Configuration de la numérotation} + +Comme tu peux le constater, il y a quelques problèmes de numérotation. Si les compteurs tournent normalement, il faut juste donner un coup de pouce à \LaTeX{} pour faire correctement les choses. Retente le même code avec ces commandes dans le préambule : + +\begin{code}{La numérotation des titres} +% ATTENTION : écriture de ces commandes dans le PREAMBULE !!! + +% RAZ des numéros de section après un chapitre +\makeatletter\@addtoreset{section}{chapter}\makeatother + +% Pour mettre des I, II, etc. aux parties +\renewcommand{\thepart}{\Roman{part}} + +% Pour mettre des 1, 2, etc. aux chapitres +\renewcommand{\thechapter}{\arabic{chapter}} + +% Idem pour les sections et avoir le numéro de chapitre +\renewcommand{\thesection}{\thechapter.\arabic{section}} +\end{code} + +Il existe plusieurs possibilités pour numéroter les différents titres de ton document. La liste complète des commandes utilisables est la suivante : \begin{itemize}[label = \ding{118}] +\item \verb?\arabic? : pour avoir des chiffres arabes soit 1, 2, 3\dots{} ; + +\item \verb?\roman? : pour avoir des chiffres romains minuscules soit i, ii, iii\dots{} ; + +\item \verb?\Roman? : pour avoir des chiffres romains majuscules soit I, II, III\dots{} ; + +\item \verb?\alph? : pour avoir des lettres minuscules soit a, b, c\dots{} ; + +\item \verb?\Alph? : pour avoir des lettres majuscules soit A, B, C\dots{}. \\ +\end{itemize} + +\subsection*{Titre sans numérotation} + +Enfin, dans le cas où tu veux juste écrire un titre sans numéro, il suffit d'ajouter une \verb?*? à la commande du titre : \verb?\?\verb?part*{titre}?, etc. \\ + +Bon, c'est bien gentil d'avoir des titres. Comment obtenir un sommaire désormais ? + +\section{Gestion du sommaire} + +\subsection*{La base} + +Pour une fois, nouvelle option, pas de nouveau package. Pour le sommaire, tout est déjà inclus de base dans \LaTeX{}. Pour l'afficher, il faut juste renseigner dans le code la commande \verb?\tableofcontents?, à l'endroit où tu désires placer le sommaire. + +\begin{attention}{Un problème ?} +\og J'ai lancé la compilation du sommaire mais rien ne s'affiche hormis \verb?Table des matières?. Est-ce normal ? \fg{} \\ + +Oui. Dès lors que tu génères un sommaire, il faut \textbf{toujours compiler deux fois} pour obtenir le résultat final attendu. + +\`A la première compilation, \LaTeX{} créé un nouveau fichier, d'extension \verb?.toc?, où il stocke le sommaire. \`A la seconde, il regarde si un tel fichier existe et, dans ce cas, récupère les informations pour générer le sommaire. +\end{attention} + +\begin{attention}{Une question ?} +\og Je ne veux pas lire \verb?Table des matières? mais \verb?Sommaire?. Est-ce possible ? \fg{} \\ + +Oui, tout à fait. C'est possible avec la commande suivante, dans le corps du texte, juste avant \verb?\tableofcontents? par exemple : \begin{center} \verb?\renewcommand{\contentsname}{Sommaire}? \end{center} +\end{attention} + +\subsection*{Le nec plus ultra} + +Avoir un sommaire, c'est bien. Pouvoir interagir avec, c'est encore mieux ! Pour pouvoir se déplacer rapidement dans le document grâce à un clic sur un titre du sommaire, il faut utiliser un nouveau package : \verb?hyperref?. + +Cependant, le résultat par défaut n'est pas très esthétique et peut entraîner une crise d'épilepsie aux plus sensibles, c'est pourquoi je recommande d'utiliser l'option \verb?colorlinks?\footnote{Si tu ne me crois pas, génères un sommaire avec juste le package \verb?hyperref?, sans option, et regarde le rendu du fichier PDF. Tu comprendras.}. + +Mais \verb?hyperref? va beaucoup plus loin et permet de personnaliser les options de lecture par défaut du PDF généré. C'est pourquoi je recommande d'utiliser aussi les nombreuses options comme indiqué dans l'exemple ci-après. \\ + +Ce même package permet d'indiquer des adresses Internet grâce à la commande \verb?\url{adresse_internet}?. En revanche, si certains liens sont trop longs et finissent en fin de ligne, ils sortent de la page. + +Ajouter \verb?breaklinks? dans les options du package \verb?hyperref? permet de résoudre le problème. Des fois, charger le package supplémentaire \verb?url?, avec l'option \verb?hyphens?, est obligatoire pour traiter les derniers cas de figure problématiques. + +\begin{code}{Le sommaire -- Bilan} +% Ajout au PREAMBULE +%\usepackage[hyphens]{url} % Pour des césures correctes dans les URLs +%\usepackage[pdfauthor = {{Prénom Nom}}, pdftitle = {{Titre document}}, pdfstartview = Fit, pdfpagelayout = SinglePage, pdfnewwindow = true, bookmarksnumbered = true, breaklinks, colorlinks, linkcolor = red, urlcolor = black, citecolor = cyan, linktoc = all]{hyperref} % Renvois -- Options Adobe/lecteur PDF + + +\begin{document} + +% Page de garde + +% Sommaire -- Penser à compiler deux fois +{ +\hypersetup{hidelinks} % Sommaire en "noir" +\renewcommand{\contentsname}{Sommaire} % Remplacer "Table des matières" +\tableofcontents % Affichage du sommaire +} + +% Si nécessaire +%\clearpage % Mieux qu'un \newpage ou des erreurs dans le sommaire parfois + +% Parties, chapitres, texte, etc. + +% Commande fournie avec le package hyperref +\url{https://www.ctan.org/} + +\end{document} +\end{code} + +Pour revenir rapidement sur les options du package \verb?hyperref?, en voici un descriptif : \begin{itemize}[label = \ding{213}] +\item \verb?pdfauthor? \& \verb?pdftitle? : pour renseigner correctement les champs des options du fichier PDF. + +Il est possible de remplir les autres champs disponibles : cf. la documentation du package \verb?hyperref?\footnote{Et comme je suis adorable, voici le lien : \url{https://www.ctan.org/pkg/hyperref}.} ; + +\item \verb?pdfstartview? \& \verb?pdfpagelayout? : pour les options d'affichage du PDF à sa lecture. + +Pour connaître toutes les options disponibles, cf. la documentation du package \verb?hyperref? ; + +\item \verb?pdfnewwindow = true? : si ton document contient un lien vers un autre fichier PDF, cliquer sur le lien entraîne l'ouverture du PDF dans un nouvel onglet (et non à la place du premier PDF) ; + +\item \verb?bookmarksnumbered? : pour les signets du lecteur PDF ; + +\item \verb?breaklinks? : pour permettre la césure des liens insérés trop longs ; + +\item \verb?colorlinks? et toutes les couleurs qui suivent : pour colorer correctement les références du document ; + +\item \verb?linktoc = all? : pour faire un renvoi du sommaire avec les numéros de page. +\end{itemize} + +\subsection*{Ajout d'un titre étoilé} + +Enfin, dans le cas des titres étoilés, ces derniers n'apparaissent pas dans le sommaire. Il existe malgré tout un moyen de l'ajouter manuellement, si tu y tiens. Cette solution requiert l'utilisation du package \verb?hyperref?, que nous connaissons déjà. + +\begin{code}{Ajout d'un titre étoilé dans le sommaire} +% Ajout dans le préambule +%\usepackage{hyperref} + + +% Ajout d'un titre sans numéro + +% Penser à enlever le % la ligne en dessous +%\section*{Introduction} % Les titres doivent correspondre + +\phantomsection % Renvoi correct dans le sommaire +\addcontentsline{toc}{section}{Introduction} % Ajout dans le sommaire + +Lorem ipsum dolor\dots{} +\end{code} + +La ligne avec la commande \verb?\addcontentsline...? sert à implémenter dans le fichier \verb?.toc? (fichier qui gère le sommaire) le titre \verb?Introduction? en tant que \verb?section? (\verb?part? si partie, \verb?chapter? si chapitre, etc.). + +Le numéro de page correspond à l'endroit où est tapée la commande, d'où son positionnement \textbf{après} \verb?\section*?, pour éviter une mauvaise numérotation si le titre étoilé débute sur une nouvelle page. + +Il faut donc faire bien attention avec cette situation pour garantir la cohérence du document : il faut renseigner le même titre dans \verb?\section*? et dans \verb?\addcontentsline...?. C'est pourquoi, personnellement, j'utilise les titres étoilés le moins possible. \\ + +Bon, maintenant que nous avons un magnifique sommaire, est-il possible d'ajouter une page de garde ? + +\section{La page de garde} + +\subsection*{La base} + +Comme pour le sommaire, il faut d'abord créer la page de garde puis indiquer à \LaTeX{} de l'afficher. Pour la créer, il faut remplir les informations suivantes : + +\begin{code}{La page de garde -- Création} +% A mettre dans le préambule +% ou après \begin{document} + + +% Titre +\title{Titre} +%\title{\textbf{Titre}} % Ressort mieux selon moi + +% Auteur +\author{Prénom \textsc{Nom} \\ Profession} + +% Date +\date{\today} % Date du jour (compilation du document) +%\date{date_à_afficher} % Date fixe +\end{code} + +Naturellement, tout n'a pas besoin d'être renseigné. Si tu veux uniquement le titre, tu laisses juste la commande \verb?\title{Titre}?. + +\begin{conseil}{La petite astuce} +S'il y a plusieurs auteurs dans ton document, tu peux tous les indiquer. Il faut juste les séparer par un \verb?\and?, ce qui donne : \begin{center} \verb?\author{Nom1 \and Nom2 \and Nom3}? \end{center} + +\LaTeX{} s'occupe ensuite de la mise en forme de tous ces noms. Pratique, n'est-ce pas ? +\end{conseil} + +Pour afficher la page de garde, il faut ensuite renseigner dans le corps du document la commande \verb?\maketitle?, de préférence dès le début. + +Mais, tu devrais te rendre compte, après compilation, que, si tu demandes à ton lecteur de fichier PDF d'aller à la page $N$, tu te retrouves en page $N + 1$. C'est parce que \LaTeX{} ne numérote pas la page de garde et commence ensuite la numérotation à $1$ au lieu de $2$\dots{} + +C'est peut-être un détail mais, personnellement, je trouve extrêmement irritant d'aller dans le sommaire, de trouver le numéro de page de la section qui t'intéresse, de la saisir dans ton lecteur PDF\dots{} et d'arriver à la mauvaise page ! + +Fort heureusement, il suffit d'ajouter après \verb?\maketitle? la commande \verb?\setcounter{page}{2}?, pour réajuster correctement la numérotation des pages. \\ + +S'il fallait synthétiser les différentes options de base pour la page de garde, nous pourrions alors nous servir du code suivant : + +\begin{code}{La page de garde -- Bilan} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + + +\begin{document} + +% Informations de la page de garde +\title{\textbf{Initiation à \LaTeX{}} \\ \textit{Pour débutants ou jeunes utilisateurs}} +\author{Adrien \textsc{Bouzigues} \\ Salarié \and John \textsc{Doe} \\ Profession} +\date{\today} + +% Générer la page de garde +\maketitle + + +% Changer le titre du résumé +%\renewcommand{\abstractname}{\Large{}\textbf{Résumé}} + +% Résumé +\begin{abstract} +Résumé du document +\end{abstract} +% Classe report : sur une page à part +% Classe article : sur la page de garde (si pas de newpage) + +\clearpage\setcounter{page}{2} + +Lorem ipsum dolor\dots{} + +\end{document} +\end{code} + +\begin{attention}{Une question ?} +\og Ce n'est pas pratique ta page de garde. C'est sobre, impossible de mettre une image ! Est-il possible d'avoir mieux \fg{} \\ + +\dots{} Tu as parfaitement raison ! Il est tout à fait possible d'avoir une page de garde plus personnelle et plus décorée. Pour satisfaire ta curiosité, je te propose une première solution ``simple'' à utiliser. \\ + +\textbf{Mais prends garde !} Dès l'instant où tu commences à arpenter ce chemin -- construire une page spécifique à partir de rien --, tu peux très vite y passer beaucoup de temps. \LaTeX{} n'est pas un outil de création graphique à la base. + +Pour un rapport officiel ou si le temps t'est précieux, je recommande d'utiliser les commandes de base que je viens de présenter. + +Autrement, tu peux te permettre, comme je le fais pour ce guide, de construire ta propre page personnalisée. Il n'y a pas une seule bonne façon de faire et tout dépend de ce que tu veux faire. +\end{attention} + +\subsection*{Personnalisation de la page de garde} + +Comme promis, voici un exemple ``simple'' pour avoir une première page de garde personnalisable. Les possibilités sont très nombreuses avec \LaTeX{} : tout dépend donc de ce que tu veux faire. + +\begin{code}{Une solution personnalisable} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{graphicx} % Pour insérer une image (logo) +% cf. les chapitres suivants pour plus de détails + + +\begin{document} + +% Auteur : WikiBooks (http://en.wikibooks.org/wiki/LaTeX/Title_Creation) +% License : CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) +% Adaptation du document d'origine + +% Environnement titlepage : permet de créer une page de garde et de la personnaliser à volonté +\begin{titlepage} +\newcommand{\HRule}{\rule{\linewidth}{0.5mm}} % Ligne horizontale (épaisseur modifiable) + +\begin{center} % Centrer le contenu de la page +% En-têtes +\textsc{\LARGE{}Université} \\[1.5cm] +\textsc{\Large{}En-tête principal} \\[0.5cm] % Nom du cursus (par exemple) +\textsc{\large{}En-tête secondaire} \\[0.5cm] % Intitulé du cours (par exemple) + +% Titre +\HRule \\[0.6cm] +{\huge\bfseries{}Titre} \\[0.25cm] +\HRule \\[1.5cm] + +% Auteur +\begin{minipage}{0.45\linewidth} +\begin{flushleft} +\Large\textit{Auteur :} \\ +John \textsc{Smith} % Nom auteur +\end{flushleft} +\end{minipage} +\hfill +\begin{minipage}{0.45\linewidth} +\begin{flushright} +\Large\textit{Superviseur :} \\ +Dr. John \textsc{Smith} % Nom superviseur +\end{flushright} +\end{minipage} \\[2cm] + +% Si aucun superviseur, utiliser les lignes ci-après et supprimer les lignes précédentes +%\Large\textit{Auteur :} \\ +%John \textsc{Smith} \\[3cm] % Nom auteur + +% Date +{\large\today} \\[2cm] % Date : \today ou date saisie à la main + +% Logo +%\includegraphics{logo.png} \\[1cm] % Logo à utiliser +\end{center} + +\vfill % Remplir le reste de la page avec du blanc +\end{titlepage} + +\clearpage\setcounter{page}{2} + +Lorem ipsum dolor\dots{} + +\end{document} +\end{code} + +Allez, faisons une petite pause sur la mise en forme pour étudier un point un peu abstrait mais extrêmement puissant et nécessaire pour poursuivre. + +\section{Création de commandes} + +Il peut arriver que tu aies besoin de cumuler des commandes, et ce, un très grand nombre de fois. \LaTeX{} t'offre pour cela la possibilité d'en créer de nouvelles. + +Pour ce faire, il suffit d'ajouter la ligne suivante, de préférence dans le préambule même si tu peux l'insérer n'importe où dans ton document (avant le premier appel de ta nouvelle commande) : \begin{center} \verb?\newcommand{nom_commande}[nombre_arguments]{commande}? \end{center} + +\'Etudions son fonctionnement avec un exemple. Disons que je veuille mettre un mot (ou un groupe de mots) en gras et en italique. Je vais donc procéder ainsi : + +\begin{code}{Une première commande} +\documentclass[a4paper, 12pt]{report} + +\usepackage{lmodern} +\usepackage[french]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} + +\newcommand{\grasital}[1]{\textbf{\textit{#1}}} +% Le nom de la commande commence par "\" +% La position de l'argument se fait avec un "#" et son numéro + + +\begin{document} + +J'aime le chocolat ! \\ +\grasital{J'aime le chocolat !} \\ +J'aime le \grasital{chocolat} ! + +\end{document} +\end{code} + +Note bien qu'il peut y avoir aucun argument comme plusieurs, avec une limite de 9. Si l'utilisation avec plusieurs arguments sera plus concrète lorsque nous aborderons les mathématiques, voici un cas sans argument : + +\begin{codedisplay}{Un second cas} +% Création de la commande après \begin{document} : OK +\newcommand{\SAV}{\textbf{Service Après-Vente}} + +Notre \SAV vous aide. \\ + +Grâce à notre \SAV, vous serez comblés. +\end{codedisplay} + +J'ai décidé de mettre le texte en gras, mais rien ne m'empêche en cours de rédaction de mon rapport de modifier ce choix. L'avantage ? Tu as juste à modifier la commande et, lors de la compilation, la modification se répercute sur tout le document ! Pratique, non ? + +\textbf{C'est aussi pourquoi je recommande de placer tous les \verb?newcommand? dans le préambule :} c'est plus pratique pour les retrouver s'ils sont tous au même endroit, au lieu d'être dispersés dans le document. + +\begin{attentionbox}{Une question ?} +\og Pourquoi, dans le second cas, n'y a-t-il pas d'espaces dans le résultat entre \texttt{SAV} et \texttt{propose} ? \fg{} \\ + +Tu as l'\oe{}il ! Suite à une commande, \LaTeX{} ignore les espaces. Tu peux en ajouter un à la fin de la commande mais il y en aura alors aussi un après la virgule. \\ + +Pour indiquer à \LaTeX{} la fin de la commande, il faut donc la fermer avec des accolades. C'est ce que je fais par exemple lorsque j'écris \LaTeX{} : le code derrière est \verb?\LaTeX{}?. + +Il aurait donc fallu écrire dans mon exemple : \verb?notre \SAV{} vous? et \verb?notre \SAV{}, vous?. +\end{attentionbox} + +Tu ne trouves pas cet aspect utile pour l'instant mais tu verras que, quand tu prendras un peu d'expérience, tu finiras par créer toi-même tes commandes pour plus de simplicité et de rapidité. \\ + +Bien, continuons. C'est quoi déjà la suite ? Ah oui, les listes. + +\section{Les listes} + +\subsection*{La base} + +Les listes (à puces ou numérotées) sont des outils fort pratiques quand il s'agit d'énumérer des éléments, faire un inventaire ou décrire des étapes. + +Les listes peuvent donc être soit \textcolor{orange}{non numérotées} (listes dites \og à puces \fg{} : tiret, rond, autres symboles) : il faut alors utiliser l'\textcolor{orange}{environnement \verb?itemize?} ; soit \textcolor{cyan}{numérotées} (numéro ou lettre) : il faut donc passer par l'\textcolor{cyan}{environnement \verb?enumerate?}. + +Pour faire apparaître une puce ou un numéro, il faut utiliser la commande \verb?\item?. \\ + +Voyons plutôt le résultat avec un exemple : + +\begin{codedisplay}{Les listes} +Détail de la chambre : + +\begin{itemize} +\item un lit ; +% Le saut de ligne est optionnel +% --> aération du code LaTeX + +\item une armoire ; + +\item et un bureau. \\ +% Saut de ligne (\\) licite pour aérer le texte +\end{itemize} + +Pour écrire facilement en \LaTeX{}, il faut : + +\begin{enumerate} +\item Apprendre les bases. + +\item Pratiquer les bases. + +\item \^Etre curieux ! +\end{enumerate} + +% Imbrication des environnements (et donc des listes) possible +\end{codedisplay} + +Normalement, tu devrais avoir un résultat un peu différent du mieux : les tirets sont plus grands et tes numéros se terminent par un point et non par une parenthèse. + +Tout va bien ! J'ai juste une configuration par défaut de \LaTeX{} qui génère ce rendu. Tu peux donc constater que créer des listes sous \LaTeX{} se révèle très facile. Voyons maintenant comment les personnaliser à notre guise ? + +\subsection{Personnalisation des listes} + +Pour personnaliser ses listes, il existe un package incontournable : le package \verb?enumitem?. Combiné avec le package \verb?pifont? pour obtenir des symboles supplémentaires et donc avoir de nouvelles puces, c'est la meilleure combinaison possible pour personnaliser simplement ses listes. + +Concrètement, le package \verb?enumitem? offre quelques options, dont les suivantes que je recommande particulièrement : \begin{itemize}[label = \ding{213}] +\item \verb?label = puce? : pour changer la puce ou la numérotation utilisée ; + +\item \verb?leftmargin = *? : pour supprimer l'indentation de la liste ; + +\item \verb?itemsep = <distance>? : pour insérer \verb?<distance>? entre 2 puces. C'est plus commode ainsi que de devoir sauter des lignes avec \verb?\\[<distance>]? à chaque fin de puce. +\end{itemize} + +Pour ce qui est du package \verb?pifont?, son utilisation est très simple. Il faut utiliser la commande \verb?\ding{<num>}? avec \verb?<num>? pris dans la liste ci-après pour afficher un symbole du package. + +\begin{table}[H] +\centering +\caption{Liste des symboles du package \texttt{pifont}} +\renewcommand{\arraystretch}{1} +\resizebox{!}{52mm}{\begin{tabular}{*{7}{cc|}cc} +32 & \ding{32} & 33 & \ding{33} & 34 & \ding{34} & 35 & \ding{35} & 36 & \ding{36} & 37 & \ding{37} & 38 & \ding{38} & 39 & \ding{39} \\ +40 & \ding{40} & 41 & \ding{41} & 42 & \ding{42} & 43 & \ding{43} & 44 & \ding{44} & 45 & \ding{45} & 46 & \ding{46} & 47 & \ding{47} \\ +48 & \ding{48} & 49 & \ding{49} & 50 & \ding{50} & 51 & \ding{51} & 52 & \ding{52} & 53 & \ding{53} & 54 & \ding{54} & 55 & \ding{55} \\ +56 & \ding{56} & 57 & \ding{57} & 58 & \ding{58} & 59 & \ding{59} & 60 & \ding{60} & 61 & \ding{61} & 62 & \ding{62} & 63 & \ding{63} \\ +64 & \ding{64} & 65 & \ding{65} & 66 & \ding{66} & 67 & \ding{67} & 68 & \ding{68} & 69 & \ding{69} & 70 & \ding{70} & 71 & \ding{71} \\ +72 & \ding{72} & 73 & \ding{73} & 74 & \ding{74} & 75 & \ding{75} & 76 & \ding{76} & 77 & \ding{77} & 78 & \ding{78} & 79 & \ding{79} \\ +80 & \ding{80} & 81 & \ding{81} & 82 & \ding{82} & 83 & \ding{83} & 84 & \ding{84} & 85 & \ding{85} & 86 & \ding{86} & 87 & \ding{87} \\ +88 & \ding{88} & 89 & \ding{89} & 90 & \ding{90} & 91 & \ding{91} & 92 & \ding{92} & 93 & \ding{93} & 94 & \ding{94} & 95 & \ding{95} \\ +96 & \ding{96} & 97 & \ding{97} & 98 & \ding{98} & 99 & \ding{99} & 100 & \ding{100} & 101 & \ding{101} & 102 & \ding{102} & 103 & \ding{103} \\ +104 & \ding{104} & 105 & \ding{105} & 106 & \ding{106} & 107 & \ding{107} & 108 & \ding{108} & 109 & \ding{109} & 110 & \ding{110} & 111 & \ding{111} \\ +112 & \ding{112} & 113 & \ding{113} & 114 & \ding{114} & 115 & \ding{115} & 116 & \ding{116} & 117 & \ding{117} & 118 & \ding{118} & 119 & \ding{119} \\ +120 & \ding{120} & 121 & \ding{121} & 122 & \ding{122} & 123 & \ding{123} & 124 & \ding{124} & 125 & \ding{125} & 126 & \ding{126} \\ + & & 161 & \ding{161} & 162 & \ding{162} & 163 & \ding{163} & 164 & \ding{164} & 165 & \ding{165} & 166 & \ding{166} & 167 & \ding{167} \\ +168 & \ding{168} & 169 & \ding{169} & 170 & \ding{170} & 171 & \ding{171} & 172 & \ding{172} & 173 & \ding{173} & 174 & \ding{174} & 175 & \ding{175} \\ +176 & \ding{176} & 177 & \ding{177} & 178 & \ding{178} & 179 & \ding{179} & 180 & \ding{180} & 181 & \ding{181} & 182 & \ding{182} & 183 & \ding{183} \\ +184 & \ding{184} & 185 & \ding{185} & 186 & \ding{186} & 187 & \ding{187} & 188 & \ding{188} & 189 & \ding{189} & 190 & \ding{190} & 191 & \ding{191} \\ +192 & \ding{192} & 193 & \ding{193} & 194 & \ding{194} & 195 & \ding{195} & 196 & \ding{196} & 197 & \ding{197} & 198 & \ding{198} & 199 & \ding{199} \\ +200 & \ding{200} & 201 & \ding{201} & 202 & \ding{202} & 203 & \ding{203} & 204 & \ding{204} & 205 & \ding{205} & 206 & \ding{206} & 207 & \ding{207} \\ +208 & \ding{208} & 209 & \ding{209} & 210 & \ding{210} & 211 & \ding{211} & 212 & \ding{212} & 213 & \ding{213} & 214 & \ding{214} & 215 & \ding{215} \\ +216 & \ding{216} & 217 & \ding{217} & 218 & \ding{218} & 219 & \ding{219} & 220 & \ding{220} & 221 & \ding{221} & 222 & \ding{222} & 223 & \ding{223} \\ +224 & \ding{224} & 225 & \ding{225} & 226 & \ding{226} & 227 & \ding{227} & 228 & \ding{228} & 229 & \ding{229} & 230 & \ding{230} & 231 & \ding{231} \\ +232 & \ding{232} & 233 & \ding{233} & 234 & \ding{234} & 235 & \ding{235} & 236 & \ding{236} & 237 & \ding{237} & 238 & \ding{238} & 239 & \ding{239} \\ + & & 241 & \ding{241} & 242 & \ding{242} & 243 & \ding{243} & 244 & \ding{244} & 245 & \ding{245} & 246 & \ding{246} & 247 & \ding{247} \\ +248 & \ding{248} & 249 & \ding{249} & 250 & \ding{250} & 251 & \ding{251} & 252 & \ding{252} & 253 & \ding{253} & 254 & \ding{254} +\end{tabular}} +\renewcommand{\arraystretch}{1.3} +\end{table} + +Mais le plus appréciable avec ce package \verb?enumitem?, c'est la possibilité de configurer globalement les liste dès le préambule (\verb?\setlist?), voire d'en créer de nouvelles avec ces propres règles, puces, distances, etc. (\verb?\newlist?). + +Voici un rapide aperçu des possibilités désormais accessibles en quelques touches de clavier : + +\begin{codedisplay}{Des listes proprement personnalisables} +% Ajout dans le préambule +%\usepackage{enumitem, pifont} +%\setlist[itemize, 1]{label = {--}, itemsep = \baselineskip} +%\setlist[enumerate, 1]{label = \arabic*), itemsep = \baselineskip} + + +J'ai envie de dire : \begin{itemize} +\item une chose ; + +\item[\ding{118}] avec une puce ponctuelle ! \\ +\end{itemize} + +Je peux aussi énumérer : \begin{enumerate}[label = {\bfseries{}\'Etape \Alph* :}, leftmargin = *] +\item marcher ; + +\item lire ; + +\item écrire. +\end{enumerate} +\end{codedisplay} + +OK pour toi ? Toujours d'attaque ? Finissons désormais ce chapitre sur la gestion du texte. + +\section{Une petite touche de couleur ?} + +Nous avons vu beaucoup d'éléments de mise en page et de mise en forme du texte mais tu conviendras qu'avoir un gros pavé en noir peut parfois être rebutant à la lecture. + +Pour mettre un peu de couleur, il faut \textcolor{red}{d'abord charger le package \verb?xcolor?} puis utiliser la \textcolor{Green}{commande :} \begin{center} +\verb?\textcolor{nom_couleur}{texte}? \end{center} + +Les couleurs de base disponibles pour \verb?nom_couleur? sont alors les suivantes : + +\begin{itemize}[label = \ding{213}] +\begin{multicols}{3} +\item \textcolor{red}{\verb?red?} ; +\item \textcolor{green}{\verb?green?} ; +\item \textcolor{blue}{\verb?blue?} ; +\item \textcolor{cyan}{\verb?cyan?} ; +\item \textcolor{magenta}{\verb?magenta?} ; +\item \textcolor{yellow}{\verb?yellow?} ; +\item \textcolor{orange}{\verb?orange?} ; +\item \textcolor{violet}{\verb?violet?} ; +\item \textcolor{purple}{\verb?purple?} ; +\item \textcolor{brown}{\verb?brown?} ; +\item \verb?black? ; +\item \textcolor{darkgray}{\verb?darkgray?} ; +\item \textcolor{gray}{\verb?gray?} ; +\item \textcolor{lightgray}{\verb?lightgray?} ; +\item \colorbox{black}{\textcolor{white}{\verb?white?}}. +\end{multicols} +\end{itemize} + +\vspace{\baselineskip} % Pas de \\ dans le itemize ou déséquilibre du multicols + +Si jamais tu trouves qu'il n'y a pas assez de couleurs, tu peux utiliser l'option \verb?dvipsnames? dans le package (\verb?\usepackage[dvipsnames]{xcolor}?) puis te référer à la \textsc{Figure} \ref{dvipsnames} pour \verb?nom_couleur? : + +\begin{figure}[H] +\includegraphics[width = \linewidth]{Aide_LaTeX2.png} +\caption{Les couleurs avec dvipsnames} +\label{dvipsnames} +\end{figure} + +Enfin, si jamais tu trouves que tu n'as toujours pas assez de couleur pour laisser ton talent artistique s'exprimer, sache qu'il est possible d'en créer dans le préambule avec la commande : \begin{center}\verb?\definecolor{nom_couleur}{modèle}{def_couleur}? \end{center} + +Le \verb?modèle? correspond à \verb?RGB? par exemple et \verb?def_couleur? à \verb?255,215,0? (couleur or). Pour plus de renseignements quant à cette commande, tu peux consulter la page suivante : \url{http://fr.wikibooks.org/wiki/LaTeX/Options_de_mise_en_forme_avanc\%C3\%A9es#Mod.C3.A8les_de_couleur}. \\ + +{\bfseries\color{cyan}{}Tu peux aussi renseigner \verb?nom_couleur? ou \verb?def_couleur? par l'intermédiaire de mélanges de couleur.} Pour ce faire, il faut utiliser la \textcolor{Green}{syntaxe \verb?couleurA!x!couleurB?,} pour $\mathtt{x} \in [0\,;\,100]$, qui te permet de mélanger $\mathtt{x}$ \% de \verb?couleurA? et $(100 - \mathtt{x})$ \% de \verb?couleurB?. \\ + +Sache qu'il existe aussi des commandes comme \verb?\colorbox? ou \verb?\pagecolor?. Je te laisse aller te renseigner si tu es intéressé pour te laisser un peu en autonomie. \\ \\ + +Cette fois, nous en avons fini avec le texte et sa mise en forme. Tout d'abord, une référence s'impose : + +\begin{figure}[H] +\centering +\includegraphics[width = 0.7\linewidth]{Aide_LaTeX3.png} +\caption{Non, je ne suis pas un fan d'Evangelion !} +\end{figure} + +Toujours des nôtres ? Si tu te sens prêt, nous allons pouvoir aborder un nouveau chapitre !
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-PST.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-PST.tex new file mode 100644 index 00000000000..29e1d9c1c4a --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-PST.tex @@ -0,0 +1,550 @@ +\chapter{Dessiner avec \texttt{PSTricks}} + +\label{chap_dessin_pst}\textbf{Il n'y a rien de pire que d'apprendre une notion, de l'appréhender, d'expérimenter \dots{} pour se rendre compte qu'une autre est meilleure et qu'il faille tout recommencer depuis le début.} \\ + +C'est ce qui m'est arrivé avec \verb?PSTricks?. J'ai appris à dessiner avec ce package, qui requiert de compiler sous \verb?LaTeX? ou \verb?XeLaTeX?. Puis, j'ai découvert \verb?TikZ?, qui fonctionne avec n'importe quel mode de compilation. + +Je ne vais pas supprimer mon travail initial. Tu peux le consulter. Mais je te recommande de passer directement au chapitre suivant sur \verb?TikZ?. + +\section{Fonctionnement général} + +Selon le dessin à réaliser, il faut charger un ou plusieurs packages : + +\begin{itemize}[label = \ding{213}] +\item \verb?pstricks? : la base pour dessiner avec \verb?PSTricks?, + +\item \verb?pst-circ? : pour dessiner des circuits électriques, + +\item \verb?pst-node? : pour dessiner des diagrammes, + +\item \verb?pst-eucl? : pour dessiner des figures géométriques, + +\item \verb?pstricks-add? : pour ajouter de nouvelles commandes, comme la rotation d'objets par exemple. \\ +\end{itemize} + +Ensuite, pour indiquer à \LaTeX{} que nous souhaitons dessiner une image sous \verb?PSTricks?, il faut utiliser l'environnement \verb?pspicture?, suivi de la taille maximale de l'image au format \og ($x_{max}$,$y_{max}$) \fg{}. + +Une option supplémentaire, \verb?[showgrid = true]?, est très utile pour visualiser le résultat avec un quadrillage en arrière-plan. Ce dernier permet de corriger des points mal placés ou de faciliter les décalages à faire. \\ + +Bon, allons faire quelques essais pour mieux saisir le principe de fonctionnement. + +\section{Dessiner des circuits électriques} + +Le principe de fonctionnement est très simple. Imagine que tu dessines ton circuit électrique sur une feuille de papier. Dans le coin inférieur gauche, tu places un repère et son origine puis tu considères qu'un composant, un fil, etc. revient à se déplacer d'une unité. + +Honnêtement, si tu es arrivé jusqu'à cette partie du guide, tu devrais pouvoir aller jeter un coup d'{\oe}il à l'aide sans problème, surtout pour avoir accès à toutes les options disponibles. Je n'ai ni l'envie ni le besoin de le faire ici : quelqu'un l'a parfaitement bien fait à ma place ! \\ + +Mais comme je ne suis pas un monstre, voici deux petits exemples pour te mettre en bouche : + +\begin{code}{Un cas minimaliste} +\documentclass[a4paper, 12pt]{report} + +% LaTeX +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{amsmath, amsfonts, amssymb, upgreek} + +\usepackage[dvipsnames]{xcolor} % Pour les couleurs si besoin +\usepackage{pst-circ} % Pour les circuits électriques + + +\begin{document} + +\everymath{\displaystyle} + +\begin{pspicture}[showgrid = true](5,2) +% showgrid affiche le quadrillage +% Permet de se repérer au début et en cas d'erreur +% A mettre sur false lors de la génération du résultat final + +% Composants +\resistor(1,1)(2,1){$R$} +% Les coordonnées à renseigner sont celles des extrémités du composant +\coil[dipolestyle = curved](3,1)(4,1){$L$} + +% Fils +\wire[intensitylabel = $I$, intensitycolor = red, intensitylabelcolor = red](0,1)(1,1) % Ou mettre le texte en rouge avec \textcolor +\wire(2,1)(3,1) +\wire(4,1)(5,1) + +% Annotations +\tension[labeloffset = -0.5](0.5,0.5)(2.5,0.5){$V$} +% Si coordonnées non entières, utiliser un point +\end{pspicture} + +\end{document} +\end{code} + +\begin{code}{Un cas plus complet} +\documentclass[a4paper, 12pt]{report} + +% LaTeX +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{amsmath, amsfonts, amssymb, upgreek} + +\usepackage[dvipsnames]{xcolor} % Pour les couleurs si besoin +\usepackage{pst-circ} % Pour les circuits électriques + + +\begin{document} + +\everymath{\displaystyle} + +\begin{pspicture}[showgrid = true](8,3) +% Composants +\resistor(2,1)(2,2){$R$} +\coil[dipolestyle = curved](4,1)(4,2){$L$} % Un affichage possible pour une bobine +\coil[dipolestyle = elektor](6,3)(7,3){$l$} % Un autre format d'affichage +\resistor(8,1)(8,2){$\cfrac{r}{g}$} + +% Fils +\wire[intensitylabel = $I$, intensitylabeloffset = 0.5](0,3)(2,3) +\wire(2,3)(4,3) +\wire[intensitylabel = $I'$](4,3)(6,3) +\wire(7,3)(8,3) +\wire(0,0)(8,0) +\wire(2,0)(2,1) +\wire(2,2)(2,3) +\wire(4,0)(4,1) +\wire(4,2)(4,3) +\wire(8,0)(8,1) +\wire(8,2)(8,3) + +% Annotations +\tension(0,0)(0,3){$V$} +\end{pspicture} + +\end{document} +\end{code} + +\begin{conseilbox}{Conseil personnel} +La génération sous \verb?XeLaTeX? peut se révéler assez longue, surtout si tu cumules de nombreux circuits. \\ + +Après des essais, le temps d'attente est négligeable avec une compilation sous \verb?LaTeX? puis \verb?Dvi -> PS? puis \verb?PS -> PDF?. + +Tu peux donc éventuellement rédiger tout ton rapport avec ce mode de compilation. En revanche, ce dernier ne tolère pas les fichiers \verb?.png? ou \verb?.jpg? pour les images. Il faut donc les convertir en fichier \verb?.eps?, grâce au logiciel \verb?GIMP? par exemple. +\end{conseilbox} + +\begin{attentionbox}{\textit{Nota Bene}} +Tu pourras remarquer que le guide de \verb?pst-circ? utilise une commande \verb?pnode? pour définir les n{\oe}uds et leur donner une lettre. \\ + +Sache que ce n'est pas absolument pas nécessaire (la preuve avec mes exemples) et, personnellement, je ne te recommande pas de le faire. Je trouve que c'est plus beaucoup plus long s'il faut déplacer des points. +\end{attentionbox} + +Bon, si tu viens de te rendre compte que \LaTeX{} est extrêmement puissant pour dessiner des circuits d'aussi bonne qualité, sache que ce n'est pas fini. Allons dessiner tout court. + +\section{Dessiner tout court} + +Pour dessiner avec \texttt{PSTricks}, le principe est extrêmement similaire : tu définis des traits ou des formes à partir de coordonnées et \LaTeX{} trace le tout. C'est parti avec un exemple : + +\begin{code}{Deux dessins} +\documentclass[a4paper, 12pt]{report} + +% LaTeX +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{amsmath, amsfonts, amssymb, upgreek} + +\usepackage{pstricks} +% Pas besoin du package xcolor ici +% pstricks l'importe automatiquement + + +\begin{document} + +% Coefficient de transmission thermique d'une paroi +\begin{pspicture}(7,4) +\psline[linecolor = green](1.5,4)(1.5,0) % Pour tracer une ligne +\psline(2.5,4)(2.5,0) +\psline(3.5,4)(3.5,0) +\psline(4.5,4)(4.5,0) +\psline[linecolor = green](5.5,4)(5.5,0) +\psline[linecolor = red]{->}(0,2)(7,2) + +\psframe[fillstyle = hlines](1.5,0)(2.5,4) % Pour tracer un rectangle +\psframe[fillstyle = vlines](3.5,0)(4.5,4) +\psframe[fillstyle = crosshatch](4.5,0)(5.5,4) + +\rput(2,-0.25){1} % Pour placer une information +\rput(3,-0.25){2} +\rput(4,-0.25){3} +\rput(5,-0.25){4} +\rput(1.5,4.25){\textcolor{green}{$T_{S_a}$}} +\rput(5.5,4.25){\textcolor{green}{$T_{S_b}$}} +\rput(7,1.75){\textcolor{red}{$\Phi$}} +\rput(0,3){Ambiance a} +\rput(7,3){Ambiance b} +\rput(0,2.5){$T_a$} +\rput(7,2.5){$T_b$} +\end{pspicture} + +\vspace{2\baselineskip} + +% Création d'un domaine hachuré +\begin{pspicture}(7,7) +% Repère +\psline{->}(0,1)(7,1) +\psline{->}(1,0)(1,7) +\uput[d](7,1){$t_A$} % Plus pratique pour placer une indication décalée +% d = down ; u = up ; l = left ; r = right +\uput[ul](1,7){$t_B$} % Combinaison de position possible DANS CETTE ORDRE (lu ne fonctionne pas) + +\pscircle[fillcolor = black, fillstyle = solid](6,1){0.1} % Pour tracer un cercle + le remplir +\uput[d](6,1){30} + +% Carré et Delta_t (domaine hachuré) +\psline(6,1)(6,6)(1,6) +\pspolygon[linecolor = red, hatchcolor = red, fillstyle = hlines](3,1)(6,4)(6,6)(4,6)(1,3)(1,1)(3,1) +\rput(6.4,6.4){\textcolor{red}{$\Delta_t$}} + +\pscircle[linecolor = red, fillcolor = red, fillstyle = solid](3,1){0.1} +\rput(3,0.6){\textcolor{red}{$t$}} +\pscircle[linecolor = red, fillcolor = red, fillstyle = solid](1,3){0.1} +\rput(0.6,3){\textcolor{red}{$t$}} +\end{pspicture} + +\end{document} +\end{code} + +\begin{conseilbox}{Pour plus de commandes} +Je ne vois aucun intérêt à faire une liste des commandes et des options possibles. Je t'ai fourni deux exemples pour que tu aies un aperçu du rendu et des possibilités mais à toi d'aller te documenter par la suite. \\ + +Je te recommande particulièrement d'aller sur : \url{http://fr.wikibooks.org/wiki/LaTeX/Dessiner_avec_LaTeX/Dessiner_avec_PSTricks}. C'est assez complet. +\end{conseilbox} + +\section{\'Eclair} + +Il s'agit d'un dessin que j'ai trouvé sur Internet mais dans un format trop petit. Comme j'en avais besoin, j'ai décidé de le dessiner. Depuis, il est même devenu mon logo personnel ! Cependant, la nature ne m'a pas doté de talents artistiques incroyables, que ce soit sur papier ou une souris à la main. \\ + +Heureusement, Dieu (alias Donald \textsc{Knuth} et Leslie \textsc{Lamport}) a inventé \LaTeX{}, tandis que Spencer \textsc{Kimball} et Peter \textsc{Mattis} ont créé \texttt{GIMP}. J'ai donc pris un papier, reproduit le dessin rapidement et placé les points nécessaires. + +Avec l'outil mesure de \texttt{GIMP}, j'ai déterminé toutes les distances et donc toutes les coordonnées des points en question. + +Avec l'outil pipette, j'ai sélectionné la couleur et suis allé regarder les options pour obtenir le code RGB. \\ + +Trois minutes de code plus tard sous \LaTeX{}, le dessin est prêt. Il y a juste un petit problème d'affichage donc j'ai ajouté quelques packages pour avoir une page à la taille voulu (au revoir le A4). + +\begin{code}{Le code en question} +% Compiler sous le mode LaTeX +\documentclass[12pt]{report} + +\usepackage[french]{babel} + +\usepackage[paperwidth = 50cm, paperheight = 90cm, +left = 2cm, top = 2cm]{geometry} + +\pagestyle{empty} + +\usepackage{pstricks} +\definecolor{bleucyan}{RGB}{59,195,235} % Rappel : pstricks charge xcolor + + +\begin{document} + +\begin{pspicture}(34,77) +\pspolygon*[linecolor = bleucyan](13,0)(33,27)(19,27)(33,50)(16,50)(30,76)(0,34)(9,34)(6,25)(15,39)(9,39)(13,45)(22,45)(8,22)(24,22)(13,0) +\end{pspicture} + +\end{document} +\end{code} + +\section{Tête} + +De même, voici une autre ``création'', ou du moins copie personnelle. Dessinée de la même manière que décrite précédemment, le travail complémentaire a juste consisté à la mettre aux bonnes dimensions grâce à \texttt{GIMP} puis à l'insérer dans un document \LaTeX{} en tant qu'image pour impression. \\ + +Un peu de papier calque m'a ensuite permis de reproduire le motif là où j'en avais envie \dots{} Simple mais diablement efficace ! + +\begin{code}{Le code en question - Le retour} +% Compiler sous le mode LaTeX +\documentclass[12pt]{report} + +\usepackage[french]{babel} + +\usepackage[paperwidth = 70 cm, paperheight = 60 cm, left = 2 cm, +right = 2 cm, top = 2 cm, bottom = 2 cm]{geometry} + +\pagestyle{empty} + +\usepackage{pstricks} + + +\begin{document} + +\begin{pspicture}(64,50) +\psset{linewidth = 0.15} % Réglage des paramètres + +% Partie supérieure - Début sommet corne gauche +\pscurve(0,45)(1,43)(3,39.5)(6,38) +\psline(6,38)(15,38) +\pscurve(15,38)(17.5,43)(20,45)(24,46) +\psline(24,46)(36,46) +\pscurve(36,46)(40,45)(42.5,43)(45,37) +\psline(45,37)(53,37) +\pscurve(53,37)(55,37.5)(60,43) % Sommet corne droite +\pscurve(60,43)(60,37)(56,31)(53,30) +\psline(53,30)(47,30)(49,18)(44,24)(40,18)(36,24)(31,19)(27,24)(22,18)(18,24)(13,20)(13,29)(10,29) +\pscurve(10,29)(7,30)(0,38)(0,45) + +% Partie inférieure - De la gauche vers la droite +\psline(14,8)(14,10)(18,16)(23,11)(27,17)(32,10)(36,17)(40,10)(45,17)(48,12)(48,10) +\pscurve(48,10)(43,5)(34,0) +\psline(34,0)(29,0) +\pscurve(29,0)(20,4)(14,8) + +% Oeil gauche +\psline(21,36)(21,32) +\pscurve(21,32)(22.5,30)(24,29) +\psline(24,29)(27,29)(21,36) + +% Oeil droit +\psline(40,37)(34,29)(36,29) +\pscurve(36,29)(38,30)(39.5,31.5)(40,33) +\psline(40,33)(40,37) +\end{pspicture} + +\end{document} +\end{code} + +\section{Utiliser des coordonnées} + +Dans une optique d'automatisation des dessins (un système d'amortisseur en mécanique ou un circuit RLC, utilisés de nombreuses fois, par exemple), il est possible de créer une commande. + +L'argument principal de cette commande serait alors un point de départ pour le schéma (en bas à gauche, en haut à droite ou ailleurs, au choix). Sous \verb?PSTricks?, il s'agirait d'un n{\oe}ud (\verb?node?) et tous les autres sont définis à partir de ce n{\oe}ud d'origine (décalage des abscisses et des ordonnées). + +L'origine sert donc de ``point d'ancrage'' pour positionner le dessin et le reste est construit automatiquement. \\ + +Pour ce faire, il faut procéder de la manière suivante : + +\begin{itemize}[label = \ding{118}] +\item en plus de \verb?pstricks?, charger le package \verb?pst-node?, + +\item définir tous les n{\oe}uds grâce à la commande : \begin{center} \verb?\psnodes(x1,y1){noeud1}..(xN,yN){noeudN}?\end{center} + +En l'occurrence, le n{\oe}ud 1 est l'origine ; \verb?(x1,y1)? est donc remplacé par \verb?(#1)? (argument de la commande), + +\item définir les \verb?(xi,yi)? en commençant par un \verb?!? et selon la méthode NPI (cf. encadré ci-après), + +\item récupérer les coordonnées selon l'une des deux manières suivantes : + +\begin{itemize}[label = \ding{213}] +\item utiliser la commande \verb?\psGetNodeCenter{noeudi} noeudi.Z?, où \verb?Z? correspond à \verb?x? ou \verb?y? (respectivement, récupération de l'abscisse ou de l'ordonnée), + +\item OU BIEN, introduire la commande \verb?saveNodeCoors? dans les options de l'environnement \verb?pspicture? et utiliser ensuite la commande \verb?N-noeudi.Z?. \\ +\end{itemize} +\end{itemize} + +Il est aussi possible de définir des longueurs pour continuer de généraliser la commande, comme nous le verrons dans l'exemple qui va suivre. + +\begin{boite}{La Notation Polonaise Inverse}{Orchid} +Selon Wikipédia, \og la notation polonaise inverse (NPI) (en anglais RPN pour Reverse Polish Notation), également connue sous le nom de notation post-fixée, permet d'écrire de façon non ambiguë les formules arithmétiques sans utiliser de parenthèses. \fg{} + +Concrètement, pour utiliser un exemple, l'opération $((1 + 2) \times 4) + 3$ peut être notée en NPI \verb?1 2 + 4 x 3 +?. Il suffit de partir de la gauche, de prendre deux éléments et un opérateur, de faire le calcul et de le remplacer. Pour détailler, nous avons donc ici : + +\begin{itemize}[label = \ding{213}] +\item \verb?1 2 + 4 x 3 +? : prendre \verb?1 2 +? qui devient $1 + 2$ soit 3, + +\item passage à \verb?3 4 x 3 +? : prendre \verb?3 4 x? qui devient $3 \times 4$ soit 12, + +\item passage à \verb?12 3 +? qui devient $12 + 3$ soit 15. \\ +\end{itemize} + +Dans le cadre de \verb?PSTricks?, le fonctionnement est le même sauf que les opérateurs suivants sont utilisés : \verb?add?, \verb?sub?, \verb?mul? et \verb?div?, respectivement pour addition, soustraction, multiplication et division. +\end{boite} + +Avec un exemple commenté, nous obtenons : + +\begin{code}{Exemple d'utilisation des coordonnées} +% Compiler sous le mode LaTeX +\documentclass[a4paper, 12pt]{report} + +\usepackage[french]{babel} + +\usepackage{amsmath, amsfonts, amssymb} + +\usepackage[dvipsnames]{xcolor} +\usepackage{pstricks, pst-node, pstricks-add} +% pst-node pour les noeuds et le calcul de nouvelles coordonnées +% pstricks-add pour la commande \psrotate + +\newcommand{\textedbox}[4]{\pnodes(#1){origine}(#2){fin} +\psframe[#3](origine)(fin) +\rput(!N-fin.x N-origine.x add 2 div N-fin.y N-origine.y add 2 div){\parbox{\linewidth}{\centering #4}}} + +\newcommand{\amortisseur}[3]{\pnodes(#1,#2){A}(!#1 1 sub #2){B}(!#1 1 sub #2 1 add){C}(!#1 #2 1 add){D}(!#1 0.5 sub #2 1 add){F}(!#1 0.5 sub #2){E}(!#1 0.5 sub #2 0.5 add){G}(!#1 0.5 add #2 0.5 add){H}(!#1 1 sub #2 0.5 add){I}(!#1 2 sub #2 0.5 add){J}(!#1 0.5 sub #2){K}\psline(A)(B)(C)(D) \psline(F)(E) \psline(G)(H) \psline(I)(J) \uput[d](K){#3}} + + +\begin{document} + +\begin{pspicture}[showgrid = true, saveNodeCoors](10,5) +% saveNodeCoors ssi utilisation de N-node_name.x/y +\def\longueur{4 } % Espace OBLIGATOIRE (sinon rien ne s'affiche) +\def\decalage{0.5 } +% Définition de longueurs +% Possibilité de les mettre en argument d'une commande + +% Une option brute +\pnodes(1,1){origine}(!\psGetNodeCenter{origine} origine.x +\longueur add origine.y \longueur add){fin} +\psframe(origine)(fin) +\psline[linecolor = Orchid]{|<->|}(!N-origine.x N-origine.y +\decalage sub)(!N-fin.x N-fin.y \longueur \decalage add sub) + +% Une commande créée avec l'option saveNodeCoors +\rput(4,0){\psrotate(2.5,2.5){90}{\textedbox{0,2}{5,3}{linecolor = Red, framearc = 0.5, linestyle = dashed, fillstyle = hlines, hatchcolor = gray}{\textcolor{Cyan}{Texte}}}} + +% Une autre possibilité +\rput(9,2.5){\psframebox[linecolor = Orange, framesep = 13pt]{\Large Test}} +\end{pspicture} + +\vspace{2\baselineskip} + +Un cas plus concret avec un amortisseur, moins élégante mais qui fonctionne : + +\begin{pspicture}[showgrid = true](3,2) +\amortisseur{2}{0.5}{$\mu$} +\end{pspicture} + +\end{document} +\end{code} + +Comme tu peux le constater, la définition des n{\oe}uds avec cette méthode est, certes, laborieuse mais peut se révéler très pratique avec la possibilité de créer des commandes : au lieu d'avoir une entrée pour l'abscisse de l'origine et une autre pour son ordonnée, tout passe avec un argument et \verb?PSTricks? fait le reste. + +Autrement, dans la définition des n{\oe}uds, avec cette notation, il ne faut \textbf{pas oublier} le \verb?!? et il est important de noter que la séparation des abscisses et des ordonnées se fait SANS virgule\footnote{Pourquoi ? Je n'en sais rien, ça marche comme ça et c'est très bien. Mais il doit bien y avoir une raison \dots{}}. + +\section{Des boîtes pour le texte} + +Peut-être l'as-tu remarqué dans mon précédent exemple mais il est possible de créer des boîtes avec le texte centré et tout et tout. + +Ma commande, définie dans l'exemple précédent, serait ``parfaite'' (de mon point de vue, après, tout est relatif) s'il était possible d'extraire la longueur de la boîte pour l'intégrer comme argument de la \verb?parbox? \dots{} Sans succès pour l'instant. + +Mais il semblerait qu'elle fonctionne grâce à un petit \verb?\linewidth?. Tant mieux. \\ + +Sinon, il existe d'autres possibilités sous \verb?PSTricks? comme la commande \verb?PSTextFrame?. Une piste à explorer \dots{} + +\section{Réaliser des intersections} + +Tu as envie de tracer un contour qui correspond à l'intersection de deux cercles mais tu ne sais pas comment faire \dots{} Pas de panique, il existe une solution. Je vais présenter celle disponible sous \verb?PSTricks?, même s'il en existe une aussi sous \verb?TikZ? (comme elles portent le même nom, la documentation est facile à trouver). + +Il s'agit d'utiliser le ``\verb?clip?''. Le fonctionnement est très simple : tu définis la zone d'intersection puis tu places un objet assez grand (comme un rectangle) et paf ! Tu obtiens des Chocapics \dots{} bon ok, quand même pas mais le résultat escompté est là et c'est déjà ça. + +\begin{code}{Réaliser des intersections} +% Compiler sous le mode LaTeX +\documentclass[a4paper, 12pt]{report} + +\usepackage[french]{babel} + +\usepackage[dvipsnames]{xcolor} +\usepackage{pstricks} + + +\begin{document} + +\begin{pspicture}[showgrid = true](5,5) +\psclip{ + \pscircle[linestyle = none](1,2){2} + \pscircle[linestyle = none](4,2){2} +} + % Chemin de coupure + % linestyle = none pour ne pas le dessiner + +\psframe*[linecolor = Cyan](0,0)(4,4) +% Remplir l'intérieur du chemin +\endpsclip + +% Affichage du contour du chemin de coupure +\pscircle(1,2){2} +\pscircle(4,2){2} +\end{pspicture} + +\vspace{2\baselineskip} + +\begin{pspicture}[showgrid = true](5,5) +\psclip{ + \rput{-30}(0,2){\psframe[linestyle = none](0,0)(3,2)} + % psrotate inopérant --> travailler avec rput (partir de (0,0), rotation puis décalage) + \pscircle[linestyle = none](4,2){2} +} +% Chemin de coupure +\endpsclip + +\psframe*[linecolor = Cyan](0,0)(4,4) +\end{pspicture} + +\end{document} +\end{code} + +\section{Extraction du contour d'une image} + +Il existe une image, une icône bien spécifique que tu as envie de réexploiter mais elle est trop petite (zoom $\Rightarrow$ pixels immondes) ou bien tu tiens à la créer sous \LaTeX{} pour obtenir une image vectorielle \dots{} + +Même si le résultat n'est pas encore parfait, c'est possible, plus particulièrement sur des images monochromes. Le plus dur et le seul point qui nous importe est l'obtention du contour de l'image. Dès que nous avons les coordonnées des points, \verb?psline? suffit, quitte à ajouter des options pour le remplissage. + +Il doit être possible de trouver une commande similaire sous \verb?TikZ?, qui permet aussi de lisser la courbe mais je n'ai rien trouvé de très pratique jusqu'à présent. \\ + +Par contre, pour réussir à obtenir les coordonnées du contour en question, il faut bidouiller de la manière suivante : + +\begin{itemize}[label = \ding{118}] +\item vectorialiser l'image sous \texttt{Inkscape}, la lisser si nécessaire (enlever les bosses superflues, \dots{}), + +\item enregistrer le résultat au format \verb?.tex?, + +\item ouvrir le code obtenu, vérifier les dimensions utilisées puis épurer le code, c'est-à-dire ne garder que les coordonnées et enlever les commandes s'il y en a, + +\item simplifier les coordonnées (beaucoup de décimales pas forcément utiles, surtout à la vue des dimensions utilisées) $\rightarrow$ possibilité de laisser le traitement à un programme \texttt{Python}, + +\item insérer les coordonnées obtenues dans le code \LaTeX{} final de ton image, + +\item bien reporter les dimensions ou les ajuster si besoin : \begin{center} \verb?\psset{xunit = 0.5pt, yunit = 0.5pt}? par exemple \end{center} + +\item dans le cas où \verb?TikZ? est utilisé, grâce à l'outil \og Remplacer \fg{} de \texttt{Texmaker}, remplacer les \verb?)? des coordonnées en \verb?)--? (règle sous \verb?TikZ? pour faire les tracés). \\ +\end{itemize} + +Normalement, le résultat n'est pas trop moche. Tu peux le lisser sous \verb?PSTricks? sans effort en utilisant la commande \verb?pscurve? au lieu de \verb?psline?. \`A toi de jouer\footnote{Yu-Gi-Oh oh oh \dots{}} désormais ! + +\begin{codePY}{Simplifier les coordonnées - Le code Python} +def reduction(chaine, nombre) : + """Réduire la valeur des décimales à "nombre" d'une liste de coordonnées (x,y) (variable chaine)""" + resultat = "" + i = 0 + while i <= len(chaine) - 1 : + # Coordonnée x + while chaine[i] != "." : + # On implémente et on cherche le point (séparateur des décimales) + resultat = resultat + chaine[i] + i = i + 1 + for j in range(0, nombre + 1) : + # On implémente la quantité de décimales voulues (nombre) + resultat = resultat + chaine[i + j] + i = i + nombre + 1 + while chaine[i] != "," : + # On a implémenté le nombre souhaité de décimales + # --> aller à l'autre coordonnées + i = i + 1 + + # Coordonnée y + while chaine[i] != "." : # Idem + resultat = resultat + chaine[i] + i = i + 1 + for j in range(0, nombre + 1) : # Idem + resultat = resultat + chaine[i + j] + i = i + nombre + 1 + while chaine[i] != ")" : # Idem + i = i + 1 + resultat = resultat + chaine[i] + i = i + 1 + print(resultat) + +chaine = "(13.10458,13.112)(13.10458,13.112)(13.10458,13.112)" +nombre = 2 +reduction(chaine, nombre) +\end{codePY}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-TikZ.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-TikZ.tex new file mode 100644 index 00000000000..e9a31082a1f --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-TikZ.tex @@ -0,0 +1,900 @@ +\chapter{Dessiner avec \texttt{TikZ}} + +\label{chap_dessin_tikz}Le seul moyen de pouvoir profiter de toutes les fonctionnalités \LaTeX{} précédemment décrites nécessite de compiler, \textit{a minima}, sous \verb?PDFLaTeX? (ou \verb?XeLaTeX? s'il y a un changement de police). Dans ce cas, pour dessiner, il faut utiliser \texttt{TikZ}. + +Si, comme moi, tu étais un habitué de \texttt{PSTricks}, il peut sembler déroutant de passer à \texttt{TikZ} mais, avec la pratique, il devient facile de réaliser simplement quelques figures. Mais ce n'est pas tout. \texttt{TikZ} est aussi extrêmement puissant, avec énormément de possibilités, comme tu vas pouvoir le découvrir. \\ + +Et si jamais tu t'intéresses à la documentation officielle\footnote{Disponible sur le site du CTAN par exemple, directement sur : \url{http://www.ctan.org/pkg/pgf}}, sache qu'il faut mieux aller d'abord regarder le sommaire ou l'index. Avec plus de 1000 pages d'aide et de code, elle est plutôt bien fournie ! + +\section{Démarrer sous \texttt{TikZ}} + +Tu vas difficilement pouvoir utiliser \texttt{TikZ} si tu ne charges pas le package associé : \verb?tikz?. Si, comme nous le verrons plus tard, tu dois charger des fonctionnalités supplémentaires de \texttt{TikZ}, il faut utiliser, \textbf{juste après} avoir chargé le package, la commande \verb?\usetikzlibrary{nom}?. + +Quant au dessin en lui-même, tout comme pour \texttt{PSTricks}, il faut charger un environnement. Ici, il se nomme \verb?tikzpicture? et n'a pas besoin d'options supplémentaires comme la taille du cadre. Bien au contraire, \texttt{TikZ} produit toujours le résultat le plus compact possible, comme nous le verrons dans un exemple juste après. \\ + +\textcolor{BrickRed}{\textbf{Il existe une règle capitale sous \texttt{TikZ} :}} chaque qui utilise une commande propre à \texttt{TikZ} se termine par un ``\verb?;?''. Toujours. C'est le seul point important à retenir. Tout le reste va finir par rentrer avec un peu de pratique. + +Ensuite, s'il est plus courant de travailler avec des coordonnées cartésiennes $(x,y)$, sache aussi que les coordonnées polaire $(\theta:R)$ sont disponibles, écrites dans le même format que précédemment. \\ + +Ensuite, pour commencer en douceur, le tracé d'un trait sous \texttt{TikZ} se fait de la manière suivante : \begin{center} \verb?\draw (x0,y0) -- (x1,y1);? \end{center} + +La commande \verb?\draw? permet de garantir le tracé tandis que les points à relier par un trait sont donc séparés par ``\verb?--?''. Il existe des fonctions propres à \texttt{TikZ} pour tracer un rectangle -- \verb?(x0,y0) rectangle (x1,y1)? -- ou un cercle -- \verb?(x,y) circle (R)?. Il faut continuer d'utiliser la commande \verb?\draw? au préalable. + +Il est aussi possible d'augmenter l'épaisseur du trait ou de changer sa couleur grâce à des options à introduire entre crochets ``\verb?[]?'', de la manière suivante : \begin{center} \verb?\draw[options] ...;? \end{center} + +Je ne vais pas m'amuser à lister toutes les options possibles et envisageables. Les plus basiques sont présentées ci-après. Les autres sont à chercher en fonction des besoins. \\ + +Bien, voici un premier exemple pour avoir un aperçu concret des bases : + +\begin{code}{Démarrer sous \texttt{TikZ}} +\documentclass[a4paper, 12pt]{report} + +\usepackage{tikz} + + +\begin{document} + +\begin{tikzpicture} +\draw (0,0) -- (1,1); % Trait entre (0,0) et (1,1) +\end{tikzpicture} +\hfill +\begin{tikzpicture} +\draw (2,2) -- (3,3); % Trait entre (2,2) et (3,3) ... sur le code ! +% Dans le rendu final, aucune différence avec le code précédent +\end{tikzpicture} +\hfill +\begin{tikzpicture} +\draw (0,0) rectangle (1,1); +\end{tikzpicture} +\hfill +\begin{tikzpicture} +\draw (0.5,0.5) circle (0.5); +\end{tikzpicture} + +\vspace{\baselineskip} + +% Augmenter l'espace blanc autour de l'image (nécessaire de temps en temps) +% --> Créer une forme "incolore" (blanche par défaut) suffisamment grande +\begin{tikzpicture} +\draw[white] (0,0) rectangle (13,2); +%\draw[red] (0,0) rectangle (13,2); + +\draw (6,0) -- (7,1); +\end{tikzpicture} + +\vspace{\baselineskip} + +% Un apercu des options de base +\begin{tikzpicture} +% Epaisseur du trait : line width = "longueur" +\draw[line width = 1.3mm] (0,0) -- (1,1); +\draw[line width = 5pt] (2,1) -- (3,0); + +% Le "pt" est l'unité par défaut dans les options +\draw[line width = 8] (4,0) -- (5,1); +% Mais les coordonnées sont par défaut en "cm" +\end{tikzpicture} +%\hfill +\begin{tikzpicture} +% Epaisseur du trait : tailles prédéfinies +\draw[thin] (0,0) -- (1,1); +\draw[thick, dashed] (2,1) -- (3,0); % Ligne en tirets +\draw[ultra thick, dotted] (4,0) -- (5,1); % Ligne en pointillés +\end{tikzpicture} +%\hfill +\begin{tikzpicture} +% Changement de couleur d'un trait +\draw[blue] (0,0) -- (1,1); % Plus concis et écriture implicite +\draw[color = orange] (2,1) -- (3,0); % Le nom de l'option +\end{tikzpicture} + +\vspace{\baselineskip} + +\begin{tikzpicture} +% Changement de couleur d'un contour fermé (contour) +\draw[red] (0,0) rectangle (1,1); +\draw[color = green] (2,1) rectangle (3,0); +\draw[draw = purple] (4,0) rectangle (5,1); % Option étrange mais va prendre son sens après +\end{tikzpicture} +\hfill +\begin{tikzpicture} +% Changement de couleur d'un contour fermé (remplissage) +\draw[fill = red] (0,0) rectangle (1,1); % draw de base (donc contour noir) avec remplissage rouge +\fill[color = green] (2,1) rectangle (3,0); % Remplissage pur (sans contour) +\fill[fill = purple] (4,0) rectangle (5,1); % Idem +\end{tikzpicture} + +\vspace{\baselineskip} + +\begin{tikzpicture} +% Changement de couleur d'un contour fermé (contour ET remplissage) +\draw[red, fill = blue] (0.5,0.5) circle (0.5); +\draw[draw = green, fill = orange] (2.5,0.5) circle (0.5); +\filldraw (4.5,0.5) circle (0.5); % Nouvelle commande : contour et remplissage +\filldraw[brown] (6.5,0.5) circle (0.5); +\filldraw[pink, draw = gray] (8.5,0.5) circle (0.5); % etc. +\end{tikzpicture} + +\end{document} +\end{code} + +Tu as tout compris ? Il existe plein d'options extrêmement pratiques mais la couleur et l'épaisseur du trait sont les plus couramment utilisées au début. Il existe aussi des épaisseurs prédéfinies, qui fonctionnent très bien et évitent de perdre du temps à trouver la ``bonne'' épaisseur : + +\begin{itemize}[label = \ding{118}] +\begin{multicols}{2} \raggedcolumns +\item \verb?ultra thin? : 0.1pt, + +\item \verb?very thin? : 0.2pt, + +\item \verb?thin? : 0.4pt (défaut), + +\item \verb?semithick? : 0.6pt, + +\item \verb?thick? : 0.8pt, + +\item \verb?very thick? : 1.2pt, + +\item \verb?ultra thick? : 1.6pt. +\end{multicols} +\end{itemize} + +Essayons maintenant de tracer des figures un peu plus complexes désormais, avec des coordonnées polaires pour changer et les manipuler un peu. + +\section{Un polygone régulier} + +Je pense que tu dois avoir déjà entendu parler d'un polygone régulier. Pour la faire simple et éviter de faire mon pédant trop longtemps, il s'agit d'une figure géométrique fermée, à $N$ côtés de même longueur. + +Une façon très simple d'en créer consiste à passer par des coordonnées polaires. En effet, les sommets $S_i$ d'un polygone régulier sont tous placés sur un cercle de centre $O$ quelconque, de rayon $R$ et la droite $(OS_i)$ forme un angle de $\frac{i \times 360}{N}$ avec l'axe des abscisses. \\ + +Enfin, pour revenir sur l'utilisation de \texttt{TikZ} en elle-même, il faut savoir que toute figure définie par des traits et dont le point d'arrivée coïncide avec le point de départ (figure fermée) doit se conclure de la manière suivante : \verb?-- cycle;?. + +Cette commande permet de proprement fermer la figure. Je te laisse aller faire des recherches ou des essais pour voir la différence avec une fermeture manuelle. Allons plutôt dessiner un polygone régulier, comme un triangle équilatéral pour commencer simplement : + +\begin{code}{Un triangle équilatéral} +\documentclass[a4paper, 12pt]{report} + +\usepackage{tikz} + + +\begin{document} + +% Triangle équilatéral, inscrit dans un cercle de rayon R +% Coordonnées polaires ==> centre (0,0) +\begin{center} +\begin{tikzpicture} +% Rayon R choisi arbitrairement à 3cm +\draw (90:3) -- (210:3) -- (330:3) -- cycle; +\draw[green] (60:3) -- (180:3) -- (300:3) -- cycle; % Une autre possibilité +\draw[red] circle (3); % Pas de centre ==> (0,0) par défaut +\end{tikzpicture} +\end{center} + +\end{document} +\end{code} + +Avouons que c'est plus pratique que de devoir placer 2 points et calculer la position du dernier, surtout si les calculs ne donnent pas une valeur exacte. Ici, notre triangle est bel et bien équilatéral. Il est aussi possible de passer par des points définis au préalable : + +\begin{code}{Définir des points} +\documentclass[a4paper, 12pt]{report} + +\usepackage{tikz} + + +\begin{document} + +% Le principe : +% \coordinate (nom_point) at (x,y)/(theta:R); +\begin{center} +\begin{tikzpicture} +\coordinate (A) at (90:3); +\coordinate (B) at (210:3); +\coordinate (C) at (330:3); + +\draw (A) -- (B) -- (C) -- cycle; +\end{tikzpicture} +\end{center} + +\end{document} +\end{code} + +\section{Automatiser les dessins} + +Bon, tracer un triangle équilatéral, c'est bien. Tracer un hexagone, avec un copier-coller et un peu de patience, c'est faisable. Un tridécagone (polygone régulier à 13 côtés) \dots{} bon, rien d'impossible mais le copier-coller et les modifications ne constituent clairement pas une solution optimale. + +Fort heureusement, il existe le principe des coordonnées absolues et relatives. Pour faire simple, tracer un dessin grâce à une série de coordonnées absolues revient à connaître les positions de toutes les coordonnées par rapport à un repère, l'origine $(0,0)$ généralement mais il peut aussi s'agir d'un autre point. + +Avec les coordonnées relatives, peu importe la position exacte de tous les points : il suffit juste de connaître la position d'un point par rapport à celui qui le précède ! \\ + +Sous \texttt{TikZ}, les coordonnées absolues ne requiert aucune option spécifique, hormis la position du point. Les coordonnées relatives sont reconnaissables grâce au ``\verb?++?'' et il existe un mix des deux, un peu subtil, qui utilise un ``\verb?+?''. + +L'aide officielle peut servir à commencer à digérer mes explications : \og You can add a single + sign in front of a coordinate or two of them as in +(1cm,0cm) or ++(0cm,2cm). Such coordinates are interpreted differently. The first form means ``1cm upwards from the previous specified position'' ; the second means ``2cm to the right of the previous specified position, \textbf{making this the new specified position.}'' \fg{} + +Bien, je pense qu'un petit exemple ne sera pas de trop pour aborder cette notion : + +\begin{code}{Coordonnées absolues et relatives} +\documentclass[a4paper, 12pt]{report} + +\usepackage{tikz} + + +\begin{document} + +% Sans les + ou ++ +\begin{tikzpicture} +\draw[gray, dotted] (0,-1) grid (3,1); % Une trame de fond, pour aider + +\draw (0,0) node[circle, fill = red, inner sep = 2pt] {} -- (1,1) -- (2,0) -- (0,-1) node[circle, fill = blue, inner sep = 2pt] {}; % Le point de départ est toujours le point à partir duquel est appliqué le déplacement +\end{tikzpicture} +\hfill +% Avec le + +\begin{tikzpicture} +\draw[gray, dotted] (0,-1) grid (3,1); % Une trame de fond, pour aider + +\draw (0,0) node[circle, fill = red, inner sep = 2pt] {} -- (1,1) --+ (2,0) --+ (0,-1) node[circle, fill = blue, inner sep = 2pt] {}; % Le dernier point sans "+" est toujours le point à partir duquel est appliqué le déplacement +\end{tikzpicture} +\hfill +% Avec le ++ +\begin{tikzpicture} +\draw[gray, dotted] (0,-1) grid (3,1); % Une trame de fond, pour aider + +\draw (0,0) node[circle, fill = red, inner sep = 2pt] {} --++ (1,1) --++ (2,0) --++ (0,-1) node[circle, fill = blue, inner sep = 2pt] {}; % Chaque nouveau point est le point de départ pour le déplacement d'après +\end{tikzpicture} + +% Je reviendrai sur les "node" par la suite +% Ici, ils permettent un point de repère pour distinguer le départ du tracé de sa fin + +\end{document} +\end{code} + +Et cette méthode s'applique aussi pour les coordonnées polaires. Appliquons alors cette découverte pour nos polygones réguliers. Après tout, il s'agit de prendre le point précédent et de le faire pivoter du bon angle : + +\begin{code}{Coordonnées relatives polaires} +\documentclass[a4paper, 12pt]{report} + +\usepackage{tikz} + + +\begin{document} + +% Cas d'un triangle équilatéral +\begin{tikzpicture} +\draw (0,0) -- (2,0) --++ (120:2) -- cycle; +\end{tikzpicture} +\hfill +% Cas d'un carré +\begin{tikzpicture} +\draw (0,0) -- (2,0) --++ (90:2) --++ (180:2) -- cycle; +\end{tikzpicture} +\hfill +% Cas d'un pentagone +\begin{tikzpicture} +\draw (0,0) -- (2,0) --++ (72:2) --++ (144:2) --++ (216:2) -- cycle; +\end{tikzpicture} + +\end{document} +\end{code} + +\begin{attentionbox}{Une question ?} +\og C'est marrant ton astuce pour tracer le polygone en polaire mais ce n'est toujours pas pratique. Il faut quand même changer à la main les valeurs pour chaque polynôme \dots{} \fg{} \\ + +En effet \dots{} mais j'allais justement annoncer une magnifique solution automatisée ! +\end{attentionbox} + +Il existe trois outils que j'ai découverts suite à mon passage à \texttt{TikZ} et qui se révèlent très utiles dans ce cas : + +\begin{itemize}[label = \ding{213}] +\item \textcolor{OrangeRed}{la définition de variable :} tu peux créer toi-même ta propre variable sous \LaTeX{}\footnote{Très exactement, il s'agit d'une macro. J'apporterai sûrement un correctif et une explication plus poussée lors de la prochaine mise à jour de ce guide et après quelques recherches.}. Appliquée à \texttt{TikZ}, tu peux l'associer en tant que nombre (nombre de côtés d'un polygone régulier par exemple) ou que longueur (rayon du cercle dans lequel le dit polygone est inscrit). Il suffit d'utiliser la commande suivante : \begin{center} \verb?\def\nom{valeur}? \end{center} + +\item \textcolor{OrangeRed}{le calcul de nouvelles variables :} propre à \texttt{TikZ}, cette possibilité peut parfois servir. En l'occurrence, nous dessinons un polygone régulier inscrit dans un cercle de rayon fixé, sans connaître la valeur d'un côté (même si c'est bien plus simple de considérer la taille d'un cercle pour l'affichage). Du coup, si tu tiens à avoir un polygone avec une taille d'arête bien spécifique, tu peux calculer le rayon nécessaire !Pour ce faire, il faut utiliser la commande : \begin{center} \verb?\pgfmathsetmacro\nom{\calcul}? \end{center} + +Il est aussi possible d'utiliser des variables déjà définies pour les intégrer dans le calcul. Les possibilités offertes deviennent alors très intéressantes, \\ + +\item \textcolor{OrangeRed}{la boucle \verb?for? :} oui, comme en informatique, il est possible d'indiquer à \LaTeX{}, et plus particulièrement à \texttt{TikZ} dans notre cas, des tâches répétitives. La formulation est la suivante : \begin{center} \verb?\foreach \nom_var in {1,...,N} {commandes}? \end{center} + +Naturellement, j'ai mis \verb?{1,...,N}? pour l'exemple mais tu peux mettre n'importe quelle valeur numérique, comme \verb?{2,3,4}?, ou même des lettres ! \\ +\end{itemize} + +Voici donc une solution simple qui fonctionne. Il y a sûrement encore moyen de l'améliorer, comme permettre à chaque trait d'avoir une couleur différente (avec \verb?cycle? en fin de ligne sinon c'est moche) mais elle fonctionne déjà plutôt bien : + +\begin{code}{Une solution automatisée} +\documentclass[a4paper, 12pt]{report} + +\usepackage{tikz} + + +\begin{document} + +% Un polygone régulier +\begin{tikzpicture} +% Paramétrage +\def\poly{13} % Nombre entier supérieur à 1 +% % Limite de calcul LaTeX fixée à 16 383 ... +\pgfmathsetmacro\polyg{\poly - 1} +\def\R{2} % 0.25\linewidth est aussi une distance ... + +% Tracé du polygone +\draw[orange] (90:\R) \foreach \i in {1,...,\polyg} {-- (90-\i/\poly*360:\R)} -- cycle; % Usage de \polyg pour bien fermer avec un "cycle" +\end{tikzpicture} +\hfill +% Un amortisseur +\begin{tikzpicture} +\coordinate (O) at (0,0); % Possibilité de changer le 0,0 en argument d'une nouvelle commande ... + +\draw (O) --++ (2,0) --++ (0,-1) --++ (2,0) ++ (-2,1) --++ (0,1) --++ (2,0) node[above left] {\Large{}$\mu$} ++ (-1,0) --++ (0,-2) ++ (0,1) --++ (2,0); +% Utilisation de "++" sans "--" pour déplacer la coordonnée relative (on rebrousse chemin dans le tracé) sans tracer un trait +\end{tikzpicture} + +\end{document} +\end{code} + +\begin{conseilbox}{La gestion des unités} +Il peut arriver que tu définisses une variable mais que sa valeur ne donne pas le résultat attendu, en terme de taille. Par exemple, un rayon \verb?\def\R{50}? de 50pt ou 50mm au lieu de 50cm par défaut, un peu grand, surtout sur une feuille A4 ; une épaisseur de trait \verb?\def\sep{13}? de 13mm au lieu de 13pt par défaut. + +Seulement, écrire \verb?circle (\R{}pt)? ou \verb?line width = \sep mm? ne fonctionne pas car \LaTeX{} n'arrive pas à combiner une variable avec du texte \dots{} \\ + +Heureusement, il existe donc un moyen très simple de résoudre ce problème. Il faut définir une variable unité : \verb?\def\unit{unité}?. Par exemple, nous pouvons écrire \verb?\def\unit{pt}? ou \verb?\def\mm{mm}? s'il y a plusieurs unités et que tu ne veux pas les confondre. + +Il faut ensuite écrire, par exemple, \verb?circle (\R\unit)? ou \verb?line width = \sep\mm?, et le tour est joué ! +\end{conseilbox} + +\begin{attentionbox}{La limite de calcul sous \texttt{TikZ}} +Avec les commandes \verb?\def? et \verb?\pgfmathsetmacro?, il existe une limite de calcul, fixée à 16 383, très exactement $\frac{2^{30} - 1}{2^{16}}$. Du coup, si tu veux tracer un polygone de 17 000 côtés, c'est impossible. Et je n'aborde pas l'intérêt d'un tel tracé : autant utiliser un cercle dans ce cas ! + +Généralement, pour des cas raisonnables, il ne devrait pas y avoir de problème mais il est bon de connaître cette notion. \\ + +Dans le cas où une telle erreur apparaît, le compilateur devrait afficher l'erreur \og \verb?! Dimension too large.? \fg{}. \textcolor{Red}{\textbf{Il peut aussi arriver que cette limite apparaisse alors que les calculs ne dépassent pas la valeur interdite.}} + +Par exemple, trace un polygone de 50 côtés avec mon code précédent et essaye les deux possibilités suivantes dans la boucle \verb?for? : + +\begin{itemize}[label = \ding{213}] +\item \verb?{-- (90-\i/\poly*360:\R)}? : aucun problème, + +\item \verb?{-- (90-\i*360/\poly:\R)}? : problème \dots{} alors que, d'un point de vue purement formel, le calcul est le même ! +\end{itemize} + +De ce que j'ai compris, il s'agit d'une erreur due à un dépassement de pile (\textit{stack overflow}) sous \texttt{TikZ}. Pour l'éviter, il faut \textbf{toujours privilégier les divisions au début du calcul.} +\end{attentionbox} + +\section{Dessiner des figures mathématiques} + +Je ne vais pas m'attarder sur cette section, juste donner deux pistes de recherche. Si tu as beaucoup de figures géométriques à dessiner, et surtout des figures mathématiques, avec beaucoup de sommets, des intersections, \dots{}, tu peux : + +\begin{itemize}[label = \ding{213}] +\item utiliser le logiciel gratuit \texttt{GeoGebra} et exporter les figures en code \texttt{TikZ}, + +\item utiliser le package \verb?tkz-euclide?, qui possède une documentation bien fournie et beaucoup de commandes intéressantes. \\ +\end{itemize} + +% Code pour tracer une fonction mathématiques + +Bien, maintenant que nous connaissons le fonctionnement de \texttt{TikZ} et l'avons un peu manipulé, voyons maintenant des méthodes élégantes pour gérer la forme soit toutes les options accessibles sous \verb?\draw?. + +\section{Gestion des styles} + +Pour commencer, avant même de définir le principe du style sous \texttt{TikZ}, je tiens à aborder le cas toujours assez délicat de l'importation du package \verb?xcolor?, et encore plus de ses options, dont \verb?dvipsnames? pour ma part. + +Il faut déjà savoir qu'il faut toujours charger \verb?xcolor? avant \verb?tikz?. Mais, dans certains cas (utilisation d'autres packages principalement), il peut arriver qu'il y ait un conflit et que l'erreur \verb?Option clash for package xcolor? surgisse. + +Dans ce cas, la seule solution trouvée jusqu'à présent remplace le chargement de \verb?xcolor? dans le préambule par la ligne : \begin{center} \verb?\PassOptionsToPackage{dvipsnames}{xcolor}? \end{center} + +Et si jamais cette solution ne fonctionne toujours pas, placer cette ligne avant même le \verb?\documentclass? convient en dernier recours. \\ + +Venons-en maintenant aux styles. Imaginons un instant que nous avons plein de traits, de rectangles et de cercles à tracer. Bref, pleins de figures qui requiert d'utiliser beaucoup de \verb?\draw?. Nous voulons derrière que toutes les figures aient le même format (couleur, épaisseur de trait, \dots{}). + +Il est alors possible de définir un style global pour un dessin (environnement \verb?tikzpicture?). Au lieu d'écrire \verb?\draw[draw_options]? à chaque fois et de devoir tout changer manuellement, il est possible d'ajouter des options à l'environnement de la manière suivante : \begin{center} \verb?\begin{tikzpicture}[options]? \end{center} + +Au contraire, si nous avons besoin de définir plusieurs styles distincts, c'est possible avec la syntaxe suivante : \begin{center} \verb?\tikzstyle{nom_style} = [draw_options]? \end{center} + +\noindent{}avant d'appeler le style en question dans les options : \verb?\draw[nom_style]?. + +Enfin, il est toujours possible de procéder à des changements ponctuels dans les options d'un \verb?\draw? : \textbf{placés après un style,} ils prédomineront à coup sûr. \\ + +Un petit exemple pour bien comprendre, comme d'habitude : + +\begin{code}{Les styles sous \texttt{TikZ}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[dvipsnames]{xcolor} + +%\PassOptionsToPackage{dvipsnames}{xcolor} % Si erreur avec xcolor --> Enlever le commentaire sur cette ligne et mettre la ligne précédente en commentaire +\usepackage{tikz} + + +\begin{document} + +% Style global +\begin{tikzpicture}[thick, Red, dashed] +\def\R{1.5} +\draw circle (\R); +\draw (\R,0) --++ (-2*\R,0); +\draw (0,\R) --++ (0,-2*\R); +\end{tikzpicture} +\hfill +% Styles locaux +\begin{tikzpicture}[thick, Red, dashed] +\def\R{1.5} +\draw[solid, thin] circle (\R); % solid = trait plein + +\draw (\R,0) --++ (-2*\R,0); % Bien mettre un * pour les calculs +% A ne pas confondre avec l'utilisation des longueurs : 0.5\linewidth, ... +\draw[Cyan, ultra thick] (0,\R) --++ (0,-2*\R); +\end{tikzpicture} +\hfill +% Style groupé +\begin{tikzpicture}[thick, Red, dashed] +\def\R{1.5} + +\tikzstyle{style} = [Orchid, line width = 4pt, line cap = round, dash pattern = on 0pt off 2.5\pgflinewidth] % Style dotted pas très "dot" --> utilisation de line cap & dash pattern + +\draw circle (\R); + +\draw[style] (\R,0) --++ (-2*\R,0); +\draw[style, LimeGreen] (0,\R) --++ (0,-2*\R); % Toujours possible de modifier un style prédéfini +% A bien placer après le nom du style : options lues et appliquées de gauche à droite +\end{tikzpicture} + +\end{document} +\end{code} + +Bien évidemment, ici, le code est très simple et cette notion n'a vraiment d'intérêt quand tu as beaucoup de \verb?\draw? \dots{} ou que tu te rends compte que tu fais beaucoup de changements dans les options. Il devient alors plus intéressant d'automatiser les options avec des styles. + +Maintenant que la mise en forme est bien définie et que nous savons tracer quelques figures élémentaires, pimentons un peu les possibilités : ajoutons du texte. + +\section{Insérer du texte} + +Il n'y a qu'une seule façon d'écrire dans un dessin réalisé sous \texttt{TikZ} : les \verb?node?. Très exactement, les \verb?node? permettent de placer à peu près tout et n'importe quoi à l'endroit souhaité dans le dessin, en particulier du texte. + +Un \verb?node? s'appelle par une commande, selon la syntaxe suivante : \begin{center} \verb?\node[draw_options] at (x,y) {Texte};? \end{center} + +\noindent{}avec plein de possibilités pour \verb?draw_options? comme par exemple : + +\begin{itemize}[label = \ding{213}] +\item \verb?draw? : pour afficher le cadre du \verb?node?, + +\item \verb?circle? : pour avoir un cercle comme cadre au lieu d'un rectangle (défaut). Différents formats sont disponibles et sont explicités dans les exemples ci-après, + +\item \verb?draw = color? : la couleur de la bordure du cadre, + +\item \verb?fill = color? : la couleur de remplissage du cadre, + +\item \verb?text = color? : la couleur du texte, + +\item \verb?minimum width = taille? : largeur minimale du cadre, + +\item \verb?text width = taille? : largeur de la boîte (invisible) dans laquelle est placée le texte. Si \verb?text width? est inférieur à \verb?minimum width?, la boîte en question est centrée, + +\item \verb?minimum height = taille? : hauteur minimale du cadre, + +\item \verb?align = position?, avec \verb?position? qui peut prendre les valeurs \verb?left?, \verb?center? ou \verb?right? : positionnement du texte dans sa boîte (invisible). \\ +\end{itemize} + +Un exemple très simple d'application peut prendre la forme suivante : + +\begin{code}{Utilisation des \texttt{node}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{tikz} + + +\begin{document} + +% La base sur les node +\begin{tikzpicture} +\draw (0,0) -- (1,0); + +\node at (0.5,0.5) {Texte}; +\end{tikzpicture} +\hfill +% Quelques options +\begin{tikzpicture} +\node[draw] at (0,0) {some text}; % Affichage de la bordure rectangulaire du node + +\node[draw, circle, align = left] at (4,0) {some text \\ spanning three lines \\ with manual line breaks}; % circle : format du cadre (rectangle par défaut) + +\node[draw = Green, fill = Red, text = White, thick, minimum width = 5cm, text width = 4cm, minimum height = 2cm, align = center] at (2,-2) {some text spanning three lines with automatic line breaks}; +\end{tikzpicture} + +\end{document} +\end{code} + +Pour avoir un aperçu des différents formats disponibles, c'est par ici : + +\begin{code}{Les différents formats de \texttt{node}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{tikz} +\usetikzlibrary{shapes} % Pour certains formats de node + + +\begin{document} + +% Formats : rectangle, circle, ellipse, diamond, circle split, forbidden sign, cross out, strike out +% regular polygon, regular polygon sides = 5 +% star, star points = 7 + star point ratio = 0.8 (bonus) +\begin{tikzpicture} +\tikzstyle{ann} = [draw = none, fill = none,right] + +% Affichage sous forme d'un tableau +\matrix[nodes = {draw, ultra thick, fill = blue!20}, row sep = 0.3cm, column sep = 0.5cm] {% + \node[draw = none, fill = none] {Plain node}; & + \node[rectangle] {Rectangle}; & + \node[circle] {Circle}; \\ + \node[ellipse] {Ellipse}; & + \node[circle split] {Circle \nodepart{lower} split}; & + \node[forbidden sign,text width=4em, text centered] {Forbidden sign}; \\ + \node[diamond] {Diamond}; & + \node[cross out] {Cross out}; & + \node[strike out] {Strike out}; \\ + \node[regular polygon, regular polygon sides = 5] {$n = 5$}; & + \node[regular polygon, regular polygon sides = 7] {$n=7$}; & + \node[regular polygon, regular polygon sides = 9] {$n=9$}; & + \node[ann]{Regular polygon}; \\ + \node[star, star points = 4] {$p = 4$}; & + \node[star, star points = 7, star point ratio = 0.8] {$p=7$}; & + \node[star, star points = 10] {$p = 9$}; & + \node[ann]{Star}; \\ +}; +\end{tikzpicture} + +\end{document} +\end{code} + +Mais tu peux tout faire avec des \verb?node?. Par exemple, tu peux les placer à l'intérieur d'un \verb?\draw? pour ajouter de l'information (texte ou symbole). L'intérêt ? Pendant que tu traces ton dessin, tu associes l'information, au lieu de l'ajouter manuellement. C'est très pratique si tu modifies ton dessin ou si les coordonnées sont difficiles à déterminer. \\ + +Reprenons un ancien exemple, qui devrait te sembler plus clair désormais : + +\begin{code}{Ajouter de l'information avec des \texttt{node}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{tikz} + + +\begin{document} + +\begin{tikzpicture} +\draw[gray, dotted] (0,-1) grid (3,1); % Une trame de fond, pour aider + +% Les node en cascade, c'est le nec plus ultra ! +\draw (0,0) node[circle, fill = red, inner sep = 2pt] {} node[left, inner sep = 5pt] {Début} --++ (1,1) --++ (2,0) --++ (0,-1) node[circle, fill = blue, inner sep = 2pt] {} node[right] {Fin}; % Option radius possible pour définir la taille du point mais inner sep plus efficace + +\draw (0,0) -- (1,-1) node[right, align = left, font = \small] {Nouvelle \\ branche}; % Positionnement du texte par rapport au centre du noeud +% Possibilités de possitionnement : above, below, left et right +% Des combinaisons comme "above left" sont possibles (ordre à respecter) + +% Saut de ligne "\\" licite dans le node si et seulement si "align = ..." précisé +\end{tikzpicture} + +\end{document} +\end{code} + +Bon, je crois avoir à peu près fait le tour en ce qui concerne la base pour les \verb?node?. Voyons une dernière application, plus poussée : la création de graphes et d'organigrammes. + +\section{Création d'un organigramme} + +Moi-même j'expérimente ces nouveautés donc je suis encore loin d'en maîtriser toutes les subtilités. Je risque donc ne pas être aussi exhaustif que je le souhaite. Je vais donc expliquer le principe de base avant de te laisser examiner trois exemples. \\ + +Sous \texttt{TikZ}, un \verb?node? est constitué de points d'ancrage, répartis de la manière suivante : + +\begin{figure}[H] +\centering +\begin{tikzpicture} +\node[draw = Gray!70, fill = White, text = RedOrange, font = \LARGE{}, line width = 8pt, rounded corners = 8pt, minimum width = 0.5\linewidth, minimum height = 3cm, text width = 0.25\linewidth] (master) at (0,0) {node \og N \fg{}}; + +% Les points d'ancrage les plus intuitifs +\foreach \anchor in {north, north east, east, south east, south, south west, west, north west} {\node at (master.\anchor) {$\times$};} + +\node[above = 5pt] at (master.north) {\texttt{N.north}}; +\node[above right = 5pt] at (master.north east) {\texttt{N.north east}}; +\node[right = 5pt] at (master.east) {\texttt{N.east}}; +\node[below right = 5pt] at (master.south east) {\texttt{N.south east}}; +\node[below = 5pt] at (master.south) {\texttt{N.south}}; +\node[below left = 5pt] at (master.south west) {\texttt{N.south west}}; +\node[left = 5pt] at (master.west) {\texttt{N.west}}; +\node[above left = 5pt] at (master.north west) {\texttt{N.north west}}; + +% Les autres points d'ancrage +\node[text = Cyan] at (master.13) {$\times$}; +\node[text = Green] at (master.base) {$\times$}; +\node[text = Green] at (master.text) {$\times$}; +\node[text = Orchid] at (master.center) {$\times$}; + +\node[right = 5pt, text = Cyan] at (master.13) {\texttt{N.13} (angle)}; +\node[below = 5pt, text = Green] at (master.base) {\texttt{N.base}}; +\node[below left, yshift = -5pt, text = Green] at (master.text) {\texttt{N.text}}; +\node[above = 5pt, text = Orchid] at (master.center) {\texttt{N.center = N}}; +\end{tikzpicture} +\caption{Vue d'un \texttt{node} et de ses points d'ancrage} +\end{figure} + +Voyons maintenant comment utiliser cette notion pour placer deux boîtes. Nous allons : + +\begin{enumerate} +\item placer un premier \verb?node?, par défaut en $(0,0)$, + +\item paramétrer ce \verb?node? pour qu'il ressemble à une boîte, + +\item placer un second \verb?node? relativement au premier. +\end{enumerate} + +L'avantage de cette méthode ? Il faut juste placer un \verb?node? et tout peut se faire relativement à ce dernier. Et grâce aux points d'ancrage, relier deux \verb?node? devient très aisé. + +Enfin, \textbf{il est possible de créer un style global pour tous les \verb?node?}. Il faut juste respecter la syntaxe suivante après la déclaration de l'environnement \verb?tikzpicture? : \begin{center} \verb?[every node/.style = {options}]? \end{center} + +Le code d'initiation est alors le suivant : + +\begin{code}{Initiation aux points d'ancrage} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{tikz} +\usetikzlibrary{calc} + + +\begin{document} + +\begin{tikzpicture}[every node/.style = {draw = orange, very thick, minimum width = 3cm, minimum height = 2cm}] +% Création du node "master" - Options pour avoir une boîte +\node (master) at (0,0) {Boîte 1}; + +% Création du deuxième node relativement à "master" +\node[anchor = west] at (master.east) {Boîte 2}; +% Positionnement de l'ancrage ouest de la boîte 2 sur l'ancrage est de "master" + +% Troisième node différent relié à "master" +\node[draw = green, fill = gray, minimum width = 2cm] (box) at (2,-3) {Boîte 3}; + +% Tracé du trait automatisé --> placement très précis entre les deux boîtes (milieu vertical) +\coordinate (middle) at ($(master.south)!0.5!(box.north)$); % Création du point milieu entre les ancres master.south et box.north --> tikzlibrary : calc +\draw (master.south) -- (master.south |- middle) -- (middle -| box.north) -- (box.north); + +% Tracé du trait manuellement +%\draw (master.south) --++ (0,-0.3) -| (box.north); +% -| : départ horizontal, arrivée verticale du trait +\end{tikzpicture} + +\end{document} +\end{code} + +Et voici maintenant 3 exemples un peu plus détaillés que je te laisse analyser si tu es intéressé : + +\begin{code}{Organigramme 1 : positionnement de boîtes par ancrage} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[dvipsnames]{xcolor} + +%\PassOptionsToPackage{dvipsnames}{xcolor} % Si erreur avec xcolor --> Enlever le commentaire sur cette ligne et mettre la ligne précédente en commentaire +\usepackage{tikz} + + +\begin{document} + +% Boite principale en (0,0) +% Positionnement des en-têtes de chaque sous-boîte +% Tracé des traits automatisés - Gestion des styles + +\begin{tikzpicture}[every node/.style = {align = center, draw = Black, fill = RoyalPurple!70, line width = 1.5pt, text width = 3cm, minimum width = 3.5cm, minimum height = 1cm, text = White}] +\node[text width = 2.5cm, minimum width = 3cm] (master) at (0,0) {\Large{}Manager}; + +\tikzstyle{bigbox} = [text width = 3.2cm, minimum width = 3.5cm, minimum height = 3cm] + +\node (boxa) at (-6,-3) {\large{}Team A}; +\node[bigbox, anchor = north] at (boxa.south) {Commercial \linebreak \linebreak Support function}; + +\node (boxb) at (-2,-3) {\large{}Team B}; +\node[bigbox, anchor = north] at (boxb.south) {PHP \linebreak \linebreak JavaScript}; + +\node (boxc) at (2,-3) {\large{}Team C}; +\node[bigbox, anchor = north] at (boxc.south) {Support \linebreak \linebreak Supervision}; + +\node (boxd) at (6,-3) {\large{}Team D}; +\node[bigbox, anchor = north] at (boxd.south) {Report \& KPI \linebreak \linebreak Financial management}; + +\foreach \point in {a, b, c, d} {\draw[very thick] (master.south) --++(0,-1cm) -| (box\point.north);} % Tracé automatisé : -| = départ horizontal, arrivée verticale +%\draw (master.south) --++ (0,-1) --++ (-2,0) --++ (0,-1) ++ (0,1) --++ (-4,0) --++ (0,-1) ++ (6,1) --++ (2,0) --++ (0,-1) ++ (0,1) --++ (4,0) --++ (0,-1); % Ancien tracé manuel moins pratique +\end{tikzpicture} + +% Pour un meilleur centrage de l'organigramme : environnement center et agrandir un peu les marges + +\end{document} +\end{code} + +\begin{code}{Organigramme 2 : utilisation d'un arbre} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[dvipsnames]{xcolor} + +%\PassOptionsToPackage{dvipsnames}{xcolor} % Si erreur avec xcolor --> Enlever le commentaire sur cette ligne et mettre la ligne précédente en commentaire +\usepackage{tikz} +\usetikzlibrary{trees} + + +\begin{document} + +% Utilisation d'un arbre +% Syntaxe : child { node {Texte} } +% Jouer sur l'encapsulation de plusieurs child pour faire des ramifications + +% Pleins d'options globales disponibles : +% --> gestion de la distance (général ou pour chaque niveau) = sibling distance +% --> format du trait entre deux niveaux = edge from parent + +\begin{tikzpicture}[level 1/.style = {sibling distance = 17em}, level 2/.style = {sibling distance = 8em}, every node/.style = {shape = rectangle, rounded corners, draw, align = center, top color = white, bottom color = blue!20}, edge from parent/.style = {draw, edge from parent path = {(\tikzparentnode.south) -- +(0,-8pt) -| (\tikzchildnode)}}, level distance = 50pt] % Pas de gestion automatique de la taille et de l'espacement +\node {Prenom Nom \\ Chef} + child { node {Prenom Nom \\ Sous-chef} + child { node {Prenom Nom \\ Esclave}} + child { node {Prenom Nom \\ Esclave}} + } + child { node {Prenom Nom \\ Sous-chef} + child { node {Prenom Nom \\ Mineur} + child { node {Prenom Nom \\ Stagiaire}} + child { node {Prenom Nom \\ Stagiaire}} + child { node {Prenom Nom \\ Stagiaire}} + } + child { node {Prenom Nom \\ Esclave}} + }; +\end{tikzpicture} + +\end{document} +\end{code} + +\begin{code}{Organigramme 3 : autre utilisation d'un arbre} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[dvipsnames]{xcolor} + +%\PassOptionsToPackage{dvipsnames}{xcolor} % Si erreur avec xcolor --> Enlever le commentaire sur cette ligne et mettre la ligne précédente en commentaire +\usepackage{tikz} +\usetikzlibrary{trees} + + +\begin{document} + +% L'arbre précédent est plutôt bien mais est plus adapté au format paysage et s'il y a peu de sous-divisons +% Ou alors amélioration des sous-divisions comme ci-après + +% Création de styles avec un nom dans l'appel de l'environnement + +\begin{tikzpicture}[man/.style = {rectangle, draw, fill = blue!20}, woman/.style = {rectangle, draw, fill = red!20, rounded corners = .8ex}, grandchild/.style = {grow = down, xshift = 1em, anchor = west, edge from parent path = {(\tikzparentnode.south) |- (\tikzchildnode.west)}}, first/.style = {level distance = 6ex}, second/.style = {level distance = 12ex}, third/.style = {level distance = 18ex}, level 1/.style = {sibling distance = 5em}] +% Parents +\coordinate + child[grow = left] {node[man, anchor = east] {Jim}} + child[grow = right] {node[woman,anchor = west] {Jane}} + child[grow = down, level distance = 0ex][edge from parent fork down] +% Children and grandchildren + child{node[man] {Alfred} + child[grandchild, first] {node[man] {Joe}} + child[grandchild, second] {node[woman] {Heather}} + child[grandchild, third] {node[woman] {Barbara}} + } + child{node[woman] {Berta} + child[grandchild, first] {node[man] {Howard}} + } + child {node[man] {Charles}} + child {node[woman] {Doris} + child[grandchild, first] {node[man] {Nick}} + child[grandchild, second] {node[woman] {Liz}} + }; +\end{tikzpicture} + +\end{document} +\end{code} + +\section{Les possibilités offertes par \texttt{TikZ}} + +\texttt{TikZ} met à dispositions de très nombreuses librairies pour réaliser ``tes envies les plus folles'' \dots{} enfin, tout ce que tu as besoin de dessiner ! + +Pour utiliser ces librairies, il suffit d'utiliser la commande suivante dans le préambule, juste après l'appel à \verb?tikz? : \begin{center} \verb?\usetikzlibrary{nom_librairie}? \end{center} + +Ces librairies sont détaillées à la partie V du guide officiel de \texttt{TikZ}, ainsi que sur le site suivant : \url{http://tex.stackexchange.com/questions/42611/list-of-available-tikz-libraries-with-a-short-introduction}. En voici un aperçu résumé : + +\begin{itemize}[label = \ding{118}, itemsep = \baselineskip] % Aération des item +\item \verb?angles? : pour faciliter le dessin d'angles, + +\item \verb?arrows? : pour de nouvelles pointes de flèches, personnalisables, + +\item \verb?automata? : pour dessiner des automates finis (diagrammes d'état) et des machines de Turing, + +\item \verb?babel?, + +\item \verb?backgrounds? : pour créer des arrières-plans colorés dans l'environnement \verb?tikzpicture?. \`A essayer : peut-être qu'il y a un intérêt, + +\item \verb?calc? : pour faire des calculs, généralement sur les coordonnées, + +\item \verb?calendar? : pour créer des calendriers, + +\item \verb?chains? : pour créer des chaînes, + +\item \verb?circuits? : pour dessiner des circuits électriques. Il existe aussi le package \verb?circuitikz?, + +\item \verb?decorations? : pour pouvoir appliquer des transformations à des chemins (\verb?path?) et les décorer., + +\item \verb?er? : pour des dessiner des diagrammes entité-association (er = entity-relationship), + +\item \verb?fadings? : pour estomper les couleurs, + +\item \verb?fit? : pour créer un \verb?node? qui doit contenir des coordonnées définies, + +\item \verb?folding? : pour créer des patrons ou des objets à plier, + +\item \verb?intersections? : pour calculer des intersections de chemins (\verb?path?), + +\item \verb?math? : pour définir des fonctions mathématiques et exécuter des opérations mathématiques, + +\item \verb?matrix? : options et styles supplémentaires pour la création d'une matrice de \verb?node?, + +\item \verb?mindmap? : pour créer des cartes heuristiques. Le c{\oe}ur est placé au centre, tandis que les éléments qui en découlent sont créés à partir de branches (\verb?children?, comme pour les organigrammes ou les arbres). Personnalisation complète possible et annotations disponibles, + +\item \verb?patterns? : pour définir de nouveaux motifs pour du remplissage, + +\item \verb?petri? : pour dessiner des réseaux de Petri, + +\item \verb?plothandlers?, + +\item \verb?plotmarks?, + +\item \verb?shadings? et \verb?shadows? : pour réaliser des ombrages, + +\item \verb?shapes? : pour de nouveaux formats de \verb?node? (ellipse, diamant, étoile, polygone, \dots{}), + +\item \verb?spy? : pour faire des zooms, + +\item \verb?trees? : pour dessiner des arbres (de possibilités). \\ +\end{itemize} + +% circuit élec, page 510 tuy'sss officielle TikZ + +Enfin, il existe aussi d'autres packages pour agrémenter les dessins sous \LaTeX{}. C'est par exemple le cas de \verb?pgfornament?, qui mérite le détour pour fournir beaucoup d'ornements intéressants. + +\begin{figure}[H] +\centering +\pgfornament[color = RedOrange, width = 0.6\linewidth]{60} +\caption{Un premier aperçu du package \texttt{pgfornament}} +\end{figure} + +\section{Le fond d'écran \LaTeX{}} + +Loin d'avoir tout expliqué sur \texttt{TikZ}\footnote{Le guide officiel fait plus de 1000 pages donc tu penses bien que je n'ai fait qu'effleurer le champ des possibles.}, les exemples que j'ai élaborés et mis à disposition au sein de ce guide donnent quand même beaucoup d'informations et de possibilités. + +Naturellement, je suis loin d'être complètement exhaustif et je me suis efforcé d'aborder un maximum de notions fondamentales. Lors de la prochaine modification de ce guide, il y a des chances que je revienne sur cette partie, tant pour améliorer mes explications, mes exemples et l'affichage du code. \\ + +En tout cas, je me suis amusé à réaliser un petit fond d'écran pour mon ordinateur. Naturellement, il prône l'utilisation du \LaTeX{} et joue un peu sur la fibre patriotique. + +Il est à disposition si après si tu veux réaliser une capture d'écran pour l'utiliser toi aussi. Il peut aussi constituer un bon entraînement si tu veux dessiner sous \texttt{TikZ}. + +\newpage + +\includepdf[pages = -, fitpaper]{fond_TikZ}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-beamer.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-beamer.tex new file mode 100644 index 00000000000..7776e83909b --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-beamer.tex @@ -0,0 +1,3 @@ +\chapter{Faire des présentations avec \texttt{Beamer}} + +\`A venir\dots{} (peut-être 2\up{nd} semestre 2019)
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex new file mode 100644 index 00000000000..9e3804d00f2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-images.tex @@ -0,0 +1,245 @@ +\chapter{Images} + +\label{chap_img_anx} + +\section{Une référence toute prête} + +Les références, c'est bien. Les automatiser, c'est mieux. J'étais plutôt agacé d'écrire constamment \og (cf. \textsc{Figure} \textit{ref} p. \textit{page-ref}) \fg{}, d'autant plus que le mot \og \textsc{Figure} \fg{} peut varier selon la classe. + +Puis, j'ai découvert la commande \verb?\figurename{}? : elle contient justement le nom utilisé dans la légende. Il est donc possible d'automatiser mon problème initial de la manière suivante : + +\begin{code}{Une référence fraîche ! Une !} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{graphicx, float} + +\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref} + +\newcommand{\reffig}[1]{(cf. \figurename{} \ref{#1} p. \pageref{#1})} + + +\begin{document} + +\begin{figure}[H] +\centering +%\includegraphics[width = 0.5\linewidth]{test.png} +\caption{La légende} +\label{essai} +\end{figure} + +Toutes les explications sont disponibles ci-avant \reffig{essai}. + +\end{document} +\end{code} + +\section{L'environnement \texttt{subfigure}} + +Il peut être intéressant d'afficher plusieurs images avec chacune sa légende, ainsi qu'une légende globale pour toutes les images. Une solution très simple à implémenter est possible grâce au package \verb?subcaption? : + +\begin{itemize}[label = \ding{213}] +\item apport de l'environnement \verb?subfigure?, au fonctionnement identique à une \verb?minipage?, + +\item apport de la commande \verb?\subcaption?, pour mettre une légende sous chaque image. \\ +\end{itemize} + +Un aperçu de cette solution prend la forme suivante : + +\begin{code}{Utilisation de \texttt{subfigure}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{graphicx, float, subcaption} + + +\begin{document} + +\begin{figure}[H] +% [t] en option : permet d'aligner correctement les images si les sous-légendes sont longues +\begin{subfigure}[t]{0.32\linewidth} +%\includegraphics[width = \linewidth]{image1.png} +\subcaption{Image 1} +\end{subfigure} +\hfill +\begin{subfigure}[t]{0.32\linewidth} +%\includegraphics[width = \linewidth]{image2.png} +\subcaption{Image 2 : avec une très longue légende} +\end{subfigure} +\hfill +\begin{subfigure}[t]{0.32\linewidth} +%\includegraphics[width = \linewidth]{image3.png} +\subcaption{Image 3} +\end{subfigure} +\caption{Images de test} +\end{figure} + +% Pas le même rendu au niveau des légendes +\begin{figure}[H] +\begin{minipage}{0.32\linewidth} +%\includegraphics[width = \linewidth]{image1.png} +\caption{Image 1} +\end{minipage} +\hfill +\begin{minipage}{0.32\linewidth} +%\includegraphics[width = \linewidth]{image2.png} +\caption{Image 2} +\end{minipage} +\hfill +\begin{minipage}{0.32\linewidth} +%\includegraphics[width = \linewidth]{image3.png} +\caption{Image 3} +\end{minipage} +\caption{Images de test} +\end{figure} + +% Les références doivent toujours fonctionner --> faire des essais et lire la documentation + +\end{document} +\end{code} + +\begin{conseilbox}{La petite subtilité} +La commande \verb?\subcaption? ne requiert pas l'utilisation systématique de l'environnement \verb?subfigure?. Elle peut très bien être utilisée avec une \verb?minipage?. \\ + +Toutefois, il faut bien comprendre qu'une \verb?\caption? ou \verb?\subcaption? n'est valide que dans un élément flottant soit dans un environnement global \verb?figure?. + +De même, l'environnement \verb?subfigure? ne peut être utilisé que dans un environnement \verb?figure?, contrairement à une \verb?minipage? qui peut être utilisée n'importe quand. Cette dernière n'est donc pas considérée comme un flottant. +\end{conseilbox} + +Enfin, le package \verb?subcaption? charge aussi le package \verb?caption?, ce qui permet d'utiliser la commande \verb?\caption*?. Cette dernière permet d'avoir une légende sans numéro. C'est toujours pratique de temps en temps. + +\section{Insérer un grand nombre de fichiers} + +Il est possible d'être amené, ponctuellement, à regrouper un grande nombre de fichiers (images, \texttt{PDF}, \dots{}) dans un seul et unique \texttt{PDF}. + +Si écrire toutes les lignes de code ou faire des copier-coller pour n'avoir qu'à modifier les noms de fichiers à la fin peut fonctionner, il existe une méthode plus élégante et efficace qui consiste à utiliser une boucle \verb?for?. + +Ce n'est pas bien compliqué et tout est résumé dans le code ci-dessous : + +\begin{code}{Insertion avec une boucle for} +\documentclass[a4paper, 12pt]{report} + +\usepackage{graphicx, float} % Si images +\graphicspath{{./Images/}} % Chemin des images +\DeclareGraphicsExtensions{.jpg} % Pour définir l'extension des images + +\usepackage{pgffor} % Pour la boucle for + + +\begin{document} + +% Page de garde ou ce que tu veux + +% Commande d'insertion avec la boucle for +% #1 = numéro début +% #2 = numéro fin +% #3 = nom devant le numéro +\newcommand*{\insertgraphicsfiles}[3]{\foreach \i in {#1,...,#2} {% +\begin{figure}[H] +\vspace*{\stretch{1}} +\centering +\includegraphics[width=0.99\linewidth]{#3\i} +\vspace*{\stretch{1}} +\end{figure} +}} + +% Insertion images 001 à 009 +\insertgraphicsfiles{1}{9}{00} + +% Insertion images 010 à 099 +\insertgraphicsfiles{10}{99}{0} + +% Insertion images 100 à 151 +\insertgraphicsfiles{100}{151}{} + +% Il est possible de faire de même avec des PDF et \includepdf + +\end{document} +\end{code} + +Et voilà ! Si tu ne juges pas ce passage intéressant, la réalisation d'un trombinoscope peut constituer une application plus concrète de l'utilisation d'une boucle \verb?for? : + +\begin{code}{Une autre application : le trombinoscope} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{graphicx} +\graphicspath{{./Images/}} % Chemin des images +\DeclareGraphicsExtensions{.png} % Pour définir l'extension des images + +\usepackage{array} +\usepackage{pgffor} % Pour les boucles + +\setlength\parindent{0pt} % Pour supprimer les indentations (inutiles ici) + +\newcommand*{\affichechoriste}[3]{\begin{tabular}{c} \includegraphics[width = 0.32\linewidth]{#1} \\ #2 \textsc{#3} \end{tabular} } +% Attention, l'espace après le tabular est indispensable pour les renvois +% Sinon, tout s'affiche sur une seule ligne + +\begin{document} + +\begin{center} +\Huge{\textsc{Titre}} +\end{center} + +\foreach \prenom/\nom/\fichier in {% +Prénom/Nom/001,% +Prénom/Nom/002,% +Prénom/Nom/003,% +Prénom/Nom/004}{\affichechoriste{\fichier}{\prenom}{\nom}} +% Et ainsi de suite. Il vaut mieux ne pas mettre d'accent ni d'espace dans les noms de fichiers +% Le % en fin de ligne est indispensable au bon fonctionnement de \foreach pour éviter l'insertion de blancs qui troubleraient l'appel du fichier (et permet de faciliter la relecture du code) + +\end{document} +\end{code} + +Nous reviendrons plus tard, avec le chapitre sur \verb?TikZ?, sur des utilisations de la boucle \verb?for?. + +\section{Insérer un fichier \texttt{.svg}} + +Si, comme moi, tu apprécies ne pas avoir de gros pixels immondes au moindre zoom de ton fichier \texttt{.pdf}, il est possible d'importer un fichier \texttt{.svg} (image vectorielle donc pas de pixels au zoom) dans ton document. + +Pour ce faire, aucun package supplémentaire n'est requis et il faut juste suivre la procédure suivante : + +\begin{itemize}[label = \ding{118}] +\item exporter le fichier \texttt{.svg} sous \texttt{Inkscape} au format \texttt{.pdf}, + +\item dans les options, choisir ``Exclure le texte \dots{}'' et ``Utiliser la taille \dots{}'', + +\item garder les DEUX fichiers générés (\texttt{.pdf} et \texttt{.pdf\_tex}), + +\item utiliser le code suivant : + +\begin{figure}[H] +\centering +\begin{minipage}{0.5\linewidth} +\begin{verbatim} +\begin{figure}[H] +\centering +\def\svgwidth{\columnwidth} +%\input{nom_fichier.pdf_tex} +\caption{Légende éventuelle} +\end{figure} +\end{verbatim} +\end{minipage} +\end{figure} + +\item compiler, peu importe le mode (\verb?LaTeX?, \verb?PDFLaTeX?, \dots{}). \\ +\end{itemize} + +Et voilà, c'est tout ce qu'il y a à faire. Après, c'est vraiment se prendre le chou pour pas grand chose. Autant rester sous \texttt{Inkscape}, exporter l'image au format \texttt{.eps} et l'intégrer comme n'importe quelle image. + +Les pixels ne se verront toujours pas au zoom \dots{} et la compilation se fait sous \verb?LaTeX? comme sous \verb?PDFLaTeX? (création d'un fichier intermédiaire supplémentaire mais génération bien plus rapide). \\ + +Bref, c'était surtout une volonté personnelle d'explorer de nouveaux domaines sous \LaTeX{} mais il faut aussi savoir utiliser des solutions simples parfois.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-intro.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-intro.tex new file mode 100644 index 00000000000..bdd5a66faff --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-intro.tex @@ -0,0 +1,36 @@ +\chapter*{Préambule - Le retour} + +Ce guide prend désormais une toute nouvelle tournure. \`A partir de cette page, tu décides de mettre un pied dans la cour des grands chez \LaTeX{}. Jusqu'à présent, je t'ai présenté des solutions simples, fonctionnelles et courantes. Désormais, je te rassure, elles seront toujours fonctionnelles mais moins faciles à comprendre et bien plus sophistiquées quant au résultat. + +Toutefois, si un peu d'expérience en \LaTeX{} est donc nécessaire pour comprendre ce qui va suivre\footnote{Je ne vais pas revenir sur les bases : ce guide possède une première partie à ce sujet.}, je continuerai à expliquer un minimum des notions ou certains points. Déjà, je le fais parce que sinon ce document ne mérite plus sinon d'être un guide ; ensuite parce que c'est dans ma nature ; enfin parce que je peux poser ``sur le papier'' mes connaissances et faciliter leur diffusion. \\ + +Du coup, si dans les parties qui vont suivre, un point ne te semble pas clair, je te recommande vivement à aller fouiner un peu sur Internet pour comprendre ce que je fais, avant d'aller crier à l'aide depuis le \texttt{GGform} disponible avec ce guide, toujours à l'adresse suivante : \begin{center} \url{http://drive.google.com/drive/folders/0BzU2BdcGjfU5Tk1XaXhxbk5JcEE?usp=sharing} \end{center} + +\vspace{0.5\baselineskip} + +Comme je suis aussi extrêmement attentionné, voici une petite liste d'endroits très pratiques pour aller chercher de l'information sur \LaTeX{} : + +\begin{itemize}[label = \ding{213}] +\item \url{http://www.xm1math.net/texmaker/doc_fr.html} : l'aide officielle de \texttt{Texmaker}, qui fournit aussi des indications sur \LaTeX{}, + +\item \url{http://www.grappa.univ-lille3.fr/FAQ-LaTeX/} : une FAQ simple mais bien fournie, + +\item \url{http://fr.wikibooks.org/wiki/LaTeX} : un Wiki sur le \LaTeX{} en français, + +\item \url{http://en.wikibooks.org/wiki/LaTeX} : le ``même'' Wiki mais en anglais. L'information y est des fois plus précise et complète que sur le précédent, + +\item \textcolor{Cyan}{\url{http://www.ctan.org/} :} le site qui centralise tous les packages \LaTeX{} \dots{} et leur documentation officielle ! Une référence absolue donc, + +\item \textcolor{Green}{\url{http://tex.stackexchange.com/} :} les forums, c'est cool. Un forum sur \LaTeX{}, c'est encore plus cool \dots{} à condition de bien formuler sa demande. \\ +\end{itemize} + +Et, encore une fois, n'hésite pas à laisser des commentaires ou à signaler des fautes sur ce même \texttt{GGform}. + +Désormais j'ai fini de blablater. Ok pour toi ? Es-tu prêt ? Oui ? Alors plongeons un peu plus profondément dans l'univers (fabuleux) de \LaTeX{} ! + +\begin{flushright} +Adrien \textsc{Bouzigues} \\ +I13 CL215 +\end{flushright} + +\newpage
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-maths.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-maths.tex new file mode 100644 index 00000000000..d00a12632ec --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-maths.tex @@ -0,0 +1,60 @@ +\chapter{Mathématiques} + +\label{chap_maths_anx}La commande officielle pour écrire un vecteur est \verb?\vec? et non pas l'immonde \verb?\overrightarrow?. Il est aussi possible d'utiliser la commande \verb?\vv? du package \verb?esvect?, adapté pour l'écriture de vecteurs. \\ + +Pour placer des barres verticales, ne pas utiliser \verb?Alt Gr + 6? mais la commande \verb?\lvert? pour la gauche ou \verb?\rvert? pour la droite (\verb?\lVert? et \verb?\rVert? pour placer des doubles barres). + +Dans le cas de délimiteurs, il faut utiliser \verb?\left\vert? ou \verb?\right\vert? (\verb?\left\Vert? et \verb?\right\Vert? pour des doubles barres). \\ + +Pour mettre des accolades en-dessous d'une formule en mode mathématiques, la commande \verb?underbrace? est disponible. De même au-dessus avec \verb?overbrace?. \\ + +Le package \verb?mathrsfs? permet d'utiliser la commande \verb?\mathscr? pour donner un style différent de celui fourni par \verb?\mathcal?. \\ + +Pour un intervalle avec des doubles barres, le package \verb?stmaryrd? et les commandes \verb?\llbracket? et \verb?\rrbracket? fonctionnent à merveille ! + +\begin{code}{Exemples} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{amsmath, amsfonts, amssymb, upgreek, mathrsfs, esvect, stmaryrd} % Présentation de nouveaux packages + +\begin{document} + +\everymath{\displaystyle} + +Pour les vecteurs, utiliser $\vec{u}$ ou $\vv{u}$ est mieux que $\overrightarrow{u}$. \\ + +$\lVert \vec{u} \rVert$ pour une norme ou : $\left\Vert \cfrac{\vec{u}}{13} \right\Vert$ pour les délimiteurs. \\ + +Un cas bidon : \[\underbrace{1 - 1 + 1 - 1}_{= 0} + 13 = 13\] + +De même : \[\overbrace{1 - 1 + 1 - 1}^{= 0} + 13 = 13\] + +Changer la forme des lettres en mode mathématiques est intéressant, comme avec $\mathcal{X}$ pour le polynôme caractéristique ou $\mathscr{C}^0$ pour l'ensemble des fonctions continues. + +Les possibilités sont nombreuses et ne demandent qu'à être explorées \dots{} \\ + +Besoin d'avoir un intervalle d'entiers (doubles barres) ? Du style $\llbracket 0\,;\,n \rrbracket$ en clair. + +\end{document} +\end{code} + +Il existe aussi d'autres cas plus techniques, comme l'écriture de limites ou plusieurs lignes d'indiçage dans une somme ou un produit \dots{} + +\begin{conseilbox}{\'Ecriture de limites - Indiçages plus complexes} +Pour écrire une limite, comme $\underset{x \to +\infty}{\lim} f(x) = 0$, il faut procéder ainsi : \begin{center} \verb?$\underset{x \to +\infty}{\lim} f(x) = 0$? \end{center} + +Dans certains cas, il faut même considérer un espace insécable. Personnellement, je trouve $\underset{x \to 13}{\lim}~f(x) = 215$ plus esthétique que $\underset{x \to 13}{\lim} f(x) = 215$. Par rapport à précédemment, la différence provient du $+\infty$ qui dépasse de \og $\lim$ \fg{} et permet donc ``d'aérer'' la formule. Ici, il faut donc procéder ainsi : \begin{center} \verb?$\underset{x \to 13}{\lim}~f(x) = 215$? \end{center} + +\vspace{\baselineskip} + +Enfin, pour écrire plusieurs lignes l'une sous l'autre, comme $i = 1$ et $i \neq k$ -- sous une somme, un produit ou une intégrale -- il faut utiliser la commande \verb?\substack?. Un exemple avec les polynômes d'interpolation de Lagrange (pour les connaisseurs) sera bien plus pratique qu'une longue explication : \begin{center} \verb?$L_k = \prod_{\substack{j = 0 \\ j \neq k}}^n? \verb?\frac{X - a_j}{a_k - a_j}$? \end{center} + +\noindent{}ce qui donne $L_k = \prod_{\substack{j = 0 \\ j \neq k}}^n \frac{X - a_j}{a_k - a_j}$. \\ \\ + +\textcolor{Red}{\textbf{Dans tous les cas,}} la littérature montre l'existence d'une commande \verb?\limits? qui peut servir pour ces exemples. Non seulement j'ai lu qu'il était déconseillé de l'utiliser\footnote{Si tu veux savoir pourquoi, je te laisse chercher. Moi, j'ai oublié.}, mais je viens aussi de montrer qu'obtenir un résultat est possible sans cette commande donc évitons de nous compliquer la vie ! +\end{conseilbox}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-modes.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-modes.tex new file mode 100644 index 00000000000..e371b288e59 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-modes.tex @@ -0,0 +1,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{}.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-tableaux.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-tableaux.tex new file mode 100644 index 00000000000..9523f0faa4e --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-tableaux.tex @@ -0,0 +1,428 @@ +\chapter{Tableaux \& boîtes} + +\label{chap_table_anx} + +\section{Un autre format de cellules} + +Dans la partie précédente de ce guide, j'ai présenté les formats par défaut pour les cellules d'un \verb?tabular? : \verb?l?, \verb?c? et \verb?r?. Il en existe un 4\up{ème}, qui prend en compte un argument : le format \verb?p{longueur}?. + +\verb?p? permet de définir une colonne de largeur définie par \verb?longueur? et dont le contenu est aligné à gauche par défaut. + +Si, comme nous le verrons par la suite, la commande \verb?linebreak? est utile pour écrire du texte sur une nouvelle ligne (dans la même cellule), elle peut parfois créer de grandes espaces blancs entre les mots (pour justifier le texte). \\ + +Du coup, il existe une commande spécifique au format \verb?p? qui permet d'éviter tous ces désagréments : \verb?\newline?. Comme toujours, un exemple sera bien plus explicite : + +\begin{code}{Le format de cellule \texttt{p}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{array} + + +\begin{document} + +\begin{center} +\begin{tabular}{p{0.2\linewidth}|p{0.4\linewidth}} +Du texte \linebreak Un très très très long texte & \hfil Titre centré \hfil \\ \hline +Nouvel essai \newline Plus joli \newline Espacement correct \newline Utile pour des dates : \newline XXXX \newline YYYY & \begin{center} Ok ? Mieux centré ! Mais pas encore top \dots{} \end{center} +\end{tabular} +\end{center} + +\end{document} +\end{code} + +\begin{attentionbox}{\textit{Nota Bene}} +Pour une raison que j'ignore, le centrage du texte dans une cellule au format \verb?p? ne fonctionne pas avec la commande usuelle \verb?\hfill?, qui encadre le texte. \\ + +Une commande équivalente, \verb?\hfil? ou \verb?\hspace*{\stretch{1}}?, fonctionne parfaitement, ainsi que l'environnement \verb?center?. La première commande possède l'avantage d'être la plus concise à écrire. Il s'agit toutefois d'un point encore délicat donc cette solution peut encore être améliorée. +\end{attentionbox} + +\section{Cellules centrées verticalement et horizontalement} + +Au lieu d'utiliser la lettre \verb?c?, une commande plus complexe permet de satisfaire un centrage vertical et horizontal du contenu de la case : \begin{center} \verb?>{\centering\arraybackslash}m{taille_case}? \end{center} + +Dès lors, l'agencement peut se faire de la manière suivante : + +\begin{code}{Un exemple avec un SWOT} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{graphicx} % Pour la commande rotatebox +\usepackage{array} + + +\begin{document} + +\begin{center} +\begin{tabular}{>{\centering\arraybackslash}m{0.5cm}|>{\centering\arraybackslash}m{7cm}|>{\centering\arraybackslash}m{7cm}} +~& {\Large Atouts} & {\Large Handicaps} \\ \hline +\rotatebox{90}{{\Large Interne}} & \vspace{\baselineskip} \textbf{Forces (Strengths)} \linebreak \linebreak - rapidité de production \linebreak - etc. \linebreak & \vspace{\baselineskip} \textbf{Faiblesses (Weaknesses)} \linebreak \linebreak - idem \linebreak \\ \hline +\rotatebox{90}{{\Large Marché}} & \vspace{\baselineskip} \textbf{Opportunités (Opportunities)} \linebreak \linebreak - idem \linebreak & \vspace{\baselineskip} \textbf{Menaces (Threats)} \linebreak \linebreak - idem \linebreak +\end{tabular} +\end{center} + +\end{document} +\end{code} + +Le raccourci pour définir $N$ colonnes identiques est toujours utilisable. La formulation ne change pas : c'est toujours \verb?*{nbre_col}{commande}?. Un exemple est donné plus loin. \\ + +En revanche, il peut vite être pénible d'écrire (ou de copier-coller) cette ligne à chaque fois. C'est pourquoi il existe une commande pour définir de nouveaux formats de colonne : \begin{center} \verb?\newcolumntype{nom_format}[nbre_arg]{def_format}? \end{center} + +\noindent{}soit, dans notre cas : \begin{center} \verb?\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}? \end{center} + +Cette \textbf{commande se place dans le préambule} du document \LaTeX{}. Il faut donc procéder de la manière suivante : + +\begin{code}{Application} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{array} +\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} % L'argument #1 est une longueur (2cm, etc.) + + +\begin{document} + +\begin{tabular}{|C{2.5 cm}||C{0.5\linewidth}|} +Ligne bidon 1 & Ligne bidon 2 +\end{tabular} + +C'est plus pratique, n'est-ce pas ? + +\end{document} +\end{code} + +\section{Fusion et coloriage de cellules} + +Si la fusion des colonnes et des lignes est comprise de base avec le package \verb?array?, la fusion des lignes laisse un peu à désirer. C'est pourquoi il vaut mieux charger le package \verb?multirow?. \\ + +La fusion des colonnes a lieu grâce à la commande : \begin{center} \verb?\multicolumn{nbre_col}{position}{texte}? \end{center} + +\noindent{}et la ligne du tableau s'achève par la commande \verb?\cline{col_debut-col_fin}?. \\ + +Quant à la fusion des lignes, elle est possible grâce à la commande : \begin{center} \verb?\multirow{nbre_ligne}*{texte}? \end{center} + +Afin de pouvoir colorier les cellules, il faut ajouter le package \verb?makecell? dans le préambule. Grâce à la commande \verb?\rowcolor{couleur}?, tu peux colorier une ligne entière mais il existe d'autres commandes pour cibler les cases. Pour connaître les dites commandes, il faut aller se documenter sur Internet. Pour le reste, un exemple sera plus clair : + +\begin{code}{Coloriage et fusion} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{array, multirow, makecell} % Packages pour la fusions des lignes et le coloriage +\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} +\renewcommand{\arraystretch}{1.3} % Pour augmenter la hauteur d'une ligne - Meilleur lisibilité +\usepackage[table, dvipsnames]{xcolor} % Ajout de table pour appliquer dvipsnames aux tableaux + + +\begin{document} + +\begin{center} +\begin{tabular}{|*{4}{C{3cm}|}} +\hline +\rowcolor{Peach} \multicolumn{4}{|c|}{\textbf{Comparaison des configurations}} \linebreak \\ \hline +\multirow{2}*{\textbf{Critères}} & \multicolumn{3}{c|}{\textbf{Structures}} \linebreak \\ \cline{2-4} +~& \textbf{Fonctionnelle} & \textbf{Divisionnelle} & \textbf{Matricielle} \\ \hline \hline +Stabilité & ++ & + & - \\ \hline +Flexibilité - Adaptabilité & - & - & ++ \\ \hline +\rowcolor{black} ~ & ~ & ~ & ~ \\ \hline +\textbf{Cas pratiques} & \multicolumn{3}{|c|}{\textbf{Qui réussira le mieux à répondre aux besoins ?}} \\ \hline +Projet (long) à réaliser & - & - & ++ \\ \hline +Fabrication en grande série & ++ & - & -- \\ \hline +\end{tabular} +\end{center} + +\end{document} +\end{code} + +Il se peut que la visualisation des bordures noires du tableau ne s'affiche pas bien avec la cellule colorée. Il s'agit juste d'un problème d'affichage avec ton écran d'ordinateur, tellement la ligne est fine. + +\section{\texttt{longtable} \& \texttt{booktabs}} + +Il s'agit de deux packages que j'ai découverts en 2017. Le premier se révèle très utile pour des tableaux dont la longueur dépasse une page. Il suffit juste de remplacer l'environnement \verb?tabular? par \verb?longtable? et tout le reste fonctionne exactement pareil, y compris les nouveaux formats de colonnes définies par l'utilisateur, comme abordé précédemment. + +D'autres options existent aussi pour rappeler lors d'un changement de page les titres des colonnes. Si tu es intéressé, je te renvoie à la documentation officielle. \\ + +Quant au second package, c'est le seul à ma connaissance qui permette d'obtenir des tableaux suffisamment aérés. En théorie, la commande : \begin{center} \verb?\renewcommand{\arraystretch}{1.3}? \end{center} + +\noindent{}permet de modifier la hauteur de ligne, pour tous les tableaux créés après cette commande. Mais, avec des fractions, impossible de modifier quoi que ce soit \dots{} sauf avec \verb?booktabs? ! Pourquoi ? Je n'en sais rien. Hormis l'absence de barres verticales, le rendu est meilleur et convient. + +\begin{code}{Un exemple d'application} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{array, longtable, booktabs} +\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} +\renewcommand{\arraystretch}{1.3} % Pour augmenter la hauteur de ligne des tableaux + + +\begin{document} + +\everymath{\displaystyle} + +Allons faire un peu de maths \dots{} Mais avant, mangeons un peu de place : \\ + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis orci vitae odio varius ultrices. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus eget interdum ipsum. Ut et odio nec ipsum luctus tempor. In dapibus sapien ut sagittis congue. Suspendisse scelerisque molestie leo vel tempus. Vivamus facilisis ipsum quis hendrerit vestibulum. Fusce malesuada dictum nunc non molestie. Proin maximus neque neque, eu molestie nulla condimentum eget. Integer tincidunt ut velit at tristique. Suspendisse quis erat ac ligula facilisis commodo quis sit amet est. Maecenas a nulla nec lorem vehicula tempor. Donec tristique purus vitae nibh pretium venenatis. Fusce pellentesque convallis neque eu sagittis. Sed eu ante egestas felis sagittis tincidunt. + +\begin{center} +\begin{longtable}{C{0.3\linewidth}C{0.3\linewidth}} +$f(x)$ & $\int f(x)\,dx$ \\ \midrule % \midrule : commande propre à booktabs - Création d'une ligne horizontale (= \hline) +$x^\alpha$, avec $\alpha \neq -1$ & $\frac{x^{\alpha + 1}}{\alpha + 1}$ \\ \midrule +$\frac{1}{x}$ & $\ln \module{x}$ \\ \midrule +$\cos (ax)$, avec $a \neq 0$ & $\frac{\sin (ax)}{a}$ \\ \midrule +$\sin x$ & $-\cos x$ \\ \midrule +$\frac{1}{1 + x^2}$ & $\arctan x$ \\ \midrule +$\cosh x$ & $\sinh x$ \\ \midrule +$\sinh x$ & $\cosh x$ \\ \midrule +$e^{\omega x}$, avec $\omega \neq 0$ & $\frac{e^{\omega x}}{\omega}$ \\ \midrule +$\frac{u'}{u}$ & $\ln \module{u}$ \\ \midrule +$\tan x$ & $-\ln ( \module{\cos x})$ \\ \midrule +$\frac{1}{\sqrt{1 - x^2}}$ & $\arcsin x$ \\ \midrule +$\frac{-1}{\sqrt{1 - x^2}}$ & $\arccos x$ \\ \midrule +$\frac{1}{\sqrt{x^2 + 1}}$ & $\mathrm{argsinh}~x$ \\ \midrule +$\frac{1}{\sqrt{x^2 - 1}}$ & $\mathrm{argcosh}~x$ \\ \midrule +$\frac{1}{1 - x^2}$ & $\mathrm{argtanh}~x$ +\end{longtable} +\end{center} + +\end{document} +\end{code} + +Ici, j'ai cumulé l'emploi de \verb?longtable? et de \verb?booktabs? pour optimiser l'exemple mais rien n'empêche d'utiliser uniquement l'un ou l'autre. + +\section{Créer sa propre boîte} + +Le package \verb?tcolorbox? propose de très nombreux outils pour créer des boîtes. Il propose même une commande pour créer soi-même son propre environnement, et donc sa propre boîte entièrement personnalisable. + +La structure est très particulière et propre à \verb?tcolorbox? mais permet de respecter la philosophie \LaTeX{} : créer des commandes. Un changement sur la commande entraîne un changement sur tout le document. Tu admettras que c'est vachement plus pratique que de devoir tout passer en revue ! \\ + +Le code fonctionne selon le format suivant : \begin{center} \verb?\newtcolorbox{nom}[nbre][]{options, #1}? \end{center} + +\noindent{}avec : + +\begin{itemize}[label = \ding{213}] +\item \verb?nom? : nom de l'environnement, + +\item \verb?nbre? : le nombre de paramètres, supérieur ou égal à 1 (et probablement inférieur à 9), + +\item \verb?[]? : obligatoire pour permettre le changement ou l'ajout d'options, + +\item \verb?options? : les options disponibles avec \verb?tcolorbox?, + +\item \verb?#1? : formulation particulière mais correspond tout simplement au texte de l'environnement. \\ +\end{itemize} + +Nous avons donc le code complet suivant, avec quelques exemples : + +\begin{code}{Ma petite boîte personnelle} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[dvipsnames]{xcolor} + +\usepackage[breakable]{tcolorbox} + +\newtcolorbox{boite}[3][]{breakable, before upper = {\parindent17pt}, beforeafter skip = \baselineskip, colframe = #3, colback = White, boxrule = 2pt, arc = 6pt, title = \textbf{#2}, coltitle = Black, #1} % Commande pour créer sa boite +% breakable : pour casser la boîte si elle arrive en fin de page +% before upper : pour contrôler la taille de l'alinéa +% beforeafter skip : longueur à appliquer avant et après la boite +% colframe : couleur du contour +% colback : couleur du fond +% boxrule : épaisseur du contour +% arc : rayon des bords +% title et coltitle : obvious ! + + +\begin{document} + +\begin{boite}{Un premier exemple}{Orchid} +C'est pratique, n'est-ce pas ? +\end{boite} + +\begin{boite}[colback = Apricot]{Un deuxième exemple}{Orange} +Apportons un petit changement, juste pour cette fois. +\end{boite} + +\begin{boite}{Un troisième exemple}{Cyan} +Retour sur un cas normal d'utilisation. +\end{boite} + +\end{document} +\end{code} + +Le principe est donc de créer une nouvelle boîte (même schéma que pour une commande) pour chaque cas (boîte pour les définitions, boîte pour les remarques, etc.) au lieu de devoir changer les options à chaque fois. + +Utiliser \LaTeX{}, c'est tout automatiser pour se concentrer sur le fond et moins sur la forme, une fois qu'elle est définie en tout cas. + +\section{Afficher du code \LaTeX{}} + +Il n'y a pas 13 000 façons d'afficher du code \LaTeX{} simplement (oui, parce qu'écrire \verb?\texttt{\textbackslash}? pour produire \texttt{\textbackslash}, ce n'est vraiment pas pratique). La première est d'utiliser l'environnement \verb?verbatim? : tout ce qui est compris dans cet environnement ne sera pas interprété par \LaTeX{} et sera recopié tel quel. Cependant, une trop longue commande sort des marges voire de la page \dots{} C'est donc vite compliqué de lire la fin ou même de copier un morceau de code. + +Toutefois, il existe déjà un moyen simple pour les ``petites'' formules : la commande \verb!\verb?\commande?!. Il faut juste écrire \verb?\verb? et tout ce qui est compris entre les deux délimiteurs (ici, des \verb!?!) subit le même traitement que sous l'environnement \verb?verbatim?. \verb!?! n'est pas le seul délimiteur envisageable : \verb?!? convient tout à fait par exemple. \\ + +Autrement, le seul package qui permette de mettre en forme du code (\LaTeX{}, mais aussi Python, Perl, C, C++, Java, SQL, HTML, \dots{}) avec un retour à la ligne s'appelle \verb?listings?. Beaucoup d'options de mise en forme sont possible (numéro de ligne de code sur le côté, commandes en couleur selon le langage, \dots{}) mais il y a mieux. Et oui, c'est maintenant que revient le Saint Graal : \verb?tcolorbox? ! Ce dernier intègre le package \verb?listings? et permet de faire pas mal de trucs sympathiques. + +Malgré tout, \LaTeX{} est loin d'être parfait et renvoie une erreur si des accents sont présents dans le code. Cela peut déjà s'expliquer parce que la programmation est généralement en anglais et ne comporte pas d'accents donc il n'y a aucun souci. Mais je suis Français et donc, personnellement, il m'arrive de rédiger mes commentaires de code en français. Pour résoudre ce problème, il faut soit compiler sous \verb?XeLaTeX? soit sous \verb?PDFLaTeX? sous réserve d'introduire les accents. \\ + +Un exemple sera sûrement plus clair et m'évitera de longues explications : + +\begin{code}{\'Ecrire du code sous \LaTeX{}} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[dvipsnames]{xcolor} +\usepackage[breakable, listings]{tcolorbox} % Ajout de listings en option + +% Création d'une boite avec listings +\newtcblisting{codeLaTeX}[2][]{breakable, beforeafter skip = \baselineskip, colframe = LimeGreen, colback = White, boxrule = 2pt, arc = 6pt, title = \textbf{#2}, coltitle = Black, listing options = {basicstyle = \ttfamily\small, keepspaces = true, columns = flexible, breaklines = true, inputencoding = utf8, language = TeX, numbers = none}, listing only, #1} % options tcolorbox : OK + +% listing options : options du package listings +% Ici, dans l'ordre : petite police de type "machine à écrire" (ttfamily) ; conserver les espaces ; nécessaire pour les espaces ; retour à la ligne du code ; UTF-8 ; pour le LaTeX ; pas de numéro + +% Pour les accents +\lstset{literate = {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {ç}{{\c{}c}}1} % Format : {lettre UTF8}{{lettre LaTeX}}1 +% A compléter si besoin + + +\begin{document} + +\begin{verbatim} +Très pratique d'écrire du code sous \LaTeX{} \\ + +Mais c'est encore plus compliqué quand le code en question est extrêmement long \dots{} +\end{verbatim} + +\begin{codeLaTeX}{Titre} +Très pratique d'écrire du code sous \LaTeX{} \\ + +Mais c'est encore plus compliqué quand le code en question est extrêmement long \dots{} Ah non, là c'est mieux ! +\end{codeLaTeX} + +Le dernier résultat est mieux, non ? Tu peux même le personnaliser (changement ponctuel) : + +\begin{codeLaTeX}[colframe = BrickRed}{Second test} +Code vraiment important qui demande de changer de couleur. Juste pour lui. +\end{codeLaTeX} + +\end{document} +\end{code} + +Il est possible d'aller encore plus loin, toujours grâce aux packages \verb?tcolorbox? et \verb?listings?, et de compléter le précédent code pour avoir les options suivantes : + +\begin{itemize}[label = \ding{213}] +\item numérotation automatique des boîtes, + +\item coloriage syntaxique du code (mots clés, chaînes de caractères, commentaires, numéros de ligne), + +\item création d'un sommaire dédié à ces boîtes. \\ +\end{itemize} + +La documentation \verb?tcolorbox? fournit toutes les indications nécessaires. Comme c'est difficile de tout faire tenir avec l'environnement verbatim, je vais balancer le code et allègrement tout commenter : + +\begin{code}{Intégrer du code - Aller plus loin} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[dvipsnames]{xcolor} % Pour les couleurs + +\usepackage[breakable, listings]{tcolorbox} % Pour des boîtes arrondies - breakable : pour couper les boîtes - listings : pour le code + +\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref} + +% Création d'une boîte numérotée pour le code +% Utilisation de Python pour changer +\newtcblisting[auto counter, number within = chapter, list inside = pythoncode]{codePython}[2][]{breakable, beforeafter skip = \baselineskip, colframe = LimeGreen, colback = White, boxrule = 2pt, arc = 6pt, title = \textbf{Code Python \thetcbcounter{} : #2}, list entry = {\protect\numberline{\thetcbcounter}#2}, coltitle = Black, listing options = {basicstyle = \ttfamily\small, keepspaces = true, breaklines = true, inputencoding = utf8, language = Python, tabsize = 4, xleftmargin = 17pt, numbers = left, numbersep = 13pt, numberstyle = \ttfamily\footnotesize\color{OrangeRed}, showstringspaces = false, commentstyle = \color{Gray}, keywordstyle = \color{Blue}, stringstyle = \color{Orange}}, listing only, #1} + +\lstset{literate = {à}{{\`a}}1 {â}{{\^a}}1 {é}{{\'e}}1 {è}{{\`e}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {ç}{{\c{}c}}1} % Pour résoudre le problème des accents dans le code listings (tcolorbox) + +% --- Les explications --- +% Intégration d'un compteur dans l'en-tête et liste des codes : [auto counter, number within = chapter, list inside = pythoncode] <==> numérotation automatique ; numéro de chapitre utilisé ; étiquette pour le sommaire dédié +%\newtcblisting[...] : création d'un environnement pour le code avec tcolorbox + listings + +% Options tcolorbox : inchangées +% \thetcbcounter{} : compteur tcolorbox +% Intégrer une entrée dans le sommaire dédié : list entry = {\protect\numberline{\thetcbcounter}#2} (dans les options tcolorbox) + +% Options listings : début inchangé +% Options listings propre au langage : {language = Python, tabsize = 4, xleftmargin = 17pt, numbers = left, numbersep = 13pt, numberstyle = \ttfamily\footnotesize\color{OrangeRed}, showstringspaces = false, commentstyle = \color{Gray}, keywordstyle = \color{Blue}, stringstyle = \color{Orange}} +% Détails : langage utilisé ; taille de l'indentation (nbre d'espaces) ; marge à gauche ; numéro de ligne à gauche ; séparation entre le code et les numéros ; style des numéros ; bonus pour les chaînes de caractères ; mise en couleur du code + +% Affichage uniquement du code : listing only --> "listing and text" = code et résultat (utile pour du code LaTeX mais que du code pur : pas de préambule ou de \begin{document}) + + +\begin{document} + +\renewcommand{\contentsname}{Sommaire} % Renommer le sommaire +\tableofcontents % Pour créer le sommaire - Penser à compiler deux fois + +\newpage + +\phantomsection % Renvoi correct (hyperref) +\addcontentsline{toc}{chapter}{Liste des codes Python} % Ajout dans le sommaire +\tcblistof[\chapter*]{pythoncode}{Liste des codes Python} % Sommaire dédié --> cf. aide tcolorbox +% Ajout de "Liste des codes Python" en tant que chapitre non numéroté (chapter*) + +\newpage + +% Enlever le commentaire ci-dessous +%\chapter{Codes Python} + +Blablabla + +\begin{codePython}{Essai} +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +S = 0 +for i in range(215): + S += i +print(S) +\end{codePython} + +\begin{codePython}[colframe = Red]{Essai important} +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +S = 0 +for i in range(13): + for j in range(13): + S += i + j +print(S) +\end{codePython} + +Alors ? Plutôt propre, n'est-ce pas ? + +\end{document} +\end{code} + +Il existe un autre package que \verb?listings? qui s'occupe automatiquement du coloriage du code : \verb?minted?. Il fonctionne grâce à \verb?pygments?, une bibliothèque Python. Par contre, même après son installation, je n'ai toujours pas réussi à le faire fonctionner \dots{}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-texte.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-texte.tex new file mode 100644 index 00000000000..b02af9a2369 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-texte.tex @@ -0,0 +1,753 @@ +\chapter{Texte et mise en forme} + +\label{chap_texte_anx} + +\section{Changer la police d'écriture} + +\label{chgt_police}Changer de police peut être un vaste débat sous \LaTeX{}. Déjà, pourquoi vouloir changer ? La police proposée ne te convient-elle pas ? Ou est-ce par habitude d'utiliser auparavant une autre police sous \verb?Word? ? + +Ensuite, quelle police préfères-tu utiliser ? Avec empattement\footnote{Mode de terminaison d'un caractère : \url{http://fr.wikipedia.org/wiki/Empattement_(typographie)}.}, sans empattement ? Mais surtout, si tu dois écrire des formules mathématiques, la nouvelle police possède-t-elle les caractères nécessaires sous un format équivalent (symboles $\sum$ ou $\int$, sans parler des lettres grecques, par exemple) ? + +Du coup, il existe de multiples façons de changer de police sous \LaTeX{}. Dans un premier temps, de manière locale, pour pouvoir juste profiter d'un effet de style ; puis, de manière globale, donc sur tout le document. \\ + +Tout comme il est possible de mettre un bout de texte en gras grâce à la commande \verb?\textbf?, tu peux choisir d'enlever l'empattement d'un bout de texte (\textit{sans serif}) grâce à la commande \verb?\textsf?. Tu peux aussi choisir de le mettre en valeur différemment grâce à la mise en forme \og machine à écrire \fg{} (\textit{typewriter}) avec la commande \verb?\texttt?. + +Si tu veux appliquer un tel changement sur plusieurs paragraphes, comme l'équivalent du \verb?\textbf? et le \verb?\bfseries?, nous avons donc à disposition le \verb?\sffamily? et le \verb?\ttfamily?. Naturellement, il faut délimiter les paragraphes concernés avec des accolades ``\{'' et ``\}'' ou utiliser de telles commandes à l'intérieur d'un environnement (séparateur en soi). + +Enfin, si tu veux faire de telles modifications sur tout le document, tu peux aussi renseigner la commande suivante dans le préambule : \begin{center} \verb?\renewcommand{\familydefault}{\sfdefault}? \end{center} + +Voyons plutôt un exemple pour comprendre le fonctionnement de ces nouvelles commandes : + +\begin{code}{L'empattement et la machine à écrire} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +%\renewcommand{\familydefault}{\sfdefault} % sans serif sur tout le document +%\renewcommand{\familydefault}{\ttdefault} % typewriter sur tout le document + +% N.B. : les commandes locales ont la priorité sur la commande globale + + +\begin{document} + +Texte \textsf{sans empattement} ou au format \texttt{machine à écrire}. \\[\baselineskip] + +{\sffamily{}C'est amusant à faire surtout avec plusieurs paragraphes. \\ + +Il faut bien tout encadrer avec des accolades !} \\[\baselineskip] + +\begin{large} +\bfseries\ttfamily{}Sinon, je peux aussi la jouer retro sur \dots{} \\ + +\noindent{}plusieurs paragraphes, à l'intérieur d'un environnement ! +\end{large} +% ATTENTION : le format "machine à écrire" ne respecte pas les marges si le texte est trop long ! + +\end{document} +\end{code} + +Bien, maintenant que nous avons vu quelques spécificités quant à l'empattement du texte, passons au changement de police. Déjà, depuis le début de ce guide, je recommande d'utiliser le package \verb?lmodern?. Même s'il n'est pas nécessaire, il améliore le rendu et peut aussi être substitué par d'autres polices : + +\begin{itemize}[label = \ding{118}] +\item \verb?times? : un équivalent au \textit{Times New Roman}, + +\item \verb?palatino? : une autre police, + +\item \verb?helvet? : un équivalent à l'\textit{Helvetica}, + +\item \verb?courier? : encore de la machine à écrire. +\end{itemize} + +\textcolor{Brown}{Les deux dernières possibilités n'ont rien donné d'intéressant pour ma part donc il faut aller creuser le sujet.} Mais les deux premières fonctionnent à merveille. Pour plus d'informations sur les polices disponibles par défaut, tu peux aller sur \url{http://en.wikibooks.org/wiki/LaTeX/Fonts}. + +\begin{conseilbox}{La petite subtilité} +Certaines polices ne font pas la pluie et le beau temps. Par exemple, tu peux être amené à cumuler les commandes, comme mettre du texte en gras et en italique. Jusque là, tout va bien, tu peux même le faire de deux façons : \begin{center} \verb?\textit{\textbf{test}}? ou \verb?\textbf{\textit{test}}? \end{center} + +As-tu déjà utilisé les petites majuscules ? C'est très propre et vraiment agréable à lire. La commande ? \verb?\textsc{Texte}? ou \verb?{\scshape{}Paragraphes}? sont deux solutions possibles. Toutefois, essaye maintenant : \begin{center} \verb?\textbf{\textsc{Texte}}? et \verb?\textsc{\textbf{Texte}}? \end{center} + +Ben zut alors, aucune petites majuscules sous \verb?lmodern?. C'est parce que cette police ne gère pas une telle configuration. Utiliser \verb?times? ou \verb?palatino? est une solution possible, mais il en existe d'autres sur Internet. + +Fort heureusement, c'est un cas d'utilisation extrêmement rare. C'était surtout pour te faire toucher du doigt cette petite subtilité. +\end{conseilbox} + +Autrement, il n'y a apparemment qu'un seul moyen de pouvoir \textit{véritablement} changer de police d'écriture sous \LaTeX{}. Loin de moi l'idée que la police par défaut me déplaise, bien au contraire. Toutefois, quand il faut taper un rapport officiel et qu'une police spécifique de \texttt{Word} est imposée, il n'y a pas d'autres solutions ! + +\textcolor{BrickRed}{\textbf{Cette solution fonctionne uniquement grâce à une compilation sous \verb?XeLaTeX?}} (ou \verb?LuaLaTeX?). Le résultat est à la hauteur de nos exigences : accents affichés et utilisation de toutes les autres commandes exactement de la même façon que sous \verb?PDFLaTeX? (mathématiques, images, tableaux, \dots{}). Le code est donc le suivant, sans plus d'explication technique de ma part car je n'en sais pas plus (hormis qu'il fonctionne) : + +\begin{code}{Changer de police d'écriture} +\documentclass[a4paper, 12pt]{report} + +% XeLaTeX +\usepackage{fontspec} +\usepackage{xunicode} +\usepackage{xltxtra} +\setmainfont{nom_police} +% Le paramètre nom_police est un nom de police présent dans le dossier Font de Windows : Arial, Calibri, Cambria, French Script MT, ... + +\usepackage{polyglossia} +\setdefaultlanguage{french} + +% Autres packages : idem + + +\begin{document} + +J'aime écrire en \LaTeX{} ! Surtout des maths : $i = 13$. + +% Taper son rapport comme d'habitude + +\end{document} +\end{code} + +\begin{attentionbox}{\textit{Nota Bene}} +La modification de la police d'écriture n'est pas recommandée dans le cas d'un document qui contient des formules. Les symboles utilisés par \LaTeX{} peuvent ne pas être (ou ne sont généralement pas) définis dans cette nouvelle police. + +Normalement, \LaTeX{} générera malgré tout tes formules mathématiques avec la police par défaut soit \verb?lmodern?. \\ + +Enfin, si une erreur incompréhensible surgit, il faut aller sur le gestionnaire de packages \texttt{MiKTeX} (\textit{MiKTeX Package Manager}), désinstaller puis réinstaller le package \verb?fontspec?. Au moment où j'écris ces lignes et que je vérifie qu'elles fonctionnent, c'est ce que j'ai dû faire en tout cas ! +\end{attentionbox} + +Dans le cas d'une \textcolor{Green}{\textbf{modification locale de la police}} d'écriture, \textcolor{BrickRed}{\textbf{toujours sous \verb?XeLaTeX?,}} il faut procéder ainsi : \begin{center} \verb?texte {\fontspec{nom_police} essai} suite texte? \end{center} + +Il faut toutefois savoir qu'utiliser \verb?XeLaTeX? entraîne de légères modifications sur des commandes à utiliser. Actuellement, j'ai relevé les cas suivants : + +\begin{itemize}[label = \ding{213}] +\item la commande \verb?\degres{}? ne fonctionne pas et il faut directement taper le symbole \degres{} au clavier (sous \texttt{Windows}, \keys{\shift + $\degres{}~)_{~]}$}), \\ + +\item les guillemets français \verb?\og? et \verb?\fg? deviennent inopérants et il faut passer par les commandes plus génériques suivantes : \verb?\guillemotleft{}? et \verb?\guillemotright{}?. \\ +\end{itemize} + +Enfin, le changement de police est souvent problématique car la taille du texte n'est pas automatiquement la même. Certes, il existe des commandes comme \verb?\large?, \verb?\Large?, \verb?\LARGE?, \verb?\huge? ou \verb?\Huge? pour augmenter la taille du texte mais il peut arriver que ce soit totalement insuffisant. Heureusement, il y a une commande toute prête dans ce cas : \begin{center} \verb?\fontsize{taille1}{taille2}\selectfont{}texte? \end{center} + +\noindent{}avec \verb?taille1? la taille de la police (\verb?13pt?, \verb?215pt?, \dots{} bref, ce que tu veux\footnote{Le \verb?pt? est l'unité fréquemment utilisée pour les tailles de police mais rien ne t'empêche d'en choisir une autre.}) et \verb?taille2? l'espacement entre les lignes : \verb?taille2? remplace alors la valeur par défaut de \verb?\baselineskip?. + +Naturellement, cette commande s'utilise surtout pour faire des gros titres, délimités par un environnement (\verb?center? par exemple) pour ne pas affecter le reste du document. Si tu ne sais pas quoi choisir pour \verb?taille2?, je ne réfléchis plus personnellement et prends toujours la moitié de \verb?taille1? (arrondie si besoin). \\ + +\begin{boite}{Bilan : le changement de police sous \LaTeX{}}{Gold} +Nous avons donc vu : + +\begin{itemize}[label = \ding{213}] +\item comment modifier l'empattement du texte, + +\item comment utiliser quelques unes des autres polices présentes par défaut sous \LaTeX{}, + +\item comment changer drastiquement la police d'écriture, en compilant sous \verb?XeLaTeX?, + +\item comment personnaliser la taille de la police. \\ +\end{itemize} + +Changer la police peut se révéler amusant pour certaines réalisations personnelles mais il faut passer sous \verb?XeLaTeX? dans le pire des cas, ce qui peut augmenter le temps de compilation\footnote{Qui reste raisonnable malgré tout, je te rassure, tout au plus de l'ordre de quelques minutes, sinon de quelques secondes.}. + +Le format par défaut proposé depuis le début de ce guide convient tout à fait et permet de te démarquer des autres réalisations. Après tout, ne s'agit-il pas d'une marque de fabrique signée \LaTeX{} ? +\end{boite} + +\section{Inclure des fichiers PDF} + +\label{fusion_pdf}Tu es pauvre ? Tu ne veux pas payer \texttt{Adobe} et toutes les options inutiles qu'il propose, dont la fusion de fichiers \texttt{PDF} ? Peu importe, c'est mon cas ! Et \LaTeX{} sait faire du très bon boulot, gratuitement. \\ + +Pour fusionner des fichiers \texttt{PDF}, il faut utiliser le package \verb?pdfpages? et utiliser la commande : \begin{center} \verb?includepdf[pages = debut - fin]{nom_fichier.pdf}? \end{center} + +Le document \verb?nom_fichier.pdf? doit être inclus à l'endroit où la ligne de code est insérée. Si tu écris \verb?[pages = -]?, le document entier sera inclus. Du coup, il ne te reste plus qu'à placer cette commande autant de fois que le nombre de fichiers à fusionner et le résultat \LaTeX{} contient donc tes différents fichiers les uns à la suite des autres. + +Tu peux aussi juste t'en servir pour insérer une page d'un rapport \texttt{PDF} dans ton propre rapport ou un tableau \texttt{Excel} exporté en \texttt{PDF} : c'est des fois plus simples que de le recopier sous \LaTeX{}. + +\begin{attentionbox}{\textit{Nota Bene}} +Le paramètre \verb?nom_fichier? ne doit contenir ni espace ni accent. C'est le même principe que pour les images. \\ + +Pour rappel, la \textbf{compilation} doit se faire \textbf{uniquement} avec \verb?PDFLaTeX? ou \verb?XeLaTeX?. +\end{attentionbox} + +Il existe d'autres options, comme faire une rotation à la page, ajuster automatiquement le format (\verb?fitpaper?), réorganisation des pages. Pour les connaître ou si tu en as besoin, je te laisse aller consulter la documentation du package. \\ + +Pour présenter un point plus technique, il est possible de réaliser des références sur un tel fichier (renvoi de pages) mais il existe une astuce pour faire en sorte que le renvoi et le numéro de page correspondent. + +Pour ce faire, il faut créer un compteur\footnote{Si tu es curieux, tu peux commencer à approcher la notion de compteur ici : \url{http://fr.wikibooks.org/wiki/LaTeX/Programmer_avec_LaTeX\#Compteurs}} dans le préambule de la manière suivante : \verb?\newcounter{pdfpage}?, puis procéder de la manière suivante (utilisation de l'option \verb?pagecommand? de \verb?\includepdf?) : + +\begin{code}{Référence des fichiers \verb?.pdf? insérés} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{pdfpages} % Le package +\newcounter{pdfpage} % Le compteur + +\usepackage[hidelinks, breaklinks]{hyperref} + + +\begin{document} + +J'ai beaucoup de texte à écrire \dots{} + +% Enlever le % ci-dessous +%\includepdf[pages = -, pagecommand = {\refstepcounter{pdfpage} \label{reference}}]{nom_fichier.pdf} + +% pagecommand : faire un peu ce qu'on veut +% refstepcounter : permet le bon renvoi +% label : création de la référence + +Je viens d'intégrer un document très important. Pour le consultant, aller à la page \pageref{reference}. + +% Fonctionne bien pour un document d'une page +% Sinon, mettre plusieurs \includepdf du même document : + +%\includepdf[pages = -1, pagecommand = {\refstepcounter{pdfpage} \label{ref_deb}}]{nom_fichier.pdf} % 1 page +%\includepdf[pages = 2-13]{nom_fichier.pdf} +%\includepdf[pages = 13-, pagecommand = {\refstepcounter{pdfpage} \label{ref_fin}}]{nom_fichier.pdf} % 1 page + +Le document important est disponible de la page \pageref{ref_deb} à \pageref{ref_fin}. + +\end{document} +\end{code} + +\textcolor{Red}{\textbf{Attention :}} par défaut, la numérotation des pages se poursuit lors de l'inclusion de fichiers \texttt{PDF} avec cette méthode. Il faut donc veiller à ce que ces derniers n'en aient pas \dots{} ou supprimer l'insertion du numéro de page grâce à \verb?pagecommand?. \\ + +Cette solution tombe à pic : étudions désormais la gestion des en-têtes et pieds de page ! + +\section{En-têtes et pieds de page} + +Par défaut, \LaTeX{} propose principalement trois styles pour les en-têtes et pieds de page. Ceux-ci sont appelés dans le préambule grâce à la commande \verb?\pagestyle{style}? : \\ + +\begin{itemize}[label = \ding{213}] +\item le style \verb?empty? : aucune en-tête et aucun pied de page ne seront affichés. Pour utiliser ce style, il faut donc renseigner dans le préambule la commande \verb?\pagestyle{empty}?, + +\item le style \verb?plain?, \textcolor{Brown}{\textit{style par défaut} :} seul le numéro de page est affiché, au centre du pied de page. Comme c'est le style par défaut, il n'y a aucune commande à taper. Autrement, son appel se fait grâce à la commande \verb?\pagestyle{plain}? dans le préambule, + +\item le style \verb?headings? : les en-têtes et les pieds de page sont définis automatiquement selon la classe de document utilisée. Pour utiliser ce style, il suffit donc d'inclure la commande \verb?\pagestyle{headings}? dans le préambule. \\ +\end{itemize} + +Si jamais tu désires personnaliser de ta main les en-têtes et pieds de page, le package \verb?fancyhdr? est très pratique. Il faut appeler le package dans le préambule \textbf{suivi de la commande} \verb?\pagestyle{fancy}?. + +Ensuite, tu peux définir les en-têtes grâce à \verb?\fancyhead[zone]{contenu}? et les pieds grâce à \verb?\fancyfoot[zone]{contenu}?. Si \verb?contenu? est totalement libre (choix de l'utilisateur), \verb?zone? est défini de la manière suivante : + +\begin{center} +\begin{longtable}{C{0.075\linewidth}|p{0.5\linewidth}} +\verb?zone? & {\hspace*{\stretch{1}}Description\hspace*{\stretch{1}}} \\ \hline +\verb?L? & champ gauche pour toutes les pages \\ +\verb?LE? & champ gauche pour les pages paires \\ +\verb?LO? & champ gauche pour les pages impaires \\ +\verb?C? & champ central pour toutes les pages \\ +\verb?CE? & champ central pour les pages paires \\ +\verb?CO? & champ central pour les pages impaires \\ +\verb?R? & champ droit pour toutes les pages \\ +\verb?RE? & champ droit pour les pages paires \\ +\verb?RO? & champ droit pour les pages impaires +\end{longtable} +\end{center} + +Un moyen mnémotechnique très simple pour s'en souvenir : \verb?L?, \verb?C? et \verb?R? pour \textit{Left}, \textit{Center} et \textit{Right} (je pense que ce n'est pas le plus compliqué) ; \verb?E? et \verb?O? pour \textit{Even} et \textit{Odd}. \\ + +Il existe ensuite quelques commandes fort pratiques pour \verb?contenu? : + +\begin{itemize}[label = \ding{213}] +\item \verb?\thepage? : affiche le numéro de la page courante, + +\item \verb?\thesection? : affiche le numéro de la section courante, + +\item \verb?\thechapter? avec un document de classe \verb?book? ou \verb?report? : affiche le numéro du chapitre courant, + +\item \verb?\leftmark? : avec un document de classe \verb?article?, affiche le nom de la section courante ; avec un document de classe \verb?book? ou \verb?report?, affiche le nom du chapitre courant, + +\item \verb?\rightmark? : avec un document de classe \verb?article?, affiche le nom de la sous-section courante ; avec un document de classe \verb?book? ou \verb?report?, affiche le nom de la section courante. \\ +\end{itemize} + +Enfin, tu peux définir les épaisseurs des traits de séparation grâce à la commande : \begin{center} \verb?\renewcommand{\headrulewidth}{épaisseur}? \end{center} + +\noindent pour les en-têtes et : \begin{center} \verb?\renewcommand{\footrulewidth}{épaisseur}? \end{center} + +\noindent pour les pieds de page. \\ + +Un petit exemple ne fait jamais de mal : + +\begin{code}{Les en-têtes et pieds de page} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhf{} % Effacer tout + +\renewcommand{\headrulewidth}{0.5pt} % Trait en-têtes +\fancyhead[LE]{Initiation à \LaTeX{}} +\fancyhead[RE]{Adrien \textsc{Bouzigues}} +\fancyhead[LO]{\leftmark} + +\renewcommand{\footrulewidth}{0pt} % Pas de trait = épaisseur nulle +\fancyfoot[C]{\thepage} + + +\begin{document} + +Bla bla bla + +\newpage + +Bla bla bla % Taper son rapport comme d'habitude + +\end{document} +\end{code} + +\begin{attentionbox}{Une question ?} +\og Je viens d'essayer ton exemple mais l'affichage sur les pages paires et impaires ne fonctionne pas ! Comment puis-je être remboursé ? \fg{} \\ + +Et oui, cela ne fonctionne pas et je voulais que tu touches du doigt ce problème, au moins une fois, pour pouvoir en être conscient. + +Un document de classe \verb?report? est, par défaut, considéré pour être imprimé uniquement en recto, même si tu peux choisir recto-verso au moment de l'impression. \LaTeX{} ne fait donc pas la différence entre les pages paires et impaires. + +Pour résoudre ce problème, il faut donc dire à \LaTeX{} que ton document est en recto-verso. C'est possible grâce à une option supplémentaire dans le \verb?documentclass? : \verb?twoside?, soit : \begin{center} \verb?\documentclass[a4paper, 12pt, twoside]{report}? \end{center} + +Par exemple, dans le cas d'un document de classe \verb?book?, le recto-verso est compris par défaut. Cette option entraîne alors des marges différentes selon les pages paires et impaires. \`A la lecture depuis ton écran, le résultat peut paraître déstabilisant \dots{} et pourtant, si tu y réfléchis 2 minutes 15, c'est parfaitement logique si tu veux faire relier ton rapport ! + +Toutefois, \textit{si tu tiens à avoir une feuille centrée,} avec des marges identiques à gauche et à droite, le package \verb?geometry? est alors recommandé. +\end{attentionbox} + +\vspace{\baselineskip} + +Enfin, il est possible de définir un ``nom de style''. Il est ainsi possible de changer à tout moment de style de page, et ce facilement. Cette astuce permet d'éviter bien des tracas et des copier-collers, tandis qu'elle respecte un des principes de \LaTeX{} : séparer le fond et la forme. La preuve ici et maintenant : + +\begin{code}{Définir complètement son style de page} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage{fancyhdr, fourier-orns} % En-têtes et pieds de pages, avec un bonus pour les en-têtes (\headrule) +\fancyhf{} % Efface tout + +% Définition de notre style +\fancypagestyle{mainstyle}{ +\renewcommand{\headrulewidth}{0pt} % Pas de trait en haut +\renewcommand{\footrulewidth}{0pt} % Ni en bas +\fancyhead[L]{\textsc{\nouppercase{\leftmark}}} % Mettre l'en-tête en small capitals --> obligatoire pour ne pas avoir un résultat pixellisé ! +\fancyfoot[C]{\thepage}} % Fin de la définition + +\pagestyle{mainstyle} % Appel de notre style + +\renewcommand{\headrule}{\hrulefill\raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright\quad}\hrulefill} % Bonus sur le headrule + + +\begin{document} + +Un petit essai. + +\newpage + +\pagestyle{empty}Alors ? Quel est le style ? + +\newpage + +\pagestyle{mainstyle}Et maintenant ? Qu'avons-nous ? C'est de la magie, n'est-ce pas ? + +\end{document} +\end{code} + +Bon, que me reste-t-il à présenter ? Ah, je sais : une petite astuce, simple et courte, histoire de ce se reposer un peu. + +\section{Centrer verticalement du texte} + +\`A l'heure actuelle, la seule solution simple et fonctionnelle pour centrer verticalement du texte, comme un résumé par exemple, revient à utiliser la commande \verb?\vspace*{\stretch{1}}? de la manière suivante : + +\begin{center} +\begin{minipage}{0.3\linewidth} +\begin{verbatim} +\vspace*{\stretch{1}} +Paragraphe à centrer +verticalement +\vspace*{\stretch{1}} +\end{verbatim} +\end{minipage} +\end{center} + +Techniquement, la commande \verb?\vfill? existe et reste bien plus simple à écrire \dots{} sauf que, pour ma part, elle fonctionne une fois sur deux, voire jamais ! \\ + +S'il faut aussi \textcolor{Blue!75!Green}{centrer le texte horizontalement, l'environnement \verb?center? convient parfaitement.} La commande \verb?\hfill? (et, par la même occasion, \verb?\hspace*{\stretch{1}}?) doit être utilisée plutôt pour équilibrer l'espacement entre des blocs, comme des \verb?minipage? ou des \verb?subfigure? par exemple. + +\section{Générer une bibliographie} + +Comme \LaTeX{} peut vraiment tout faire\footnote{Pour le traitement de texte, j'entends. J'attends toujours l'option ménage et repassage \dots{}}, pourquoi se priver et ne pas générer facilement de magnifiques bibliographies ? \\ + +Même si je commence à avoir un peu d'expérience avec les bibliographies, je n'en ai pas fait énormément pour en comprendre toutes les subtilités. Si mes explications te semblent un peu confuses, les sites : + +\begin{itemize}[label = \ding{213}] +\item \url{http://www.tuteurs.ens.fr/logiciels/latex/bibtex.html} + +\item \url{http://www.xm1math.net/doculatex/bibtex.html} +\end{itemize} + +\noindent{}sont assez complets pour saisir les bases et compléter ce qui va suivre. \\ + +La première étape pour ajouter une bibliographie à un document généré sous \LaTeX{} est de créer la dite bibliographie, sous forme d'une base de données. Pour cela, ouvrons notre éditeur \LaTeX{} (\texttt{Texmaker} pour ce guide) puis créons un nouveau document. Là, renseignons les lignes suivantes qui nous serviront d'essais par la suite : + +\begin{code}{Un début de bibliographie} +% Renseigner le type de document pour la bibliographie ==> utiliser un "@" suivi du nom du document (parmi ceux disponibles) +@Article{Johnson, +author = {Edgar G. Johnson and Alfred O. Nier}, +title = {Angular Aberrations in Sector Shaped Lenses}, +journal = {Physical Review}, +year = {1953}, +volume = {91}, +number = {1}, +} +% Le premier élément est la clef (similaire à une étiquette pour les références) + +% ATTENTION : il faut séparer les noms d'auteurs par "and" et non par une virgule ou un & + +@Phdthesis{Zoran, +author = {Zoran Racic}, +title = {\'Etude et essais du spectromètre à plasma}, +publisher = {Université Pierre et Marie Curie}, +year = {1996} +} + +% Pour renseigner un nom composé ou un groupe de mots dans "author", il faut doubler les accolades : author = {André {Mouche Baie}} +% Apparemment, nécessaire seulement pour les documents de type @Misc +@Misc{opensource, +author = {{Open Source Initiative}}, +title = {The Open Source Definition}, +howpublished = {\url{http://opensource.org/osd}}, +note = {accès le 10/10/2017} +} +\end{code} + +Ensuite, il faut enregistrer le fichier. Ce doit sûrement être un peu la même recette pour tous les éditeurs de texte en général. Sous \texttt{Texmaker}, il faut procéder ainsi : + +\begin{enumerate} +\item barre de menus, + +\item \verb?Fichier?, + +\item \verb?Enregistrer sous?, + +\item \verb?nom_fichier.bib?, comme, par exemple, \verb?biblio_type.bib? pour ma part. +\end{enumerate} + +L'extension \verb?.bib? correspond au format employé sous \LaTeX{} pour gérer une base de données bibliographique. C'est très important car, lors de la compilation, \LaTeX{} va chercher un fichier \verb?.bib?, le lire et créer la bibliographie. + +\begin{conseilbox}{Le conseil personnel} +Je recommande de conserver le fichier \verb?biblio_type.bib? dans un dossier à part en tant que \textit{template} : tu n'auras pas ainsi à le créer à chaque fois mais juste à faire un copier-coller du fichier en question. \\ + +Ensuite, je ne vais pas m'étendre sur les diverses possibilités de renseigner une bibliographie (article, thèse, livre, site internet, \dots{}). Internet fournit suffisamment d'exemples et \texttt{Texmaker} propose des commandes à trous (dans la barre de menus, \verb?Bibliographie? puis \verb?Bibtex? puis choisir le type de document à renseigner pour la bibliographie). \\ + +Personnellement, je viens d'en apprendre un peu plus sur les bibliographies grâce à des explications développées dans l'ouvrage \textit{\LaTeX{} - How To}, disponible au format numérique ici même : \url{http://www.latex-howto.be/book/download_fr} (chapitre 10 pour les bibliographies). +\end{conseilbox} + +Bon, nous avons créé la bibliographie. Il faut maintenant indiquer à \LaTeX{} de la générer et de l'introduire dans le document. Pour ce faire, il faut utiliser les commandes suivantes, dans cet ordre et \textcolor{Green}{\textbf{à l'endroit où doit apparaître la bibliographie}} : + +\begin{itemize}[label = \ding{213}] +\item \verb?\bibliographystyle{smfplain}? : pour générer la bibliographie avec des normes françaises. Sans le \verb?smf?, la bibliographie est générée selon des normes américaines. + +Par exemple, le \texttt{and} dans le fichier \verb?.bib? pour séparer les auteurs reste tel quel, alors qu'il est remplacé par un ``\texttt{et}'' avec les normes françaises (entre autres modifications), \\ + +\item \verb?\?\verb?bibliography{nom_fichier}? : pour indiquer le fichier \verb?.bib? qui contient notre bibliographie. \textit{Ici,} \verb?nom_fichier? = \verb?biblio_type?. \\ +\end{itemize} + +Puis vient la compilation. Il faut alors procéder de la manière suivante : + +\begin{enumerate} +\item lancer la compilation sous \verb?PDFLaTeX? (première compilation du document), + +\item lancer \verb?Bibtex? (génération de la bibliographie dans des fichiers annexes ; cf. les options \texttt{Texmaker} pour connaître le raccourci clavier associé), + +\item relancer \verb?PDFLaTeX? deux fois (intégration de la bibliographie et bonne implémentation des références et du sommaire), + +\item afficher le résultat. +\end{enumerate} + +\begin{attentionbox}{\textit{Nota Bene}} +Le schéma est le même pour une compilation avec \verb?LaTeX?. Il faut juste ne pas oublier à la fin de transformer son fichier \verb?DVI? en \verb?PS? puis de convertir le \verb?PS? en \verb?PDF?. \\ + +Pour gagner en efficacité et ne pas se compliquer la vie, il est préférable d'utiliser la \verb?Compilation rapide? de \texttt{Texmaker} qui prend en compte la bibliographie, soit qui comprend le terme \verb?Bib(la)tex?. \\ + +\textcolor{OrangeRed}{\textbf{ATTENTION :}} avec cette méthode, il est impossible de générer une bibliographie sous \verb?XeLaTeX? ! +\end{attentionbox} + +Maintenant, si tu as lancé la compilation, tu dois te dire que c'est nul car rien n'apparaît \dots{} et c'est normal ! \LaTeX{} ne va pas générer une bibliographie si tu n'y fais pas référence. Te souviens-tu de la clef/étiquette créée lors de la création de ta base de données \verb?.bib? ? C'est ici qu'elle entre en jeu avec la commande \verb?\cite{clef}?. Il te suffit donc de placer cette commande à l'endroit où tu souhaites faire une référence à ta bibliographie. + +Et voilà, c'est tout. Il ne faut pas en savoir plus pour générer une bibliographie. Tu as donc désormais toutes les cartes en main pour t'y mettre et expérimenter. + +\begin{conseilbox}{Faire fonctionner \texttt{hyperref} avec la bibliographie} +Il peut être frustrant que les liens dans la bibliographie ne soient pas coupés, ou qu'un clic sur un élément cité ne renvoie pas à sa ligne dans la bibliographie. \\ + +Pour ce faire, il faut charger les packages ci-après, \textbf{dans l'ordre suivant :} + +\begin{verbatim} +\usepackage[nottoc, notlof, notlot]{tocbibind} +% Pour inclure la bibliographie dans le sommaire + +\usepackage[hyphens]{url} +% Pour couper les urls dans la bibliographie +\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref} +\usepackage[hyphenbreaks]{breakurl} +% Idem package url +\end{verbatim} +\end{conseilbox} + +Du coup, pour résumer tout ce qui a été vu durant cette partie, ton fichier \verb?.tex? doit ressembler à : + +\begin{code}{Bibliographie : code complet} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[nottoc, notlof, notlot]{tocbibind} % Pour inclure la bibliographie dans le sommaire + +\usepackage[hyphens]{url} % Pour couper les urls dans la bibliographie +\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref} +\usepackage[hyphenbreaks]{breakurl} % Idem package url + + +\begin{document} + +Mon document se réfère à \cite{Johnson, Zoran} mais des réponses sont aussi disponibles sur Internet \cite{opensource}. +% Possiblités de cumuler les \cite dans une même commande + +\bibliographystyle{smfplain} +% Enlever le % ci-après +%\bibliography{biblio_type} + +\end{document} +\end{code} + +Tout ces éléments te semblent compliqués ? C'est bien normal au début. Là encore, il faut comprendre que tu sépares le fond de la forme : tu crées une base de données bibliographique, totalement désordonnée, puis \LaTeX{} affiche uniquement les éléments auxquels tu fais référence. En parallèle, \LaTeX{} gère automatiquement la mise en forme de la bibliographie et classe les auteurs par ordre alphabétique ! + +C'est donc un peu compliqué au début mais c'est extrêmement puissant. Toutefois, si jamais tu n'as que 2-3 références à faire, il existe une manière plus simple de générer une bibliographie. Je te laisse reprendre le code ci-après et digérer mes commentaires : + +\begin{code}{Une autre possibilité pour la bibliographie} +\documentclass[a4paper, 12pt]{report} + +% LaTeX ou PDFLaTeX +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +% XeLaTeX +%\usepackage{fontspec} +%\usepackage{xunicode} +%\usepackage{xltxtra} +%\setmainfont{Calibri} +%\usepackage{polyglossia} +%\setdefaultlanguage{french} + +\usepackage{enumitem, pifont} % Pour les listes à puces +% Le item par défaut, un rond, n'est pas toujours défini dans toutes les polices + + +\begin{document} + +Notre bibliothèque propose trois livres \cite{latexpratique, texbook, latexcompanion} : + +\begin{itemize}[label = \ding{213}] +\item Les livres \cite{latexpratique,latexcompanion} traitent de \LaTeX. + +\item Le livre \cite{texbook} traite de \TeX{}. +\end{itemize} + +% \begin{thebibliography}{affichage} : "affichage" le plus long (taille du texte) pour produire un alignement correct +% "affichage" est OPTIONNEL --> numérotation automatique par LaTeX par défaut + +% Ajout d'un élément bibliographique : \bibitem[affichage]{clef} Auteur. Titre, etc. +\begin{thebibliography}{KNU90} +\bibitem{latexpratique} Christian \textsc{Rolland}. \emph{\LaTeX{} par la pratique}. O'Reilly, 1999. + +\bibitem[KNU90]{texbook} Donald E. \textsc{Knuth}. \emph{The \TeX{}book}. Addison-Wesley, 1990. + +\bibitem{latexcompanion} Frank \textsc{Mittelbach} et Michel \textsc{Goosens}. \emph{The \LaTeX{} Companion}. Addison-Wesley, 2004. +\end{thebibliography} + +\end{document} +\end{code} + +\begin{boite}{Bilan sur la bibliographie}{Gold} +Pourquoi se priver d'un tableau synthétique pour résumer ces nouvelles notions ? Comparons donc l'usage d'un fichier \verb?.bib? à l'environnement \verb?thebibliography? : + +\begin{center} +\begin{longtable}{C{0.4\linewidth}|C{0.4\linewidth}} +\verb?.bib? & \verb?thebibliography? \\ \hline +Base de données \verb?.bib? & Dans le fichier \verb?.tex? \\ +\textcolor{Red}{Fichier supplémentaire à gérer} & \textcolor{Green}{Dans le code} \\ +\textcolor{Green}{Gestion automatique de la mise en forme} (remplissage de champs dans la base de données) & \textcolor{Red}{Mise en forme par l'utilisateur} \\ +\textcolor{Green}{Classement par ordre alphabétique des auteurs} & \textcolor{Red}{Entrées bibliographiques affichées dans l'ordre de leur création} \\ +\textcolor{Green}{Cohérence de la bibliographie} (affichage des références citées) & \textcolor{Red}{Affichage de toute la bibliographie créée} \\ +Compilation sous \verb?LaTeX? ou \verb?PDFLaTeX?, par l'intermédiaire de \verb?Bibtex? & Tous les modes de compilation tolérés (\#\verb?XeLaTeX? \#{}changement de police) ; pas besoin de \verb?Bibtex? +\end{longtable} +\end{center} + +Pour conclure, il n'y a pas de bonnes ou de mauvaises méthodes. Tout dépend uniquement de l'utilisation que tu dois en faire. \\ + +\textcolor{RoyalPurple}{\textit{Personnellement},} désormais, pour une courte bibliographie, je la ferai à la main, quitte à la générer avec \verb?Bibtex? initialement pour voir la mise en forme, comme c'est conçu pour. + +Sinon, à partir de 4-5 ouvrages à citer, je ne réfléchirai plus et implémenterai tout sous un fichier \verb?.bib?. +\end{boite} + +Allez, passons à la cerise sur le gâteau : la génération d'un index. Ce serait dommage de s'en priver ! + +\section{Générer un index} + +\label{index}Un index est \og un outil du livre qui consiste en une liste organisée d'éléments appelés termes (mots, concepts, objets, \dots{}) jugés pertinents pour le lecteur, accompagnés de leur adresse - c'est-à-dire la place où ils sont évoqués dans l'ouvrage. Il permet au lecteur de localiser rapidement un élément dans l'ouvrage, sans être contraint de le lire intégralement. \fg{} (\textit{Wikipédia}). + +Pour être un poil plus précis, l'organisation d'un index se fait dans l'ordre alphabétique. Tu conviendras que c'est quand même vachement plus pratique. \\ + +Pour cette fois, je ne vais pas présenter le cas minimal qui fonctionne sous \LaTeX{} car le résultat est relativement moche et la compilation demande d'utiliser \verb?MakeIndex? (comme mode de compilation, entre deux compilations sous \verb?PDFLaTeX?). + +Il vaut donc mieux charger le package \verb?imakeidx? qui permet de personnaliser l'index et même d'en gérer plusieurs. La compilation intermédiaire devient même superflue et une compilation simple sous \verb?PDFLaTeX? suffit à tout générer\footnote{Bon, ok, en vérité, comme l'atteste la zone propre à la compilation sous \texttt{Texmaker}, le package \verb?imakeidx? lance en fond le mode de compilation \verb?MakeIndex?.}. \\ + +\textbf{Juste après} avoir chargé le package, il faut indiquer à \LaTeX{} de préparer l'index, grâce à la commande \verb?\makeindex?, avec les options \verb?intoc? pour inclure l'index dans le sommaire et \verb?options = {-s index-style.mst}? pour le fichier de personnalisation de l'index. + +Je ne vais pas entrer dans les détails concernant la personnalisation de l'index. Un exemple fonctionnel et assez joli est disponible ci-après, tandis que le site \url{http://winnt.developpez.com/tutoriels/latex-index/} explique tout très bien en détail, complété par \url{http://fr.sharelatex.com/learn/Indices}. + +Toutefois, je préciserai juste que le fichier est bel et bien au format \texttt{.mst} car c'est celui qui fonctionne pour ma part. Sur Internet, le même code est utilisé mais avec un fichier \texttt{.ist} \dots{} Je ne saurai dire, à l'heure actuelle, pourquoi un cas fonctionne chez moi et pas l'autre. \\ + +Ensuite, il suffit de placer un mot de l'index à l'endroit souhaité dans le document avec la commande \verb?\index{mot}?. Toutefois, il faut savoir que le classement alphabétique de \verb?makeindex? ne fonctionne pas avec les accents. Il faut donc ruser avec un ``\verb?@?'', de la manière suivante : \begin{center} \verb?\index{mot_sans_accent@mot_avec_accent}? \end{center} + +Il est possible de créer une sous-liste dans l'index avec un ``\verb?!?'' : \begin{center} \verb?\index{mot_principal!mot_secondaire}? \end{center} + +Enfin, il faut dire à \LaTeX{} de générer l'index. Pour cela, il faut utiliser la commande \verb?\printindex? à l'endroit voulu, un peu comme pour le sommaire ou la bibliographie. Voilà, c'est tout. + +\begin{conseilbox}{Bilan sur l'index} +Pour répertorier tous les sites intéressants pour générer un index, nous avons donc : + +\begin{itemize}[label = \ding{213}] +\item commandes propres à l'index : \url{http://en.wikibooks.org/wiki/LaTeX/Indexing}, + +\item personnalisation de l'index : \url{http://winnt.developpez.com/tutoriels/latex-index/}, + +\item toutes les options de personnalisation : \url{http://fr.sharelatex.com/learn/Indices}. +\end{itemize} +\end{conseilbox} + +Ok pour toi ? Voyons un petit exemple alors. + +\begin{code}{Générer un index} +% Environnement filecontents* : évite d'avoir à conserver un fichier en plus du fichier .tex +% Index style +\begin{filecontents*}{index-style.mst} +headings_flag 1 % Autoriser une lettre majuscule comme repère + +heading_prefix "\\vspace{26pt}{\\bfseries\\huge " % Mise en forme de cette lettre (en-tête) - Début du code +heading_suffix "}\\vspace{13pt}\\nopagebreak\\\n" % Fin du code + +% En-têtes pour les cas particuliers +symhead_positive "Symboles" +symhead_negative "symboles" +numhead_positive "Nombres" +numhead_negative "nombres" + +% Séparateur entre "mot de l'index" & "numéro de page" (selon les niveaux) +delim_0 "\\hspace{6pt}\\dotfill\\hspace{6pt}" +delim_1 "\\hspace{5pt}\\dotfill\\hspace{5pt}" +delim_2 "\\hspace{4pt}\\dotfill\\hspace{4pt}" + +% Mise en forme du numéro de page +encap_prefix "{\\color{Red}\\" +encap_infix "{" +encap_suffix "}}" +\end{filecontents*} + + +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[makeindex]{imakeidx} % Ajout de [makeindex] pour préciser la compilation avec MakeIndex +\makeindex[options = {-s index-style.mst}, intoc] +% Index par défaut sur 2 colonnes +% Autre option possible : column = nbre (1, 2, 3 ...) +% Ajout de : columnsep = distance (13pt, ...) pour gérer l'écart entre les colonnes + + +\begin{document} + +Texte\index{Texte} + +\newpage + +Autre essai \index{Essai a confirmer@Essai à confirmer} et j'ajouterai aussi \index{Ajout!Ajout1} que les combinaisons sont possibles \index{Ajout!Ajout teste@Ajout testé} + +\indexprologue{Ceci est mon index !} % Pour ajouter un petit texte au début de l'index +\printindex{} + +\end{document} +\end{code} + +Grâce au package \verb?imakeidx?, il est possible de générer plusieurs index. Il suffit juste de leur donner un nom lors du \verb?\makeindex? puis d'indiquer ce même nom lors de \verb?\index? : + +\begin{code}{Générer plusieurs index} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[makeindex]{imakeidx} +\makeindex[name = nom1, intoc] +\makeindex[name = nom2, intoc] + + +\begin{document} + +Texte\index[nom1]{Texte} % Va dans l'index 1 + +\newpage + +Autre essai \index[nom1]{Essai a confirmer@Essai à confirmer} et j'ajouterai aussi \index[nom2]{Ajout!Ajout1} que les combinaisons sont possibles \index[nom2]{Ajout!Ajout teste@Ajout testé} + +\indexprologue{Ceci est mon index !} % Pour ajouter un petit texte au début de l'index +\printindex[nom1]{} + +\printindex[nom2]{} % indexprologue valable que pour le plus proche index + +\end{document} +\end{code} + +Enfin, il est possible d'utiliser un index pour classer des données (liste de films, animes, jeux, pistes musicales par nom d'auteur, \dots{}). Au lieu de tenir un Excel tout moche et de te prendre la tête pour trier le résultat, tu renseignes tous tes éléments et \LaTeX{} se charge de faire le classement. + +Il y a une toute petite astuce à connaître : supprimer le numéro de page. En effet, ici, tous nos références doivent être affichées sur une page bidon. Dans le cas contraire, l'index ne sera pas généré (ou sera vide). Toutefois, nous n'avons pas besoin des numéros de page. Il faut donc procéder ainsi : + +\begin{code}{Index sans les numéros de page} +\documentclass[a4paper, 12pt]{report} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[french]{babel} +\usepackage{lmodern} + +\usepackage[makeindex]{imakeidx} +\makeindex[intoc] + + +\begin{document} + +Texte bidon\index{Film 1}\index{Film 2} + +\newpage + +% \begingroup [...] \endgroup : permet d'appliquer des modifications uniquement à l'intérieur des deux balises --> aucune influence sur le reste du document +\begingroup +\def\hyperpage#1{} % Suppression du numéro de page dans l'index + +\printindex{} + +\endgroup + +\end{document} +\end{code}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/page-garde.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/page-garde.tex new file mode 100644 index 00000000000..608f15c8a3d --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/page-garde.tex @@ -0,0 +1,53 @@ +\thispagestyle{empty} + +% Compiler 2 fois (remember picture & overlay) +\begin{tikzpicture}[remember picture, overlay] +% Longueur --> pas de problèmes avec la dimension +\newlength{\trisize} +\setlength{\trisize}{0.5\paperwidth} + +% Longueur arbitraire (pt par défaut) +\def\xsep{30} % Valeur correcte : 30 +\def\ysep{30} % Idem + + +% Coins +\fill[BlueFR] (current page.north west) --++ (\trisize,0) --++ (-\trisize,-\trisize) -- cycle; +\fill[RedFR] (current page.south east) --++ (-\trisize,0) --++ (\trisize,\trisize) -- cycle; + + +% Titre +\node[anchor = east, xshift = -0.5*\xsep, font = \fontsize{43}{20}\selectfont\bfseries] (title) at (current page.38) {Initiation à \LaTeX{}}; + +% Nom du package (CTAN) +\node[anchor = north, font = \fontsize{36}{20}\selectfont\ttfamily] (packagename) at (title.south) {guide-latex-fr}; + +% Sous-titre +\node[anchor = north, yshift = -\ysep, text width = 0.5\linewidth, align = center, font = \huge\itshape] (soustitre) at (packagename.south) {Pour débutants ou jeunes utilisateurs}; + +% Auteur +\node[anchor = north, yshift = -1.5*\ysep, font = \huge] (author) at (soustitre.south) {Par Adrien \textsc{Bouzigues}}; +\node[anchor = north] (authorcl) at (author.south) {\includegraphics[width = 0.5\linewidth]{buque_auteur.eps}}; + +% Date & version +\node[anchor = north, yshift = -1.5*\ysep, font = \Large] (creation) at (authorcl.south) {13 juillet 2016}; +\node[anchor = north, text width = 0.5\linewidth, align = center, font = \Large\bfseries] at (creation.south) {Version 3.0 à jour au : \\ \today}; + + +% Graphes +\begin{scope}[shift = {(current page.west)}, xshift = 1.5*\xsep, yshift = -2.5*\ysep] +\begin{axis}[xmax = 6.5, ymax = 4.5, xlabel = {Complexité et taille du rapport}, ylabel = {Effort et temps requis}, axis x line = bottom, +axis y line = left, xlabel near ticks, ylabel near ticks, xtick = \empty, ytick = \empty] + +\addplot[very thick, dashed, orange, domain = 0:3, smooth] {0.17 + 1/(3.261 - \x)} node [pos = 0.7, above left, text = orange] {Word}; + +\addplot[very thick, Green, domain = 0:6] {0.994 + 0.123*x + 0.0355*x^2} node[pos = 0.7, below right] {\LaTeX{}}; + +\addplot[very thick, red, line legend] coordinates { (0,4) (6,4) } node [pos = 0.5, above] {Impossible à faire}; +\end{axis} +\end{scope} + + +% Eclair +\node[anchor = south west, xshift = 1.5*\xsep, yshift = 0.5*\ysep] at (current page.south west) {\includegraphics[width = 0.3\linewidth]{eclair.eps}}; +\end{tikzpicture}
\ No newline at end of file |