Document en français avec LaTeX (babel)
Certains conseils donnés dans cette page ne sont plus optimaux avec les dernières évolutions des moteurs et des packages LaTeX.
- Un premier test pour vérifier votre installation
- Les packages à inclure
- Les packages non-spécifiques nécessitant une adaptation
- Les commandes de
french
qui n'existent pas dansbabel
- Quelques conseils pour écrire vos sources LaTeX
utilisant
babel
- Inclusion de fichiers graphiques
- Exemple d'en-tête complet
- Informations erronées ou manquantes
Rédiger un document LaTeX en français nécessite l'utilisation de quelques packages spécifiques afin que ce document adopte les conventions habituelles de la typographie française. Si l'on veut en plus pouvoir créer un document PDF (grâce à pdflatex), il y a quelques astuces à connaître (NdA : les informations spécifiques à l'utilisation de pdflatex ne sont pas encore toutes présentes).
Il existe en gros trois méthodes pour franciser le fonctionnement de LaTeX :
- Faire tous les réglages à la main en utilisant les commandes LaTeX
de base.
C'est la solution la plus difficile à mettre en oeuvre. Cela nécessite de bien connaître LaTeX, TeX et les règles typographiques françaises... D'autres l'ont déjà fait pour vous. Donc inutile de réinventer la roue !
- Utiliser le package
french
de B.Gaulle.Ce fut longtemps la meilleure solution étant donné la très grande qualité du code proposé par B.Gaulle. L'installation de ce package n'était pas toujours facile mais les efforts consentis étaient récompensés.
Puis, le package
french
devint payant et nous ne pouvions donc plus le recommander ni le proposer en version pré-installée. Il existait bien une versionlight
de ce package mais elle ne proposait pas les commandes indispensables permettant, à l'occasion, de supprimer l'un ou l'autre des réglages choisis par le modefrench
.Après la disparition de B.Gaulle et avec l'accord de sa femme, ce package est devenu libre sous le nom
eFrench
et un groupe de volontaires le fait évoluer. Pour en savoir plus, visitez le site officiel. - Utiliser le package
babel
.À l'inverse
babel
fut longtemps considéré comme une solution de dépannage. Mais, heureusement, le package s'est largement amélioré au cours du temps et il est maintenant réellement utilisable. De plus, il est intégré dans toutes les distributions LaTeX (TeXLive, MikTeX, MacTeX, etc.) fournies sur Windows, MacOS ou Linux.
C'est l'utilisation de ce dernier package que nous décrivons dans la suite de ce document.
Un premier test pour vérifier votre installation
Voici le source d'un petit document de test :
\documentclass{article} \usepackage[latin1]{inputenc} \usepackage[cyr]{aeguill} \usepackage[francais]{babel} \begin{document} \showhyphens{signal container \'ev\'enement alg\`ebre} \showhyphens{signal container événement algèbre} \end{document}
Compilez ce document avec la commande latex
puis examinez
le contenu du fichier .log
produit. Vous devriez y trouver
quelque chose ressemblant l'une de ces deux lignes :
si-gnal contai-ner évé-ne-ment al-gèbre si-gnal contai-ner ^^Sev^^Se-ne-ment al-g^^Rebre
Si ce n'est pas le cas, votre installation n'est pas bien configurée
pour gérer la langue française. Par exemple, si vous obtenez
sig-nal
et con-tainer
, cela signifie que vous
utilisez les motifs de césure américain au lieu des français... Si vous
obtenez aucune césure pour événement
, cela signifie que vous
utilisez le codage OT1 qui ne permet pas (par défaut) de gérer
correctement les césures.
Si la première ligne est correcte mais pas la seconde alors vous devrez
choisir un autre encodage que latin1
(voir plus bas pour les
codages utilisables avec inputenc
)
Si le résultat est celui attendu alors vous pouvez raisonnablement
espérer utiliser babel
pour rédiger vos documents
français.
Les packages à inclure
Voici la liste des packages à inclure et des fonctionnalités qu'ils proposent :
\usepackage[latin1]{inputenc}
-
L'inclusion de ce package permet d'utiliser des sources LaTeX contenant des caractères accentués. L'option
[latin1]
précise que l'encodage des fichiers estiso-latin1
aussi connu sous le nomiso-8859-1
. Si vous êtes sur une plate-forme Un*x (Solaris, Linux, *BSD...), c'est certainement l'encodage que vous utilisez. Si vous travaillez dans un environnement Windows ou MacOS, vous devrez choisir une autre option ([ansinew]
et[applemac]
respectivement). \usepackage[cyr]{aeguill}
-
Permet d'inclure la package
ae
en le complétant afin de pouvoir utiliser les guillemets français («»). Le packageae
utilise des fontes virtuelles afin d'utiliser en interne la codage T1 (qui permet la césure correcte des mots accentués) et d'utiliser tout de même en externe les polices Computer Modern (OT1) qui sont les seules à exister en version PostScript Type1 gratuite. Ceci permet, par exemple, de faire des documents PDF de qualité sans être obligé d'utiliser les polices Adobe de base (Times, Courrier...) ou de payer les polices EC en PostScript Type1. \usepackage{xspace}
-
Permet à
babel
d'utiliser la macroxspace
partout où c'est nécessaire. (Voir la doc debabel
pour de plus amples explications.) \usepackage[francais]{babel}
-
Ceci permet de charger le package
babel
en lui indiquant que l'on veut travailler en français. Attention :[francais]
signifie 'french babel'. Si vous mettez[french]
à la place, babel essayera de trouver le packagefrench
de B.Gaulle.Depuis la version 3.6 de
babel
, on peut utiliser[frenchb]
à la place de[francais]
.On peut aussi utiliser
babel
pour écrire un document en plusieurs langues. Pour cela, il faut lui donner en option la liste de toutes les langues qui seront utilisées en plaçant en dernier la langue principale du document.
Les packages non-spécifiques nécessitant une adaptation
Voici quelques packages utiles qui, du fait de l'utilisation de
babel
en français, nécessitent quelques adaptations :
\usepackage{url}
-
Ce package permet d'afficher correctement des URL dans un document LaTeX. Un URL contient toujours le caractère : (deux points). Or ce caractère devient actif en français. Il faut donc momentanément désactiver ce caractère lors de l'utilisation de la commande
\url
:\let\urlorig\url \renewcommand{\url}[1]{% \begin{otherlanguage}{english}\urlorig{#1}\end{otherlanguage}% }
Cette astuce nécessite l'utilisation momentanée de la langue anglaise lors de l'affichage de l'URL. Il faut donc demander à
babel
de charger aussi cette langue :\usepackage[english,francais]{babel}
(Merci à Daniel FLIPO (flipo@jacta.univ-lille1.fr) pour l'amélioration de cette astuce qui ne sera plus nécessaire dès que babel v3.7 sera sorti.)
Les commandes de french
qui n'existent pas dans
babel
Le package french
propose toute une série de commandes
supplémentaires permettant de faciliter la conception de documents
français. Ces commandes ne sont bien évidemment pas disponibles dans
babel
. Pour la plupart, il existe une manière de faire
compatible avec babel
(le fonctionnement ne sera pas toujours
exactement similaire à la commande équivalente de
french
).
\sommaire
-
Dans un document français, le sommaire est au début du document et la table des matières est à la fin du document (en général, on utilise l'un ou l'autre mais pas les deux ;-). Or
babel
traduit le titre de la commande \tableofcontents
par « Table des matières ». Pour utiliser cette commande pour réaliser un sommaire, il suffit de changer sa traduction dans votre document :\renewcommand{\contentsname}{Sommaire}
\Numero
et\numero
-
Ces deux commandes ont leur équivalent dans
babel
:\newcommand{\Numero}{\No} \newcommand{\numero}{\no}
\fup
-
Cette commande a un équivalent dans
babel
:\newcommand{\fup}[1]{\up{#1}}
Quelques conseils pour écrire vos sources LaTeX
utilisant babel
Les caractères accentués
Dans la mesure du possible, utilisez les caractères accentués
directement dans votre source. L'utilisation du package
inputenc
vous le permet. Ne vous en privez pas.
Par contre, il est impossible d'utiliser les accents directement dans
une formule mathémathique. Pour obtenir quand même des accents, utilisez
la commande \text
. Exemple :
\begin{equation} A = E_{\text{é}} \end{equation}
La commande \text
n'est disponible que si vous utilisez le
package amsmath
:
\usepackage{amsmath}
Les guillemets
Utilisez les caractères «
et »
plutôt que
<<
et >>
sinon (avec le package
aeguill
) vos guillemets ne s'afficheront pas
correctement. Rappel : on place toujours une espace après l'ouverture
des guillemets et avant la fermeture des guillemets. Si vous utilisez « et
», il vous faudra taper «~texte~»
pour que les espacements
soient corrects.
Mais le mieux est d'utiliser les deux commandes \og
(pour
«) et \fg
(pour ») qui ont l'avantage de mieux règler
l'espacement entre les guillemets et ce qu'ils entourent puisqu'elles
utilisent un espacement variable à la place de l'espace insécable créée par
~.
Les acronymes, siglaisons et nom propres
babel
propose la commande \bsc
pour placer un
bout de texte en petites capitales. Cela peut être pratique pour les
acronymes, siglaisons et les noms propres. Exemple :
La \bsc{sncf} embauche Jacques \bsc{Durand}.
Les ponctuations double (:, ?, !, ;, etc.)
Placez toujours un caractère espace avant une double ponctuation !
babel
le transformera tout seul en une espace insécable. Par
défaut, babel
ajoutera même cette espace si vous l'oubliez
mais cela peut poser un problème dans les rares cas où il ne serait pas
nécessaire. Il vaut donc mieux y penser soi-même et demander à
babel
de ne pas l'ajouter tout seul :
\NoAutoSpaceBeforeFDP
Les symboles divers
babel
propose deux commandes pour afficher les
degrés : \degre
et \degres
. La première
sert pour les angles et la seconde pour les températures.
Quelques commandes sont disponibles pour des caractères spéciaux :
\at
(@
), \boi
(\
),
\tilde
(~
), \circonflexe
(^
).
1er, 2e, etc.
babel
fournit les commandes suivantes pour les
abréviations de premier, deuxième, etc. : \ier
,
\iers
, \iere
, \ieres
,
\ieme
et \iemes
. Ces commandes sont pratiques
car elles utilisent les bonnes règles d'affichage des ces
abréviations.
On peux aussi utiliser les commandes \primo
,
\secundo
, \tertio
et \quarto
.
Inclusion de fichiers graphiques
Il existe de nombreuses méthodes pour créer des images en LaTeX. Quelques-unes sont internes à LaTeX. D'autres font appel à des packages externes (ou extensions). D'autres encore utilisent des fichiers externes. Les plus complexes combinent différentes techniques. Voici quelques conseils pour faciliter la production de documents LaTeX en français soit en PostScript soit en PDF.
L'environnement LaTeX picture
et son extension
epic
Cet environnement permet de créer des images directement dans le source
LaTeX. L'extension epic
y ajoute quelques améliorations. Mais
cela reste d'une utilisation peu pratique sauf pour de très petites
figures. Par contre, un dessin conçu via ces méthodes ne posera aucun
problème pour produire un fichier PostScript (via dvips) ou PDF (via
pdflatex).
Exemple d'en-tête complet
Voici un exemple d'en-tête pour un fichier source LaTeX utilisant les conseils précédents :
\usepackage[latin1]{inputenc} \usepackage[cyr]{aeguill} \usepackage{xspace} \usepackage{amsmath} \usepackage[english,francais]{babel} \usepackage{url} \let\urlorig\url \renewcommand{\url}[1]{% \begin{otherlanguage}{english}\urlorig{#1}\end{otherlanguage}% } \renewcommand{\contentsname}{Sommaire} % si tableofcontents au début \newcommand{\Numero}{\No} \newcommand{\numero}{\no} \newcommand{\fup}[1]{\up{#1}} %%% N'oubliez pas les espaces devant les doubles ponctuations \NoAutoSpaceBeforeFDP
Informations erronées ou manquantes
Ce document n'est absolument pas exhaustif. Je l'enrichirai au fur et à mesure de mes propres expérimentations et des retours des utilisateurs. N'hésitez donc pas à me poser des questions à ce sujet.