Rédiger une lettre simplement en LaTeX

Avec un super look, quelques bonnes pratiques et… peu de lignes

Bonjour à tous !

Aujourd'hui un petit article rapide pour vous montrer que l'on peut très facilement rédiger des lettres en LaTeX et en peu de lignes. Le rapport temps passé/qualité du résultat est bon.

Marre de lancer un LibreOffice et de refaire à peu près la mise en forme à chaque fois que vous devez rédiger une lettre papier ? Alors c'est parti.

La classe lettre

La classe LaTeX lettre permet de rédiger des lettres avec une mise en forme française, que l'on apprend à l'école. Le résultat est super classe et par défaut la sortie comporte un trait de pliage. Si on plie correctement selon ce trait, alors l'adresse du destinataire se place pile poil devant la fenêtre en plastique transparent de la lettre.

J'avais pour habitude de réécrire l'adresse à la main sur des lettres sans fenêtre mais depuis que j'utilise cette classe lettre j'ai opté pour des enveloppes à fenêtres et ça va beaucoup plus vite. On imprime, on plie, on rentre la lettre dans le bon sens, on affranchi, et c'est prêt pour l'expédition !

Aperçu du résultat

Voici ce que vous devriez être en mesure d'obtenir à la fin de cet article :

Capture d'écran du résultat de la lettre LaTeX

Si ça c'est pas joli

Allez, je suis sûr que ça vous tente. C'est parti.

Le document de base

Voici le contenu du fichier main.tex qui vous permettra d'avoir une base par la suite adaptable à vos besoins.

\documentclass[12pt]{lettre}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{eurosym}
\usepackage[frenchb]{babel}
\usepackage{numprint}

\begin{document}

\begin{letter}{Un destinataire\\Une addresse\\12345 Une ville}

\def\concname{Objet :~} % On définit ici la commande 'objet'
\conc{ceci est mon objet}
\opening{Madame, Monsieur,}

Lorem ipsum dolor. Felis dui eni at pellentesque aliquam, ultricies faucibus
nullam vitae ante, ante id non. Mi eget amet montes, luctus, vitae, elit,
commodo. Consectetuer dolor in mollis augue. Tellus. Eleifend rutrum, mauris
metus praesent augue, quam auctor varius nisi eu leo enim dictumst. Nunc
torquent vestibulum sociis eu class. Odio ullamcorper iaculis velit. Odio nisl
eu. Varius euismod iaculis eget ac maecenas quam. Id. Habitasse tortor mi quis
ac lorem eu. Mauris risus integer enim odio cras fringilla dui, fermentum.

Mattis parturient ipsum duis nascetur nibh, orci id vel. Elit. Vivamus proin
porta viverra quis. Curae cum massa sed arcu montes ut aptent ad. In fusce
primis justo vulputate ante duis. Nisl id nibh. Integer, suspendisse quis
elementum lorem, massa velit semper aenean non, nisl purus ultricies. Malesuada
elit vivamus pede, viverra quam, lorem quisque eleifend natoque.

