Personnalisez LaTeX

LaTeX a la particularité d’être un système plus ou moins personnalisable, notamment au travers de définition de nouvelles commandes et environnements. J’utilise pour mes besoins personnels (mise au propre de mes notes de cours d’université) certaines commandes personnelles et certains styles modifiés afin de correspondre à ce que je souhaite.

Avant toute chose, je vous conseille de vous écrire un fichier de préambule que vous utiliserez systématiquement sur tous vos documents qui répondent aux mêmes besoins (chez moi mes cours), fichier que vous appellerez en début de document, vous évitant d’avoir à tout réécrire à chaque fois. Ainsi, une fois ce fichier (preambule.tex chez moi) écrit, il vous suffit de l’appeler avant le \begin{document} grâce à la commande :

\input{votre/chemin/vers/votre/fichier/preambule.tex}

Un préambule uniforme

À l’intérieur de ce fichier vous appellerez l’ensemble des paquets qui vous sont nécessaires (personnellement j’y appelle également mon \documentclass[10pt, twoside]{book}). Voici les différents paquets que j’utilise :

  • fontenc (avec l’option T1) et inputenc (avec l’option utf8) pour l’encodage des caractères ;
  • babel (avec les options english et french, dans cet ordre, la dernière option étant celle considérée par défaut par LaTeX) pour la gestion de la langue française (les césures, les traductions des titres, etc.) ;
  • sectsty permettant de modifier les styles des sections (j’y ajoute la commande \allsectionsfont{\color{grey}{}\fontseries{n}\selectfont} ;
  • graphicx pour la gestion des tâches graphiques ;
  • geometry pour la mise en page de mon document ;
  • fancyhdr permettant de personnaliser les en-têtes et les pieds-de-page ;
  • fancybox afin de réaliser des boîtes de meilleure qualité que ne le fait LaTeX nativement ;
  • setspace pour modifier l’interligne de mon document (avec l’environnement spacing sous la syntaxe \begin{spacing}{multiple_de_l'interligne_e.g._1.25}) ;
  • hyperref afin d’obtenir des liens cliquables lors de la génération du pdf ;
  • eurosym pour avoir une symbole € de meilleure qualité ;
  • kpfonts qui permet d’utiliser une police à mon goût plus jolie que la font par défaut (et qui a l’avantage, entre autres, de proposer les anciennes ligatures et les chiffres elzéviriens ;
  • subfig pour pouvoir définir des figures subdivisées ;
  • array et multirow (dépendant de array) qui permettent respectivement d’avoir des tableaux mieux dessinés et de pouvoir fusionner des lignes ;
  • lettrine pour afficher des lettrines en début de paragraphe (à l’aide de la commande \lettrine{}{}) ;
  • numprint insérant des espaces à chaque milliers aux chiffres notés avec la commande \numprint{} ;
  • nicefrac (avec l’option nice) afin d’écrire des fractions en mode texte sous la forme ½ ;
  • color permettant de définir des couleurs personnalisées (avec la commande \definecolor{nom_de_la_nouvelle_couleur}{rgb}{valeur 1 entre 0 et 1, valeur 2, valeur 3} ;
  • url pour obtenir des url cliquables ;
  • makeidx pour obtenir un index à l’endroit où est appelée la commande \printindex (à condition que la commande \makeindex ait été appelée avant le début du document) ;
  • biblatex et csquotes afin de personnaliser l’apparence de la bibliographie.

Si cela vous intéresse, mon fichier préambule.tex est disponible ici.

Créer de nouvelles commandes

L’avantage de créer certaines commandes c’est qu’elles permettent de changer le styles de certaines parties de textes sans avoir à vérifier chaque occurrence.

La création de nouvelles commandes n’est pas très compliqué. Il suffit de déclarer dans le préambule de votre document (à l’aide de la commande \newcommand) le nom de votre commande, le nombre d’arguments puis le traitement de ces arguments. La syntaxe est la suivante :

\newcommand{\nomdemacommande}[nombre_d'arguments]{traitement des arguments}

Comment faire ?

Comme rien ne vaut un bon exemple, voici une commande que j’ai écrite et qui me sert relativement souvent :

\newcommand{\siecle}[1]{\textsc{#1}\ieme{}~siècle}

Décomposons à présent cette définition.

  1. \newcommand, je commence par dire que je veux définir une nouvelle commande ;
  2. {\siecle}, je déclare ensuite le nom à l’aide duquel j’appellerai ma commande ;
  3. [1], ma commande comprend un unique argument (le numéro du siècle en l’occurrence) ;
  4. {\textsc{#1}\ieme{}~siècle}, vient ensuite le traitement de mon argument :
    1. \textsc{#1}, je demande à ma commande de placer mon argument en petites capitales,
    2. \ieme{}, puis j’ajoute l’abréviation e,
    3. ~siècle, et je termine en accolant (à l’aide d’un espace insécable) le mot siècle.

Ainsi, pour écrire xxe siècle, il me suffit d’écrire en code LaTeX \siecle{xx}, ce qui me fait gagner du temps et me permet d’être sûr d’écrire les siècles toujours de la même manière.

Des noms uniformes

Au sein de mes cours, j’ai régulièrement besoin d’écrire des noms d’auteurs ou de personnes. Plusieurs contraintes se posaient à moi. Je voulais que :

  • les noms apparaissent toujours selon le même style ;
  • la première fois le nom apparaisse en entier (Prénom Nom) et qu’après n’apparaissent que l’initiale du prénom suivie du nom (P. Nom) ;
  • les auteurs soient répertoriés au sein de l’index situé à la fin de mon cours.

Bien sûr, tout ceci devait se faire automatiquement. J’ai donc créé1) une commande comprenant trois arguments :

  1. le prénom ;
  2. l’initiale du prénom ;
  3. le nom.

Avant toute explication, voici la commande en question

\newcommand{\nom}[3]{%
\ifcsname c@#3#1\endcsname\stepcounter{#3#1}%
#2~\textsc{#3}%
\else%
\newcounter{#3#1}%
#1~\textsc{#3}\fi%
\index{#3, #1}%
}

Le principe de ma commande est le suivant :

  1. on teste d’existence d’un compteur intitulé NomPrenom ;
  2. si le compteur existe :
    1. on l’incrémente de un,
    2. on écrit le nom sous la forme P. Nom,
  3. sinon :
    1. on le crée,
    2. on écrit le nom sous la forme Prénom Nom ;
  4. enfin on ajoute à l’index une entrée sous la forme Nom, Prénom.

Ainsi, lorsque LaTeX rencontre pour la première fois un nom, il ne trouve pas de compteur associé et écrit donc le nom dans sa forme pleine puis, lorsqu’il le rencontrera à nouveau, il verra que le compteur existe déjà, il saura donc qu’on a déjà écrit ce nom, il l’écrira donc sous sa forme abrégée.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *