\chapter{Gestion du texte et mise en forme} \label{chap-texte}\lettrine{M}{aintenant} que nous connaissons les règles de base pour faire du \LaTeX{} et que les packages ont été introduits, nous allons pouvoir commencer à écrire du texte sous \LaTeX{}. \\ \input{./Chapitres/code-base} \section{Notre premier texte} Prêt à enfin écrire un roman ? Bon, nous allons attaquer en douceur. Et, petit à petit, tu auras suffisamment d'outils à ta disposition pour profiter des fonctionnalités offertes par \LaTeX{}. Poursuivons avec le code suivant : \begin{code}{Un nouvel essai} J'aime écrire en \LaTeX{} ! Vraiment ! Surtout avec des phrases longues qui prennent de la place. % Saut de ligne Et toi ? Qu'en est-il ? \\ % Beaucoup d'espace et un nouveau symbole (\\) Pardon ? Tu débutes ? Tu vas voir, c'est facile. % Double saut de ligne \end{code} Tu devrais normalement obtenir : \begin{boite}{Le résultat}{Cerulean} J'aime écrire en \LaTeX{} ! Vraiment ! Surtout avec des phrases longues qui prennent de la place. Et toi ? Qu'en est-il ? \\ Pardon ? Tu débutes ? Tu vas voir, c'est facile. \end{boite} Nous pouvons relever plusieurs points : \begin{itemize}[label = \ding{213}] \item un saut de ligne à l'écran est interprété comme un retour à la ligne ; \item la commande \verb?\\? permet un véritable saut de ligne et donc de créer un nouveau paragraphe ; \item les espaces et saut de ligne intempestifs ne sont pas pris en compte ; \item les alinéas sont automatiques (pas besoin de faire de tabulations). \\ \end{itemize} Contrairement à Word, à première vue, \LaTeX{} possède une façon un peu curieuse d'aller à la ligne ou de faire un saut de ligne (nouveau paragraphe). Mais rappelons que la raison d'être de \LaTeX{} est de séparer le fond de la forme : nous tapons le fond pour laisser \LaTeX{} le mettre en forme lors de la compilation. Mais l'utilisateur garde le contrôle et peut influer sur la forme grâce à des commandes \LaTeX{}. C'est bien ce qui se passe ici. Si l'utilisateur veut un retour à la ligne, il doit sauter une ligne dans son code. S'il veut sauter une ligne, il doit utiliser la commande \verb?\\? et sauter une ligne dans son code. \\ Nous avons aussi pu remarquer que \LaTeX{} gère tous les problèmes liés à l'espacement entre les mots. Il est donc inutile de faire un grand nombre d'espaces ou de saut de ligne pour aérer son texte. Encore une fois, ce n'est pas la politique de \LaTeX{} et il faut passer par des commandes si besoin. Si le saut de ligne est disponible grâce à la commande \verb?\\? -- qui, au passage, est cumulable --, l'utilisateur peut jouer sur l'espacement vertical grâce à la commande \verb?\vspace{longueur}?, avec \verb?v? pour vertical et \verb?space? pour espace. Il en va de même pour un espacement horizontal avec la commande \verb?\hspace{longueur}?. \\ La longueur est totalement libre, à condition de renseigner correctement l'unité : \verb?13mm? ou \verb?215pt?, par exemple. Concrètement, nous pouvons procéder de la manière suivante : \begin{codedisplay}{Gérer l'espacement} J'aime toujours écrire en \LaTeX{}. \vspace{1cm} Surtout \hspace{8mm} quand je laisse du blanc ! \end{codedisplay} Si j'ai rapidement annoncé qu'il était possible de cumuler la commande \verb?\\? pour engendrer la création de plusieurs sauts de ligne, il existe aussi une longueur\footnote{Nous aurons l'occasion de revenir sur ce point en page \pageref{longueurs}.} définie nativement sous \LaTeX{} et qui correspond à un saut de ligne. Cette longueur est disponible grâce à la commande \verb?\baselineskip?. Voyons son utilisation sur un cas pratique : \begin{codedisplay}{Sauts de ligne et longueur \texttt{baselineskip}} Il est possible de sauter plusieurs \\ \\ % Double saut de ligne lignes \\ \\ \\ % Triple saut de ligne ainsi. \vspace{2\baselineskip} % Double saut de ligne Cette solution est aussi possible, tout comme celle-ci ! \\[\baselineskip] % Double saut de ligne Bref, beaucoup de façons de sauter des lignes, de manière plutôt concise. \end{codedisplay} Enfin, sache qu'il est possible de rentrer des valeurs négatives, comme \verb?-13mm? ou \verb?-215pt?. C'est surtout pratique pour remonter du texte lors de montages, voire des images si besoin. Je recommande juste de limiter cette pratique : tu risques de perdre beaucoup de temps à ajuster ton document. \begin{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{attention} Bon, maintenant que nous avons toutes les cartes en main pour écrire des paragraphes, passons à de la mise en forme. \section{Un peu de mise en forme} \label{mise-forme}Comme je l'ai déjà annoncé, avec \LaTeX{}, tu rédiges le fond et lui laisses le soin de s'occuper de la forme. Si nous en avons eu un premier aperçu, tu vas pouvoir t'en rendre véritablement compte dès à présent. Si tu veux mettre un texte en gras ou en italique, il faut donc l'indiquer à \LaTeX{} par le biais de commandes bien spécifiques : \begin{codedisplay}{\textbf{Gras} \& \textit{italique}} \textbf{texte en gras} \\ \textit{texte en italique} \end{codedisplay} Comme tu peux le constater, tu écris la commande -- qui débute par un \textit{backslash} -- et tu encadres le texte concerné par des accolades. Fort heureusement, \LaTeX{} ne propose pas uniquement le gras et l'italique : \begin{table}[H] \caption{Les différentes possibilités de mise en forme du texte} \label{table-mise-forme} \centering \begin{tabular}{lll} \toprule Texte & Rendu & Environnement \\ \midrule \verb?\textbf{gras}? & \textbf{gras} & \verb?bfseries? \\ \verb?\textit{italique}? & \textit{italique} & \verb?itshape? \\ \verb?\emph{emphase}? & \emph{emphase} & \verb?em? \\ \verb?\textsl{penché}? & \textsl{penché} & \verb?slshape? \\ \verb?\textsc{Petites Capitales}? & \textsc{Petites Capitales} & \verb?scshape? \\ \verb?\textsf{sans empattement}? & \textsf{sans empattement} & \verb?sffamily? \\ \verb?\texttt{machine}? & \texttt{machine (à écrire)} & \verb?ttfamily? \\ \bottomrule \end{tabular} \end{table} Je vais revenir plus en détail sur l'emphase, avec la commande \verb?\emph{texte}?, qui ne correspond \emph{pas} à de l'italique. En typographie, l'emphase permet d'accentuer un mot ou une phrase grâce à un style ou une police différente de celle du reste du texte. Essayons avec un exemple répandu de faux texte : le \textit{lorem ipsum}\footnote{Pour plus de renseignements : \url{http://fr.wikipedia.org/wiki/Faux-texte} et \url{http://fr.lipsum.com/}.}. \begin{codedisplay}{L'emphase ou \textit{emphasis}} \textbf{Lorem ipsum dolor sit amet, consectetur adipiscing elit. \emph{Nunc est leo, facilisis non nisi eget,} auctor eleifend metus.} \\ \textit{Vestibulum porttitor, ligula vitae suscipit bibendum, \emph{lorem ligula vestibulum ipsum,} sed ultricies tellus dolor sit amet odio.} \end{codedisplay} Comme tu peux le constater, \LaTeX{} a adapté la mise en forme du texte avec emphase en fonction de la mise en forme du paragraphe ! \\ Voyons maintenant sur un exemple comment augmenter ou réduire la taille de la police, ainsi que les notes de bas de page : \begin{codedisplay}{Taille de police et note de bas de page} % Différentes tailles de texte {\tiny tiny} {\scriptsize scriptsize} {\footnotesize footnotesize} {\small small} {\normalsize normalsize} {\large large} {\Large Large} {\LARGE LARGE} {\huge huge} {\Huge Huge} \\ % Note Note de bas de page\footnote{La note en question.}. \end{codedisplay} Comme tu peux le constater, \LaTeX{} gère lui-même la numérotation des notes de bas de page, sans rien avoir besoin de lui indiquer. Pratique, n'est-ce pas ? \\ Si jamais tu as besoin d'appliquer une mise en forme ou une taille de police à plusieurs paragraphes, \LaTeX{} ne saura pas interpréter le changement de paragraphe. Dans ce cas, il faut passer par un environnement\footnote{Pour la mise en forme du texte, utiliser les noms définis dans la colonne \og Environnement \fg{} de la \tablename{} \ref{table-mise-forme}.} : \begin{codedisplay}{Mise en forme et taille -- Environnement} \begin{Large} Paragraphe 1. Paragraphe 2. \\ \end{Large} \begin{bfseries} Paragraphe 3. Paragraphe 4. \end{bfseries} \end{codedisplay} \LaTeX{} propose aussi un moyen très simple pour accentuer les majuscules. Il suffit d'utiliser un \textit{backslash}, suivi de l'accent désiré. Puis, tu écris ton mot normalement, avec une majuscule. \begin{codedisplay}{Accentuation} % Accent sur les majuscules \'E, \`E, \^E et \c{C} \\ % "o pris dans e" \OE{}il, c\oe{}ur \end{codedisplay} Il existe aussi des commandes spécifiques pour des symboles fréquemment utilisés. Je pense notamment aux guillemets et aux points de suspension. La preuve par l'exemple : \begin{codedisplay}{Autres symboles utiles} % Guillemets \og guillemets français \fg{} et ``guillemets anglais'' \\ % Points de suspension Points de suspension\dots{} \\ % Tirets Tiret court : - \\ Tiret moyen : -- \\ Tiret long : --- \\ % Esperluette - Pourcentage \& et \textit{\&} ; \% \end{codedisplay} Une liste plus complète des symboles utiles sous \LaTeX{} est disponible en annexes, p. \pageref{annexes-liste-symboles}. Nous remarquons au passage que le \textit{backslash} sert aussi de \textbf{caractère d'échappement} pour tous les symboles utilisés lors de l'écriture du code \LaTeX{} (\&, \$, \#, \_, \{ ou \} par exemple). \begin{conseil}{Les marges} Les gens me demandent souvent comment modifier les marges sous \LaTeX{}. Personnellement, j'ai fini par m'habituer aux marges natives de \LaTeX{} : je les modifie donc que pour des besoins très particuliers. \\ Si tu tiens à savoir pourquoi les marges sont plus grandes que celles d'un document Word, c'est parce que \LaTeX{} a initialement été inventé par des Américains (conventions américaines). De plus, \LaTeX{} sert pour rédiger des rapports scientifiques : leur reliure demande alors une marge plus importante s'ils sont épais. \\ Autrement, si tu as absolument besoin de modifier les marges de ton document, je te recommande le package \verb?geometry?, ainsi que la page suivante : \url{http://fr.wikibooks.org/wiki/LaTeX/Mise_en_page#Modification_des_marges}. \end{conseil} Bien, nous avons fait un premier tour d'horizon des premières possibilités offertes par \LaTeX{} pour mettre en forme le texte. Passons à un peu d'organisation. \section{Organiser son document} \subsection*{La base} Taper du texte brut, c'est bien. Mais mettre des titres, c'est mieux. Là encore, rien à gérer. \LaTeX{} met en forme le titre selon son importance et s'occupe de la numérotation. Par ordre d'importance, nous pouvons avoir : \begin{itemize}[label = \ding{213}] % Emploi de \verb?\? ou c'est le bordayl dans la structure de Texmaker \begin{multicols}{2} \raggedcolumns \item \verb?\?\verb?part{titre}? ; \item \verb?\?\verb?chapter{titre}? ; \item \verb?\?\verb?section{titre}? ; \item \verb?\?\verb?subsection{titre}? ; \item \verb?\?\verb?subsubsection{titre}? ; \item \verb?\?\verb?paragraph{titre}? ; \item \verb?\?\verb?subparagraph{titre}?. \\ \end{multicols} \end{itemize} \begin{attention}{\textit{Nota Bene}} La commande \verb?\part? n'est disponible que pour un document de classe \verb?report? (cf. \ref{documentclass} \nameref{documentclass} p. \pageref{documentclass}). \\ De même, la commande \verb?\chapter? n'est valable que pour les classes \verb?book? et \verb?report?. \end{attention} Si tu veux sauter une page, la commande \verb?\newpage? est là. Un exemple d'organisation serait donc : \begin{code}{Exemple d'organisation} % Enlever les % ici %\part{Partie I} %\section{Section 1.1} Comment est-ce numéroté ? %\section{Section 1.2} D'une manière bizarre ! %\part{Partie II} %\chapter{Chapitre 1} %\section{Section 1.1} Lorem ipsum\dots{} \newpage Bis repetita\dots{} \end{code} \subsection*{Configuration de la numérotation} Comme tu peux le constater, il y a quelques problèmes de numérotation. Si les compteurs tournent normalement, il faut juste donner un coup de pouce à \LaTeX{} pour faire correctement les choses. Retente le même code avec ces commandes dans le préambule : \begin{code}{La numérotation des titres} % ATTENTION : écriture de ces commandes dans le PREAMBULE !!! % RAZ des numéros de section après un chapitre \makeatletter\@addtoreset{section}{chapter}\makeatother % Pour mettre des I, II, etc. aux parties \renewcommand{\thepart}{\Roman{part}} % Pour mettre des 1, 2, etc. aux chapitres \renewcommand{\thechapter}{\arabic{chapter}} % Idem pour les sections et avoir le numéro de chapitre \renewcommand{\thesection}{\thechapter.\arabic{section}} \end{code} Il existe plusieurs possibilités pour numéroter les différents titres de ton document. La liste complète des commandes utilisables est la suivante : \begin{itemize}[label = \ding{118}] \item \verb?\arabic? : pour avoir des chiffres arabes soit 1, 2, 3\dots{} ; \item \verb?\roman? : pour avoir des chiffres romains minuscules soit i, ii, iii\dots{} ; \item \verb?\Roman? : pour avoir des chiffres romains majuscules soit I, II, III\dots{} ; \item \verb?\alph? : pour avoir des lettres minuscules soit a, b, c\dots{} ; \item \verb?\Alph? : pour avoir des lettres majuscules soit A, B, C\dots{}. \end{itemize} \subsection*{Titre sans numérotation} Enfin, dans le cas où tu veux juste écrire un titre sans numéro, il suffit d'ajouter une \verb?*? à la commande du titre : \verb?\?\verb?part*{titre}?, etc. \\ Bon, c'est bien gentil d'avoir des titres. Comment obtenir un sommaire désormais ? \section{Gestion du sommaire} \subsection*{La base} Pour une fois, nouvelle option, pas de nouveau package. Pour le sommaire, tout est déjà inclus de base dans \LaTeX{}. Pour l'afficher, il faut juste renseigner dans le code la commande \verb?\tableofcontents?, à l'endroit où tu désires placer le sommaire. \begin{attention}{Un problème ?} \og J'ai lancé la compilation du sommaire mais rien ne s'affiche hormis \verb?Table des matières?. Est-ce normal ? \fg{} \\ Oui. Dès lors que tu génères un sommaire, il faut \textbf{toujours compiler deux fois} pour obtenir le résultat final attendu. \`A la première compilation, \LaTeX{} créé un nouveau fichier, d'extension \verb?.toc?, où il stocke le sommaire. \`A la seconde, il regarde si un tel fichier existe et, dans ce cas, récupère les informations pour générer le sommaire. \end{attention} \begin{attention}{Une question ?} \og Je ne veux pas lire \verb?Table des matières? mais \verb?Sommaire?. Est-ce possible ? \fg{} \\ Oui, tout à fait. C'est possible avec la commande suivante, dans le corps du texte, juste avant \verb?\tableofcontents? par exemple : \begin{center} \verb?\renewcommand{\contentsname}{Sommaire}? \end{center} \end{attention} \subsection*{Le nec plus ultra} Avoir un sommaire, c'est bien. Pouvoir interagir avec, c'est encore mieux ! Pour pouvoir se déplacer rapidement dans le document grâce à un clic sur un titre du sommaire, il faut utiliser un nouveau package : \verb?hyperref?. Cependant, le résultat par défaut n'est pas très esthétique et peut entraîner une crise d'épilepsie aux plus sensibles, c'est pourquoi je recommande d'utiliser l'option \verb?colorlinks?\footnote{Si tu ne me crois pas, génères un sommaire avec juste le package \verb?hyperref?, sans option, et regarde le rendu du fichier PDF. Tu comprendras.}. Mais \verb?hyperref? va beaucoup plus loin et permet de personnaliser les options de lecture par défaut du PDF généré. C'est pourquoi je recommande d'utiliser aussi les nombreuses options comme indiqué dans l'exemple ci-après. \\ Ce même package permet d'indiquer des adresses Internet grâce à la commande \verb?\url{adresse_internet}?. En revanche, si certains liens sont trop longs et finissent en fin de ligne, ils sortent de la page. Ajouter \verb?breaklinks? dans les options du package \verb?hyperref? permet de résoudre le problème. Des fois, charger le package supplémentaire \verb?url?, avec l'option \verb?hyphens?, est obligatoire pour traiter les derniers cas de figure problématiques. \begin{code}{Le sommaire -- Bilan} % Ajout au PREAMBULE \usepackage[hyphens]{url} % Pour des césures correctes dans les URLs \usepackage[pdfauthor = {{Prénom Nom}}, pdftitle = {{Titre document}}, pdfstartview = Fit, pdfpagelayout = SinglePage, pdfnewwindow = true, bookmarksnumbered = true, breaklinks, colorlinks, linkcolor = red, urlcolor = black, citecolor = cyan, linktoc = all]{hyperref} % Renvois -- Options Adobe/lecteur PDF \begin{document} % Page de garde % Sommaire -- Penser à compiler deux fois { \hypersetup{hidelinks} % Sommaire en "noir" \renewcommand{\contentsname}{Sommaire} % Remplacer "Table des matières" \tableofcontents % Affichage du sommaire } % Si nécessaire %\clearpage % Mieux qu'un \newpage ou des erreurs dans le sommaire parfois % Parties, chapitres, texte, etc. % Commande fournie avec le package hyperref \url{https://www.ctan.org/} \end{document} \end{code} Pour revenir rapidement sur les options du package \verb?hyperref?, en voici un descriptif : \begin{itemize}[label = \ding{213}] \item \verb?pdfauthor? \& \verb?pdftitle? : pour renseigner correctement les champs des options du fichier PDF. Il est possible de remplir les autres champs disponibles : cf. la documentation du package \verb?hyperref?\footnote{Et comme je suis adorable, voici le lien : \url{https://www.ctan.org/pkg/hyperref}.} ; \item \verb?pdfstartview? \& \verb?pdfpagelayout? : pour les options d'affichage du PDF à sa lecture. Pour connaître toutes les options disponibles, cf. la documentation du package \verb?hyperref? ; \item \verb?pdfnewwindow = true? : si ton document contient un lien vers un autre fichier PDF, cliquer sur le lien entraîne l'ouverture du PDF dans un nouvel onglet (et non à la place du premier PDF) ; \item \verb?bookmarksnumbered? : pour les signets du lecteur PDF ; \item \verb?breaklinks? : pour permettre la césure des liens insérés trop longs ; \item \verb?colorlinks? et toutes les couleurs qui suivent : pour colorer correctement les références du document ; \item \verb?linktoc = all? : pour faire un renvoi du sommaire avec les numéros de page. \end{itemize} \subsection*{Ajout d'un titre étoilé} Enfin, dans le cas des titres étoilés, ces derniers n'apparaissent pas dans le sommaire. Il existe malgré tout un moyen de l'ajouter manuellement, si tu y tiens. Cette solution requiert l'utilisation du package \verb?hyperref?, que nous connaissons déjà. \begin{code}{Ajout d'un titre étoilé dans le sommaire} % Ajout dans le préambule %\usepackage{hyperref} % Ajout d'un titre sans numéro % Penser à enlever le % la ligne en dessous %\section*{Introduction} % Les titres doivent correspondre \phantomsection % Renvoi correct dans le sommaire \addcontentsline{toc}{section}{Introduction} % Ajout dans le sommaire Lorem ipsum dolor\dots{} \end{code} La ligne avec la commande \verb?\addcontentsline...? sert à implémenter dans le fichier \verb?.toc? (fichier qui gère le sommaire) le titre \verb?Introduction? en tant que \verb?section? (\verb?part? si partie, \verb?chapter? si chapitre, etc.). Le numéro de page correspond à l'endroit où est tapée la commande, d'où son positionnement \textbf{après} \verb?\section*?, pour éviter une mauvaise numérotation si le titre étoilé débute sur une nouvelle page. Il faut donc faire bien attention avec cette situation pour garantir la cohérence du document : il faut renseigner le même titre dans \verb?\section*? et dans \verb?\addcontentsline...?. C'est pourquoi, personnellement, j'utilise les titres étoilés le moins possible. \\ Bon, maintenant que nous avons un magnifique sommaire, est-il possible d'ajouter une page de garde ? \section{La page de garde} \subsection*{La base} Comme pour le sommaire, il faut d'abord créer la page de garde puis indiquer à \LaTeX{} de l'afficher. Pour la créer, il faut remplir les informations suivantes : \begin{code}{La page de garde -- Création} % Ajout dans le préambule ou après \begin{document} % Titre \title{Titre} %\title{\textbf{Titre}} % Ressort mieux selon moi % Auteur \author{Prénom \textsc{Nom} \\ Profession} % Date \date{\today} % Date du jour (compilation du document) %\date{date_à_afficher} % Date fixe \end{code} Naturellement, tout n'a pas besoin d'être renseigné. Si tu veux uniquement le titre, tu laisses juste la commande \verb?\title{Titre}?. \begin{conseil}{La petite astuce} S'il y a plusieurs auteurs dans ton document, tu peux tous les indiquer. Il faut juste les séparer par un \verb?\and?, ce qui donne : \begin{center} \verb?\author{Nom1 \and Nom2 \and Nom3}? \end{center} \LaTeX{} s'occupe ensuite de la mise en forme de tous ces noms. Pratique, n'est-ce pas ? \end{conseil} Pour afficher la page de garde, il faut ensuite renseigner dans le corps du document la commande \verb?\maketitle?, de préférence dès le début. Mais, tu devrais te rendre compte, après compilation, que, si tu demandes à ton lecteur de fichier PDF d'aller à la page $N$, tu te retrouves en page $N + 1$. C'est parce que \LaTeX{} ne numérote pas la page de garde et commence ensuite la numérotation à $1$ au lieu de $2$\dots{} C'est peut-être un détail mais, personnellement, je trouve extrêmement irritant d'aller dans le sommaire, de trouver le numéro de page de la section qui t'intéresse, de la saisir dans ton lecteur PDF\dots{} et d'arriver à la mauvaise page ! Fort heureusement, il suffit d'ajouter après \verb?\maketitle? la commande \verb?\setcounter{page}{2}?, pour réajuster correctement la numérotation des pages. \\ S'il fallait synthétiser les différentes options de base pour la page de garde, nous pourrions alors nous servir du code suivant : \begin{code}{La page de garde -- Bilan} \documentclass[a4paper, 12pt]{report} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} \usepackage{lmodern} \begin{document} % Informations de la page de garde \title{\textbf{Initiation à \LaTeX{}} \\ \textit{Pour débutants ou jeunes utilisateurs}} \author{Adrien \textsc{Bouzigues} \\ Salarié \and John \textsc{Doe} \\ Profession} \date{\today} % Générer la page de garde \maketitle % Changer le titre du résumé %\renewcommand{\abstractname}{\Large{}\textbf{Résumé}} % Résumé \begin{abstract} Résumé du document \end{abstract} % Classe report : sur une page à part % Classe article : sur la page de garde (si pas de newpage) \clearpage\setcounter{page}{2} Lorem ipsum dolor\dots{} \end{document} \end{code} \begin{attention}{Une question ?} \og Ce n'est pas pratique ta page de garde. C'est sobre, impossible de mettre une image ! Est-il possible d'avoir mieux \fg{} \\ \dots{} Tu as parfaitement raison ! Il est tout à fait possible d'avoir une page de garde plus personnelle et plus décorée. Pour satisfaire ta curiosité, je te propose une première solution ``simple'' à utiliser. \\ \textbf{Mais prends garde !} Dès l'instant où tu commences à arpenter ce chemin -- construire une page spécifique à partir de rien --, tu peux très vite y passer beaucoup de temps. \LaTeX{} n'est pas un outil de création graphique à la base. Pour un rapport officiel ou si le temps t'est précieux, je recommande d'utiliser les commandes de base que je viens de présenter. Autrement, tu peux te permettre, comme je le fais pour ce guide, de construire ta propre page personnalisée. Il n'y a pas une seule bonne façon de faire et tout dépend de ce que tu veux faire. \end{attention} \subsection*{Personnalisation de la page de garde} Comme promis, voici un exemple ``simple'' pour avoir une première page de garde personnalisable. Les possibilités sont très nombreuses avec \LaTeX{} : tout dépend donc de ce que tu veux faire. \begin{code}{Une solution personnalisable} \documentclass[a4paper, 12pt]{report} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[french]{babel} \usepackage{lmodern} \usepackage{graphicx} % Pour insérer une image (logo) % cf. les chapitres suivants pour plus de détails \begin{document} % Auteur : WikiBooks (http://en.wikibooks.org/wiki/LaTeX/Title_Creation) % License : CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) % Adaptation du document d'origine % Environnement titlepage : permet de créer une page de garde et de la personnaliser à volonté \begin{titlepage} \newcommand{\HRule}{\rule{\linewidth}{0.5mm}} % Ligne horizontale (épaisseur modifiable) \begin{center} % Centrer le contenu de la page % En-têtes \textsc{\LARGE{}Université} \\[1.5cm] \textsc{\Large{}En-tête principal} \\[0.5cm] % Nom du cursus (par exemple) \textsc{\large{}En-tête secondaire} \\[0.5cm] % Intitulé du cours (par exemple) % Titre \HRule \\[0.6cm] {\huge\bfseries{}Titre} \\[0.25cm] \HRule \\[1.5cm] % Auteur \begin{minipage}{0.45\linewidth} \begin{flushleft} \Large\textit{Auteur :} \\ John \textsc{Smith} % Nom auteur \end{flushleft} \end{minipage} \hfill \begin{minipage}{0.45\linewidth} \begin{flushright} \Large\textit{Superviseur :} \\ Dr. John \textsc{Smith} % Nom superviseur \end{flushright} \end{minipage} \\[2cm] % Si aucun superviseur, utiliser les lignes ci-après et supprimer les lignes précédentes %\Large\textit{Auteur :} \\ %John \textsc{Smith} \\[3cm] % Nom auteur % Date {\large\today} \\[2cm] % Date : \today ou date saisie à la main % Logo %\includegraphics{logo.png} \\[1cm] % Logo à utiliser \end{center} \vfill % Remplir le reste de la page avec du blanc \end{titlepage} \clearpage\setcounter{page}{2} Lorem ipsum dolor\dots{} \end{document} \end{code} Allez, faisons une petite pause sur la mise en forme pour étudier un point un peu abstrait mais extrêmement puissant et nécessaire pour poursuivre. \section{Création de commandes} Il peut arriver que tu aies besoin de cumuler des commandes, et ce, un très grand nombre de fois. \LaTeX{} t'offre pour cela la possibilité d'en créer de nouvelles. Pour ce faire, il suffit d'ajouter la ligne suivante, de préférence dans le préambule même si tu peux l'insérer n'importe où dans ton document (avant le premier appel de ta nouvelle commande) : \begin{center} \verb?\newcommand{nom_commande}[nombre_arguments]{commande}? \end{center} \'Etudions son fonctionnement avec un exemple. Disons que je veuille mettre un mot (ou un groupe de mots) en gras et en italique. Je vais donc procéder ainsi : \begin{code}{Une première commande} \documentclass[a4paper, 12pt]{report} \usepackage{lmodern} \usepackage[french]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \newcommand{\grasital}[1]{\textbf{\textit{#1}}} % Le nom de la commande commence par "\" % La position de l'argument se fait avec un "#" et son numéro \begin{document} J'aime le chocolat ! \\ \grasital{J'aime le chocolat !} \\ J'aime le \grasital{chocolat} ! \end{document} \end{code} Note bien qu'il peut y avoir aucun argument comme plusieurs, avec une limite de 9. Si l'utilisation avec plusieurs arguments sera plus concrète lorsque nous aborderons les mathématiques, voici un cas sans argument : \begin{codedisplay}{Un second cas} % Création de la commande après \begin{document} : OK \newcommand{\SAV}{\textbf{Service Après-Vente}} Notre \SAV vous aide. \\ Grâce à notre \SAV, vous serez comblés. \end{codedisplay} J'ai décidé de mettre le texte en gras, mais rien ne m'empêche en cours de rédaction de mon rapport de modifier ce choix. L'avantage ? Tu as juste à modifier la commande et, lors de la compilation, la modification se répercute sur tout le document ! Pratique, non ? \textbf{C'est aussi pourquoi je recommande de placer tous les \verb?newcommand? dans le préambule :} c'est plus pratique pour les retrouver s'ils sont tous au même endroit, au lieu d'être dispersés dans le document. \begin{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. \\ 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{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é. \\ Bien, continuons. C'est quoi déjà la suite ? Ah oui, les listes. \section{Les listes} \subsection*{La base} Les listes (à puces ou numérotées) sont très 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), 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?}. \\ 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}{Une liste à puces} Détail de la chambre : \begin{itemize} \item un lit ; % 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} \begin{codedisplay}{Une liste numérotées} Pour écrire sous \LaTeX{}, il faut : \begin{enumerate} \item Apprendre les bases. \item Pratiquer les bases. \item \^Etre curieux ! \end{enumerate} % Imbrication des environnements (et donc des listes) possible \end{codedisplay} Normalement, tu devrais avoir un résultat un peu différent du mieux : les tirets sont plus grands et tes numéros se terminent par un point et non par une parenthèse. Tout va bien ! J'ai juste une configuration par défaut de \LaTeX{} qui génère ce rendu. Tu peux donc constater que créer des listes sous \LaTeX{} se révèle très facile. Voyons maintenant comment les personnaliser à notre guise ? \subsection*{Personnalisation des listes} Pour personnaliser ses listes, il existe un package incontournable : le package \verb?enumitem?. Combiné avec le package \verb?pifont? pour obtenir des symboles supplémentaires et donc avoir de nouvelles puces, c'est la meilleure combinaison possible pour personnaliser simplement ses listes. Concrètement, le package \verb?enumitem? offre quelques options, dont les suivantes que je recommande particulièrement : \begin{itemize}[label = \ding{213}] \item \verb?label = puce? : pour changer la puce ou la numérotation utilisée ; \item \verb?leftmargin = *? : pour supprimer l'indentation de la liste ; \item \verb?itemsep = ? : pour insérer \verb?? entre 2 puces. C'est plus commode ainsi que de devoir sauter des lignes avec \verb?\\[]? à chaque fin de puce. \end{itemize} Pour ce qui est du package \verb?pifont?, son utilisation est très simple. Il faut utiliser la commande \verb?\ding{}? avec \verb?? pris dans la liste ci-après pour afficher un symbole du package. \begin{table}[H] \centering \caption{Liste des symboles du package \texttt{pifont}} \renewcommand{\arraystretch}{1} \resizebox{!}{52mm}{\begin{tabular}{*{7}{cc|}cc} 32 & \ding{32} & 33 & \ding{33} & 34 & \ding{34} & 35 & \ding{35} & 36 & \ding{36} & 37 & \ding{37} & 38 & \ding{38} & 39 & \ding{39} \\ 40 & \ding{40} & 41 & \ding{41} & 42 & \ding{42} & 43 & \ding{43} & 44 & \ding{44} & 45 & \ding{45} & 46 & \ding{46} & 47 & \ding{47} \\ 48 & \ding{48} & 49 & \ding{49} & 50 & \ding{50} & 51 & \ding{51} & 52 & \ding{52} & 53 & \ding{53} & 54 & \ding{54} & 55 & \ding{55} \\ 56 & \ding{56} & 57 & \ding{57} & 58 & \ding{58} & 59 & \ding{59} & 60 & \ding{60} & 61 & \ding{61} & 62 & \ding{62} & 63 & \ding{63} \\ 64 & \ding{64} & 65 & \ding{65} & 66 & \ding{66} & 67 & \ding{67} & 68 & \ding{68} & 69 & \ding{69} & 70 & \ding{70} & 71 & \ding{71} \\ 72 & \ding{72} & 73 & \ding{73} & 74 & \ding{74} & 75 & \ding{75} & 76 & \ding{76} & 77 & \ding{77} & 78 & \ding{78} & 79 & \ding{79} \\ 80 & \ding{80} & 81 & \ding{81} & 82 & \ding{82} & 83 & \ding{83} & 84 & \ding{84} & 85 & \ding{85} & 86 & \ding{86} & 87 & \ding{87} \\ 88 & \ding{88} & 89 & \ding{89} & 90 & \ding{90} & 91 & \ding{91} & 92 & \ding{92} & 93 & \ding{93} & 94 & \ding{94} & 95 & \ding{95} \\ 96 & \ding{96} & 97 & \ding{97} & 98 & \ding{98} & 99 & \ding{99} & 100 & \ding{100} & 101 & \ding{101} & 102 & \ding{102} & 103 & \ding{103} \\ 104 & \ding{104} & 105 & \ding{105} & 106 & \ding{106} & 107 & \ding{107} & 108 & \ding{108} & 109 & \ding{109} & 110 & \ding{110} & 111 & \ding{111} \\ 112 & \ding{112} & 113 & \ding{113} & 114 & \ding{114} & 115 & \ding{115} & 116 & \ding{116} & 117 & \ding{117} & 118 & \ding{118} & 119 & \ding{119} \\ 120 & \ding{120} & 121 & \ding{121} & 122 & \ding{122} & 123 & \ding{123} & 124 & \ding{124} & 125 & \ding{125} & 126 & \ding{126} \\ & & 161 & \ding{161} & 162 & \ding{162} & 163 & \ding{163} & 164 & \ding{164} & 165 & \ding{165} & 166 & \ding{166} & 167 & \ding{167} \\ 168 & \ding{168} & 169 & \ding{169} & 170 & \ding{170} & 171 & \ding{171} & 172 & \ding{172} & 173 & \ding{173} & 174 & \ding{174} & 175 & \ding{175} \\ 176 & \ding{176} & 177 & \ding{177} & 178 & \ding{178} & 179 & \ding{179} & 180 & \ding{180} & 181 & \ding{181} & 182 & \ding{182} & 183 & \ding{183} \\ 184 & \ding{184} & 185 & \ding{185} & 186 & \ding{186} & 187 & \ding{187} & 188 & \ding{188} & 189 & \ding{189} & 190 & \ding{190} & 191 & \ding{191} \\ 192 & \ding{192} & 193 & \ding{193} & 194 & \ding{194} & 195 & \ding{195} & 196 & \ding{196} & 197 & \ding{197} & 198 & \ding{198} & 199 & \ding{199} \\ 200 & \ding{200} & 201 & \ding{201} & 202 & \ding{202} & 203 & \ding{203} & 204 & \ding{204} & 205 & \ding{205} & 206 & \ding{206} & 207 & \ding{207} \\ 208 & \ding{208} & 209 & \ding{209} & 210 & \ding{210} & 211 & \ding{211} & 212 & \ding{212} & 213 & \ding{213} & 214 & \ding{214} & 215 & \ding{215} \\ 216 & \ding{216} & 217 & \ding{217} & 218 & \ding{218} & 219 & \ding{219} & 220 & \ding{220} & 221 & \ding{221} & 222 & \ding{222} & 223 & \ding{223} \\ 224 & \ding{224} & 225 & \ding{225} & 226 & \ding{226} & 227 & \ding{227} & 228 & \ding{228} & 229 & \ding{229} & 230 & \ding{230} & 231 & \ding{231} \\ 232 & \ding{232} & 233 & \ding{233} & 234 & \ding{234} & 235 & \ding{235} & 236 & \ding{236} & 237 & \ding{237} & 238 & \ding{238} & 239 & \ding{239} \\ & & 241 & \ding{241} & 242 & \ding{242} & 243 & \ding{243} & 244 & \ding{244} & 245 & \ding{245} & 246 & \ding{246} & 247 & \ding{247} \\ 248 & \ding{248} & 249 & \ding{249} & 250 & \ding{250} & 251 & \ding{251} & 252 & \ding{252} & 253 & \ding{253} & 254 & \ding{254} \end{tabular}} \renewcommand{\arraystretch}{1.3} \end{table} Mais le plus appréciable avec ce package \verb?enumitem?, c'est la possibilité de configurer globalement les liste dès le préambule (\verb?\setlist?), voire d'en créer de nouvelles avec ces propres règles, puces, distances, etc. (\verb?\newlist?). Voici un rapide aperçu des possibilités désormais accessibles en quelques touches de clavier : \begin{codedisplay}{Des listes proprement personnalisables} % Ajout dans le préambule %\usepackage{enumitem, pifont} %\setlist[itemize, 1]{label = {--}, itemsep = \baselineskip} %\setlist[enumerate, 1]{label = \arabic*), itemsep = \baselineskip} J'ai envie de dire : \begin{itemize} \item une chose ; \item[\ding{118}] avec une puce ponctuelle ! \\ \end{itemize} Je peux aussi énumérer : \begin{enumerate}[label = {\bfseries{}\'Etape \Alph* :}, leftmargin = *] \item marcher ; \item lire ; \item écrire. \end{enumerate} \end{codedisplay} OK pour toi ? Toujours d'attaque ? Finissons désormais ce chapitre sur la gestion du texte. \section{Une petite touche de couleur ?} Nous avons vu beaucoup d'éléments de mise en page et de mise en forme du texte mais tu conviendras qu'avoir un gros pavé en noir peut parfois être rebutant à la lecture. Pour mettre un peu de couleur, il faut \textcolor{red}{d'abord charger le package \verb?xcolor?} puis utiliser la \textcolor{Green}{commande :} \begin{center} \verb?\textcolor{nom_couleur}{texte}? \end{center} Les couleurs de base disponibles pour \verb?nom_couleur? sont alors les suivantes : \begin{itemize}[label = \ding{213}] \begin{multicols}{3} \item \textcolor{red}{\verb?red?} ; \item \textcolor{green}{\verb?green?} ; \item \textcolor{blue}{\verb?blue?} ; \item \textcolor{cyan}{\verb?cyan?} ; \item \textcolor{magenta}{\verb?magenta?} ; \item \textcolor{yellow}{\verb?yellow?} ; \item \textcolor{orange}{\verb?orange?} ; \item \textcolor{violet}{\verb?violet?} ; \item \textcolor{purple}{\verb?purple?} ; \item \textcolor{brown}{\verb?brown?} ; \item \verb?black? ; \item \textcolor{darkgray}{\verb?darkgray?} ; \item \textcolor{gray}{\verb?gray?} ; \item \textcolor{lightgray}{\verb?lightgray?} ; \item \colorbox{black}{\textcolor{white}{\verb?white?}}. \end{multicols} \end{itemize} \vspace{\baselineskip} % Pas de \\ dans le itemize ou déséquilibre du multicols Si jamais tu trouves qu'il n'y a pas assez de couleurs, tu peux utiliser l'option \verb?dvipsnames? dans le package (\verb?\usepackage[dvipsnames]{xcolor}?) puis te référer à la \textsc{Figure} \ref{dvipsnames} pour \verb?nom_couleur? : \begin{figure}[H] \includegraphics[width = \linewidth]{Aide_LaTeX2.png} \caption{Les couleurs avec dvipsnames} \label{dvipsnames} \end{figure} Enfin, si jamais tu trouves que tu n'as toujours pas assez de couleur pour laisser ton talent artistique s'exprimer, sache qu'il est possible d'en créer dans le préambule avec la commande : \begin{center}\verb?\definecolor{nom_couleur}{modèle}{def_couleur}? \end{center} Le \verb?modèle? correspond à \verb?RGB? par exemple et \verb?def_couleur? à \verb?255,215,0? (couleur or). Pour plus de renseignements quant à cette commande, tu peux consulter la page suivante : \url{http://fr.wikibooks.org/wiki/LaTeX/Options_de_mise_en_forme_avanc\%C3\%A9es#Mod.C3.A8les_de_couleur}. \\ {\bfseries\color{cyan}{}Tu peux aussi renseigner \verb?nom_couleur? ou \verb?def_couleur? par l'intermédiaire de mélanges de couleur.} Pour ce faire, il faut utiliser la \textcolor{Green}{syntaxe \verb?couleurA!x!couleurB?,} pour $\mathtt{x} \in [0\,;\,100]$, qui te permet de mélanger $\mathtt{x}$ \% de \verb?couleurA? et $(100 - \mathtt{x})$ \% de \verb?couleurB?. \\ Sache qu'il existe aussi des commandes comme \verb?\colorbox? ou \verb?\pagecolor?. Je te laisse aller te renseigner si tu es intéressé pour te laisser un peu en autonomie. \\ \\ Cette fois, nous en avons fini avec le texte et sa mise en forme. Tout d'abord, une référence s'impose : \begin{figure}[H] \centering \includegraphics[width = 0.7\linewidth]{Aide_LaTeX3.png} \caption{Non, je ne suis pas un fan d'Evangelion !} \end{figure} Toujours des nôtres ? Si tu te sens prêt, nous allons pouvoir aborder un nouveau chapitre !