\closing{Je vous prie d'agréer, Madame, Monsieur, mes salutations distinguées.}

\end{letter}

\end{document}

Si vous tentez de générer cette lettre, alors vous aurez comme adresse d'expéditeur l'adresse B.I.D.O.N présente dans la capture d'écran précédente.

Il faut donc déclarer ses coordonnées avant de pouvoir imprimer sa lettre.

Expéditeur automatique : le système d'institut

La déclaration de ses coordonnées est possible par un système dit « d'instituts », qui sont des fichiers décrivant des coordonnées. Ceux-ci doivent être nommés selon la convention lettre-<nom>.cfg pour pouvoir être utilisés par la classe lettre. Voici un exemple de fichier d'institut nommé lettre-paul.cfg et placé à côté du main.tex :

\name{Paul \textsc{Bismuth}}
\signature{Paul \textsc{Bismuth}}
\address{Paul \textsc{Bismuth}\\30 rue de Paris\\80886 Sassonne-le-Creux}
\lieu{Sassonne-le-Creux}
\telephone{06 07 08 09 10}
\email{paul.bismuth@sassonne.fr}
\nofax

Afin d'utiliser cet institut, il faut maintenant l'importer dans le fichier main.tex à l'aide de la ligne suivante :

\institut{paul}

Cette ligne doit être placée avant le \begin{letter} pour pouvoir être prise en compte.

Rendre le tout réutilisable

Vous devriez déjà être en mesure de générer une lettre pas trop mal. Maintenant, on va voir comment automatiser tout ça pour pouvoir être rapidement utilisé en cas de besoin de rédaction d'une nouvelle lettre.

Le Makefile LaTeX de la muerta

J'utilise et améliore depuis quelques temps un Makefile permettant de compiler du LaTeX vers un PDF sans prise de tête. Celui-ci est souvent en évolution mais je ne prends pas toujours la peine de rapatrier les changements sur son dépôt git dédié.

Voici le contenu actuel de la bête :

# LaTeX basic Makefile
#
# WTFPL, 2016 - 2018 Romain Porte (MicroJoe) <microjoe@microjoe.org>
#
# Inspired from
# http://tex.stackexchange.com/questions/40738/how-to-properly-make-a-latex-project
# and my basic Makefile skills.

# Very important variables to set up
PDF=main.pdf
PRINC=main.tex

AUXDIR=build
LATEXMK=source ~/.bashrc && latexmk \
        -auxdir=$(AUXDIR) \
        -outdir=$(AUXDIR) \
        -pdf -pdflatex="pdflatex -interaction=nonstopmode" -use-make

# You want latexmk to *always* run, because make does not have all the info.
# Also, include non-file targets in .PHONY so they are run regardless of any
# file of the given name existing.
.PHONY: $(PDF) all clean live

# Main rule: Construct the PDF
all: $(PDF)

# Live: automatic watch and build of the PDF file
live: $(PRINC) $(SOURCES)
        $(LATEXMK) -pvc $(PRINC)

# Construct the PDF file from sources
$(PDF): $(PRINC) $(SOURCES)
        $(LATEXMK) $(PRINC)

# Remove all the intermediate files
clean:
        @echo Cleaning temporary LaTeX files...
        @rm -rf $(AUXDIR)

La règle « live » permet de recompiler automatiquement le fichier PDF lors de la sauvegarde d'un ficher source LaTeX, ce qui permet d'avoir un éditeur à gauche et le fichier PDF ouvert à droite pour éditer un document et le prévisualiser à chaque sauvegarde.

Ce Makefile est ici utilisé dans le cadre des lettres mais il m'a été très utile lors de la rédaction de documents plus gros, typiquement mon rapport de stage de fin de cycle ingénieur qui devait faire dans les 50 pages (la compilation était bien plus lente qu'une simple lettre mais la qualité du résultat était… superbe).

L'institut dans ses dotfiles

Plutôt que de garder le fichier « institution » dans le même dossier que la lettre, on peut imaginer le cacher dans ses dotfiles (vos fichiers de configuration enregistrés sous git) pour pouvoir :

  1. Le réutiliser dans plusieurs autres lettres.
  2. Pouvoir facilement déclarer plusieurs fichiers institut dans un même endroit
  3. Sauvegarde facilitée avec la gestion de version.

J'ai choisi le chemin ~/.latex/lettre-romain.cfg pour mon fichier d'institut.

Attention pour l'inclusion dans le fichier source de la lettre, car LaTeX ne reconnait pas le caractère ~ qui doit avoir une signification particulière pour lui. On pourrait échapper ce caractère, mais j'ai tout simplement utilisé la variable bash $HOME qui elle est reconnue :

% ...

\begin{document}

\institut{$HOME/.latex/romain}
\begin{letter}{Un destinataire\\Une addresse\\Une ville}

% ...

Le git clone pour de nouvelles lettres

Enfin, dernière astuce pour pouvoir rédiger de nouvelles lettres en un clin d'œil : utiliser git !

J'ai dans ~/Documents/Lettres/ un dossier par lettre. Parmi ces dossiers, l'un d'eux se nomme modèle et contient tout ce qu'il faut pour compiler un lorem ipsum que nous avons vu plus haut. Mon fichier d'institut y est également renseigné, et le Makefile est présent.

Étant donné que ce dossier modèle est un dépôt git, je peux tout simplement le cloner si j'ai besoin de rédiger une nouvelle lettre :

$ git clone modèle lettre_exemple

Puis je me rend dans lettre_exemple et commence à faire mes modifications tout en les sauvegardant dans des commits au besoin si je compte réutiliser cette lettre plus tard. Pas besoin de faire de cp -R hasardeux pour copier la lettre d'exemple mais pas ses fichiers temporaires, etc.. Git nous rend ici un bon service.

Conclusion

Malgré la hausse du prix du timbre, on sait désormais soigner sa correspondance quand le format papier est nécessaire (coucou la CPAM, coucou la CAF…).

Sources et liens pour aller plus loin :

Merci à Seb pour sa relecture.

Une question ou remarque ? N'hésitez pas à me contacter en envoyant un mail à microjoe, suivi d'un arobase, puis encore microjoe et enfin un « point org ».