Mes packages préférés de LaTeX

Note : 
Pas encore de vote

Nouveau : version pdf du billet ! :-)
Pour quel type de lecteur ?
Utilisateurs de LaTeX


Introduction

Utilisateur de LaTeX depuis maintenant quelques années et plusieurs rapports et documents dans mes bagages, j’ai emmagasiné 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 très 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. :-)

Table des matières

  1. Siunitx
  2. Fancyhdr
  3. Fncychap
  4. Subfig
  5. Pdfpages
  6. Cclicenses
  7. Mes propres macros

1. 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 kg, les unités de monnaie, le 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}{\kilogram} ;
  • Pour une unité seule : \si{\meter\per\second} ;
  • pour un nombre seul : \num{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. Pour changer cela il suffit de rajouter dans les 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 sur ce package, parce que 100 pages de doc c’est un peu indigeste. :-p

2. 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.

Personnellement je l’utilise avec ces diverses commandes :

\fancyhf{} % Efface le formatage initial
\fancyhead[RO,LE]{Titre du document}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[LO,CE]{De Freetux}
\fancyfoot[CO,RE]{Pour les Internautes}
\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 largueur 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. Par exemple sur un de mes rapports de stage, j’ai commencé avec des en-têtes vides et un pied de page avec numérotation romaine minuscule pour le sommaire, remerciements, etc. Ensuite je suis passé avec un format plus complexe pour le rapport proprement dit. Enfin je l’ai encore modifié pour les annexes. Il suffit de redéfinir les commandes ci-dessus. ;-)

La documentation complète du package est ici. ;-)

3. Fncychap

Petit package bien sympa que j’utilise pour mes rapports complexes. Si vous n’aimez pas la mise en forme des chapitres de vos documents, vous pouvez les modifier, et il existe 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 (perso j’aime bien celui-là :-)) ;
  • Glenn ;
  • Conny ;
  • Rejne ;
  • Bjarne ;
  • Bjornstrup.

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

4. Subfig

Subfig permet de créer des sous-figures : comme par exemple figure 1a, 1b, 2b, etc. Fonction propre à LaTeX et qui n’existe pas sur LibreOffice et Microsoft Office Word. 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 % \centering pour centrer l’ensemble
\captionsetup[subfloat]{nearskip=-3pt}
\subfloat[sous-légende 1] 
	{\includegraphics[scale=0.5]{sous-figure 1.jpg}\label{label sous-figure 1}} \vspace{5mm}
\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. Pour cela ajoutez cette ligne dans le préambule ;-) :

\graphicspath{{./Images/}}

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

5. Pdfpages

Le package pdfpages permet d’insérer dans le document les pages d’un autre fichier pdf : juste génial.
Pour l’utiliser :

\usepackage[final]{pdfpages}

Et dans le code du document :

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

Lors de la compilation LaTeX ajoutera les pages 6 et 7 du fichier appelé. 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 ici.

6. Cclicenses

Un petit dernier bien sympa : le package qui gère les logos des licences de la Creative Commons. Pour l’importer :

\usepackage{cclicenses}

Les différents logos sont écrits via ces macros :

  • \cc
  • \ccby
  • \ccnc
  • \ccnd
  • \ccsa

Il existe alors différentes macros pour les licences existantes :

  • \by
  • \bynd
  • \byncnd
  • \bync
  • \byncsa
  • \bysa

Bien que les logos ne soient pas parfaits, c’est toujours bien qu’ils existent. La doc est dispo ici pour voir à quoi ils ressemblent. Je travaille d’ailleurs sur le logo de la CC0 qui n’existe pas dans le package, mais il n’est pas encore tout à fait terminé. :-)

7. Mes propres macros

L’une des plus grandes forces de LaTeX est de pouvoir créer ses propres macros. Il ne faut surtout pas négliger cette fonction : c’est un gain de temps énorme.

Pour cela il y a cette macro à placer dans le préambule :

\newcommand{}{}

Elle peut s’utiliser de deux façons différentes.

Une macro sans argument

Je l’utilise par exemple pour faire des saut de ligne entre deux paragraphes. Au lieu d’avoir à écrire \par \bigskip en permanence (ce qui est pénible et trop long), je crée alors une nouvelle macro \saut qui va faire faire ces deux macros :

\newcommand{\saut}{\par \bigskip}

Une macro avec arguments

Principalement utilisé pour raccourcir mon code et le rendre plus lisible.
Par exemple, le code pour insérer de figures dans un rapport est assez long et ressemble en gros à ça :

\begin{center}
   \begin{figure}
      \includegraphics[scale=5cm]{figure.jpg}
      \caption{légende}
   \end{figure}
\end{center}

Du coup je crée une macro que j’appelle \fig qui contiendra plusieurs arguments pour le nom de la figure, sa légende et son échelle.
La nouvelle commande se crée comme cela :

\newcommand{\fig}[3]{
   \begin{center}
      \begin{figure}
         \includegraphics[scale=#2]{#1}
         \caption{#3}
      \end{figure}
   \end{center}
}

Le 3 entre crochets précise que la macro contient trois arguments et les #1, #2 et #3 désignent où les trois arguments seront placés. Ma commande finale dans le texte s’écrit donc :

\fig{figure.jpg}{5cm}{légende}

Une autre macro que je crée en permanence est pour les guillemets. La macro initiale est la suivante :

\og texte \fg{}

Ce qui est long, et plutôt moche dans le code.
Du coup je crée une macro \g{} qui la remplacera via cette ligne :

\newcommand{\g}[1]{\og #1 \fg{}}

Bref : vous l’aurez compris : on peut faire toutes les macros que l’on veut via cette fonction. C’est très, très, très intéressant. :-)

Catégorie: 
Tags: 

Il y a 2 commentaires

Merci pour cet article ! Je n'imaginais même pas que de tels packages existaient (notamment le coup de l'import de page pdf).

Ajouter un commentaire

S'abonner à Comments for "Mes packages préférés de LaTeX"