Packages

Packages \(\LaTeX\) : découverte #1

Utilisateur de \(\LaTeX\) depuis maintenant quelques années et plusieurs rapports et documents dans mes bagages, j’ai découvert de nombreux packages, des fois pour un usage très spécifique. Généralement c’est au milieu de la rédaction d’un document que je me dis : « Tiens il faudrait que j’ai telle fonction pour faire ça », et après une courte recherche sur le Web je découvre qu’il existe systématiquement un package qui le fait ! C’est beau. :-)

Cet article a donc pour objectif de donner une liste, non exhaustive, de différents packages spéciaux que j’utilise couramment.
Je sortirai probablement d’autres billets plus tard pour parler des autres packages que j’utilise ou d’astuces que j’ai découvert et exploité pour me simplifier la vie. :-)

Siunitx

Probablement un de mes préférés que j’utilise le plus souvent dans mes documents. Ce package gère la mise en forme des nombres associés à des unités physiques (par exemple le kilogramme, les unités de monnaie, la candela, les angles et j’en passe).
Quand on lit des rapports ou des documents, la mise en forme est très souvent aléatoire : des fois une espace entre le nombre et son unité, des fois non. Pire encore, certaines unités sont très mal orthographiées ! Siunitx est LA solution à ce problème.

Comme tous les packages \(\LaTeX\), celui-ci s’importe dans le document de cette façon  :

\usepackage{siunitx}

Ensuite, dans le document il existe plusieurs notations  :

  • pour un nombre et son unité : \SI{150}{\kilo\gram} qui donne 150 kg ;
  • Pour une unité seule : \si{\meter\per\second} qui donne ms\(^{-1}\) ;
  • pour un nombre seul : \num{4,56} qui donne 4,56 ;
  • pour un angle : \ang{1;2;3} qui donne 1°2’3’’.

Vous noterez que les unités sont écrites entièrement et non sous forme d’abréviations. Il est cependant aussi possible d’écrire \kg au lieu de \kilo\gramme.

Par défaut, \(\LaTeX\) place des points au lieu des virgules vu qu’il utilise la notation anglaise. Pour changer cela et utiliser la typographie française, il suffit de rajouter dans le préambule cette ligne :

\sisetup{output-decimal-marker={,}}

Bref ce package fait absolument tout : nombres complexes, angles, toutes les unités existantes, les incertitudes (par exemple 1,23 kg ± 0,04 kg) avec différentes mises en forme, les espaces entre les millions, les milliers et unités : 12 345 678 par exemple au lieu de 12345678 ; bien plus lisible.

Toute la doc de ce package est ici. Doc à toujours avoir sous le coude.

Je ferai probablement un billet plus complet spécifique sur ce package, parce que détailler 100 pages de doc ici est un peu indigeste. :-P

Fancyhdr

Probablement assez connu, mais ça ne coûte rien de l’ajouter à la liste : je l’utilise quasiment tout le temps. Ce package gère les en-têtes et pieds de page du document. Il est possible de paramétrer des mises en pages assez complexes en quelques lignes.

Voilà ci-dessous un exemple de configuration de mise en page pour un document en recto-verso, elles restent à adapter selon votre document :

\fancyhf{} % Efface le formatage initial
\fancyhead[RO,LE]{Titre du document}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[LO,CE]{auteur}
\fancyfoot[CO,RE]{titre}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}

Il y a ici plusieurs notations à connaître  :

  • H pour “head” donc les en-têtes ;
  • F pour “foot” donc les pieds de page ;
  • L, C et R pour respectivement “left”, “center” et “right” pour le placement du texte sur la page ;
  • O et E pour “odd” et “even” pour pages impaires et paires dans le cas d’un document recto-verso.

Les deux dernières lignes sont pour la largeur de la ligne séparatrice. Mettre 0 si vous n’en voulez pas. ;-)
À partir de ces quelques commandes il est possible de personnaliser à fond l’ensemble de la mise en page des en-têtes et pieds de page.

Ajouter enfin au préambule cette ligne  :

\pagestyle{fancy}

Il est possible de modifier en cours de route cette configuration selon les parties du document : annexes, premières pages, etc.

La documentation complète du package est ici.

Fncychap

Petit package bien sympa que j’utilise pour mes documents complexes. Si vous n’aimez pas la mise en forme par défaut des chapitres de vos documents, sachez qu’il est possible de la modifier très facilement. Il existe en effet un package pour vous proposer d’autres mises en forme de titre.

Comme toujours on appelle le package  :

\usepackage[style]{fncychap}

En replaçant le style par ceux de cette liste  :

  • Sonny ;
  • Lenny ;
  • Glenn ;
  • Conny ;
  • Rejne ;
  • Bjarne ;
  • Bjornstrup.

Vous pouvez découvrir chaque style dans les images ci-dessous.

Tous les détails sont sur cette doc. Après, testez-les tous pour voir lequel vous plaît le plus.

Subfig

Subfig permet de créer des sous-figures  : par exemple figure 1a, 1b, 2b, etc. Fonction propre à \(\LaTeX\) et qui n’existe pas sur LibreOffice et Microsoft Office Word (aux dernières nouvelles). De plus, non seulement il crée des sous-figures mais en plus elles sont parfaitement gérées pour les références croisées (par exemple ajouter un «  voir figure 1c  » en plein milieu d’un texte est parfaitement possible).

Pour importer le package c’est toujours pareil  :

\usepackage{subfig}

Le code pour ajouter des sous-figures dans le document ressemble à celui-là (à adapter suivant vos besoins)  :

\begin{figure}
\centering % pour centrer l’ensemble
\subfloat[sous-légende 1]{
\includegraphics[scale=0.5]{sous-figure 1.jpg}
\label{label sous-figure 1}
}
\subfloat[sous-légende 2]{
\includegraphics[scale=0.5]{sous-figure 2.jpg}
\label{label sous-figure 2}
}
\caption{Légende globale des 2 figures}\label{label général}
\end{figure}

Bien évidement il est possible d’en avoir 2, 3, 4… autant qu’on le souhaite en fait.

Petit plus au sujet des figures  : pour les longs rapports, il est possible que vous ayez beaucoup de figures et que vous souhaitiez les séparer du fichier .tex et des autres fichiers de configuration. Pour cela ajoutez cette ligne dans le préambule :

\graphicspath{{./Images/}}

Lors de la compilation, \(\LaTeX\) ira chercher les figures dans le dossier Images/.

Pdfpages

Le package Pdfpages permet d’insérer dans le document les pages d’un autre fichier pdf. Pour cela, il suffit d’appeler le package de cette façon

\usepackage[final]{pdfpages}

Et d’insérer dans le code du document cette macro :

\includepdf[pages=6-7]{fichier.pdf}

Lors de la compilation, les pages 6 et 7 du fichier appelé seront intégrées au document. Tout simplement.
La doc complète du package est ici. Il existe plusieurs mises en page possibles que je n’ai pas détaillées.

Crédit photo