[Tuto] Écrire une lettre avec LaTeX

Salut tout le monde !

Aujourd’hui, un article utile à pas mal de gens : la typographie d’une lettre en utilisant LaTeX. Oui, LaTeX ne sert pas uniquement à taper des maths et des formules compliquées à outrance ! Il peut aussi vous assister au quotidien, dans notre cas pour taper des courriers d’apparence professionnelle, rapidement. Et en plus, si vous programmez un peu, vous vous rendrez vite compte que vous pouvez « scripter » un petit truc pour automatiser le replacement des destinataires et ainsi créer des PDF (par exemple) distincts pour tout votre publipostage, prêts à être imprimés !

On s’y met ?

Installation de la classe « lettre »

C’est pas le plus méchant, honnêtement. Selon votre système d’exploitation, la distribution LaTeX que vous utilisez… la procédure est un peu différente.

  • Cas A : quelle que soit votre installation, vous pouvez télécharger la dernière version sur le site du CTAN et l’extraire dans votre dossier texmf local. Fouillez l’aide de votre distribution LaTeX, tout y sera indiqué.
  • Cas B : si vous utilisez TeXlive, le package s’appelle « lettre ». Utilisez tlmgr pour l’installer, ou si vous utilisez la distribution LaTeX des dépôts de votre Linux installez le package adéquat (sous Debian/Ubuntu/Mint : texlive-latex-extra )
  • Cas C : si vous utilisez MiKTeX, utilisez le gestionnaire de packages pour installer « lettre »
  • Cas D : si vous utilisez MacTeX… la réponse D. Plus sérieusement, MacTeX ne « connaît » pas lettre, il faut l’installer manuellement. Pour ce faire, téléchargez le package (cas A) et extrayez les fichiers dans $HOME/Library/texmf/tex/latex/lettre (créez les répertoires si besoin), puis ouvrez un terminal et entrez la commande texhash pour que MacTeX prenne le package en compte.

Création du document

Le squelette du document est relativement simple et explicite, mais doit être respecté, sinon vous n’arriverez pas à compiler ledit document.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
\documentclass[12pt]{lettre}

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

\begin{document}

\begin{letter}{destinataire\\adresse1\\adresse2}
\name{expéditeur}
\signature{expéditeur}
\address{expéditeur\\adresse1\\adresse2}
\lieu{ville}
\telephone{01~02~03~04~05}
\email{maxime@fai.fr}
\nofax

\def\concname{Objet :~}
\conc{objet de la lettre}
\opening{Madame, Monsieur,}

Contenu de la lettre

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

\encl{Pièces jointes}
\ps{Post Scriptum}
\end{letter}

\end{document
}

Je ne vais pas m’étendre sur les modifications que vous aurez à apporter à ce squelette, mais tout de même :

  1. Ligne 11 : le nom/prénom du destinataire du courrier, puis son adresse
  2. Ligne 12 : votre nom/prénom
  3. Ligne 13 : votre signature
  4. Ligne 14 : votre nom/prénom suivi de votre adresse
  5. Ligne 15 : l’endroit d’où vous écrivez (pour la ligne « Helsinki, le 30 décembre 2012 » par exemple, il faudrait mettre « Helsinki » ici)
  6. Ligne 16 : votre numéro de téléphone, si vous le souhaitez. Si vous ne voulez pas le mettre, changez cette ligne en « \notelephone »
  7. Ligne 17 : votre adresse e-mail. Si vous ne voulez pas la faire apparaître ici, supprimez simplement cette ligne ou commentez-la avec un %
  8. Ligne 18 : indique que vous n’avez pas de numéro de fax à donner. Si vous en avez un, remplacez cette ligne par « \fax{01~02~03} »
  9. Ligne 21 : l’objet de votre lettre
  10. Ligne 22 : la formule d’ouverture de votre lettre
  11. Ligne 26 : la formule de politesse, parce que nous sommes bien élevés 😉
  12. Ligne 28 : si besoin, la liste des documents attachés à votre lettre (pourquoi pas votre CV, une facture…). Dans le cas contraire, supprimez simplement la ligne
  13. Ligne 29 : un éventuel PS, si vous n’en avez pas besoin supprimez la ligne

Supprimer le trait de pliage

On a tous galéré au moins une fois en essayant de plier une lettre en trois, pour la faire rentrer dans une enveloppe. Normalement, une lettre bien pliée ne laisse apparaître que la partie supérieure, sans objet ni contenu visible, seulement les adresse, date… et par magie ça tombe en face de l’ouverture de l’enveloppe. Ça, c’est chez les bisounours. Dans la réalité, c’est jamais en face, encore moins plié droit.

Mais LaTeX fait bien les choses (du moins la classe lettre), et un petit trait noir indique sur le courrier l’endroit où plier le premier volet. Super pratique, mais pas toujours voulu. Voici comment le supprimer au besoin.

On va définir une commande « \NoRule » pour effacer ce trait, puis l’appeler dans la lettre. Donc, ajoutez dans le préambule :

% Suppression du trait de pliage
\makeatletter
\newcommand*{\NoRule}{\renewcommand*{\rule@length}{0}}
\makeatother

Et enfin ajoutez une ligne après le \begin{letter}{destinataire} qui contient :

\NoRule

Recompilez, et admirez !

Un petit gain de temps : le fichier *.ins

Vous en conviendrez, il y a pas mal d’infos qui ne changent pas d’une lettre à l’autre : votre nom, votre adresse postale et e-mail, etc. En fait, une grande patrie de ce qui est indiqué dans le préambule. Du coup, pourquoi ne pas créer un fichier « ins », puisque la classe lettre nous y autorise ?

