Blog du logiciel de gestion de projet AtikTeam

Faites pousser un arbre local TeX

LaTeX est un vaste système dans lequel on se perd aisément. Pour ne pas se noyer dans cet océan de paquets, le pratiquant devra se construire petit à petit son embarcation, puis la consolider et l’enrichir au fil de son voyage. Cette attitude de capitalisation des connaissances constitue le remède le plus efficace contre l’improductivité et la frustration en LaTeX.

Où accumuler les connaissances ?

Au début, vous pouvez simplement copier-coller systématiquement vos en-têtes LaTeX de document en document, en enrichissant petit à petit le contenu. L’inconvénient est que ça entraîne beaucoup de duplication de code et de pollution visuelle au début de votre fichier. La pollution du document peut être évitée en mettant les en-têtes dans un fichier séparé du contenu, et en l’incluant via la commande \input. Mais où mettre ce fichier d’en-tête ? Vous pouvez le dupliquer de dossier en dossier pour chacun de vos documents, ou vous pouvez le conserver à un seul endroit et y faire référence par un chemin absolu.

En fait, le système LaTeX a prévu ce problème et propose une solution standard, que nous allons découvrir ici.

L’arbre texmf

Chaque utilisateur peut, dans son dossier personnel, placer un dossier texmf qui sera son « arbre local TeX ». Le contenu de ce dossier sera automatiquement reconnu par LaTeX et directement utilisable dans tous vos documents. Il y a plusieurs usages pour un tel arbre, et nous allons voir quelques exemples. Attention, pour pouvoir utiliser l’arbre texmf, il faudra l’indexer, la procédure est expliquée plus loin.

Les images

S’il vous arrive souvent d’utiliser un jeu d’images pour vos documents, vous pouvez les placer dans l’arbre. Vous pourrez ensuite y faire référence dans votre document par un simple nom de fichier. Par exemple, placez vos logos dans ~/texmf/tex/latex/pictures/logos.

Les paquets

Vous pouvez installer manuellement des paquets LaTeX dans votre arbre local pour les utiliser par la suite dans vos documents. Pour cela, suivez ces instructions.

Vous pouvez également créer vos propres paquets pour y mettre vos fonctions préférées. Par exemple, on va créer une commande spéciale pour les adresses internet : \simpleLink. Elle prendra un seul argument, l’adresse, et l’insérera dans le document en la rendant cliquable. Dans ~/texmf/tex/latex/packages/my-urls.sty, insérez :

%%% URLS
%%%
%%% Utilisation : \simplelink{www.foo.bar}

\ProvidesPackage{my-urls}

\newcommand{\simplelink}[1]{%
  \href{http://#1}{#1}}

Voila ! Vous venez de faire votre paquet, vous pourrez l’inclure dans vos documents et classes via \usepackage{my-urls} pour accéder à votre fonction \simpleLink.

Les classes

Essayez toujours de faire vos documents avec classe ! N’hésitez pas à créer vos propres classes pour y placer les en-têtes que vous utilisez systématiquement. Par exemple, ouvrez ~/texmf/tex/latex/classes/mon-article.cls dans votre éditeur pour y placer ce qui suit.

\NeedsTeXFormat{LaTeX2e}[2003/12/01]
\ProvidesClass{mon-article}
%              [2010 - Classe XeLaTeX pour rapports courts]

\ProcessOptions\relax

% vous pouvez dériver d'une classe existante
\LoadClassWithOptions{article}

\usepackage{fontspec}
\usepackage[french]{babel} % \og \fg \nombre{1234} 
\usepackage[xetex]{hyperref}

\setpapersize{A4}

\newcommand{\todo}[1]{\marginpar{{\color{red}#1}}}

\newenvironment{vcenterpage}
{\vspace*{\fill}}
{\vspace*{\fill}\par}

\setlength{\parindent}{1em}
\setlength{\parskip}{.15em}
\widowpenalty=500
\clubpenalty=500
\raggedbottom

Voila, vous venez de créer votre classe LaTeX, que vous pouvez utiliser via \documentclass{mon-article}.

Indexation de l’arbre

L’indexation de l’arbre est une opération manuelle et obligatoire dès que vous en modifiez le contenu. Heureusement, elle est simple et rapide :

texhash ~/texmf

Votre arbre est maintenant prêt à être utilisé ! Vous pouvez y créer vos paquets, vos classes, et y mettre tout contenu dont vous avez régulièrement besoin pour vos documents.