Des packages pour le contenu
Comprendre la structure modulaire de LaTeX
Avant de commencer à étudier un certain nombre de packages, rappelons la structure modulaire de LaTeX. Le programme LaTeX est composé d’un « noyau » contenant toutes les commandes essentielles pour rédiger et concevoir des ouvrages de qualité. Mais, bien sûr, LaTeX ne peut convenir à tous les projets de rédaction possibles de tous les rédacteurs. C’est pour cela qu’il est extensible avec l’ajout de programmes complémentaires nommés modules en français, mais plus communément appelés packages en anglais.
C’est ce qui fait l’une des grandes forces de LaTeX : vous pouvez concevoir votre propre « logiciel » de rédaction pour chaque projet différent. Avec LaTeX, vous disposez d’une application modulable à la carte. Et tout ceci gratuitement bien sûr !
Appliquer des couleurs au texte
1. Installer le package color
Nativement, LaTeX ne gère pas les couleurs. Donc vous ne pouvez pas mettre une sélection de mots en rouge, en vert, en bleu… Pour ce faire, il faut utiliser un package. Nous allons utiliser le package color, qui est simple et efficace. Voici son URL sur le site du CTAN : https://www.ctan.org/pkg/color. Vous trouverez un fichier PDF sur l’utilisation de ce package.
Pour installer le package color, utilisez la commande \usepackage. Pour utiliser le package color il faut obligatoirement spécifier le moteur de rendu en sortie : dvipdfm, pdftex, xetex… Voici la syntaxe à utiliser avec le moteur de rendu pdftex :
\usepackage[pdftex]{color}
2. Définir des couleurs
Les couleurs sont définies dans le préambule, à partir de quatre modèles colorimétriques différents.
-
rgb (Red Green Blue) : c’est le modèle RVB en français, pour Rouge, Vert et Bleu. Chaque composante colorimétrique s’exprime sur une échelle de 0 à 1. 0 indique qu’il n’y a pas de cette couleur, 1 indique qu’il y a 100 % de cette couleur.
-
cmjn (Cyan Magenta Yellow Black) : c’est le modèle Cyan, Magenta, Jaune et Noir en français. À nouveau, chaque composante prend une valeur entre 0 et 1.
-
gray : c’est le modèle de l’échelle de gris....
Insérer des liens hypertextes
1. Installer le package hyperref
Le rendu et la production finale et principale des documents LaTeX sont au format PDF. Ce format propose nativement d’exploiter les liens hypertextes internes et externes. Les liens internes permettent de créer une navigation au sein du document à l’aide de renvois, et vous pourrez, notamment, générer une table des matières à partir des titres des documents. Les liens externes permettent d’ouvrir la page web d’un site Internet directement depuis une page PDF.
Pour exploiter toutes ces fonctionnalités, nous allons utiliser le package hyperref : https://www.ctan.org/pkg/hyperref
La procédure d’installation dans le préambule est toujours la même :
\usepackage{hyperref}
Attention, ce package redéfinit les commandes natives de renvois de LaTeX : \label, \ref et \pageref. Donc il faudra aussi faire attention qu’un autre package ne vienne pas à son tour changer le comportement de ces commandes.
Enfin, notez bien que le package hyperref est compatible avec les moteurs de rendu pdftex, tex/dvips/ps2pdf et tex/dvipdfm. Si besoin est, vous pouvez le préciser comme paramètre facultatif :
\usepackage[pdftex]{hyperref}
2. Créer un lien hypertexte externe
Pour créer un lien hypertexte externe au document, utilisez la commande \href{URL}{Texte...
Afficher du code informatique avec le package listings
1. Installer le package listings
Il est extrêmement courant d’avoir, dans les livres techniques, du code informatique. Pour l’afficher au mieux, vous devez utiliser un package. Je vous propose d’exploiter le package listings : https://www.ctan.org/pkg/listings. Il possède de très nombreuses options pour paramétrer l’affichage du code informatique. Nous n’allons pas tout étudier bien sûr, à vous de lire la documentation associée pour exploiter tout le potentiel de ce package.
La procédure d’installation dans le préambule est toujours la même :
\usepackage{listings}
2. Insérer du code informatique
Dans votre document, le code informatique s’insère dans l’environnement \begin{lstlisting}. Voici l’exemple initial :
...
\begin{lstlisting}
add_theme_support(
'custom-logo',
array(
'height' => $logo_height,
'width' => $logo_width,
'flex-height' => true,
'flex-width' => true,
)
);
\end{lstlisting}
...
Voici l’affichage brut...
Personnaliser les listes avec le package enumitem
1. Installer et paramétrer le package enumitem
Le package enumitem permet de personnaliser les listes à puces et les listes numérotées. Comme toujours, ce package se déclare dans le préambule :
\usepackage{enumitem}
Sachez qu’il existe certains cas d’utilisation où il peut avoir des conflits avec le package Babel en français. Il convient donc d’ajouter la commande \frenchbsetup{StandardLists=true} avant le package enumitem.
Voici un préambule complet :
\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
% Pour éviter les conflits entre babel et enumitem
\frenchbsetup{StandardLists=true}
% Ajout enumitem
\usepackage{enumitem}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
2. Les listes à puces
Le package enumitem utilise les environnements standards des listes, en ajoutant des paramètres de personnalisation.
Voici une liste à puces simple :
Ma première liste de fruits :
\begin{itemize}
\item Pommes
\item Poires
\item Fraises
\item Kiwis
\end{itemize}
Voici l’affichage initial obtenu :
![images/C17-025.png images/C17-025.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-025.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Ajoutons le paramètre label, qui permet de personnaliser la puce affichée...
Utiliser des interlignes avec le package setspace
1. Installer le package setspace
L’interligne définit la distance verticale entre deux lignes de base successives dans un paragraphe. Cette valeur est calculée proportionnellement à la taille des caractères. Comme toujours, c’est le mode de composition de LaTeX qui effectue ces calculs, avec un rendu impeccable.
Voici un exemple, avec une taille de caractères de 11 points et localement des mots en taille \huge.
... id ligula porta felis {\huge euismod semper}. Nulla
vitae elit libero...
Voici l’affichage obtenu :
![images/C17-011.png images/C17-011.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-011.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Le package setspace (https://www.ctan.org/pkg/setspace) permet de gérer l’interligne des paragraphes de manière très simple et très souple.
Son installation dans le préambule est très classique :
\usepackage{setspace}
2. L’interligne pour tout le document
Il est possible de définir l’interligne pour tout le document, avec des valeurs prédéfinies avec des mots-clés ou avec des valeurs numériques.
Les trois mots-clés sont :
-
\singlespacing : interligne simple, normale.
-
\onehalfspacing : interligne une fois et demie la normale.
-
\doublespacing : interligne double.
Il suffit d’indiquer la valeur souhaitée dans le préambule. Voici un exemple avec l’interligne une fois et demie la normale :
% Ajout package setspace
\usepackage{setspace} ...
Styler les titres des chapitres avec le package fncychap
Les titres des chapitres sont mis en forme avec la police et la taille de caractères définies dans le préambule, dans la classe de document et dans le package de fonte utilisé. Cela reste une solution sobre et efficace. Mais si vous désirez mettre un peu plus en évidence les titres des chapitres, vous pouvez utiliser le package fncychap : https://ctan.org/pkg/fncychap
Pour installer ce package, la procédure est toujours la même, il faut le faire dans le préambule. Le package fncychap utilise des options obligatoires qui sont tout simplement les noms des styles prédéfinis. Vous avez à votre disposition six styles, nommés Sonny, Lenny, Glenn, Conny, Rejne et Bjarne. Attention, il faut respecter la majuscule en début de nom.
Si vous souhaitez utiliser le style Sonny, voici la syntaxe à indiquer dans le préambule :
\usepackage[Sonny]{fncychap}
Avec un document utilisant des chapitres, voici l’affichage obtenu :
![images/C17-016.png images/C17-016.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-016.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Voici l’affichage obtenu avec le style Lenny :
\usepackage[Lenny]{fncychap}
![images/C17-017.png images/C17-017.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-017.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Voici l’affichage obtenu avec le style Rejne :
\usepackage[Rejne]{fncychap}
![images/C17-018.png images/C17-018.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-018.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Personnaliser les titres avec le package sectsty
Vous le savez maintenant, LaTeX met en forme automatiquement les titres de structure des ouvrages que vous rédigez. Ces ouvrages sont parfaitement mis en page et mis en forme, avec sobriété et efficacité. Mais pour une publication plus orientée pour le grand public, vous pouvez désirer avoir un peu plus de liberté et concevoir des titres un peu plus attractifs. Pour cela, utilisez le package sectsty : https://ctan.org/pkg/sectsty
Voici l’exemple initial :
\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
\chapter{Janvier}
\section{Lundi}
Nulla vitae elit libero...
\section{Mardi}
Maecenas sed diam eget risus varius blandit...
\end{document}
Et voici son rendu :
![images/C17-019.png images/C17-019.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-019.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Dans le préambule, ajoutons le package sectsty. Ajoutons aussi le package color, avec deux couleurs définies, ainsi que la fonte Helvetica :
\usepackage{helvet}
\usepackage{sectsty}
\usepackage{color}
\definecolor{bleufonce}{rgb}{0,0.18,0.6}
\definecolor{bleumoyen}{rgb}{0,0.38,0.65}
Maintenant, créons la personnalisation...
Créer des tableaux longs avec le package longtable
Dans les documents scientifiques et financiers, il est très courant d’avoir des tableaux très longs affichés sur plusieurs pages.
Pour gérer au mieux l’affichage de ces tableaux, utilisez le package longtable (https://www.ctan.org/pkg/longtable).
Ce package permet d’utiliser quatre commandes pour délimiter le tableau sur plusieurs pages.
-
\endfirsthead affiche les éléments d’en-têtes voulus sur la première page d’affichage du tableau.
-
\endhead affiche les éléments d’en-têtes voulus pour les pages suivantes.
-
\endfoot affiche les éléments du pied de page voulus pour les pages suivantes.
-
\endlastfoot affiche les éléments du pied de page voulus pour la dernière page d’affichage du tableau.
Voici un exemple structuré :
\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{longtable}
\begin{document}
Nullam quis risus eget...
\begin{longtable}[c]{|l|l|}
\caption{Lorem Ipsum} \\ \hline
\textbf{Lorem} & \textbf{Ipsum} \\ \hline
\endfirsthead % En-tête du tableau pour la première page
\caption{Lorem...
Mettre en place des colonnes avec le package multicol
1. Déterminer l’environnement des colonnes
Le package multicol (https://ctan.org/pkg/multicol) permet d’afficher des portions du document en colonnes, avec le texte équilibré.
Voici le document initial :
\documentclass[9pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
\chapter{Lorem Ipsum}
Cras mattis consectetur purus sit amet fermentum...
\section{Sed posuere consectetur}
Donec id elit non mi porta gravida at eget metus...
\end{document}
Nous avons un chapitre, une section et des paragraphes.
C’est, comme toujours, dans le préambule qu’il faut déclarer le package multicol :
\documentclass[9pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Ajout du package multicol
\usepackage{multicol}
La mise en place des colonnes se fait avec l’environnement \begin{multicol}. Le premier paramètre est tout simplement le nombre de colonnes voulues. Dans ce premier exemple, il y a 2 colonnes...
Éviter les veuves et les orphelines avec le package nowidow
Dans toute composition digne de ce nom, vous devez éviter d’avoir des lignes isolées en fin de page et en début de page. C’est ce qui est nommé les veuves et les orphelines.
Voici un exemple où une ligne est isolée en début de page :
![images/C17-049.png images/C17-049.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-049.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Pour éviter cette erreur de composition, utilisez le package nowidow : https://ctan.org/pkg/nowidow
Dans le préambule, indiquez l’utilisation de ce package et son paramétrage :
\usepackage[defaultlines=2,all]{nowidow}
Le premier paramètre, defaultlines=2, indique qu’il faut qu’il y ait au minimum deux lignes solidaires en fin de page (ou de colonne) et en début de page (ou de colonne).
Le deuxième paramètre, all, précise que cette règle s’applique à la totalité du document.
Voici l’affichage obtenu :
![images/C17-050.png images/C17-050.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-050.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Encadrer des éléments avec le package adjustbox
1. Un cadre autour d’un texte
Nous avons vu précédemment que nous pouvions encadrer du texte ou des images avec la commande \fbox. Mais l’utilisation de cette boîte ne propose pas de paramètres pour personnaliser les encadrements.
Voici un exemple simple avec du texte encadré :
Aenean eu leo quam. \fbox{Pellentesque ornare} sem lacinia
quam venenatis vestibulum. Cras mattis consectetur purus sit
amet fermentum. Curabitur blandit tempus porttitor.
Voici l’affichage obtenu :
![images/C17-051.png images/C17-051.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C17-051.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Avec le package adjustbox (https://www.ctan.org/pkg/adjustbox), nous allons pouvoir personnaliser le cadre avec de la couleur et une épaisseur. Nous appliquerons un remplissage interne et des marges externes, ainsi qu’une couleur de fond. Notez que nous n’allons pas utiliser toutes les fonctionnalités de ce package, qui est très riche.
Tout d’abord, il faut bien sûr installer le package dans le préambule :
\usepackage{adjustbox}
Dans le document, utilisez la commande \adjustbox{Paramètre 1,Paramètre 2,...}{Contenu à encadrer} pour appliquer un encadrement.
Dans ce premier exemple, nous allons indiquer un remplissage, c’est-à-dire la distance entre le cadre et le contenu, une épaisseur par défaut et une marge externe.
Le remplissage...