tuteurs.ens.fr/logiciels/latex/lettre.tml
2009-09-27 15:43:57 +02:00

278 lines
7.7 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Lettres</title>
</head>
<body>
<h1>Écrire une lettre avec LaTeX</h1>
<p>Il existe, <em>grosso modo</em>, deux classes de documents pour écrire
une lettre sous LaTeX : la classe <code>letter</code> et la classe
<code>lettre</code>.</p>
<h2>La classe <code>letter</code></h2>
<h3>Les bases</h3>
<p>C'est la plus simple des deux (mais forcément, elle fait moins de
choses...). Attention, par défaut, cette classe ne respecte pas la
convention de placement des noms à la française.
<code>\usepackage{french}</code> corrige cela (ce package n'existe plus,
le remplacent un package commercial <code>frenchpro</code> et une
version diminuée de ce dernier mais gratuite <code>frenchle</code>),
mais <strong>pas</strong> <code>\usepackage[francais]{babel}</code>.</p>
<p>Un document de base est structuré comme suit (les parties qui
doivent être modifiées sont en italique) :</p>
<pre>
\documentclass[11pt]{letter}
\name{<em>nom de l'expéditeur</em>}
\address{<em>adresse de l'expéditeur</em>}
\signature{<em>signature de l'expéditeur</em>}
\date{<em>date d'expédition</em>}
\begin{document}
\begin{letter}{<em>nom du destinataire</em>}
\opening{<em>formule de politesse (« adresse » : cher Monsieur, etc.)</em>}
<em>Corps de la lettre</em>
\closing{<em>formule de politesse (veuillez agréer, etc)</em>}
\ps{<em>post-scriptum</em>}
\cc{<em>nom des autres destinataires</em>}
\encl{<em>pièces jointes</em>}
\end{letter}
\end{document}
</pre>
<p>Bien entendu, il n'est pas nécessaire de spécifier <code>\ps</code>,
ou <code>\cc</code>, s'il n'y a pas lieu. Vous pouvez télécharger le <a
href="letter_skel.tex">fichier modèle</a> pour la classe de documents
<code>letter</code>.</p>
<h3>Gestion des langues</h3>
<p>La présentation de la lettre dépendra de la langue choisie. Par
défaut, la présentation est anglaise (on signe à la main sous le nom,
présentation en blocs sans indentation pour la première ligne d'un
paragraphe, formule de politesse d'ouverture alignée à gauche, etc.) En
utilisant le package <code>french</code> de <code>babel</code>
(attention, c'est bien <code>french</code> qu'il faut et non
<code>francais</code>).</p>
<h2>La classe <code>lettre</code></h2>
<p>La classe <code>lettre</code> se fonde sur <code>letter</code>, mais
avec quelques améliorations. Elle a été écrite par Denis Mégévand.
Attention ! Pour l'instant, la version installé sur clipper a des bugs
un peu pénible (double compilation nécessaire parce qu'elle ne reconnaît
pas <code>\closing</code> tout de suite). Vous pouvez télécharger une <a
href="ftp://obsftp.unige.ch/pub/tex/macros/lettre_2.346.tar.gz">version
plus récente (2.346)</a>, il vous suffira ensuite, pour l'utiliser, de la
placer dans votre répertoire inputs.</p>
<h3>Les bases</h3>
<p>Voici un exemple de fichier de base (vous disposez de toutes les
commandes de la classe <code>letter</code>, on ne les redonne pas toutes
ici) :</p>
<pre>
\documentclass[11pt]{lettre}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\begin{document}
\begin{letter}{<em>destinataire</em>}
\def\concname{<em>Objet :~</em>} % On définit ici la commande 'objet'
\conc{<em>Objet de la lettre</em>}
\nref{<em>Références de la lettre, de votre point de vue</em>}
\vref{<em>Références de la lettre, du point de vue de votre interlocuteur</em>}
\opening{<em>Madame, Monsieur,</em>}
<em>Corps de la lettre</em>
\closing{<em>formule de salutations</em>}
\end{letter}
\end{document}
</pre>
<h3>Supprimer le trait de pliage</h3>
<p>
Une question fréquente concerne la manière de retirer le trait
que la classe lettre imprime pour faciliter le pliage du courrier en
trois. On peut trouver disgracieux ce trait. Pour le retirer, il y a
trois méthodes
</p>
<p>
Premièrement, on peut placer dans le préambule cette définition
</p>
<pre>
\makeatletter
\newcommand*{\NoRule}{\renewcommand*{\rule@length}{0}}
\makeatother
</pre>
<p class="continue">
et utiliser la commande <code>\NoRule</code> dans le corps des lettres
pour lesquelles on ne souhaite pas ce trait. Par exemple
</p>
<pre>
\begin{letter}{<var>Premier destinataire</var>}
\NoRule
<var>Corps de la lettre</var>
\end{letter}
\begin{letter}{<var>Second destinataire</var>}
<var>Corps de la lettre</var>
\end{letter}
</pre>
<p class="continue">
donnera deux lettres, dont la première n'aura pas de trait de pliage
mais la seconde si.
</p>
<p>
Deuxièmement, vous pouvez placer dans le fichier <code>.ins</code> (voir
la section « Personnaliser ») une ligne supprimant le trait
chaque fois que vous utiliserez ce fichier <code>.ins</code>.
</p>
<pre>
\renewcommand*{\rule@length}{0}
</pre>
<p>
Troisièmement, si vous voulez systématiquement supprimer ce trait, vous
pouvez créer une classe spéciale <code>xletter</code>. Créez un fichier
<code>xletter.cls</code> et saisissez le code suivant.
</p>
<pre>
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{xlettre}
\newcommand*{\xlettre@do}{}
\newcommand*{\xlettre@rule}{}
\newcommand*{\xlettre@norule}{%
\let \xlettre@institut=\institut
\def \institut ##1{%
\xlettre@institut{##1}%
\def \rule@length {0}%
}%
\def \@institut {%
\makeatletter \input{default.ins}\makeatother
\def \rule@length {0}%
}%
}
\DeclareOption{rule}{\let \xlettre@do =\xlettre@rule}
\DeclareOption{norule}{\let \xlettre@do =\xlettre@norule}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{lettre}}
\ExecuteOptions{norule}
\ProcessOptions
\LoadClass{lettre}
\xlettre@do
\endinput
</pre>
<p class="continue">
Placez ce fichier dans les chemins de recherche de TeX. L'utilisation
de cette classe est strictement identique à celle de <code>lettre</code>
mais elle accepte deux options supplémentaires :
</p>
<pre>
\documentclass{xlettre}
</pre>
<p class="continue">
ou
</p>
<pre>
\documentclass[norule]{xlettre}
</pre>
<p class="continue">
supprime <em>systématiquement</em> les traits de pliage, tandis que
</p>
<pre>
\documentclass[rule]{xlettre}
</pre>
<p class="continue">
les ajoute <em>conformément aux règles de la classe <code>lettre</code></em>.
</p>
<h3>Personnaliser</h3>
<p>Un certain nombre de paramètres de vos lettres sont peu susceptibles
de changer. Votre nom ou votre adresse, par exemple. Vous souhaiteriez
donc pouvoir disposer d'un en-tête par défaut pour vos lettres. Ça tombe
bien, car avec la classe <code>lettre</code>, l'en-tête par défaut est
obligatoire.</p>
<p>L'en-tête est défini dans un fichier de configuration,
<code>default.ins</code> et qui doit être placé dans le répertoire
inputs (une autre possibilité est de placer ces commandes dans un
fichier <code>noel.ins</code> et d'utiliser dans le fichier
<code>.tex</code> la ligne
</p>
<pre>
\institut{noel}
</pre>
<p class="continue">
dans le préambule, à chaque fois que vous devrez utiliser ces
paramètres). Voici un exemple :</p>
<pre>
\name{Père Noël}
\signature{Papa Noël}
\address{\centering
\textbf{\textsc{Père Noël, Lutins et Associés}}\\
<em>% On peut mettre en forme l'en-tête... Ici, il est centré, et on</em>
<em>% demande à ce que le nom soit en petites majuscules et en gras.</em>
Fabricant de jouets depuis toujours\\
Palais des Jouets}
\lieu{Pôle Nord}
<em>% Ce paramètre sert à indiquer dans la lettre « Au Pôle</em>
<em>% Nord, le 25 décembre 2000 »</em>
\telephone{}
\email{pere.noel@polenord.pn}
\nofax
<em>% C'est \fax{} pour indiquer un numéro de fax</em>
</pre>
<p>Ce qui donne la chose suivante en guise d'en-tête :</p>
<div class="illustration"><img src="heading.jpg" alt="En-tête" /></div>
<div class="metainformation"> Auteurs : Marie-Lan Nguyen (2000),
François-Xavier Coudert (2002). Dernière modification le <date
value="$Date: 2007-07-17 10:02:51 $" /> par Josselin Noirel. </div>
</body> </html>