Ce petit fichier reprendra ces quelques lignes « fixes », et sera appelé par le fichier principal (votre document, lettre.tex par exemple). Il doit être dans le même dossier que le document qui l’appelle.

Créons donc un fichier expediteur.ins avec un quelconque éditeur, pourquoi pas votre éditeur LaTeX s’il est lancé. Le contenu est le même que dans le document principal, en partie du moins :

1
2
3
4
5
6
7
\name{expéditeur}
\signature{expéditeur}
\address{expéditeur\\adresse1\\adresse2}
\lieu{ville}
\telephone{01~02~03~04~05}
\email{maxime@fai.fr
}
\nofax

Les mêmes règles de personnalisation s’appliquent, mais au moins vous pouvez utiliser ce fichier pour chacune de vos lettres, et une fois que c’est rempli, on n’en parle plus.

Du coup, dans le document principal, vous devez supprimer les lignes « doublons » et ajouter à la place :

\institut{expediteur}

Si votre fichier s’appelle expediteur.ins comme supposé. S’il s’appelle autrement, remplacez le texte entre accolades par le nom de votre fichier sans le « .ins ».

Vous pourrez donc voir dans les infos de compilation ces quelques lignes indiquant que votre fichier .ins a été pris en compte :

 Sélection_013

 

Voilà, je pense qu’avec tout ça vous êtes armé(e)s pour la plupart des lettres que vous pourrez taper avec LaTeX. Et si ça n’est pas le cas… Demandez ! 🙂

12 réflexions sur “ [Tuto] Écrire une lettre avec LaTeX ”

  • 3 janvier 2013 à 10 h 31 min
    Permalink

    « Cas D : si vous utilisez MacTeX… la réponse D. Plus sérieusement […] »

    Personnellement, je préfère:

    « Cas D : si vous utilisez MacTeX… Démerdez-vous. #CordialementBisous »

    Que de gros merci pour un article juste parfait et utile à un péon de LaTeX comme moi.

    La bise !

    Réponse
  • 23 septembre 2013 à 15 h 00 min
    Permalink

    Sous Mac, j’ai lancé Tex Live Utility pour installer le package lettre et ça marche facilement. Par contre, je ne sais pas si cela vient de chez moi, mais parfois LaTeX laisse un espace blanc assez conséquent entre l’objet et le destinataire, alors que la marge du bas de la feuille devient ridiculement petite. Cela donne un document très déséquilibré, et étrange du coup … Une idée ?

    Réponse
    • 25 septembre 2013 à 8 h 30 min
      Permalink

      Est-ce qu’une double-compilation ne suffit pas à résoudre le problème ? Il me semble avoir déjà vu ça, mais pas depuis que j’utilise TeXlive… le package « lettre » de ta distribution est-il bien à jour ? À l’époque de plus en plus lointaine où j’utilisais un peu Windows, MiKTeX n’incluait pas la dernière version, peut-être est-ce ton cas ?

      Réponse
  • 25 septembre 2013 à 9 h 16 min
    Permalink

    En effet, j’ai supprimé tous les fichiers (excepté le .tex), et après recompilation, Latex a bien voulu me remettre des marges normales… Il me semble bien avoir la dernière version de lettre (2.346).
    Merci bien en tout cas !

    Réponse
  • 5 mars 2014 à 22 h 03 min
    Permalink

    Je suis assez étonné que la typographie des balises \telephone et \mail soit aussi mauvaise. En effet, on devrait mettre un deux-points après « Tél. », mais aussi écrire « E-mail » plutôt que « E-Mail ».

    Tu aurais une explication et/ou une façon de corriger ça (en bidouillant les fichiers de configuration du package, peut-être ?) ?

    Merci en tout cas pour ton super article qui m’a été très utile. 😉

    Réponse
    • 8 mars 2014 à 14 h 20 min
      Permalink

      Une explication, non. A priori, tout ça a été codé en respectant les normes typo, mais ça évolue vite il faut dire… Et des écarts France/Suisse ne sont pas exclus 😀

      Pour modifier ça : tu peux éditer le fichier lettre.cls directement, ou redéfinir les commandes dans ton document directement. Les commandes concernées sont accessibles dans le même fichier cls, et sont définie de façon classique :

      1
      \def\emaillabelname{E-Mail :~}

      par exemple pour l’E-mail que tu veux changer.

      Libre à toi de faire une copie de cette classe dans ton dossier de travail et de l’utiliser, pour ne pas toucher à l’original, aussi. C’est une autre solution 😉

      J’espère que ça répond à ta question !

      Réponse
  • 8 mars 2014 à 14 h 50 min
    Permalink

    J’ai directement modifié lettre.cls pour que la typographie soit correcte à chaque fois que je démarre la rédaction d’une lettre.

    Merci beaucoup pour ta réponse, ça m’a beaucoup servi. 😉

    Réponse
  • 21 novembre 2014 à 18 h 25 min
    Permalink

    J’ai testé le modèle de lettre fourni ici et j’ai le message :Missing \endcsname inserted

    Pour info j’ai une version ubuntu 14.04 avec texlive et texlive-latex-extra et mon editeur est kile.

    Réponse
    • 30 décembre 2014 à 1 h 06 min
      Permalink

      Même version et même problème, apparemment c’est le post-scriptum qui crée le problème. Quand on le supprime, le fichier est généré. En remontant \ps… d’un cran, l’erreur change
      LETTRE INFO: Post-scriptum defini.
      LETTRE INFO: Annexes declarees.
      ! LaTeX Error: There’s no line here to end.

      Éditeur TeXworks

      Réponse
  • 2 décembre 2015 à 21 h 14 min
    Permalink

    Ce qui manque encore, c’est un petit tuyau comment rajouter et placer une vrai signature, comme par exemple signature.png

    Réponse

Laisser un commentaire

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