\DocumentMetadata{pdfstandard=UA-2, pdfversion=2.0, lang=fr} \documentclass[a4paper,12pt,german,british,french]{article} % LuaTeX ONLY! \usepackage{iftex}[2019/10/24] \RequireLuaTeX \usepackage{array,longtable} \usepackage{varioref} \renewcommand{\reftextpagerange}[2]{\pageref{#1}--\pageref{#2}} \usepackage{url,alltt,shortvrb} \usepackage{graphics} \usepackage[dvipsnames]{xcolor} %%% Fontes OpenType avec moteur LuaTeX : Erewhon/Cabin/Inconsolata \usepackage[no-math]{fontspec} \usepackage{realscripts} \setmainfont{erewhon} %\setsansfont{Cabin}[Scale=MatchLowercase] \setmonofont{Inconsolatazi4}% voir inconsolata-doc.pdf [Scale=MatchLowercase, HyphenChar=None, StylisticSet={2,3}, ItalicFont = *-Regular, ItalicFeatures={FakeSlant=0.225}, % 13° SlantedFont= *-Regular, SlantedFeatures={FakeSlant=0.225}, BoldItalicFont = *-Bold, BoldItalicFeatures={FakeSlant=0.225}, BoldSlantedFont= *-Bold, BoldSlantedFeatures={FakeSlant=0.225}, ] %%% *** APRÈS fontspec *** \usepackage{babel} \frenchbsetup{ListItemsAsPar} \usepackage{microtype} % Mise en page \usepackage[textwidth=160mm,textheight=247mm,hmarginratio=1:1 ]{geometry} % %\setlength{\parindentFFN}{0em} \setlength{\parindent}{0mm} \setlength{\parskip}{.5\baselineskip plus .2\baselineskip minus .1\baselineskip} \ifFBListItemsAsPar \else \setlength{\listindentFB}{0mm} % sans effet si ListItemsAsPar=true \fi \MakeShortVerb{\|} % Couleurs % \emph \let\emphORI\emph \renewcommand{\emph}[1]{\textcolor{BrickRed}{\emphORI{#1}}} % verbatim : modifier \verbatim@font \def\ColorVerb{\color{MidnightBlue}} \makeatletter \let\verbatim@fontORI\verbatim@font \def\verbatim@font{\ColorVerb\verbatim@fontORI} \makeatother % options de frenchb : \def\ColorArg{\color{Sepia}} % \newcommand*{\file}[1]{\texttt{\ColorVerb #1}} \newcommand*{\cls}[1]{\texttt{\ColorVerb #1}} \newcommand*{\ext}[1]{\texttt{\ColorVerb #1}} \let\pkg\ext \newcommand*{\exe}[1]{\texttt{\ColorVerb #1}} \newcommand*{\opt}[1]{\texttt{\ColorVerb #1}} \newcommand*{\bibsty}[1]{\texttt{\ColorVerb #1}} \newcommand*{\env}[1]{\texttt{\ColorVerb #1}} \newcommand*{\lang}[1]{\texttt{\ColorVerb #1}} \newcommand*{\code}[1]{\texttt{\ColorVerb #1}} \newcommand*{\argum}[1]{\textit{#1}} \newcommand*{\meta}[1]{\textit{< #1 >}} \newcommand*{\LEFTmargin}{\texttt{<=}} \providecommand\marg[1]{% % from ltxdoc.cls {\ttfamily\char`\{}\textit{\ColorArg #1}{\ttfamily\char`\}}} \providecommand\oarg[1]{% {\ttfamily[}\textit{\ColorArg #1}{\ttfamily]}} \DeclareRobustCommand\cs[1]{\texttt{\ColorVerb \char`\\#1}}% from ltxdoc.cls \newcommand*\fbo[1]{\texttt{\ColorArg #1}} \newcommand*\fbsetup[1]{\cs{frenchsetup\{\fbo{#1}\}}} \renewcommand*\descriptionlabel[1]{\hspace\labelsep \normalfont\ttfamily\bfseries {\MyColor #1}} \let\MyColor\relax \providecommand*{\BibTeX}{% B\textsc{i}\kern-.025em \textsc{b}\kern-.08em \TeX}% \providecommand*{\biber}{Biber} \providecommand*{\biblatex}{Biblatex} % URL de mon site perso : \begingroup \catcode`~=12 \xdef\urlperso{http://daniel.flipo.free.fr} \endgroup % Adaptation des \subsubsection{} (thèmes des options de \frenchsetup{}) \makeatletter \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-1ex\@minus -.5ex}% {1ex\@minus .5ex}% {\normalfont\normalsize\bfseries}} \makeatother \usepackage{hyperref} \hypersetup{pdftitle={Mode d’emploi de babel-french}, pdfauthor={Daniel FLIPO}, colorlinks, urlcolor=PineGreen, linkcolor=Blue, } \newcommand*{\hlabel}[1]{\phantomsection\label{#1}} % notes bas de page consécutives avec le même numéro \newcommand*{\samefntmk}{% \addtocounter{Hfootnote}{-1}\addtocounter{footnote}{-1}\footnotemark} \title{Mode d’emploi du module \ext{babel-french}} \author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}} \newcommand*{\latestversion}{4.0e} \date{Version {\latestversion} -- 15 août 2025} \begin{document} \maketitle \thispagestyle{empty} \begin{center} \fbox{% \parbox{.7\textwidth}{\centering\Large\bfseries Cette documentation concerne \rule{0pt}{3ex}\\ uniquement Lua(La)TeX.\\[.5\baselineskip] Les utilisateurs de pdf(La)TeX et\\ Xe(La)TeX sont invités à consulter \\ le fichier \file{frenchb3-doc.pdf}.\rule[-2ex]{0pt}{3ex}}% } \end{center} \begin{abstract} La première version de \ext{frenchb} (\textbf{french} pour \textbf{b}abel) est sortie en 1996. La version~2, profondément remaniée, date de mai~2007. Une version~3 a vu le jour en 2014 alors que LuaTeX n’était pas encore en version~1.0. La version actuelle de \ext{frenchb} (\latestversion), dont le nom officiel est \ext{babel-french}, a été scindée en deux parties distinctes : une version « historique » \file{frenchb3.dtx}, réservée aux moteurs anciens (TeX, pdfTeX et XeTeX) qui restera figée ---~sauf corrections éventuelles de bogues~--, l’autre « moderne » \file{frenchb.dtx} destinée à Lua(La)TeX, qui continuera à évoluer. \textbf{La liste détaillée des changements introduits dans la version~4.0 se trouve à la section~\ref{ssec:changes-4.0} p.~\pageref{ssec:changes-4.0}.} \end{abstract} \bgroup \renewcommand{\abstractname}% {Historique des mises à jour de cette documentation} \newlength\mybox \settowidth{\mybox}{5 décembre 2020} \renewcommand{\descriptionlabel}[1]{\makebox[\mybox][l]{\textbf{#1 :}}} \vspace{\baselineskip}\noindent \begin{abstract} \vspace{-\baselineskip}\noindent \descindentFB=0pt \begin{description} \item[28 juin 2025] Adaptation à la version 4.0a, voir section~\ref{ssec:changes-4.0}. \end{description} \end{abstract} \egroup \newpage \renewcommand{\contentsname}{Sommaire} \tableofcontents{}% \label{ch-doc8} \newpage \section{Appel de l’extension Babel} Babel est installé en standard dans toutes distributions LaTeX, pour disposer des langues française et anglaise% \footnote{En fait américaine (US-english), il existe une variante \opt{british} pour l’anglais « britannique ».}, il suffit d’ajouter |\usepackage[english,french]{babel}|% \footnote{Les options \opt{frenchb} et \opt{francais} (équivalentes à \opt{french} depuis 2004), sont conservées pour des raisons de compatibilité, mais elles \emph{ne devraient plus être utilisées}.} dans le préambule du document (entre |\documentclass| et |\begin{document}|). Il est recommandé de déclarer les options de langues comme arguments de |\documentclass|, elles peuvent alors être utilisées également par d’autres extensions :\\ |\documentclass[12pt,british,french]{article}|\\ |\usepackage{varioref}|\\ |\usepackage{babel}|\\ a le même effet que\\ |\documentclass[12pt]{article}|\\ |\usepackage[french]{varioref}|\\ |\usepackage[british,french]{babel}| La \emph{dernière} langue chargée en option de Babel ou de |\documentclass| (le français dans les exemples ci-dessus) est la \emph{langue principale} du document, c’est elle qui est active au début du document et qui régit la présentation générale (listes, notes de bas de page, retrait des premiers paragraphes) quelle que soit la langue courante. Pour changer de langue en cours de document on utilise la commande standard de \mbox{Babel} |\selectlanguage{|\argum{lang}|}|, par exemple |\selectlanguage{british}| et pour revenir en français |\selectlanguage{french}|\footnote{Là encore, le nom de la langue française est \opt{french}, pas \opt{frenchb} ou \opt{français}.}. Pour passer \emph{localement} dans une autre langue on peut utiliser l’environnement \\ |\begin{otherlanguage}{|\argum{langue}|}|\\ \hspace*{1em}\argum{texte…}\\ |\end{otherlanguage}|\\ ou pour une courte citation dans un paragraphe\\ |\foreignlanguage{|\argum{langue}% |}{|\argum{texte…}|}|. Une syntaxe allégée est proposée pour les changements de langue : en ajoutant par exemple dans le préambule |\babeltags{fr = french}|% \footnote{Rien n’empêche de remplacer \texttt{\ColorVerb fr} par \texttt{\ColorVerb french}, on retrouve ainsi la syntaxe de \ext{polyglossia}.}, on peut remplacer\\ |\foreignlanguage{french}{texte}| par |\textfr{texte}| et\\ |\begin{otherlanguage*}{french} \end{otherlanguage*}| par\hlabel{textfr} |\begin{fr} \end{fr}|. |\babeltags| peut s’appliquer à plusieurs langues : |\babeltags{fr=french, de=german}|. Le codage d’entrée est \emph{obligatoirement} |utf8|, aucun appel à |\usepackage[...]{inputenc}| n’est donc à faire. Il est recommandé d’ajouter |\usepackage{fontspec}|. Dans les deux cas, le document sera composé avec les fontes LM ou \textit{Latin Modern} qui sont la version moderne des fontes CM ou Pour LuaLaTeX, il convient de faire appel aux fontes OpenType, l’exemple suivant sélectionne une police pour chaque famille (romain, sans-serif, chasse fixe) et uniformise la hauteur des minuscules :\\ |\usepackage{fontspec}|\\ |\setmainfont{Erewhon}|\\ |\setsansfont[Scale=MatchLowercase]{Cabin}|\\ |\setmonofont[Scale=MatchLowercase,HyphenChar=None]{Inconsolatazi4}| Il est recommandé d’ajouter également |\usepackage{realscripts}| afin de profiter de vraies lettres supérieures lorsqu’elles sont disponibles. \section{Description de la francisation par babel-french} \label{sec:description} Dans un document multilingue, il y a des conventions typographiques qui changent avec la langue, comme la présence ou non d’espaces avant la ponctuation haute et d’autres, la présentation des listes, des notes de bas de page ou le retrait des premiers paragraphes des sections qui devraient s’appliquer globalement à tout le document. \ext{babel-french} utilise la notion de \emph{langue principale} qui est la \emph{dernière option} (éventuellement la seule) de la commande |\usepackage[...]{babel}| ; c’est elle qui impose la présentation globale du document (listes, notes de bas de page, retrait des premiers paragraphes), les autres conventions typographiques restent locales (elles varient selon la langue utilisée). Lorsque le français n’est pas la langue principale, \ext{babel-french} ne modifie en rien la présentation globale du document : celle-ci est imposée uniquement par la classe et les autres extensions chargées. %%%\goodbreak Lorsque le français est la langue principale, la présentation du document (ou maquette) est modifiée de la façon suivante% \footnote{Il est possible, pour chacun des points suivants, de revenir aux réglages standard de LaTeX, voir section~\ref{sec:Perso}.} : \begin{itemize} \item Le premier paragraphe de chaque section est mis en retrait comme les suivants. %%%\pagebreak[3] \item Listes « \env{itemize} » : \begin{itemize} \item les marqueurs traditionnels du type «\textbullet» sont remplacés par défaut par des tirets~longs «---», ou par un autre marqueur choisi par l’utilisateur (voir section~\ref{sec:Perso}) ; \item les espaces verticaux ajoutés par LaTeX entre les différents éléments d’une liste (\textit{items}) sont supprimés. \item la largeur des marges gauches dans les listes \env{itemize} est ajustée en fonction du marqueur utilisé. Le même réglage s’applique aussi aux listes \env{enumerate} et trois paramètres (|\listindentFB|, |\descindentFB| et |\labelwidthFB|) ont été ajoutés pour permettre d’affiner la présentation des listes \env{itemize}, \env{enumerate} et \env{description} (voir section~\ref{ssec:lists}). \end{itemize} \item Par défaut les espacements verticaux de \emph{toutes} les listes (\env{enumerate}, \env{description} mais aussi \env{abstract}, \env{quote}, \env{quotation}, \env{verse}) sont réduits. {\sloppy \item Les notes de bas de page sont présentées « à la française » comme ceci\footnote{Une note de bas de page « à la française ».} {\FBFrenchFootnotesfalse\makeatletter\let\@footnotemark\@footnotemarkORI au lieu de ceci\footnote{Une note de bas de page standard (classe \cls{article}), ça jure avec la précédente, non ?}\makeatother}. Noter, outre la présentation différente du numéro dans la note elle-même, l’ajout de l’espace fine ajoutée avant l’appel de la première note. Le retrait des notes par rapport à la marge gauche est par défaut fixé au maximum de |\parindent| et de 1.8em, il peut être modifié en donnant la valeur voulue à |\parindentFFN| dans le préambule : |\setlength{\parindentFFN}{0mm}| par exemple. De même, le point qui suit par défaut le numéro de note, ainsi que l’espace insécable qui sépare ce point du texte de la note peuvent être redéfinis : ajouter dans le préambule |\renewcommand{\dotFFN}{}|, |\renewcommand{\kernFFN}{--}| (pas de point, un tiret double sans espace après le numéro de note).\hlabel{FFN} \par} \end{itemize} En ce qui concerne les conventions typographiques locales (dépendantes de la langue) la commande |\selectlanguage{french}| produit les effets suivants : \begin{itemize} \item Les motifs de césures françaises sont activés. \item Des espaces insécables et de taille adéquate sont ajoutés automatiquement devant la ponctuation haute (|; : ! ?|) si nécessaire% \footnote{Les rares cas où l’ajout d’espace ne doit pas avoir lieu (1:2, http://, C:\boi, etc.) sont maintenant gérés automatiquement.}. \item La commande |\today| retourne la date en français. \item Les titres («caption names» en anglais) sont traduits en français, ainsi la commande |\chapter| imprimera « Chapitre » au lieu de « Chapter ». Voir section~\ref{ssec:captions} p.~\pageref{ssec:captions} comment modifier ces intitulés. \end{itemize} \vspace{\parskip} La commande |\selectlanguage{english}| ramène au comportement standard de LaTeX (typographie américaine). Des commandes ont été prévues pour faciliter la saisie : \begin{itemize} \item Les guillemets français peuvent être saisis grâce à la commande |\frquote{|\textit{texte}|}| qui affiche \frquote{\textit{texte}} avec les espaces insécables adéquates. Il est également possible de coder |\og texte\fg{}| (ancienne syntaxe toujours valide). Si les caractères « et » sont accessibles au clavier% \footnote{grâce à une touche \texttt{Compose} par exemple…}, ils peuvent être utilisés pour saisir les guillemets français, \ext{babel-french} ajoute automatique les espaces insécables : on peut coder indifféremment \code{« a » ou «a»}. Il en va de même pour les guillemets simples ‹ et ›. L’usage de |\frquote{}| est recommandé pour les citations longues (c.-à-d. s’étendant sur plus d’un paragraphe) et pour les citations imbriquées.\hlabel{frquote} Pour les premières, |\frquote{}| insère automatiquement un guillemet ouvrant au début de chaque paragraphe, sauf si \fbo{EveryParGuill=close} (guillemet fermant dans ce cas) ou si \fbo{EveryParGuill=none} (aucun ajout). Une commande |\NoEveryParQuote| permet de supprimer localement des guillemets de début de paragraphe ajoutés inconsidérément par la commande |\frquote{}| notamment dans les listes (après les labels) ; elle doit être utilisée dans un environnement ou un groupe pour en limiter la portée. Pour les citations imbriquées, plusieurs présentations sont proposées selon les options choisies : %%% \enlargethispage*{\baselineskip} \begin{itemize} \item Les citations internes sont balisées par des guillemets anglais ``comme ceci’’ (recommandation de Aurel Ramat) sauf si \fbo{InnerGuillSingle=true}, dans ce cas les guillemets anglais sont remplacés par guillemets français simples \guilsinglleft\FBguillspace comme ceci \FBguillspace\guilsinglright{} (suggestion de Jean Méron). \item Il est possible d’insérer en début de chaque ligne de la citation interne un guillemet dit « de suite », ouvrant --~comme le recommande l’Imprimerie nationale~-- avec l’option \fbo{EveryLineGuill=open}, ou fermant (préconisé par Jean-Pierre Lacroux) avec l’option \fbo{EveryLineGuill=close}. Dans les deux cas l’option \fbo{InnerGuillSingle} est sans effet, la citation interne est toujours balisée par des guillemets chevrons « et ». \end{itemize} Lorsque les citations internes et externes se terminent en même temps, il est d’usage de supprimer le guillemet fermant de la citation interne. Pour ce faire, il suffit de coder la citation interne avec |\frquote*{}| au lieu de |\frquote{}|. Exemple de citation imbriquée : \vspace{\parskip} \begin{minipage}[t]{.47\textwidth} \hspace*{\fill}% \fbox{\begin{minipage}[t]{.95\textwidth} \FBInnerGuillSingletrue \parindent=1em Xavier raconte ainsi sa mésaventure : \frquote{Au moment d’enregistrer mes bagages, l’hôtesse m’a dit tout bonnement : \frquote{Je suis désolée, il n’y a plus de place. Vous allez devoir attendre le prochain vol.\par C’est un effet de ce qu’on appelle la surréservation, ou \textit{surbooking} en anglais.}% }% \end{minipage}% }\\[.2\baselineskip] \hspace*{\fill}\fbo{InnerGuillSingle}\hspace*{\fill} \end{minipage} \hspace{\fill} \begin{minipage}[t]{.47\textwidth} \fbox{\begin{minipage}[t]{.95\textwidth} \let\FBeverylineguill\FBguillopen \parindent=1em Xavier raconte ainsi sa mésaventure : \frquote{Au moment d’enregistrer mes bagages, l’hôtesse m’a dit tout bonnement : \frquote*{Je suis désolée, il n’y a plus de place. Vous allez devoir attendre le prochain vol.\par C’est un effet de ce qu’on appelle la surréservation, ou \textit{surbooking} en anglais.}% }% \end{minipage}% }\\[.2\baselineskip] \hspace*{\fill}\fbo{EveryLineGuill=open}\hspace*{\fill}% \end{minipage} \vspace{\parskip} Le codage est le suivant : {\ttfamily\ColorVerb Xavier raconte… |\frquote{|Au moment… l’hôtesse m’a dit tout bonnement : |\frquote*{|Je suis désolée, … en anglais.|}}|} \item La commande |\up| facilite la saisie des exposants en mode texte : |M\up{me}| imprime M\up{me}, |1\up{er}| donne 1\up{er} ; % 1\ier ; on dispose aussi de |\ier| |\iere| |\iers| |\ieres| |\ieme| |\iemes| pour 1\ier, 1\iere, 1\iers, 1\ieres, 2\ieme, 2\iemes. La commande |\up| utilise les lettres supérieures de la police lorsqu’elles sont disponibles et les simule sinon. On obtient de vraies lettres supérieures à condition de charger les extensions \ext{fontspec} \emph{et} \ext{realscripts} et d’utiliser une police de type OpenType qui connaisse la directive «sups» (c’est le cas de la plupart d’entre-elles, il est possible de s’en assurer sous linux grâce à la commande |otfinfo -f `kpsewhich nom_police.otf`|). De plus |\up| empêche le passage en capitales des lettres supérieures dans les hauts de page par exemple.\hlabel{lettres-sup} Une variante étoilée |\up*| est prévue pour les polices qui disposent d’un jeu incomplet de lettres supérieures : la police OpenType Jenson Pro par exemple n’ont pas de «g supérieur» ; en codant |M\up{gr}| on obtient Mg\up{r} (Jenson) tandis que |M\up*{gr}| force l’utilisation de supérieures simulées ce qui pallie l’absence du «g supérieur», le résultat est M\up*{gr}. \item Les commandes |\bname{}|\label{bname} (\textit{boxed name}) et |\bsc{}| (\textit{boxed small caps}) facilitent la saisie des noms propres : toutes deux empêchent la coupure de leur argument, sauf au niveau du tiret pour les noms composés ; la seconde imprime son argument en petites capitales, ce qui est d’usage par exemple dans les bibliographies ou les signatures.\\ Exemples : |\bname{Montesquieu}|, |Albert~\bsc{Camus}|.\\ N.B. Ces commandes ne mettent pas leur argument dans une |\mbox{}|, leur effet n’est pas aussi radical : un |\kern0pt| inhibe toute coupure du mot suivant, ce qui marche bien pour les noms simples ou composés avec un tiret et a l’avantage de préserver l’expansion éventuellement faite par \pkg{microtype}. Les patronymes à particule peuvent poser problème : coder |Jean~\bname{de La Fontaine}| n’aurait strictement aucun effet (les coupures après `de’, après `La’ ou `Fon-taine’ restent possibles), en revanche |Jean~de~La~\bname{Fontaine}| empêcherait toute coupure. \item les commandes |\primo|, |\secundo|, |\tertio| et |\quarto| peuvent être utilisées dans les énumérations ; elles donnent \primo, \secundo, \tertio, \quarto. Ensuite, |\FrenchEnumerate{6}| donne \FrenchEnumerate{6}. \item Les abréviations de «numéro», \No, \Nos, \no{} et \nos, sont obtenues en tapant |\No|, |\Nos|, |\no| et |\nos| ; elles incluent une espace insécable finale : coder |\no1| ou |\no 1| suffit. \item \hlabel{frenchdate} La commande |\frenchdate|\marg{année}\marg{mois}\marg{jour}, qui prend trois arguments numériques obligatoires, affiche les dates en français : |\frenchdate{2001}{01}{01}| donne \frenchdate{2001}{01}{01}, le résultat est inclus par défaut dans une boîte (|\hbox|) afin de ne jamais subir de coupure de ligne (cf.~Gouriou, Ramat). En cas de difficulté il est possible de redéfinir, localement par exemple, les commandes |\FBdatebox| (|\hbox| par défaut) et |\FBdatespace| (|\space| par défaut) : |\renewcommand*{\FBdatebox}{\relax}| supprime la |\hbox| tandis que |\renewcommand*{\FBdatespace}{~}| rend les deux espaces insécables. L’effet de ces deux commandes appliquées simultanément est d’interdire la coupure sur les espaces mais d’autoriser éventuellement celle du mois (jan-vier, dé-cembre, …) qui est interdite par défaut. \item En mode mathématique, la virgule est toujours suivie d’une espace car elle est traitée comme un signe de ponctuation et non comme une virgule décimale% \footnote{Une virgule décimale peut toujours être codée \code{\{,\}} en mode math.}. La commande |\DecimalMathComma| supprime cette espace (mais uniquement en français), on revient au comportement standard avec |\StandardMathComma|. On peut l’utiliser dans un groupe pour limiter sa portée, sinon après une commande |\DecimalMathComma|, il est nécessaire de saisir une espace (fine) dans les listes et les intervalles par exemple |$(x,\,y)$| et |$[0,\,1]$|.\hlabel{decimalmathcomma} |\DecimalMathComma| peut être placée soit dans le préambule, soit dans le corps du document \emph{en mode texte} et dans une partie \emph{en français}, son effet survit à un changement de langue (passage en anglais et retour en français par exemple), sauf bien sûr si elle est placée dans un groupe. Une solution alternative consiste à utiliser l’extension \ext{icomma}. \vspace{\parskip} \item La commande |\nombre|, destinée à formater automatiquement les nombres entiers ou décimaux par tranches de trois chiffres séparées par des espaces en français et par des virgules (usage anglo-saxon), fait désormais appel à la commande |\numprint| de l’extension du même nom. Lors du premier appel à la commande |\nombre|, un message est affiché dans le fichier \file{.log} indiquant comment charger \ext{numprint}. Le chargement de \ext{numprint} n’est pas fait par \ext{babel-french} à cause du risque de conflit d’options. Il doit se faire \emph{après} \ext{babel}. Les utilisateurs devraient s’habituer progressivement à utiliser |\numprint| (ou son raccourci |\np|) à la place de |\nombre|. \end{itemize} \vspace{\parskip} En ajoutant |\usepackage{xspace}| dans le préambule, les espaces suivant les commandes |\ier|,…, |\ieres|, |\ieme|, |\iemes|, |\fg| et |\dots| sont respectés sans avoir à les forcer par des |{}| ou des~\code{\boi\textvisiblespace}. Le recours à l’extension \pkg{xspace} est cependant une \emph{fausse simplification} car \emph{certaines} commandes sont affectées mais \emph{pas toutes}. Il me paraît plus simple d’éviter le recours à \pkg{xspace} et de gérer les espaces soi-même : « |les 1\ier, 2 et 3~mai| » ou « |le 1\ier~mai| » (espace insécable). \section{Personnalisation} \label{sec:Perso} La commande \fbsetup{}, appelée précédemment |\frenchbsetup{}|% \footnote{Ce dernier nom sera gardé comme alias par souci de compatibilité, le nouveau devrait être préféré depuis l’abandon du nom \ext{frenchb} au profit de \ext{babel-french} pour désigner l’option \opt{french} de babel.}, est à placer dans le préambule de chaque document après le chargement de Babel ; elle permet de personnaliser le comportement de \ext{babel-french} grâce au large choix parmi des options disponibles. La syntaxe est celle de l’extension \ext{keyval}, largement utilisée par d’autres extensions comme \ext{geometry} ou \ext{hyperref}. Le recours à un fichier de configuration \file{frenchb.cfg} n’est pas possible. \subsection[\textbackslash frenchsetup{}]{\fbsetup{\meta{options}}} \label{ssec:frenchbsetup} La commande \fbsetup{ShowOptions} affiche dans le fichier \file{.log} la liste des options disponibles, nous allons parcourir cette liste et expliquer l’effet de chacune d’elles. Dans le cas d’une option booléenne, la mention \fbo{=true} peut être omise : \fbsetup{ShowOptions} est équivalent à \fbsetup{ShowOptions=true}. Dans la liste ci-dessous, l’option activée par défaut est indiquée entre parenthèses, éventuellement suivie d’un étoile. L’étoile indique que la valeur par défaut correspond au cas où le français \emph{est la langue principale} (voir section~\ref{sec:description}, page~\pageref{sec:description}), et que cette valeur est inversée sinon. La liste étant longue, les options sont regroupées par thèmes. \bgroup \let\MyColor\ColorArg \subsubsection*{Inventaire des options} \begin{description} \setlength{\labelsep}{0.1666em} \item [ShowOptions=true (false)] affiche dans le fichier \file{.log} toutes les options disponibles, ce qui permet de retrouver leurs noms facilement. \end{description} \subsubsection*{Maquette générale} \begin{description} \item [StandardLayout=true (false*)] supprime toute action de \ext{babel-french} sur la maquette dans le cas où le français est la langue principale : retour aux listes standard, pas de retrait des 1\iers{} paragraphes des sections, notes de bas de page standard. Lorsque le français n’est pas la langue principale, elle est sans effet. \item [IndentFirst=false (true*)] ; par défaut, \ext{babel-french} applique un retrait identique pour tous les paragraphes (de largeur |\parindent|), y compris le premier de chaque section, ce qui est conforme à l’usage français. Avec \fbo{IndentFirst=false} le retrait du premier paragraphe de chaque section est supprimé, comme c’est l’usage en anglais, soit dans tout le document si le français est la langue principale, soit seulement en français. \item [PartNameFull=false (true*)] ; par défaut \ext{babel-french} numérote les parties créées par la commande |\part| en « Première partie », « Deuxième partie », etc. Ceci fonctionne bien pour la plupart des classes (classes standard, classes koma-script, memoir) mais pas pour les classes AMS qui redéfinissent la commande |\part|. L’option \fbo{PartNameFull=false} permet de revenir à une numérotation des parties plus standard -- « Partie~I », « Partie~II », etc. --, ce qui supprime les risques de mauvais affichage du genre « Première partie~1 » notamment dans la table des matières. \item [TocPartNameFull=false (true*)] ; les numéros de parties sont également affichés sous la forme « Première partie », « Deuxième partie », avec les classes koma-script et \cls{memoir} uniquement% \footnote{Les classes standard ne fournissent pas de \textit{hook} pour personnaliser la table des matières.}. Il est possible de supprimer ce comportement en mettant cette option à~\fbo{false}. \end{description} \subsubsection*{Présentation des listes} \begin{description} \item [ListItemsAsPar=true (false)] ; mettre cette option à \fbo{true} est recommandé à ceux qui souhaitent une présentation des listes conforme aux usages en vigueur à l’Imprimerie nationale, voir p.~\pageref{ListAsPar} pour une comparaison avec la disposition par défaut. \item [StandardListSpacing=true (false*)] ; par défaut \ext{babel-french} modifie (en général en les réduisant, sauf pour les classes SMF) les espaces verticaux% \footnote{Il s’agit de \cs{itemsep}, \cs{parsep}, \cs{topsep} et \cs{partopsep}.} \label{listspacing} dans \emph{toutes les listes} produites à partir de l’environnement \env{list}, en particulier les listes \env{enumerate}, \env{itemize} et \env{description} mais aussi \env{abstract}, \env{quote}, \env{quotation}, \env{verse}… \fbo{StandardListSpacing=true} permet de revenir aux réglages standard (ceux de la classe utilisée), elle remplace l’ancienne option \fbo{ReduceListSpacing} en l’inversant : \fbo{StandardListSpacing=true} équivaut à \fbo{ReduceListSpacing=false} qui pouvait être trompeuse dans le cas des classes SMF mais qui fonctionne toujours pour ne pas compromettre la compilation d’anciens documents. \item [StandardItemizeEnv=true (false*)] ; par défaut l’environnement \env{itemize} est redéfini pour qu’aucun espace vertical ne soit ajouté à l’interligne standard entre les éléments d’une liste \env{itemize} et pour adapter |\labelwidth| au marqueur utilisé. L’option |StandardItemizeEnv=true| empêche cette redéfinition, ce qui est nécessaire en cas de conflit avec une classe ou une extension qui redéfinit aussi l’environnement \env{itemize} (\ext{enumitem} ou \ext{paralist} par exemple% \footnote{\ext{babel-french} met automatiquement le drapeau \fbo{StandardItemizeEnv} à \fbo{true} lorsque l’une des extensions \ext{enumitem} ou \ext{paralist} est chargée.}). L’interligne entre les éléments des listes \env{itemize} est alors légèrement augmenté si \fbo{StandardListSpacing=false} ou l’est nettement plus (on revient au réglage de base de la classe utilisée) si \fbo{StandardListSpacing=true}. Les utilisateurs d’\ext{enumitem} qui souhaitent obtenir pour leurs listes une présentation à la française, trouveront comment faire page~\pageref{enumitem-cfg}.\hlabel{ch-enumitem} \item [StandardEnumerateEnv=true (false*)] ; depuis la version~2.6, \ext{babel-french} redéfinit également les environnements \env{enumerate} et \env{description} pour que leurs marges soient les mêmes que celles des listes \env{itemize}. \fbo{StandardEnumerateEnv=true} empêche cette redéfinition, ce qui est nécessaire en cas de conflit avec une classe ou une extension qui redéfinit aussi l’environnement \env{enumerate} (\ext{enumerate}, \ext{enumitem} ou \ext{paralist} par exemple% \footnote{\ext{babel-french} met automatiquement le drapeau \fbo{StandardEnumerateEnv} à \fbo{true} lorsque l’une des extensions \ext{enumerate}, \ext{enumitem} ou \ext{paralist} est chargée.}). \item [StandardItemLabels=true (false*)] restitue aux marqueurs des listes \env{itemize} les valeurs standard attribuées par la classe de document ou les extensions utilisées. {\sloppy \item [ItemLabels=\boi{}textbullet, \boi{}textendash, \boi{}ding{43},... (\boi{}textemdash*)] ; option qui permet de choisir le marqueur utilisé dans les listes \env{itemize} en français (\emph{sauf} bien sûr si \fbo{StandardItemLabels=true}). Noter que |\ding{43}| suppose que l’extension \ext{pifont} soit chargée. Cette option affecte tous les niveaux de la liste. Les quatre options suivantes fonctionnent de même mais n’affectent elles qu’un niveau chacune : \par} \item [ItemLabeli=\boi{}textbullet, \boi{}textendash, \boi{}ding\{43\},... (\boi{}textemdash*)] \item [ItemLabelii=\boi{}textbullet, \boi{}textendash, \boi{}ding\{43\},... (\boi{}textemdash*)] \item [ItemLabeliii=\boi{}textbullet, \boi{}textendash, \boi{}ding\{43\},... (\boi{}textemdash*)] \item [ItemLabeliv=\boi{}textbullet, \boi{}textendash, \boi{}ding\{43\},... (\boi{}textemdash*)] {\sloppy \item [StandardLists=true (false*)] ; supprime toute action de \ext{babel-french} sur les listes, elle équivaut aux quatre options \fbo{StandardItemLabels=true}, \fbo{StandardItemizeEnv=true}, \fbo{StandardEnumerateEnv=true} et \fbo{StandardListSpacing=true}. Lors de l’utilisation d’une classe ou d’une extension qui modifie la présentation des listes, il peut y avoir conflit avec \ext{babel-french} ; dans ce cas l’option \fbo{StandardLists} (ou éventuellement l’une ou l’autre des quatre sous-options plus ciblées qu’elle regroupe) devrait régler le problème% \footnote{L’option \fbo{StandardLists} est automatiquement activée avec la classe \cls{beamer}.}. \par} \end{description} \subsubsection*{Présentation des notes de bas de page} \begin{description} \item [FrenchFootnotes=false (true*)] fait revenir à la présentation standard des notes de page, telle que définie par la classe ou les extensions utilisées. Cette option, \fbo{true} ou \fbo{false}, affecte la totalité du document, les notes numérotées avec des symboles (commande |\thanks{}| de |\maketitle{}|) ou avec des lettres (environnement \env{minipage}) gardent elles toujours la présentation standard. \item [AutoSpaceFootnotes=false (true*)] supprime l’espace fine insécable ajoutée par défaut avant l’appel de chaque note dans le texte courant. Cette option affecte la totalité du document. L’espace éventuellement ajoutée peut être ajustée, la commande par défaut est : |\newcommand*{\FBfnmarkspace}{\kern .5\fontdimen2\font}| \end{description} \subsubsection*{Ponctuation haute} \begin{description} \item [AutoSpacePunctuation=false (true)] ; basculer cette option à \opt{false} est \emph{vivement déconseillé}. Cette option n’est utile qu’avec les moteurs pdfTeX et XeTeX. Le moteur LuaTeX permet un contrôle fin de l’ajout d’espace devant le deux-points : si ce caractère n’est pas précédé d’un espace et que celui qui le suit est de type \textit{glyphe} (lettre, chiffre, /, \textbackslash, etc.) aucune espace n’est ajoutée en sortie, ce qui évite les espaces parasites dans les URLs (ftp://monsite), les chemins MSDOS (C:\textbackslash), les horaires (10:55) et les ratios (1:1). Si l’utilisateur code une espace insécable U+00A0 (\emph{pas} \raisebox{-1ex}{\huge\code{\tild}}) ou une fine insécable U+202F, ces caractères sont recopiés tels quels en sortie, sans ajout d’espace par \ext{babel-french}. Noter que l’insertion automatique d’espaces peut être inhibée localement grâce à la commande |\NoAutoSpacing| utilisée dans un groupe comme ceci : |{\NoAutoSpacing xx: yy}|. \item [ThinColonSpace=true (false)] ; par défaut l’espace placée avant le caractère `:’ est une espace-mot insécable, cette option la remplace par une espace fine insécable. Certains auteurs font ce choix pour que les espaces précédant les quatre signes de ponctuation haute soient identiques. Le choix par défaut correspond à la maquette de l’Imprimerie nationale, le Guide du typographe (ex-roman) préconise lui l’espace fine devant un~`:’. Il est possible de redéfinir complètement la taille des espaces précédant la ponctuation haute (ou les guillemets français) en utilisant dans le préambule la commande |\FBsetspaces| qui admet quatre arguments obligatoires : le premier précise le type d’espace à redéfinir, il doit être |colon| (pour~`:’), |thin| (pour~`;’ `!’ et `?’) ou |guill| pour les guillemets chevrons), les trois suivants sont des nombres décimaux qui définissent la largeur (\textit{width}), l’extensibilité (\textit{stretch}) et la compressibilité (\textit{shrink}) de l’espace exprimées en \textit{fontdimen}. \hlabel{FBsetspaces} Exemples : les valeurs |{1}{1}{1}| correspondent à l’espace-mot justifiante (utilisée par défaut devant le deux-points), |{0.5}{0}{0}| à l’espace fine (utilisée par défaut devant `;’ `!’ et `?’, noter son absence d’élasticité) et |{0.8}{0.3}{0.8}| à l’espace utilisée par défaut à l’intérieur des guillemets. |\FBsetspaces{colon}{0.5}{0}{0}| est équivalent à l’option~\fbo{ThinColonSpace} (vaut pour le français et le canadien). |\FBsetspaces{colon}{1}{0}{0}| met une espace-mot sans élasticité devant les~`:’. \item [OriginalTypewriter=true (false)] ; par défaut, lorsqu’une police à espacement fixe est utilisée (|\texttt{}|, mode verbatim, listings, etc.) \ext{babel-french}, n’ajoute jamais d’espace avant la ponctuation haute ni après `«’ ou `‹’, ni avant `»’ ou `›’. De plus, les espaces présents dans texte source ne sont pas modifiés, par exemple |\texttt{X != Y}| produit \texttt{X != Y} (pas d’espace fine avant le~`!’). Mettre cette option à \fbo{true} supprime ce comportement. \item [UnicodeNoBreakSpaces=true (false)]; \hlabel{ucs-nbsp} ; lorsqu’on la met à \fbo{true} les espaces insécables ajoutées par \ext{babel-french} dans le fichier PDF de sortie (ponctuation haute, guillemets, etc.) sont codées sous forme de caractères Unicode (U+A0 ou U+202F fine) au lieu des pénalités et ressorts de type \textit{glues}. Ceci devrait préserver ces espaces lors de la conversion en HTML des fichiers produits par LuaLaTeX, malheureusement la version actuelle de \exe{pdftotext} ne les restitue pas correctement. En revanche, \exe{lwarp} (v.~0.37 et suivantes) est totalement compatible avec \ext{babel-french} pour la conversion en HTML des fichiers PDF. \end{description} \subsubsection*{Guillemets} \begin{description} \item [og=«, fg=»] ; cette option ---~qui se justifait en présence de codages d’entrée disparates~--- n’a plus d’effet, elle affiche seulement avertissement. \ext{babel-french} gère automatiquement l’espacement des guillemets français. \hlabel{og-fg} Les espaces insécables ne sont ajoutées que lorsque la langue courante est le français : en allemand, le codage \code{(»Auf Deutsch«)} produit \foreignlanguage{german}{(»Auf Deutsch«)}. %» \item [INGuillSpace=true (false)] ; force \ext{babel-french} à mettre une espace-mot justifiante insécable après les guillemets ouvrants et avant les guillemets fermants comme le préconise l’Imprimerie nationale. Par défaut les espaces insérées par \ext{babel-french} sont légèrement plus étroites et moins extensibles qu’une espace-mot.\hlabel{INGuillspace} Cette option est équivalente à |\FBsetspaces{guill}{1}{1}{1}|, voir p.~\pageref{FBsetspaces}. Les options suivantes n’affectent que les citations codées \emph{intégralement} avec |\frquote{}|. \item [InnerGuillSingle=true (false)] ; si \fbo{InnerGuillSingle=true} les citations internes sont balisées comme ‹ ceci ›, sinon comme ``cela’’. \item [EveryParGuill=open, close, none (open)] ; selon sa valeur, cette option ajoute un guillemet ouvrant («), {\NoAutoSpacing fermant (»\FBguillspace)} ou rien au début de chaque paragraphe inclus dans une citation de premier rang codée avec |\frquote{}|.\hlabel{everyparguill} Lorsque \fbo{InnerGuillSingle=true}, cette option est également prise en compte pour les citations de second rang (internes) : selon sa valeur, un guillemet simple ouvrant (‹) ou {\NoAutoSpacing fermant (›\FBguillspace)} ou rien, est ajouté à chaque début de paragraphe. Lorsque \fbo{InnerGuillSingle=false}, rien n’est ajouté en début de paragraphe dans les citations de second rang. \item [EveryLineGuill=open, close, none (none)] ; selon sa valeur, cette option ajoute un guillemet ouvrant («), {\NoAutoSpacing fermant (»\FBguillspace)} ou rien, au début de chaque ligne d’une citation de second rang. Notez que les citations de premier et de secong rang doivent être toutes deux codées avec |\frquote{}|. Lorsque \fbo{EveryLineGuill=open} ou \fbo{close} la citation interne est toujours balisée par des guillemets français doubles « et », même si \fbo{InnerGuillSingle=true}. \end{description} \subsubsection*{Présentation des nombres} \begin{description} {\sloppy \item [ThinSpaceInFrenchNumbers=true (false)] remplace le séparateur des milliers utilisé en français par la commande |\numprint{}| (ou son alias |\nombre{}|) pour le formatage des nombres, par une espace fine (par défaut c’est une espace mot insécable et sans élasticité en français). Cette option n’a d’effet que si l’extension \ext{numprint} est chargée (\emph{après} \ext{babel}) avec l’option \opt{autolanguage} ; sans elle, \ext{numprint} formate les nombres indépendamment de la langue courante et le séparateur des milliers est par défaut l’espace fine. \par} \end{description} \subsubsection*{Légendes de figures et tables} \begin{description} \item [SmallCapsFigTabCaptions=false (true*)]; si cette option est mise à \fbo{false}, le recours aux petites capitales dans les intitulés des légendes de figures et tables est supprimé, on obtient « Figure » et « Table » au lieu de « \textsc{Figure} » et « \textsc{Table} ». Noter que le même résultat peut être obtenu en définissant |\FBfigtabshape| comme |\relax| avant le chargement de \ext{babel}.\hlabel{scfigtab} \item [CustomiseFigTabCaptions=true (false)] ; si cette option est mise à \fbo{true}, le séparateur par défaut (deux-points) est remplacé par `--’ dans les légendes des figures et des tables, ceci pour toutes les langues. Le séparateur `:’ est maintenant toujours précédé d’une espace insécable en français, il n’y a donc plus aucun intérêt à forcer cette option à~\fbo{true}. \end{description} \subsubsection*{Divers : lettres supérieures et « warnings »} \begin{description} \item [LowercaseSuperscripts=false (true)] rend possible d’avoir des lettres supérieures en capitales (est-ce bien utile ?). Par défaut, la commande |\up| empêche le passage en capitales des lettres supérieures dans les hauts de pages par exemple. \item [SuppressWarning=true (false)] peut être utilisée pour supprimer les avertissements non essentiels émis par \ext{babel-french}. \end{description} \egroup \subsubsection*{Ordre des options} Il faut se souvenir que les options sont prises en compte dans l’ordre où elles sont écrites dans la commande \fbsetup{}. Exemple : un utilisateur souhaitant que \ext{babel-french} ne touche pas à la présentation des listes ni à celle des notes de bas de page mais ajoute un renfoncement au début des 1\iers{} paragraphes de section peut faire \fbsetup{StandardLayout,IndentFirst}. S’il choisissait l’ordre inverse l’option \fbo{IndentFirst} serait annulée par \fbo{StandardLayout}. Cet utilisateur obtiendrait également le résultat souhaité en codant\\ \fbsetup{StandardLists,FrenchFootnotes=false}\\ là, l’ordre est indifférent car les options sont indépendantes. \subsection[Traduction des intitulés] {Traduction des intitulés (« caption names » en anglais)} \label{ssec:captions} \enlargethispage{-\baselineskip} Voici la liste des traductions proposées par \ext{babel-french} : {\setcounter{LTchunksize}{30} % Pour réduire le nombre de compilations. \setlength{\LTleft}{0pt} % Avec \extracolsep{\fill}, assure que le \setlength{\LTright}{0pt} % tableau prend toute la largeur de page. \setlength{\LTpost}{\smallskipamount} \newcommand*\name[1]{% \texttt{\ColorVerb\textbackslash#1name}% &\texttt{\ColorVerb\textbackslash french#1name}} \begin{longtable}{|l!{\extracolsep{\fill}}l!{\extracolsep{\fill}}l|} \hline Commande Babel & Commande pour le français & Intitulé par défaut en français\\* \hline \name{abstract} & Résumé\\* \name{bib} & Bibliographie\\ \name{ref} & Références\\ \name{preface} & Préface\\ \name{chapter} & Chapitre\\ \name{appendix} & Annexe\\ \name{contents} & Table des matières\\ \name{listfigure} & Table des figures\\ \name{listtable} & Liste des tableaux\\ \name{index} & Index\\ \name{glossary} & Glossaire\\ \name{figure} & Figure\\ \name{table} & Table\\ \name{part} & Première partie, Deuxième partie…\\ \name{encl} & P.~J.\\ \name{cc} & Copie à \\ \name{headto} & \meta{vide}\\ \name{page} & page\\ \name{see} & voir\\ \name{also} & voir aussi\\* \name{proof} & Démonstration\\* \hline \end{longtable} } Il est facile de modifier ces traductions : pour remplacer « Démonstration » par « Preuve » (avec \ext{amsthm}) ajouter dans le préambule |\def\frenchproofname{Preuve}|% \footnote{Les puristes peuvent remplacer \cs{def} par \cs{renewcommand*} s’ils le souhaitent.}, noter que l’ancienne syntaxe |\addto\captionsfrench{\def\proofname{Preuve}}| fonctionne toujours.\hlabel{captionsfrench} La modification des noms de parties est plus complexe : si on préfère « Partie~I », « Partie~II » à « Première partie », « Deuxième partie », il suffit de redéfinir |\frenchpartname| comme ceci |\def\frenchpartname{Partie}|\samefntmk{} ; utiliser l’option \fbo{PartNameFull=false} dans \fbsetup{} aboutit au même résultat. Si en revanche on veut que |\part{}| produise par exemple « Première phase », « Deuxième phase », il faut redéfinir |\frenchpartnameord| et non |\frenchpartname| : |\def\frenchpartnameord{phase}|\samefntmk. Le remplacement de « Deuxième » par « Seconde » est possible en codant |\def\frenchpartsecond{Seconde}|\samefntmk{} dans le préambule. De même il est possible de remplacer « Première » par « Premier » en codant |\def\frenchpartfirst{Premier}|\samefntmk. On remarquera que |\figurename| et |\tablename| sont affichés en petites capitales en français. Il serait préférable, notamment dans un document multilingue, de s’en tenir à la traduction pure en actionnant l’option \fbo{SmallCapsFigTabCaptions=false} (p.~\pageref{scfigtab}). \subsection{Présentation des listes} \label{ssec:lists} Voici la présentation par défaut% \footnote{L’option \fbo{ListItemsAsPar} permet une autre présentation, voir ci-dessous p.~\pageref{ListAsPar}.} pour les listes \env{itemize} (tiret cadratin et alignement des tirets de premier niveau sur le retrait (|\parindent|) de début de paragraphe) :\par {\centering \fbox{\begin{minipage}[t]{.40\textwidth}\raggedright \FBListItemsAsParfalse \parindent=1.5em \listindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{itemize} \item Premier élément sur plus d’une ligne… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2, \end{itemize} \item Second élément… \end{itemize} \end{minipage}}\par } Ceux qui préfèrent le tiret demi-cadratin (\textendash) comme marqueur peuvent ajouter l’option \fbsetup{ItemLabels=\boi{}textendash}, d’autres options existent voir section~\ref{ssec:frenchbsetup}. \ext{babel-french} applique aux listes \env{enumerate} et \env{description} les mêmes retraits horizontaux qu’aux listes \env{itemize}, tous sont donc basés sur la largeur du marqueur choisi, |\textemdash| par défaut, |\textendash|, ou autre. {\sloppy Trois paramètres dimensionnels permettent d’ajuster la présentation des listes \env{itemize}, \env{enumerate} et \env{description} : \begin{description} \item [\cs{listindentFB}] dont la valeur par défaut est |\parindent| si |\parindent| est non nul et |1.5em| (valeur standard de |\parindent|) sinon ; |\listindentFB| permet modifier la marge gauche du premier niveau de liste (ce qui déplace aussi les listes incluses). Exemple : en ajoutant |\setlength{\listindentFB}{0pt}| dans le préambule, les étiquettes de toutes les listes de premier niveau colleront à la marge gauche au lieu d’être décalées vers la droite. % Illustration de \parindent et \listindentFB \vspace{\parskip} \begin{minipage}[t]{.45\textwidth} \fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright \FBListItemsAsParfalse \parindent=0pt \listindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{itemize} \item Premier élément sur plus d’une ligne… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2, \end{itemize} \item Second élément… \end{itemize} \end{minipage} }\\ \hspace*{\fill}|\parindent=0pt|\hspace*{\fill}% \end{minipage} \hspace{\fill} \begin{minipage}[t]{.5\textwidth} \hspace*{\fill} \fbox{\begin{minipage}[t]{.9\textwidth}\raggedright % .72 \FBListItemsAsParfalse \parindent=0em \listindentFB=0em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{itemize} \item Premier élément sur plus d’une ligne… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2, \end{itemize} \item Second élément… \end{itemize} \end{minipage} }\hspace*{\fill}\\ \hspace*{\fill}|\parindent=0pt| \emph{et} |\listindentFB=0pt|\hspace*{\fill}% \end{minipage} \vspace{\baselineskip} \item [\cs{labelwidthFB}] dont la valeur par défaut est la largeur de |\FrenchLabelItem| (c.-à.d. |\textemdash| sauf changement décidé par l’utilisateur) ; il est possible de fixer la valeur de |\labelwidthFB| niveau par niveau, voir le second exemple ci-dessous. % Illustration de \labelwidthFB \bgroup \renewcommand*{\thempfootnote}{\arabic{mpfootnote}} \parindentFFN=4pt\relax \begin{minipage}[t]{.45\textwidth} \fbox{\begin{minipage}[t]{.9\textwidth}\raggedright \FBListItemsAsParfalse \parindent=1.5em \listindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{enumerate} \item Premier élément sur plus d’une ligne… \begin{enumerate} \item Un élément niveau 2, \item Second élément niveau 2, \end{enumerate} \item Second élément… \end{enumerate} \end{minipage} }\\ \hspace*{\fill}Présentation par défaut% \footnote{Remarquer l’alignement vertical avec l’exemple ci-dessus.} \hspace*{\fill} \end{minipage} \hspace{\fill} \begin{minipage}[t]{.5\textwidth} % .45 \stepcounter{mpfootnote} \hspace*{\fill} \fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright \FBListItemsAsParfalse \parindent=1.5em \listindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{enumerate} \item Premier élément sur plus d’une ligne… \settowidth{\labelwidthFB}{(a)}% \begin{enumerate} \item Un élément niveau 2, \item Second élément niveau 2, \end{enumerate} \item Second élément… \end{enumerate} \end{minipage} }\hspace*{\fill}\\ \hspace*{\fill}|\settowidth{\labelwidthFB}{(a)}|% \footnote{Commande à placer juste avant le second environnement \env{enumerate}.}% \hspace*{\fill} \end{minipage} \egroup \vspace{\baselineskip} \item [\cs{descindentFB}] dont la valeur par défaut est |\listindentFB| permet de traiter les listes de type \env{description} différemment des autres : pour que les étiquettes des seules listes \env{description} collent à la marge gauche, il suffit d’ajouter dans le préambule |\setlength{\descindentFB}{0pt}|. % Illustration de \parindent et \descindentFB \vspace{\parskip} \begin{minipage}[t]{.45\textwidth} \fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright \FBListItemsAsParfalse \parindent=0pt \listindentFB=1.5em \descindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{description} \item [Premier] élément occupant plus d’une ligne… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2, \end{itemize} \item [Second] élément… \end{description} \end{minipage} }\\ \hspace*{\fill}|\parindent=0pt|\hspace*{\fill}% \end{minipage} \hspace{\fill} \begin{minipage}[t]{.5\textwidth} \hspace*{\fill} \fbox{\begin{minipage}[t]{.9\textwidth}\raggedright % .72 \FBListItemsAsParfalse \parindent=0pt \listindentFB=1.5em \descindentFB=0pt \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste \begin{description} \item [Premier] élément occupant plus d’une ligne… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2, \end{itemize} \item [Second] élément… \end{description} \end{minipage} }\hspace*{\fill}\\ \hspace*{\fill}|\parindent=0pt| \emph{et} |\descindentFB=0pt|\hspace*{\fill}% \end{minipage} \end{description} \par} \vspace{\baselineskip} L’option \fbo{ListItemsAsPar} propose une présentation plus conforme aux usages typographiques français, voir par exemple ce qui est fait dans le « Lexique des règles typographiques en usage à l’Imprimerie nationale ». \hlabel{ListAsPar} Les éléments des listes sont alors présentés comme des paragraphes, les marqueurs (tirets, etc.) étant placées en retrait de la marge gauche ; dans la présentation par défaut les étiquettes sont placées en saillie dans la marge gauche et celle-ci est augmentée comme le montre l’exemple ci-dessous. Noter que toute cette documentation a été compilée avec l’option \fbo{ListItemsAsPar} dont l’effet est bien visible dans les sections~\ref{sec:description} (listes \env{itemize}) et \ref{sec:Perso} (listes \env{description}). % Illustration de l’option \fbo{ListItemsAsPar} \vspace{\parskip} \begin{minipage}[t]{.45\textwidth} \fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright \FBListItemsAsParfalse \parindent=1.5em \listindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste et qui s’étend sur deux lignes. \begin{itemize} \item Premier élément qui se prolonge sur plusieurs… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2 sur plus d’une ligne… \end{itemize} \item Second élément… \end{itemize} \end{minipage} }\\ \hspace*{\fill}Présentation par défaut\hspace*{\fill}% \end{minipage} \hspace{\fill} \begin{minipage}[t]{.5\textwidth} \hspace*{\fill} \fbox{\begin{minipage}[t]{.9\textwidth}\raggedright % .72 \FBListItemsAsPartrue \parindent=1.5em \listindentFB=1.5em \noindent\LEFTmargin{} Marge gauche\par Paragraphe précédant la liste et qui s’étend sur deux lignes. \begin{itemize} \item Premier élément qui se prolonge sur plusieurs lignes… \begin{itemize} \item Un élément niveau 2, \item Second élément niveau 2 sur plus d’une ligne… \end{itemize} \item Second élément… \end{itemize} \end{minipage} }\hspace*{\fill}\\ \hspace*{\fill}\fbo{ListItemsAsPar=true}\hspace*{\fill}% \end{minipage} \vspace{\baselineskip} Enfin, pour ceux qui voudraient bénéficier des facilités offertes par l’extension \ext{enumitem} et conserver une présentation des listes similaire à celle obtenue par défaut avec \ext{babel-french}, je propose les quelques lignes de code suivantes à copier-coller dans le préambule :\hlabel{enumitem-cfg} {%\small |\usepackage{enumitem}|\\ |\newlength\mylabelwidth|\\ |\newcommand*{\mylabel}{\textemdash} % ou \textendash (tiret plus court)|\\ |\settowidth{\mylabelwidth}{\mylabel}|\\ |\setlist[itemize]{label=\mylabel, nosep}|\\ % nosep ou noitemsep |\setlist[1]{labelindent=\parindent}|\\ |\setlist{labelwidth=\mylabelwidth, leftmargin=!,|\\ | itemsep=0.4ex plus 0.2ex minus 0.2ex,|\\ % enumitem ne redéfinit pas | parsep=0.4ex plus 0.2ex minus 0.2ex,|\\ % \list, on peut s’en passer | topsep=0.8ex plus 0.4ex minus 0.4ex,|\\ % sauf option StandardLists, | partopsep=0.4ex plus 0.2ex minus 0.2ex}| % évidemment ! } Pour une présentation correspondant à l’option \fbo{ListItemsAsPar=true} on aurait : {%\small |\usepackage{enumitem}|\\ |\newlength\mylabelwidth|\\ |\newlength\myitemindent|\\ |\newcommand*{\mylabel}{\textemdash} % ou \textendash (tiret plus court)|\\ |\settowidth{\mylabelwidth}{\mylabel}|\\ |\setlength{\myitemindent}{\parindent}|\\ |\addtolength{\myitemindent}{\mylabelwidth}|\\ |\addtolength{\myitemindent}{\labelsep}|\\ |\setlist[itemize]{label=\mylabel, nosep}|\\ |\setlist[1]{leftmargin=0pt}|\\ |\setlist{leftmargin=\parindent, itemindent=\myitemindent,|\\ | itemsep=0.4ex plus 0.2ex minus 0.2ex,|\\ % enumitem ne redéfinit pas | parsep=0.4ex plus 0.2ex minus 0.2ex,|\\ % \list, on peut s’en passer | topsep=0.8ex plus 0.4ex minus 0.4ex,|\\ % sauf option StandardLists, | partopsep=0.4ex plus 0.2ex minus 0.2ex}| % évidemment ! } %\newpage \section{Changements entre les versions \latestversion{} et 3.6} \label{sec:changes} \subsection{Quoi de neuf en version 4.0 ?} \label{ssec:changes-4.0} \ext{babel-french} est maintenant scindée en deux parties, une partie « historique » (fichier \file{frenchb3.dtx}) réservée aux moteurs anciens (TeX, pdfTeX et XeTeX) qui restera figée ---~sauf corrections éventuelles de bogues~--, l’autre « moderne » destinée à Lua(La)TeX (fichier \file{frenchb.dtx}) qui continuera à évoluer. Cette scission a permis de simplifier le code de \file{frenchb.dtx} et de le débarrasser de vieilleries devenues inutiles avec LuaTeX. Certaines options ont été modifiées, supprimées ou ajoutées : \begin{itemize} \item \opt{AutoPunctuation=false} n’a plus aucune raison d’être utilisée, LuaTeX permettant de gérer les cas exceptionnels (|2:1|, |\http://|, |C:\|, |!!|, etc.) où aucune espace ne doit être ajoutée devant la ponctuation haute. Si cette option est forcée à \fbo{false}, un message dans le fichier \file{.log} déconseille explicitement ce choix. \item \verb|\frenchsetup{og=«, fg=»}| n’a plus aucun effet% \footnote{Ele ne se justifiait qu’en présence de codages d’entrée variés.}, elle génère juste un avertissement dans le fichier \file{.log}. Les guillemets chevrons « et » génèrent automatiquement les espaces adéquates, il en va de même désormais des guillemets simples ‹ et ›. Il est possible de débrayer localement l’ajout d’espaces grâce à la commande |{\NoAutospacing }|. \item L’option \opt{CustomiseFigTabCaptions} a été inversée, elle est maintenant \opt{false} par défaut, ce qui revient à accepter la présentation proposée par la classe et les extensions chargées. Motivation : le deux-points est toujours affiché correctement dans les légendes de figures ou de tableaux. Lorsque l’option \opt{CustomiseFigTabCaptions} est forcée à \opt{true}, un message déconseillant ce choix est affiché dans le fichier \file{.log} ; le séparateur (:) est néanmoins remplacé par un tiret demi-cadratin. La personnalisation des légendes devrait être faite soit par la classe, soit par l’extension \pkg{caption.sty}, exemples : \begin{itemize} \item avec la classe \cls{memoir} ajouter :\\ |\captiondelim{\space\textendash\space}| \item avec les classes koma-script ajouter :\\ |\renewcommand{\captionformat}{\space\textendash\space}| \item avec la classe \cls{beamer} ajouter :\\ |\setbeamertemplate{caption label separator}[endash]| \item et avec les classes \cls{article}, \cls{book} ou \cls{report}, charger \file{caption.sty} comme ceci :\\ |\usepackage[labelsep=endash]{caption}| \end{itemize} \item Les options \opt{OldFigTabCaptions}, \opt{ListOldLayout} et \opt{GlobalLayoutFrench} sont supprimées car elles sont devenues inutiles : elles ne servaient qu’à reproduire de (très) vieux comportements de \ext{babel-french}. \item Une nouvelle option \opt{TocPartFullName} a été ajoutée sur une suggestion de Julien Labbé que je remercie. Elle permet d’afficher dans la table des matières les parties numérotées sous la forme « Première partie », « Deuxième partie », etc. Ceci ne fonctionne que pour les classes \cls{memoir} et koma-script, les classes standard ne fournissant pas de \textit{hook} permettant de personnaliser la table des matières. La commande fournissant ces chaînes s’appelle |\FBtocpartname{|\meta{Romannum}|}|, elle prend en argument le numéro de partie en chiffres romains et retourne la chaîne correspondante. Il est possible d’y ajouter un séparateur (vide par défaut) : |\renewcommand*{\FBtocpartsep}{. }| ajoute un point final suivi d’une espace. \end{itemize} Une nouvelle fonction |euphonic_t| a été intégrée dans le code |lua| : elle empêche les coupures sur le second tiret d’expressions composées comme « va-t-on », « semble-t-il », « dira-t-elle », etc. (problème signalé par Thomas Savary). \textbf{Note sur le projet « PDF tagging » :} ce projet de l’équipe LaTeX nécessite une redéfinition complète des listes basée sur des « templates ». Cette redéfinition n’est pas encore complètement finalisée et nécessitera quand elle le sera une réécriture de la gestion des listes par \ext{babel-french}. Actuellement, la personnalisation des listes est désactivée et un message l’annonce dans le fichier \file{.log} dès que les nouvelles listes sont utilisées. C’est le cas si l’utilisateur ajoute la ligne\\ |\DocumentMetadata{testphase=latest}| ou |\DocumentMetadata{tagging=on}| La version~4.0b met à profit la nouvelle interface, lorsqu’elle est disponible, pour les notes de bas de page. Ceci devrait corriger le problème \href{https://github.com/latex3/tagging-project/issues/932}{932}. Noter aussi que si une langue est déclarée dans |\DocumentMetadata{}|, elle devient automatiquement pour \ext{babel} la langue principale du document, il est donc nécessaire d’assurer la cohérence des déclarations, ainsi le présent document contient\\ |\DocumentMetadata{pdfstandard=UA-2, pdfversion=2.0, lang=fr}|\\ |\documentclass[a4paper,12pt,german,british,french]{article}|\\ |\usepackage{babel}| \subsection{Quoi de neuf en version 3.7 ?} \label{ssec:changes-3.7} Le support de la variante \opt{acadian}% \footnote{Et de son synomyme \opt{canadien}}, est abandonné : \verb|\usepackage[acadian]{babel}| émet désormais un avertissement et traite la langue \opt{acadian} exactement comme si l’utilisateur avait codé \verb|\usepackage[french]{babel}|. \subsection{Quoi de neuf en version 3.6 ?} \label{ssec:changes-3.6} Un bug affectant l’utilisation de la commande |\NoAutoSpacing| dans les signets \pkg{hyperref} a été corrigé en version 3.6b. La version 3.6a n’a plus recours à l’extension \pkg{keyval} pour gérer les options, les commandes internes du noyau LaTeX (\pkg{l3keys}) |\DeclareKeys{}| et |\SetKeys{}| sont utilisées.\\ L’espace fine ajoutée avant l’appel des notes de bas de pages est maintenant personnalisable (suggestion de Thomas Savary) ; le nom de la commande est |\FBfnmarkspace{}|, c’est une \emph{vraie} espace fine (demie espace-mot de la police courante) contrairement à la commande LaTeX |\,| alias |\thinspace|% \footnote{Elles sont définies pour fonctionner aussi en mode mathématique.} précédemment utilisée qui chasse toujours 1/6em. Les deux définitions coïncident pour les polices dont l’espace-mot vaut 1/3em, (cas le plus courant), l’écart est infime pour celles qui chassent moins : il est par exemple de $(1/6-1/8)12=0,5$pt en 12pt pour une police dont l’espace-mot chasse 1/4em. Il est toujours possible de revenir à l’ancien comportement en codant |\renewcommand*{\FBfnmarkspace}{\,}|. \section{Problèmes de césures} \label{sec:cesures} Pour vérifier que votre format LaTeX fonctionne correctement au niveau des césures, au moins en français et en anglais, téléchargez le fichier de test \expandafter\expandafter\expandafter\url{\urlperso/frenchb/frenchb-cesures.tex} et suivez les instructions figurant en début de fichier. Si les résultats du test ne sont pas corrects, vérifiez tout au début du fichier \file{.log} dans la ligne commençant par le mot « Babel », si « french » figure bien dans la liste des langues disponibles. Si ce n’est pas le cas, installez le paquet appelé « collection-langfrench » (TeXLive, MacTeX) ou « texlive-lang-french » (distributions Linux) ou similaire. Si vous travaillez avec « tlmgr », les formats sont refaits automatiquement, sinon il faut les faire à la main (la procédure dépend de votre installation). Recompilez le fichier \file{frenchb-cesures.tex}, les résultats devraient être corrects, contactez-moi par courriel si ce n’était pas le cas. \section{Incompatibilités connues et remèdes} \label{sec:Incomp} La liste suivante ne prétend pas être exhaustive, n’hésitez pas à me signaler les incompatibilités que vous rencontrez afin qu’elles puissent figurer dans cette liste. \begin{itemize} \item Les extensions \ext{caption}, \ext{subcaption}, \ext{floatrow} doivent impérativement être chargées \emph{après} \ext{babel}. En revanche \ext{beameraticle} doit être chargée \emph{avant} \ext{babel}. À chaque fois que le bon ordre de chargement n’est pas respecté, un avertissement le signale dans le fichier \file{.log}. \item \ext{babel-french} modifie la présentation des listes ce qui peut perturber les classes ou extensions qui veulent également le faire. \ext{babel-french} s’efface automatiquement lorsqu’une des extensions \ext{enumitem}, \ext{enumerate} ou \ext{paralist} est chargée. Pour les autres, ou si on veut soi-même agir sur la présentation des listes, il convient de débrayer l’action de \ext{babel-french} en utilisant la commande \fbsetup{} avec les options adéquates (cf. section~\ref{ssec:frenchbsetup}) dans le préambule du document (après le chargement de Babel). {\sloppy \item Certaines classes (\cls{amsbook}, \cls{smfbook}, \cls{beamer}, etc.) redéfinissent |\part|, ce qui peut conduire à des titres du genre « Première partie~I ». La parade consiste à ajouter l’option \fbo{PartNameFull=false} dans \fbsetup{}. \par} \item L’option \opt{multiple} de l’extension \ext{footmisc} insère normalement une virgule entre les appels de notes multiples. Pour que ce mécanisme fonctionne avec \ext{babel-french} il faut ajouter l’option \fbsetup{AutoSpaceFootnotes=false}, sinon \ext{babel-french} remplace la virgule par une espace fine. \item Dans une commande |\index{}|, les guillemets français doivent obligatoirement être codés sous la forme |\frquote{}| (ou |\og|, |\fg|) : \hlabel{ch-doc4} |\index{\frquote{toto}}| donne le résultat attendu, tandis que |\index{«toto»}| provoque un mauvais classement de l’entrée |«toto»| dans l’index. %%% A VERIFIER %%% \end{itemize} \section{Bibliographie} \label{sec:biblio} Ce qui suit ne concerne \emph{pas} les bibliographies faites « à la main » dans l’environnement \env{thebibliography}, mais celles créées à partir d’un ou plusieurs fichiers~\file{.bib} avec \BibTeX{} ou mieux avec \biblatex/\biber{}. \vspace{-.5\baselineskip} \subsection{Bibliographie avec \texorpdfstring{\BibTeX}{BibTeX}} \label{ssec:bibtex} \BibTeX{} est obsolète, je conseille \emph{vraiment} de passer à \biblatex/\biber{} (voir section suivante). Néanmoins, voici quelques indications concernant la francisation des bibliographies créées avec \BibTeX{} : Certains champs (les dates notamment) et certains mots-clés figurant dans les fichiers~\file{.bib} (les «\emph{and}» des listes d’auteurs par exemple) devraient pouvoir être affichés différemment selon le contexte (les «\emph{and}» du fichier~\file{.bib} devraient pouvoir être transcrits en «\emph{et}» dans le fichier~\file{.bbl} pour les références en français). Babel n’opère pas au niveau \BibTeX, il faut donc agir directement au niveau des bases de données~\file{.bib} et des fichiers de style~\file{.bst}. \begin{description} \item [Fichiers~\file{.bib}] : s’assurer que chaque référence des bases de données \file{.bib} utilisées comporte un champ « \code{language = \{...\}} » définissant la langue d’origine de la référence. \item [Fichiers~\file{.bst}] : pour remplacer les styles standard \bibsty{alpha}, \bibsty{plain}, \bibsty{unsrt}, faire appel à l’extension \bibsty{babelbib} et aux styles \bibsty{babalpha}, \bibsty{babplain}, \bibsty{babunsrt} (voir la documentation \file{babelbib.pdf} et le fichier d’exemples \file{babelbibtest.tex}). Selon les options, il est possible d’afficher chaque référence dans sa langue ou bien de les afficher toutes dans la langue principale du document% \footnote{Les styles francisés \file{*-fr.bst} qu’on trouve sur CTAN dans \url{tex-archive/biblio/bibtex/contrib/bib-fr} n’offrent que la seconde possibilité (références toutes en français).}. Ceux qui font appel à un style de bibliographie sur mesure créé à partir de \file{custom-bib} devront choisir l’option \opt{babel} lors de la création du fichier \file{.bst} et ensuite adapter le fichier \file{babelbst.tex} aux langues utilisées. \end{description} \subsection{Bibliographie avec \biblatex/\biber} \label{ssec:biblatex} La solution \biblatex/\biber{} présente des nombreux avantages par rapport à \BibTeX{} : \begin{itemize} \item \biblatex{} prend en compte les options de Babel, les «\emph{and}» des listes d’auteurs sont transcrits automatiquement en «\emph{et}» dans un document en français ; \item \biblatex{}, associé à \biber{}, permet le traitement des fichiers ~\file{.bib} codés en utf-8 ce qui facilite grandement la coexistence de références à des ouvrages en français, en russe et en grec par exemple ; \item \biblatex{} possède des options qui remplacent de nombreuses extensions spécifiques telles que \ext{bibtopic}, \ext{bibunits}, \ext{chapterbib}, \ext{cite}, \ext{multibib}, \ext{natbib}, etc. \end{itemize} Pour la mise en œuvre pratique de \biblatex/\biber{}, consulter le manuel \textit{LaTeX, l’essentiel} de \bsc{D.~Bitouzé} et \bsc{J.-C.~Charpentier} ou la documentation en anglais \file{biblatex.pdf}. \section[Compatibilité avec e-french] {Compatibilité avec \ext{e-french}} \label{sec:CompatFP} Il est souhaitable qu’un texte saisi avec \ext{e-french} de Bernard~\bsc{Gaulle} puisse être compilé avec un minimum de modifications sur une machine utilisant \ext{babel-french} et réciproquement. En ce qui concerne les guillemets français, \ext{e-french} rend actifs les caractères |<| et |>| afin de saisir les guillemets sous la forme |<||<| et |>||>| tandis que \ext{babel-french} propose d’utiliser les vrais guillemets chevrons « et » ou la commande |\frquote{}|. Les points de suspensions sont saisis |...| avec \ext{e-french} et |…| (ou |\dots|) avec \ext{babel-french}. Les commandes suivantes peuvent être ajoutées au préambule pour émuler certaines commandes de \ext{e-french} : \begin{verbatim} \let\numero=\no \let\Numero=\No \let\fsc=\bsc \let\lsc=\bsc \newcommand*{\french}{\leavevmode\selectlanguage{french}} \newcommand*{\english}{\leavevmode\selectlanguage{english}} \newcommand*{\AllTeX}{% (L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em)% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX} \end{verbatim} Pour ceux qui éditent leurs sources LaTeX avec emacs, une fonction Lisp \file{french2b} opère une adaptation \emph{partielle} d’un fichier conçu pour \ext{e-french} facilitant sa compilation avec \ext{babel-french}. L’appel à \ext{e-french} est remplacé en un appel à \ext{babel-french}, les guillemets |<<| et |>>| sont convertis en |\og| et |\fg| et les |...| en |…|, enfin quelques commandes spécifiques à \ext{e-french} sont ajoutées dans le préambule. Cette fonction est disponible sur \expandafter\expandafter\expandafter\url{\urlperso/frenchb/french2b.el}. Il suffit de l’ajouter à un fichier \file{.emacs} et de l’exécuter par |Esc x french2b| sur le fichier à convertir. \nopagebreak \vspace{2\baselineskip} \nopagebreak \hspace*{\fill}% \begin{minipage}[b]{.5\linewidth} \raggedleft \href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}\\ \expandafter\expandafter\expandafter\url{\urlperso} \end{minipage} \end{document} %%% Local Variables: %%% mode: latex %%% TeX-engine: luatex %%% TeX-master: t %%% coding: utf-8 %%% TeX-source-correlate-mode: t %%% mode: flyspell %%% ispell-local-dictionary: "francais" %%% End: