Person­na­li­sez LaTeX

LaTeX a la parti­cu­la­rité d’être un système plus ou moins person­na­li­sable, notam­ment au travers de défi­ni­tion de nouvelles commandes et envi­ron­ne­ments. J’uti­lise pour mes besoins person­nels (mise au propre de mes notes de cours d’uni­ver­sité) certaines commandes person­nelles et certains styles modi­fiés afin de corres­pondre à ce que je souhaite.

Avant toute chose, je vous conseille de vous écrire un fichier de préam­bule que vous utili­se­rez systé­ma­tique­ment sur tous vos docu­ments qui répondent aux mêmes besoins (chez moi mes cours), fichier que vous appel­le­rez en début de docu­ment, vous évitant d’avoir à tout réécrire à chaque fois. Ainsi, une fois ce fichier (preambule.tex chez moi) écrit, il vous suffit de l’ap­pe­ler avant le \begin{document} grâce à la commande :

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

Un préam­bule uniforme

À l’in­té­rieur de ce fichier vous appel­le­rez l’en­semble des paquets qui vous sont néces­saires (person­nel­le­ment j’y appelle égale­ment mon \documentclass[10pt, twoside]{book}). Voici les diffé­rents paquets que j’uti­lise :

  • fontenc (avec l’op­tion T1) et inputenc (avec l’op­tion utf8) pour l’en­co­dage des carac­tères ;
  • babel (avec les options english et french, dans cet ordre, la dernière option étant celle consi­dé­rée par défaut par LaTeX) pour la gestion de la langue française (les césures, les traduc­tions des titres, etc.) ;
  • sectsty permet­tant de modi­fier 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 docu­ment ;
  • fancyhdr permet­tant de person­na­li­ser les en-têtes et les pieds-de-page ;
  • fancybox afin de réali­ser des boîtes de meilleure qualité que ne le fait LaTeX nati­ve­ment ;
  • setspace pour modi­fier l’in­ter­ligne de mon docu­ment (avec l’en­vi­ron­ne­ment spacing sous la syntaxe \begin{spacing}{multiple_de_l'interligne_e.g._1.25}) ;
  • hyperref afin d’ob­te­nir des liens cliquables lors de la géné­ra­tion du pdf ;
  • eurosym pour avoir une symbole € de meilleure qualité ;
  • kpfonts qui permet d’uti­li­ser une police à mon goût plus jolie que la font par défaut (et qui a l’avan­tage, entre autres, de propo­ser les anciennes liga­tures et les chiffres elzé­vi­riens ;
  • subfig pour pouvoir défi­nir des figures subdi­vi­sées ;
  • array et multirow (dépen­dant de array) qui permettent respec­ti­ve­ment d’avoir des tableaux mieux dessi­nés et de pouvoir fusion­ner des lignes ;
  • lettrine pour affi­cher des lettrines en début de para­graphe (à l’aide de la commande \lettrine{}{}) ;
  • numprint insé­rant des espaces à chaque milliers aux chiffres notés avec la commande \numprint{} ;
  • nicefrac (avec l’op­tion nice) afin d’écrire des frac­tions en mode texte sous la forme ½ ;
  • color permet­tant de défi­nir des couleurs person­na­li­sées (avec la commande \definecolor{nom_de_la_nouvelle_couleur}{rgb}{valeur 1 entre 0 et 1, valeur 2, valeur 3} ;
  • url pour obte­nir des url cliquables ;
  • makeidx pour obte­nir un index à l’en­droit où est appe­lée la commande \printindex (à condi­tion que la commande \makeindex ait été appe­lée avant le début du docu­ment) ;
  • biblatex et csquotes afin de person­na­li­ser l’ap­pa­rence de la biblio­gra­phie.

Si cela vous inté­resse, mon fichier préambule.tex est dispo­nible ici.

Créer de nouvelles commandes

L’avan­tage de créer certaines commandes c’est qu’elles permettent de chan­ger le styles de certaines parties de textes sans avoir à véri­fier chaque occur­rence.

La créa­tion de nouvelles commandes n’est pas très compliqué. Il suffit de décla­rer dans le préam­bule de votre docu­ment (à l’aide de la commande \newcommand) le nom de votre commande, le nombre d’ar­gu­ments puis le trai­te­ment de ces argu­ments. 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 rela­ti­ve­ment souvent :

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

Décom­po­sons à présent cette défi­ni­tion.

  1. \newcommand, je commence par dire que je veux défi­nir une nouvelle commande ;
  2. {\siecle}, je déclare ensuite le nom à l’aide duquel j’ap­pel­le­rai ma commande ;
  3. [1], ma commande comprend un unique argu­ment (le numéro du siècle en l’oc­cur­rence) ;
  4. {\textsc{#1}\ieme{}~siècle}, vient ensuite le trai­te­ment de mon argu­ment :
    1. \textsc{#1}, je demande à ma commande de placer mon argu­ment en petites capi­tales,
    2. \ieme{}, puis j’ajoute l’abré­via­tion e,
    3. ~siècle, et je termine en acco­lant (à 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égu­liè­re­ment besoin d’écrire des noms d’au­teurs ou de personnes. Plusieurs contraintes se posaient à moi. Je voulais que :

  • les noms appa­raissent toujours selon le même style ;
  • la première fois le nom appa­raisse en entier (Prénom Nom) et qu’a­près n’ap­pa­raissent que l’ini­tiale du prénom suivie du nom (P. Nom) ;
  • les auteurs soient réper­to­riés au sein de l’in­dex situé à la fin de mon cours.

Bien sûr, tout ceci devait se faire auto­ma­tique­ment. J’ai donc créé1) une commande compre­nant trois argu­ments :

  1. le prénom ;
  2. l’ini­tiale du prénom ;
  3. le nom.

Avant toute expli­ca­tion, voici la commande en ques­tion

\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 prin­cipe de ma commande est le suivant :

  1. on teste d’exis­tence d’un comp­teur inti­tulé NomPrenom ;
  2. si le comp­teur existe :
    1. on l’in­cré­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’in­dex 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 comp­teur asso­cié et écrit donc le nom dans sa forme pleine puis, lorsqu’il le rencon­trera à nouveau, il verra que le comp­teur 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 *