From d2b8d33bc4070a7246b3cd1d3074b6d369c3ef7d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 10 May 2019 21:14:43 +0000 Subject: guide-latex-fr (10may19) git-svn-id: svn://tug.org/texlive/trunk@51070 c570f23f-e606-0410-a88d-b1316a301751 --- .../guide-latex-fr/Archives/guide-latex-fr_V2.pdf | Bin 3216477 -> 0 bytes .../Archives/guide-latex-fr_V3_intro.pdf | Bin 1337025 -> 0 bytes .../doc/latex/guide-latex-fr/Chapitres/annexes.tex | 227 +++- .../latex/guide-latex-fr/Chapitres/code-base.tex | 18 + .../latex/guide-latex-fr/Chapitres/code_base.tex | 18 - .../latex/guide-latex-fr/Chapitres/commandes.tex | 139 +++ .../doc/latex/guide-latex-fr/Chapitres/config.tex | 158 --- .../doc/latex/guide-latex-fr/Chapitres/intro.tex | 49 +- .../guide-latex-fr/Chapitres/p1-compilation.tex | 8 +- .../guide-latex-fr/Chapitres/p1-historique.tex | 2 +- .../guide-latex-fr/Chapitres/p1-installation.tex | 5 +- .../latex/guide-latex-fr/Chapitres/p2-erreurs.tex | 16 +- .../latex/guide-latex-fr/Chapitres/p2-images.tex | 10 +- .../latex/guide-latex-fr/Chapitres/p2-maths.tex | 10 +- .../latex/guide-latex-fr/Chapitres/p2-regles.tex | 15 +- .../latex/guide-latex-fr/Chapitres/p2-tableaux.tex | 4 +- .../latex/guide-latex-fr/Chapitres/p2-texte.tex | 42 +- .../doc/latex/guide-latex-fr/Chapitres/p3-PST.tex | 550 ---------- .../doc/latex/guide-latex-fr/Chapitres/p3-TikZ.tex | 900 --------------- .../latex/guide-latex-fr/Chapitres/p3-beamer.tex | 4 +- .../latex/guide-latex-fr/Chapitres/p3-images.tex | 224 ++-- .../latex/guide-latex-fr/Chapitres/p3-intro.tex | 35 +- .../latex/guide-latex-fr/Chapitres/p3-maths.tex | 75 +- .../latex/guide-latex-fr/Chapitres/p3-modes.tex | 210 ---- .../latex/guide-latex-fr/Chapitres/p3-moteurs.tex | 184 ++++ .../latex/guide-latex-fr/Chapitres/p3-pstricks.tex | 510 +++++++++ .../guide-latex-fr/Chapitres/p3-structuration.tex | 139 +++ .../latex/guide-latex-fr/Chapitres/p3-tableaux.tex | 504 +++++---- .../latex/guide-latex-fr/Chapitres/p3-texte.tex | 968 +++++++++------- .../doc/latex/guide-latex-fr/Chapitres/p3-tikz.tex | 1151 ++++++++++++++++++++ .../latex/guide-latex-fr/Chapitres/packages.tex | 53 + .../latex/guide-latex-fr/Chapitres/page-fin.tex | 47 + .../latex/guide-latex-fr/Chapitres/page-garde.tex | 2 +- .../Images/compilation_diagramme.tex | 63 ++ .../guide-latex-fr/Images/compilation_rapide.xcf | Bin 629851 -> 629848 bytes .../guide-latex-fr/Images/latex-project-logo.svg | 230 ++-- .../texmf-dist/doc/latex/guide-latex-fr/README.md | 70 +- .../latex/guide-latex-fr/Support_oral/1-title.pdf | Bin 10893 -> 0 bytes .../latex/guide-latex-fr/Support_oral/1-title.svg | 98 -- .../Support_oral/Slides/bonus_MR.tex | 11 - .../guide-latex-fr/Support_oral/Slides/erreurs.tex | 16 - .../guide-latex-fr/Support_oral/Slides/images.tex | 69 -- .../Support_oral/Slides/logiciels_compilation.tex | 136 --- .../guide-latex-fr/Support_oral/Slides/maths.tex | 223 ---- .../Support_oral/Slides/presentation.tex | 81 -- .../Support_oral/Slides/tableaux.tex | 84 -- .../guide-latex-fr/Support_oral/Slides/texte.tex | 176 --- .../Support_oral/beamercolorthemeFeather.sty | 51 - .../Support_oral/beamerinnerthemeFeather.sty | 99 -- .../Support_oral/beamerouterthemeFeather.sty | 249 ----- .../Support_oral/beamerthemeFeather.sty | 51 - .../Support_oral/guide-latex-fr_beamer.tex | 184 ---- .../guide-latex-fr/Support_oral/teaser_LaTeX.txt | 24 - .../doc/latex/guide-latex-fr/guide-latex-fr.pdf | Bin 3418518 -> 4470242 bytes .../doc/latex/guide-latex-fr/guide-latex-fr.tex | 65 +- 55 files changed, 3778 insertions(+), 4479 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V2.pdf delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V3_intro.pdf create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code-base.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code_base.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/commandes.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/config.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-PST.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-TikZ.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-modes.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-moteurs.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-pstricks.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-structuration.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-tikz.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/packages.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/page-fin.tex create mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Images/compilation_diagramme.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/1-title.pdf delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/1-title.svg delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/bonus_MR.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/erreurs.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/images.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/logiciels_compilation.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/maths.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/presentation.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/tableaux.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/Slides/texte.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/beamercolorthemeFeather.sty delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/beamerinnerthemeFeather.sty delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/beamerouterthemeFeather.sty delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/beamerthemeFeather.sty delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/guide-latex-fr_beamer.tex delete mode 100644 Master/texmf-dist/doc/latex/guide-latex-fr/Support_oral/teaser_LaTeX.txt diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V2.pdf b/Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V2.pdf deleted file mode 100644 index e4c82ecf594..00000000000 Binary files a/Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V2.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V3_intro.pdf b/Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V3_intro.pdf deleted file mode 100644 index 8b0563d562a..00000000000 Binary files a/Master/texmf-dist/doc/latex/guide-latex-fr/Archives/guide-latex-fr_V3_intro.pdf and /dev/null differ 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 index 98b0f0fe8ac..0d5d9232ebf 100644 --- a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/annexes.tex +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/annexes.tex @@ -4,6 +4,7 @@ \renewcommand{\thetable}{A.\arabic{table}} \setcounter{table}{0} + % Page 1 -- Rappel de mise en forme \vspace*{\fill} @@ -26,7 +27,8 @@ Texte & Rendu & Environnement \\ \midrule \vspace*{\fill}\clearpage -% Page 2 -- Symboles courants sous \LaTeX{} + +% Page 2 -- Symboles courants sous LaTeX \vspace*{\fill} @@ -67,6 +69,7 @@ Texte & Rendu & Environnement \\ \midrule \vspace*{\fill}\clearpage + % Page 3 -- Symboles du package pifont \vspace*{\fill} @@ -102,11 +105,43 @@ Texte & Rendu & Environnement \\ \midrule \end{tabular}} \end{table} -\vspace*{\fill}\newpage +\vspace*{\fill}\clearpage + +% Page 4 -- Changement de police sous LaTeX + +\vspace*{\fill} + +\begin{table}[H] +\centering +\caption{Liste non exhaustive des polices sous \LaTeX{}} +\label{annexes-code-police} +\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lll} \toprule +\textbf{Police} & \textbf{Package} & \textbf{\verb??} \\ \midrule +Bookman & \verb?bookman? & \verb?pbk? \\ +Charter & \verb?charter? & \verb?bch? \\ +Computer Modern Roman & (défaut) & \verb?cmr? \\ +Computer Modern Sans Serif & (défaut) & \verb?cmss? \\ +Computer Modern Typewriter & (défaut) & \verb?cmtt? \\ +Courier & \verb?courier? & \verb?pcr? \\ +Fourier & \verb?fourier? & \verb?put? \\ +Garamond & \verb?ebgaramond? & \\ +& \verb?ebgaramond-maths? & \\ +Helvetica & \verb?helvet? & \verb?phv? \\ +Latin Modern Roman & \verb?lmodern? & \verb?lmr? \\ +Latin Modern Sans Serif & \verb?lmodern? & \verb?lmss? \\ +Latin Modern Typewriter & \verb?lmodern? & \verb?lmtt? \\ +New Century Schoolbook & \verb?newcent? & \\ +Palatino & \verb?mathpazo? & \\ +\TeX{} Gyre Bonum & \verb?tgbonum? & \verb?qbk? \\ +Times & \verb?mathptmx? & \verb?ptm? \\ +Zapf Chancery & \verb?chancery? & \\ \bottomrule +\end{tabular*} +\end{table} + +\vspace*{\fill}\clearpage -% Page 4 -- Symboles mathématiques courants -%\vspace*{\fill} +% Page 5 -- Symboles mathématiques courants \begin{table}[H] \centering @@ -142,10 +177,10 @@ Texte & Rendu & Environnement \\ \midrule \end{tabular*} \end{table} -%\vspace*{\fill} \clearpage -% Page 5 -- Lettres grecques + +% Page 6 -- Lettres grecques \vspace*{\fill} @@ -165,4 +200,182 @@ $\Theta$ & \verb?\Theta? & $\Pi$ & \verb?\Pi? & $\Phi$ & \verb?\Phi? \end{tabular} \end{table} -\vspace*{\fill} \ No newline at end of file +\vspace*{\fill}\clearpage + + +% Page 7 -- TikZ & possibilités (commandes, options) + +\begin{table}[H] +\centering +\caption{Liste non exhaustive des commandes et options disponibles avec \TikZ{}} +% Passage à p (colonne 2) pour pouvoir utiliser \newline +\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lp{\linewidth}} \toprule +\textbf{Commandes / Options} & \textbf{Description} \\ \midrule +\verb?--? & Pour tracer un trait droit \\ +\verb?|-? ou \verb?-|? & Pour tracer un trait vertical \newline puis horizontal (ou l'inverse) \\ +\verb?||? & \textbf{Indisponible !} \\ +\verb?rectangle? & \multirow{2}{*}{\parbox{\linewidth}{Choix de forme \newline (contour fermé)}} \\ +\verb?circle? & \\ +\verb?cycle? & Pour fermer un chemin \\ +\verb?plot? & Pour tracer une fonction (maths) \\ \\ + +\verb?\draw[] (A) -- (B);? & Tracer un trait entre \verb?A? et \verb?B? \\ +\verb?\fill[] (A) -- (B);? & Remplir la zone entre \verb?A? et \verb?B? \\ +\verb?\filldraw[] (A) -- (B);? & Tracer et remplir la zone entre \verb?A? et \verb?B? \\ +\verb?draw = ? & Définir la couleur du tracé \\ +\verb?fill = ? & Définir la couleur du remplissage \\ +\verb?line width = ? & Définir l'épaisseur du trait \\ +\verb?dotted? ou \verb?dashed? & Changer la forme du trait \\ +\verb?rounded corners? & \multirow{2}{*}{Changer les jointures} \\ +\verb?sharp corners? & \\ +\verb?line join = ? & Autres jointures \newline (\verb?round?, \verb?bevel? \& \verb?miter?) \\ +\verb?shift = {()}? & Décalage \\ +\verb?xshift = ? & Décalage horizontal \\ +\verb?yshift = ? & Décalage vertical \\ \\ + +\verb?\path[] (A) -- (B);? & Définir un chemin entre \verb?A? et \verb?B? \\ +\verb?\coordinate () at ();? & Définir une coordonnée \verb?? \newline au point \verb?()? \\ + +\verb?node? & cf. \autoref{annexes-tikz-node} \\ \bottomrule +\end{tabular*} +\end{table} + +\clearpage + + +% Page 8 -- TikZ & possibilités (node) + +\begin{table}[H] +\caption{Liste non exhaustive des options disponibles avec \TikZ{} (\texttt{node})} +\label{annexes-tikz-node} + +\begin{code}{} +\node[] () at () {}; +\end{code} + +\begin{quote} +Placer \verb?? à l'emplacement \verb?()? (autre \verb?node? ou coordonnées) et lui attribuer le nom \verb?? (optionnel) +\end{quote} + +\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lp{\linewidth}} \toprule +\textbf{Options} & \textbf{Description} \\ \midrule +\verb?draw = ? & Afficher le contour du \verb?node? \\ +\verb?fill = ? & Remplir l'intérieur du \verb?node? \\ +\verb?text = ? & Colorer le texte à l'intérieur du \verb?node? \\ +\verb?font = ? & Mettre en forme le texte du \verb?node? \newline (\verb?\bfseries?, \verb?itshape?, \verb?\small?, etc.) \\ +\verb?align = ? & Alignement horizontal du texte \newline à l'intérieur du \verb?node? \newline (\verb?left?, \verb?center? ou \verb?right?) \\ \\ + +\verb?inner sep = ? & Espacement entre le texte et \newline le bord du \verb?node? \\ +\verb?outer sep = ? & Espacement entre le bord du \verb?node? \newline et les autres éléments \\ \\ + +\verb?text width = ? & Largeur du bloc de texte du \verb?node? \\ +\verb?minimum width = ? & Largeur minimale du \verb?node? \\ +\verb?minimum height = ? & Hauteur minimale du \verb?node? \\ \\ + +\verb?? & Indiquer la position du \verb?node? \newline par rapport à \verb?()? \newline (\verb?above?, \verb?below?, \verb?left? ou \verb?right?) \\ +\verb?anchor = ? & Indiquer le point d'ancrage de \verb?()? \\ +\verb?rotate = ? & Faire pivoter le \verb?node? \\ \bottomrule +\end{tabular*} +\end{table} + +Autres solutions de positionnement : cf. la bibliothèque \verb?positioning?. + +\clearpage + + +% Page 9 -- TikZ & librairies + +% Longtable incompatible avec table +% Table nécessaire pour caption +\begin{table}[H] +\caption{Liste des librairies disponibles avec \TikZ{}} +\label{annexes-tikz-bibliotheques} + +\begin{code}{} +\usetikzlibrary{} +\end{code} +\end{table} + +\begin{tableaubilan}{0.45\linewidth}{0.45\linewidth}{Bibliothèque \TikZ{}}{Description} +\verb?3d? & Dessiner des formes en 3D \\ +\verb?angles? & Dessiner des angles \\ +\verb?animations? & Créer des animations \\ +\verb?arrows.meta? & Obtenir plus de flèches et pouvoir en créer \\ +\verb?automata? & Dessiner des automates finis (diagrammes d'état) et des machines de Turing \\ +\verb?babel? & Interagir avec le package éponyme et éviter les conflits \\ +\verb?backgrounds? & Créer des arrières-plans colorés et afficher un quadrillage \\ +\verb?bending? & Courber les flèches \\ +\verb?calc? & Calculer des coordonnées \\ +\verb?calendar? & Créer des calendriers \\ +\verb?chains? & Créer des chaînes \\ +\verb?circuits? & \multirow{7}{*}{\parbox{\linewidth}{Dessiner des circuits électriques (package \verb?circuitikz? si besoin)}} \\ +\verb?circuits.ee? \\ +\verb?circuits.logic? \\ +\verb?circuits.logic.CDH? \\ +\verb?circuits.logic.IEC? \\ +\verb?circuits.logic.US? \\ +\verb?circuit.ee.IEC? \\ +\verb?circular? & Créer des dessins algorithmiques circulaires \\ +\verb?curvilinear? & Dessiner des transformations non linéaires (comme des courbes de Bézier) \\ +\verb?datavisualization? & \multirow{3}{*}{\parbox{\linewidth}{Définir les styles nécessaires à la visualisation de données}} \\ +\verb?datavisualization.formats.functions? \\ +\verb?datavisualization.polar? \\ +\verb?decorations? & \multirow{8}{*}{\parbox{\linewidth}{Appliquer des transformations à des chemins (\verb?path?) et les décorer}} \\ +\verb?decorations.footprints? \\ +\verb?decorations.fractals? \\ +\verb?decorations.markings? \\ +\verb?decorations.pathmorphing? \\ +\verb?decorations.pathreplacing? \\ +\verb?decorations.shapes? \\ +\verb?decorations.text? \\ +\verb?er? (\textit{entity-relationship}) & Dessiner des diagrammes entité-association \\ +\verb?external? & Exporter des dessins \TikZ{} \\ +\verb?fadings? & Estomper les couleurs \\ +\verb?fit? & Créer un \verb?node? qui contient un jeu de coordonnées \\ +\verb?fixedpointarithmetic? & Augmenter la limite de calcul de \TikZ{} (package \verb?fp? obligatoire, temps de calcul plus longs) \\ +\verb?folding? & Créer des patrons ou des objets à plier \\ +\verb?force? & Dessiner avec des ``efforts'' (\verb?node? tirés ou comprimés) \\ +\verb?fpu? (\textit{floating point unit}) & Permettre le calcul scientifique avec des nombres réels \\ +\verb?graphdrawing? (Lua\LaTeX{}) & Automatiser le dessin de graphes \\ +\verb?graphs? et \verb?graphs.standard? & Dessiner des graphes avec la commande \verb?graph? \\ +\verb?intersections? & Calculer la (les) intersection(s) de 2 chemins \\ +\verb?layered? & Tracer des graphes avec des couches horizontales \\ +\verb?lindenmayersystems? & Créer des ``\textit{L-systems}'' \\ +\verb?math? & Définir des fonctions mathématiques et exécuter des opérations mathématiques \\ +\verb?matrix? & Définir des options et styles supplémentaires pour les matrices de \verb?node? \\ +\verb?mindmap? & Créer des cartes heuristiques \\ +\verb?patterns? & Définir de nouveaux motifs de remplissage \\ +\verb?perspective? & Dessiner des objets en perspective avec 1, 2 ou 3 points de fuite \\ +\verb?petri? & Dessiner des réseaux de Petri \\ +\verb?phylogenetics? & Tracer des arbres phylogénétiques \\ +\verb?plothandlers? & Définir des \og \textit{plot handlers} \fg{} supplémentaires \\ +\verb?plotmarks? & Définir des marqueurs (sommets d'un tracé) \\ +\verb?positioning? & Définir des options supplémentaires pour placer les \verb?node? \\ +\verb?profiler? & Simplifier l'optimisation de la compilation \\ +\verb?quotes? & Placer des commentaires facilement à côté d'un \verb?node? \\ +\verb?rdf? (\textit{resource description framework}) & Ajouter des ``annotations'' à un fichier généré par \TikZ{} \\ +\verb?routing? & Connecter les extrémités d'un graphe \\ +\verb?scopes? & Simplifier l'appel de l'environnement \verb?scope? \\ +\verb?shadings? & Créer des dégradés de couleurs \\ +\verb?shadows? & Créer des ombrages \\ +\verb?shapes.arrows? & \multirow{11}{*}{\parbox{\linewidth}{Définir de nouveaux formats de \verb?node? et plus encore}} \\ +\verb?shapes.callout? \\ +\verb?shapes.gates.ee? \\ +\verb?shapes.gates.ee.IEC? \\ +\verb?shapes.gates.logic? \\ +\verb?shapes.gates.logic.IEC? \\ +\verb?shapes.gates.logic.US? \\ +\verb?shapes.geometric? \\ +\verb?shapes.misc? \\ +\verb?shapes.multipart? \\ +\verb?shapes.symbols? \\ +\verb?spy? & Faire des grossissements \\ +\verb?svg.path? & Définir des chemins avec la syntaxe \verb?SVG? \\ +\verb?through? & Créer des formes qui passent par un point précis \\ +\verb?topaths? (chargé automatiquement) & Définir l'opérateur \verb?to? \\ +\verb?trees? & Dessiner des arbres \\ +\verb?turtle? & Créer des ``\textit{turtle graphics}'' (langage \verb?Logo?) \\ +\verb?views? & Créer des ``vues'' (transformations d'une partie d'un dessin) +\end{tableaubilan} + +\clearpage \ 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/code_base.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code_base.tex deleted file mode 100644 index aac7623de4a..00000000000 --- a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/code_base.tex +++ /dev/null @@ -1,18 +0,0 @@ -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/commandes.tex b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/commandes.tex new file mode 100644 index 00000000000..ec62918fe50 --- /dev/null +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/commandes.tex @@ -0,0 +1,139 @@ +% 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} + +% 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} + +% Signature +\definecolor{lightningcyan}{RGB}{59,195,235} + + +% 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{\Beamer}{\texttt{Beamer}} +\newcommand{\Paint}{\texttt{Paint}} +\newcommand{\GIMP}{\texttt{GIMP}} +\newcommand{\Inkscape}{\texttt{Inkscape}} + +\newcommand{\folder}{\textcolor[RGB]{255,231,157}{\faFolder}} + + +% Tableau bilan +\newenvironment{tableaubilan}[4]{ + \begin{longtable}{p{#1}p{#2}} + % Définition des headers & footers du longtable + {\hspace*{\fill}\textsc{#3}\hspace*{\fill}} & {\hspace*{\fill}\textsc{#4}\hspace*{\fill}} \\ \midrule + \endhead + \multicolumn{2}{r}{\textit{(suite sur la page suivante)}} \\ + \endfoot + \multicolumn{2}{@{\hrulefill}c@{\hrulefill}}{\raisebox{-3pt}{~~\textsc{Fin du tableau}~~}} + \endlastfoot +}{\end{longtable}} + + +% "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) + + +%%% --- Explications --- %%% + +% Ne fonctionne pas : \newenvironment{code}[2][]{\begin{boitecodetype}[#1]{#2}{LimeGreen}{LimeGreen!5!white}{LimeGreen!50}{2pt}{TeX}}{\end{boitecodetype}} + +% Boite type avec listings impossible --> problème lors de l'appel du nouvel environnement +% (en gros, avec une couche supplémentaire \newenvironment, listings n'arrive pas à bien détecter le début et la fin de l'environnement donc erreur) + +% Solution : +% Utilisation de styles (commandes propres à tcolorbox & listings) pour recenser les options à utiliser +% Création ensuite de 3 environnements (distincts et non imbriqués) mais avec appel de ces commandes +% ==> gain de lignes et généralisation possible + +%%% --- FIN Explications --- %%% + +% Stockage de 2 variables principales (plus propre) +% Autre solution : utiliser le code source tcolorbox (tcbcol@frame : couleur définie par colback) +% Attention : breakable non appliqué si "listing side text" (pas de coupure) +% ==> faire des "petits" bouts de code +\tcbset{ +codemainoptions/.style = { + 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, drop fuzzy shadow, colbacktitle = \tcbmaincol!50, coltitle = black, fonttitle = \bfseries, title = {#1}, + 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;}} +} +} + +\lstdefinestyle{mainlststyle}{ +language = {[LaTeX]TeX}, +style = tcblatex, +texcsstyle = *\color{cyan!65!black}, +commentstyle = \color{gray}, +tabsize = 4, +keepspaces = true, +breaklines = true, +breakatwhitespace = false, +inputencoding = utf8, +numbers = none, +showspaces = false, +showtabs = false, +showstringspaces = false +} + +% N.B. : #2 = titre de la boite +\newtcblisting{code}[2][]{codemainoptions = {#2}, listing options = {style = mainlststyle}, listing only, #1} + +\newtcblisting{codedisplay}[2][]{codemainoptions = {#2}, listing options = {style = mainlststyle}, listing side text, righthand ratio = 0.4, sidebyside gap = 13mm, bicolor, colbacklower = white, #1} + +% compilable listing ==> compiler "main.tex" avec "-shell-escape" +\newtcblisting{coderesult}[2][]{codemainoptions = {#2}, listing options = {style = mainlststyle}, listing and comment, bicolor, colbacklower = white, compilable listing, run pdflatex, pdf comment, freeze pdf, comment style = {raster columns = 2, drop lifted shadow}, #1} + +% Boîte spéciale code TikZ +% 1ère idée : nouvelle boîte brute avec listing and comment (comment = {\resizebox{\linewidth}{!}{\tcbuselistingtext}} -- \tcbuse... = contenu de la boîte soit code TikZ) +% 2nde idée : se contenter d'un "listing and text" avec structure boîte "codedisplay" +\newtcblisting{codetikz}[2][]{codemainoptions = {#2}, listing options = {style = mainlststyle}, listing and text, bicolor, colbacklower = white, #1} \ 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 deleted file mode 100644 index 3922058dffb..00000000000 --- a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/config.tex +++ /dev/null @@ -1,158 +0,0 @@ -% 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 index 6e8080394d1..94ba55555eb 100644 --- a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/intro.tex +++ b/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/intro.tex @@ -5,17 +5,18 @@ \begin{tikzpicture} % Paramétrage \def\poly{13} -\pgfmathsetmacro\polyg{\poly - 1} +\pgfmathtruncatemacro\polyg{\poly - 1} \def\R{0.43\linewidth} \def\ornament{87} +\def\ecart{13pt} % 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 +\draw[NewOrange] (90:\R) node[shift = (90:\ecart)] {\poly} \foreach \i in {1,...,\polyg} {to[ornament = \ornament] (90-\i*360/\poly:\R) node[shift = (90-\i*360/\poly:\ecart)] {\i}} 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] +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] @@ -35,7 +36,7 @@ USA \end{center} \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.} +\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}} @@ -45,37 +46,35 @@ USA \end{center} % Mind Map \vspace*{\stretch{1}} -%\resizebox{}{}{} -% 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}] +\begin{tikzpicture}[mindmap, grow cyclic, every node/.style = {concept, align = center}, concept color = gray!75, 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 [concept color = violet!50] { node {Texte \\ (\pageref{chap-texte} \& \pageref{chap-texte-details})} 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 [concept color = orange!50] { node {Tableaux \\ (\pageref{chap-table} \& \pageref{chap-table-details})} 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 [concept color = brown!50] { node {Dessiner \\ (\pageref{chap-pstricks} \& \pageref{chap-tikz})} + child { node {PSTricks}} + child { node {\TikZ{}}} + } + child [concept color = green!80!black] { node {Maths \\ (\pageref{chap-maths} \& \pageref{chap-maths-details})} + 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 = yellow!70!red] { node {Images \\ (\pageref{chap-img} \& \pageref{chap-img-details})} 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} } @@ -108,7 +107,7 @@ S'ils ne sont pas légion, il existe d'autres guides en français pour apprendre 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 ! +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} \\ @@ -118,7 +117,7 @@ I13 Cl215 \newpage % QR Code - Dessin final -\vspace*{\stretch{1}} +\vspace*{\fill} \begin{figure}[H] \centering @@ -126,7 +125,7 @@ I13 Cl215 \caption*{\large\textcolor{BrickRed}{Lien de mon \texttt{Drive} \LaTeX{}\dots{} sous la forme d'un code QR !}} \end{figure} -\vspace*{\stretch{1}} +\vspace*{\fill} \begin{center} \begin{tikzpicture} @@ -136,12 +135,12 @@ I13 Cl215 {\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}] +\draw[White, postaction = {decorate}, decoration = {text along path, text = {|\fontsize{35pt}{15pt}\selectfont\color{Gold!90!black}\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}} +\vspace*{\fill} \newpage 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 index c4fe84bf364..4ea43fef9a2 100644 --- 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 @@ -22,7 +22,7 @@ Pour entrer un peu plus dans les détails, tu dois donc : \begin{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. \\ +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. @@ -76,7 +76,7 @@ N'hésite pas quand tu débutes. Les deux sites sont en français et répondent \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} : +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} @@ -89,12 +89,12 @@ 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. +Je suppose que tu as suivi les premières indications fournies, soit ouvrir \Texmaker{}, recopier le code \og Bonjour monde ! \fg{} donné 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. +\item via l'invite de commandes de ton système d'exploitation (le CMD pour les utilisateurs de \Windows{})\dots{} mais je 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 ; 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 index c6c8c004d93..9121cb9bad4 100644 --- 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 @@ -34,7 +34,7 @@ La version actuelle de \LaTeX{} est \LaTeX{}$2\varepsilon$, qui date de 1994. El 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. +\textbf{C'est ce moteur que nous allons utiliser par la suite,} qui permet de passer directement du fichier \LaTeX{} au fichier PDF final désiré. \subsection*{\'Etymologie et prononciation} 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 index f1cf6fcf245..8113893fdb3 100644 --- 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 @@ -6,7 +6,7 @@ Si tu es un utilisateur d'\Apple{}, je considère déjà ta cause perdue d'avanc \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 : +\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} @@ -62,7 +62,7 @@ Il est aussi intégralement en français, avantage non négligeable quand tu dé \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. +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. \\ @@ -76,6 +76,7 @@ Il est aussi intégralement en français, avantage non négligeable quand tu dé \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} +\label{hello-world} \begin{code}{Bonjour monde !} \documentclass[]{report} 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 index 8a04052ad64..7b963ea3821 100644 --- 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 @@ -1,6 +1,6 @@ \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é. +\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). @@ -13,15 +13,7 @@ Ensuite, il est important de savoir que toutes les erreurs qui vont être abord 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 +\begin{tableaubilan}{0.45\linewidth}{0.45\linewidth}{Les erreurs courantes}{Comment les corriger} \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. @@ -43,10 +35,10 @@ Voyons maintenant la liste des erreurs couramment rencontrées quand tu débutes \verb?Option clash for package? \par \verb?? & 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?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{}? \par ou \par \verb?! [...] \begin{}? \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} +\end{tableaubilan} 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. 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 index 0df289fc060..123ef36b850 100644 --- 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 @@ -1,8 +1,8 @@ \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{}. \\ +\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} +\input{./Chapitres/code-base} \section{Les formats d'images} @@ -150,7 +150,7 @@ Visuellement, nous pouvons considérer l'environnement flottant comme une boîte \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); +\draw[<->, > = Stealth, red, line width = 5pt] (0.5,-2) -- (0.5,-4); \end{tikzpicture} \caption{Schématisation d'un environnement flottant} \end{figure} @@ -252,7 +252,7 @@ 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{} ? +Une image, une équation, un tableau, une partie\dots{} tous ces outils sont bien pratiques mais que valent-ils si tu ne peux y faire référence ? Par exemple, comment écrire \textbf{automatiquement} \og cf. l'image \no{}$x$ page $y$ \fg{} ? Le but est bel et bien d'avoir une numérotation automatique : c'est bien plus pratique et moins fatiguant que de devoir corriger tout ton document à la main (et même impossible et impensable sur un rapport de plusieurs centaines de pages). @@ -395,4 +395,4 @@ Pour terminer, si tu veux t'amuser un peu, voici un premier aperçu d'une autre 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 +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 index 94af36ef98f..b0f7870476c 100644 --- 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 @@ -1,8 +1,8 @@ \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 ! \\ +\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} +\input{./Chapitres/code-base} \section{Le mode mathématiques} @@ -221,7 +221,7 @@ Bien, maintenant que les choses sont correctement posées, tu peux avoir le meil 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 = *] +\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.} @@ -273,7 +273,7 @@ Je préfère le répéter au cas où mais il faut naturellement employer le mode 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 = *] +\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?. @@ -368,7 +368,7 @@ n & = & 20 \\ 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} !!!}} +\begin{attention}{\textbf{Ne pas utiliser \verb?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?. 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 index 6104dd037ee..18493be0a12 100644 --- 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 @@ -5,7 +5,7 @@ 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 = *] +\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. @@ -25,7 +25,7 @@ Passons maintenant sur des règles plus concrètes vis-à-vis de l'écriture d'u 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 = *] +\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} @@ -87,7 +87,7 @@ Plusieurs points importants sont à retenir : \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?. +\item un premier exemple d'illustration de la règle d'or \no{}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 ; @@ -100,7 +100,7 @@ Il existe plusieurs classes, à renseigner à l'endroit où il y a écrit \verb? 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. +\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. \textcolor{orange}{Toutefois, si tu as un petit rapport d'une vingtaine de pages à rédiger, la classe \verb?article? constitue aussi un choix judicieux.} 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. @@ -120,25 +120,24 @@ C'est bon ? Toujours là ? Tu verras, avec de la pratique, les bases vont rentre \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 : +\label{preambule}Si le lecteur curieux ne s'est pas encore empressé de faire des essais, je lui recommande d'essayer le code suivant :\footnote{Les sauts de ligne sont importants pour la lisibilité (règle pragmatique \no{}3).} \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. +Analysons le résultat. La règle d'or \no{}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}.} ! \\ 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 index 015b04a792b..87061e64b53 100644 --- 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 @@ -1,8 +1,8 @@ \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{}. \\ +\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} +\input{./Chapitres/code-base} \section{Conventions} 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 index 091e3a3a9d5..9cc8be7ebe8 100644 --- 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 @@ -1,8 +1,8 @@ \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{}. \\ +\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} +\input{./Chapitres/code-base} \section{Notre premier texte} @@ -78,13 +78,13 @@ Bref, beaucoup de façons de sauter des lignes, de manière plutôt concise. 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 ?} +\begin{attention}{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} +\end{attention} Bon, maintenant que nous avons toutes les cartes en main pour écrire des paragraphes, passons à de la mise en forme. @@ -94,7 +94,7 @@ Bon, maintenant que nous avons toutes les cartes en main pour écrire des paragr 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} +\begin{codedisplay}{\textbf{Gras} \& \textit{italique}} \textbf{texte en gras} \\ \textit{texte en italique} @@ -288,7 +288,7 @@ Il existe plusieurs possibilités pour numéroter les différents titres de ton \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{}. \\ +\item \verb?\Alph? : pour avoir des lettres majuscules soit A, B, C\dots{}. \end{itemize} \subsection*{Titre sans numérotation} @@ -331,8 +331,8 @@ Ajouter \verb?breaklinks? dans les options du package \verb?hyperref? permet de \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 +\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} @@ -412,8 +412,7 @@ Bon, maintenant que nous avons un magnifique sommaire, est-il possible d'ajouter 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} +% Ajout dans le préambule ou après \begin{document} % Titre @@ -615,7 +614,7 @@ J'ai décidé de mettre le texte en gras, mais rien ne m'empêche en cours de r \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 ?} +\begin{attention}{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. \\ @@ -623,7 +622,7 @@ Tu as l'\oe{}il ! Suite à une commande, \LaTeX{} ignore les espaces. Tu peux en 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} +\end{attention} 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é. \\ @@ -633,29 +632,28 @@ Bien, continuons. C'est quoi déjà la suite ? Ah oui, 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?}. +Les listes (à puces ou numérotées) sont très pratiques quand il s'agit d'énumérer des éléments, faire un inventaire ou décrire des étapes. -Pour faire apparaître une puce ou un numéro, il faut utiliser la commande \verb?\item?. \\ +Les listes peuvent donc être soit \textcolor{orange}{non numérotées} (listes dites \og à puces \fg{} : tiret, rond, autres symboles), avec l'\textcolor{orange}{environnement \verb?itemize?} ; soit \textcolor{cyan}{numérotées} (numéro ou lettre), grâce à l'\textcolor{cyan}{environnement \verb?enumerate?}. \\ -Voyons plutôt le résultat avec un exemple : +Pour définir 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} +\begin{codedisplay}{Une liste à puces} Détail de la chambre : \begin{itemize} \item un lit ; -% Le saut de ligne est optionnel -% --> aération du code LaTeX +% Saut de ligne optionnel (aérer) \item une armoire ; \item et un bureau. \\ % Saut de ligne (\\) licite pour aérer le texte \end{itemize} +\end{codedisplay} -Pour écrire facilement en \LaTeX{}, il faut : +\begin{codedisplay}{Une liste numérotées} +Pour écrire sous \LaTeX{}, il faut : \begin{enumerate} \item Apprendre les bases. @@ -672,7 +670,7 @@ Normalement, tu devrais avoir un résultat un peu différent du mieux : les tire 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} +\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. 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 deleted file mode 100644 index 29e1d9c1c4a..00000000000 --- a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-PST.tex +++ /dev/null @@ -1,550 +0,0 @@ -\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 deleted file mode 100644 index e9a31082a1f..00000000000 --- a/Master/texmf-dist/doc/latex/guide-latex-fr/Chapitres/p3-TikZ.tex +++ /dev/null @@ -1,900 +0,0 @@ -\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 index 7776e83909b..d51bdb85d22 100644 --- 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 @@ -1,3 +1,3 @@ -\chapter{Faire des présentations avec \texttt{Beamer}} +\chapter{Faire des présentations avec \Beamer{}} -\`A venir\dots{} (peut-être 2\up{nd} semestre 2019) \ No newline at end of file +\label{chap-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 index 9e3804d00f2..c19ef67a2e9 100644 --- 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 @@ -1,131 +1,73 @@ -\chapter{Images} +\chapter{Images : de nouvelles subtilités} -\label{chap_img_anx} +\label{chap-img-details}\lettrine{C}{omme} pour les mathématiques, l'insertion d'images sous \LaTeX{} est réalisée sans surprise et sans avoir à connaître des techniques très poussées. -\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} +Cependant, au fur et à mesure de la rédaction de tes documents, tu constateras que tu souhaiteras améliorer certains détails. Voici donc quelques astuces supplémentaires toujours utiles ! -\usepackage[hidelinks, breaklinks, linktoc = all]{hyperref} - -\newcommand{\reffig}[1]{(cf. \figurename{} \ref{#1} p. \pageref{#1})} +\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} \verb?? p. \verb??) \fg{}, d'autant plus que le mot \og \textsc{Figure} \fg{} peut varier selon la classe. -\begin{document} +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 grâce à une commande. \\ -\begin{figure}[H] -\centering -%\includegraphics[width = 0.5\linewidth]{test.png} -\caption{La légende} -\label{essai} -\end{figure} +Mais c'est sans compter sur le package \verb?hyperref? qui propose déjà une commande toute prête à ce sujet : \verb?\autoref{