\NeedsTeXFormat{LaTeX2e}[2026/06/01]
\DocumentMetadata{pdfstandard={A-4,UA-2}, tagging=on, 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{graphics}
\usepackage[dvipsnames]{xcolor}
\usepackage{alltt,shortvrb}
\usepackage{hyperref,url}
\hypersetup{colorlinks,urlcolor=Blue,linkcolor=Blue}

%%% 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}
\frenchsetup{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*{\pkg}[1]{\texttt{\ColorVerb #1}}
\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}\}}}

\DeclareInstanceCopy{block}{std-list-0}{std-list-1}

\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{https://danielflipo.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}}

\title{Mode d’emploi du module \pkg{babel-french}}
\author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}}
\newcommand*{\latestversion}{4.1a}
\date{Version {\latestversion} -- 6 juin 2026}

\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-fr.pdf}.\rule[-2ex]{0pt}{3ex}}%
  }
\end{center}

\begin{abstract}
  La première version de \pkg{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 4.0 de \pkg{frenchb}, dont le nom officiel
  est \pkg{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.

  Les changements introduits dans la version~4.1 et leur motivation sont
  présentés à la section~\ref{ssec:changes-4.1} p.~\pageref{ssec:changes-4.1}.
  Je recommande de commencer par la lecture de cette section.
\end{abstract}

\bgroup
\renewcommand{\abstractname}%
             {Historique des mises à jour de cette documentation}
\newlength\mylength
\settowidth{\mylength}{28 juin 2025}
%\renewcommand{\descriptionlabel}[1]{\makebox[\mybox][l]{\textbf{#1 :}}}
\vspace{\baselineskip}\noindent
\begin{abstract}
  \vspace{-\baselineskip}\noindent
  \descindentFB=0pt
  \begin{description}[labelwidth=\mylength]
  \item[28 juin 2025] Adaptation à la version 4.0a, voir
    section~\ref{ssec:changes-4.0}.
  \item[6 juin 2026] Adaptation à la version 4.1a, voir
    section~\ref{ssec:changes-4.1}.
  \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} et \opt{acadian}
   (équivalentes à \opt{french} depuis 2004), sont définitivement
   supprimées, la seule option pour le français est \opt{french}.}
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}%
\footnote{Noter que la présence d’une commande \cs{DocumentMetadata\{lang=..\}}
  impose sa valeur comme langue principale de Babel.}
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) pour tout le document.

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
  \pkg{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.

\pkg{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, \pkg{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.

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.

\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 des listes (\env{enumerate} et
  \env{description} 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 ».},
  \RemoveFromHook{fnmark/before}{\FBfnmark}
  \AssignSocketPlug{fntext/mark}{default}
  au lieu de ceci\footnote{Une note de bas de page standard (classe
  \cls{article}), ça jure avec la précédente, non ?}.
  \AssignSocketPlug{fntext/mark}{FBfnmark}
  \AddToHook{fnmark/before}[frenchb]{\FBfnmark}
 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,
  \pkg{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}
\fbox{\begin{minipage}[t]{.43\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}%
    }
\hspace{\fill}
\fbox{\begin{minipage}[t]{.45\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}%
   }
\par
\hspace*{4em}\fbo{InnerGuillSingle}\hspace*{\fill}%
\fbo{EveryLineGuill=open}\hspace*{4em}

\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 \pkg{fontspec} \emph{et} \pkg{realscripts} et
  d’utiliser une police de type OpenType disposant de la directive «sups», il
  est possible de s’assurer de ce dernier point soit (sous linux) grâce à la
  commande |otfinfo -f `kpsewhich nom_police.otf`|, soit en consultant le
  \href{https://danielflipo.fr/doc/luatex/fonts.pdf}{catalogue en ligne}.

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’a 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}| imprime\linebreak[4]
  \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 \pkg{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 \pkg{numprint}. Le chargement de \pkg{numprint} n’est pas fait
  par \pkg{babel-french} à cause du risque de conflit d’options.
  Il doit se faire \emph{après} \pkg{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 \pkg{frenchb}
  au profit de \pkg{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
\pkg{babel-french} grâce au large choix parmi des options disponibles.
La syntaxe est celle de l’extension \pkg{keyval}, largement
utilisée par d’autres extensions comme \pkg{geometry} ou \pkg{hyperref}.

Le recours à un fichier de configuration \file{frenchb.cfg} n’est pas possible.

\subsection[\textbackslash frenchsetup{}]{\fbsetup{\meta{options}}}
\label{ssec:frenchsetup}

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.

\subsubsection*{Inventaire des options}

\begin{description}
  \setlength{\labelsep}{0.1666em}
\item [\fbo{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}[labelsep=0pt]

\item [\fbo{StandardLayout=true (false*)}]\ supprime toute action de
  \pkg{babel-french} sur la maquette dans le cas où le français est la
  langue principale : retour aux listes standard, pas de
  retrait des premiers paragraphes des sections, notes de bas de page
  standard.
  Lorsque le français n’est pas la langue principale, elle est sans effet.

\item [\fbo{IndentFirst=false (true*)}] ; par défaut, \pkg{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 [\fbo{PartNameFull=false (true*)}] ; par défaut \pkg{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 [\fbo{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 encore 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%
\footnote{Les options NosepItemize et NosepEnumerate supposent l’utilisation
       des nouveaux   \textit{templates} , donc  la présence d’une commande
       \cs{DocumentMetadata}.}}

\begin{description}[labelsep=0pt]
\item [\fbo{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 [\fbo{StandardListSpacing=true (false*)}] ; par défaut \pkg{babel-french}
  réduit les espaces verticaux%
  \footnote{Il s’agit de \cs{itemsep}, \cs{parsep}, \cs{topsep}
            et \cs{partopsep}.} \label{listspacing}
  dans les listes \env{enumerate} et \env{description} et annule tout espace
  vertical dans les listes \env{itemize}.
  \fbo{StandardListSpacing=true} permet de revenir
  aux réglages standard (ceux de la classe utilisée).

\item [\fbo{NosepItemize=true (true*)}] ; forcer cette option
  à \fbo{false} pour imposer aux listes \env{itemize} le même espacement
  vertical (réduit, légèrement élastique) que les listes \env{enumerate}
  et \env{description}.

\item [\fbo{NosepEnumerate=true (false*)}] ; forcer cette option
  à \fbo{true} pour imposer aux listes \env{enumerate} et \env{description}
  le même espacement vertical (nul, sans élasticité) que les listes
  \env{itemize} ; ceci peut aider à respecter le
  registre (\textit{grid typesetting)}.

\item [\fbo{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 [\fbo{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 \pkg{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 [\fbo{ItemLabeli=\boi{}textbullet, \boi{}textendash,
  \boi{}ding\{43\},... (\boi{}textemdash*)}]

\item [\fbo{ItemLabelii=\boi{}textbullet, \boi{}textendash,
  \boi{}ding\{43\},... (\boi{}textemdash*)}]

\item [\fbo{ItemLabeliii=\boi{}textbullet, \boi{}textendash,
  \boi{}ding\{43\},... (\boi{}textemdash*)}]

\item [\fbo{ItemLabeliv=\boi{}textbullet, \boi{}textendash,
  \boi{}ding\{43\},... (\boi{}textemdash*)}]

{\sloppy
\item [\fbo{StandardLists=true (false*)}] ; supprime toute action de
  \pkg{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 \pkg{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}[labelsep=0pt]

\item [\fbo{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 [\fbo{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}[labelsep=0pt]

\item [\fbo{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 \pkg{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 [\fbo{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 [\fbo{OriginalTypewriter=true (false)}] ; par défaut, lorsqu’une police
  à espacement fixe est utilisée (|\texttt{}|, mode verbatim, listings, etc.)
  \pkg{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 [\fbo{UnicodeNoBreakSpaces=true (false)}] ; \hlabel{ucs-nbsp}
  lorsqu’on la met à \fbo{true}
  les espaces insécables ajoutées par \pkg{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 \pkg{babel-french} pour la conversion en HTML des fichiers PDF.

\end{description}

\subsubsection*{Guillemets}

\begin{description}[labelsep=0pt]

\item [\fbo{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. \pkg{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 [\fbo{INGuillSpace=true (false)}] ; force \pkg{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 \pkg{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 [\fbo{InnerGuillSingle=true (false)}] ; cette option modifie les
  guillemets utilisés pour les citations internes : comme ‹ ceci ›
  (\fbo{true}), ou comme ``cela’’ par défaut (\fbo{false}).

\item [\fbo{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 [\fbo{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}

{\sloppy
\begin{description}[labelsep=0pt]
\item [\fbo{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 \pkg{numprint} est chargée
  (\emph{après} \pkg{babel}) avec l’option \opt{autolanguage} ;
  sans elle, \pkg{numprint} formate les nombres indépendamment de la langue
  courante et le séparateur des milliers est par défaut l’espace fine.
\end{description}
\par}

\subsubsection*{Légendes de figures et tables}

\begin{description}[labelsep=0pt]

\item [\fbo{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 \pkg{babel}.\hlabel{scfigtab}

\item [\fbo{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}[labelsep=0pt]

\item [\fbo{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 [\fbo{SuppressWarning=true (false)}]\ peut être utilisée pour supprimer
  les avertissements non essentiels émis par \pkg{babel-french}.

\end{description}

\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 \pkg{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 \pkg{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}
\par}

Il est facile de modifier ces traductions : pour remplacer « Démonstration »
par « Preuve » (avec \pkg{amsthm}) ajouter dans le préambule
|\def\frenchproofname{Preuve}|%
\footnote{Les puristes peuvent remplacer \cs{def} par \cs{renewcommand*}
  s’ils le souhaitent\label{def}.},
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}|\footref{def} ;
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}|\footref{def}.
Le remplacement de « Deuxième » par « Seconde » est possible en codant
|\def\frenchpartsecond{Seconde}|\footref{def} dans le préambule.
De même il est possible de remplacer « Première » par « Premier » en codant
|\def\frenchpartfirst{Premier}|\footref{def}.

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
         \parindent=1.5em
         \noindent\LEFTmargin{} Marge gauche\par
          Paragraphe précédant la liste\par
          \textemdash\hspace{\labelsep}Premier élément sur plus\par
            \hspace*{\labelfullwidthFB}d’une ligne…\par
            \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
               Un élément niveau 2,\par
            \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
               Second élément niveau 2,\par
          \textemdash\hspace{\labelsep}Second élément…
        \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:frenchsetup}.

\pkg{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
Deux 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]{.4\textwidth}\raggedright
         \parindent=0pt \listindentFB=1.5em
         \noindent\LEFTmargin{} Marge gauche\par
          Paragraphe précédant la liste\par
          \hspace*{\listindentFB}\textemdash\hspace{\labelsep}
            Premier élément sur plus\par
            \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}d’une ligne…\par
            \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}%
              \textemdash\hspace{\labelsep}Un élément niveau 2,\par
              \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}%
              \textemdash\hspace{\labelsep}Second élément niveau 2,\par
          \hspace*{\listindentFB}\textemdash\hspace{\labelsep}Second élément…
        \end{minipage}%
       }%
  \hspace{\fill}
  \fbox{\begin{minipage}[t]{.4\textwidth}\raggedright
         \parindent=0pt
         \noindent\LEFTmargin{} Marge gauche\par
          Paragraphe précédant la liste\par
          \textemdash\hspace{\labelsep}Premier élément sur plus\par
            \hspace*{\labelfullwidthFB}d’une ligne…\par
            \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
               Un élément niveau 2,\par
            \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
               Second élément niveau 2,\par
          \textemdash\hspace{\labelsep}Second élément…
        \end{minipage}%
      }
\par
\hspace*{4em}|\parindent=0pt|\hspace*{\fill}%
   |\parindent=0pt| \emph{et} |\listindentFB=0pt|

\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}
\fbox{\begin{minipage}[t]{.4\textwidth}\raggedright
        \parindent=0pt \descindentFB=1.5em
        \noindent\LEFTmargin{} Marge gauche\par
        Paragraphe précédant la liste\par
        \vspace{.8ex}
        \hspace*{\descindentFB}\textbf{Premier}\hspace{\labelsep}%
        élément occupant plus\\
        \hspace*{\descindentFB}d’une ligne…\par
           \hspace*{\descindentFB}\hspace*{\labelfullwidthFB}%
              \textemdash\hspace{\labelsep}Un élément niveau 2,\par
           \hspace*{\descindentFB}\hspace*{\labelfullwidthFB}%
              \textemdash\hspace{\labelsep}Second élément niveau 2,\par
        \vspace{.8ex}
        \hspace*{\descindentFB}\textbf{Second}\hspace{\labelsep}élément…
     \end{minipage}%
     }
\hspace{\fill}
  \fbox{\begin{minipage}[t]{.4\textwidth}\raggedright  % .72
        \parindent=0pt \descindentFB=0pt
        \noindent\LEFTmargin{} Marge gauche\par
        Paragraphe précédant la liste\par
        \vspace{.8ex}
        \textbf{Premier}\hspace{\labelsep}élément occupant plus
          d’une ligne…\par
             \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
               Un élément niveau 2,\par
             \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
               Second élément niveau 2,\par
        \vspace{.8ex}
        \textbf{Second}\hspace{\labelsep}élément…
        \end{minipage}%
       }
\par
\hspace*{5em}|\parindent=0pt|\hspace*{\fill}%
|\parindent=0pt| \emph{et} |\descindentFB=0pt|
\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}
\fbox{\begin{minipage}[t]{.40\textwidth}\raggedright
        \parindent=1.5em
        \noindent\LEFTmargin{} Marge gauche\par
         Paragraphe précédant la liste et qui s’étend sur deux lignes.\par
         \textemdash\hspace{\labelsep}Premier élément  qui se\par
           \hspace*{\labelfullwidthFB}prolonge sur deux lignes…\\
           \hspace*{\labelfullwidthFB}\textemdash{}
             Un élément niveau 2,\par
           \hspace*{\labelfullwidthFB}\textemdash\hspace{\labelsep}%
             Second élément niveau 2\par
           \hspace*{\labelfullwidthFB}\hspace{\labelfullwidthFB}%
               sur plus d’une ligne…\par
           \textemdash\hspace{\labelsep}Second élément…
      \end{minipage}%
     }
\hspace{\fill}
\fbox{\begin{minipage}[t]{.45\textwidth}\raggedright  % .72
        \parindent=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}%
}
\par
\hspace*{3em}Présentation par défaut\hspace*{\fill}%
\fbo{ListItemsAsPar=true}\hspace*{4em}

\newpage
\section{Changements entre les versions \latestversion{} et 3.6}
\label{sec:changes}

\subsection{Quoi de neuf en version 4.1 ?}
\label{ssec:changes-4.1}

L’équipe LaTeX3 a opéré récemment de profonds changements afin de permettre la
production de fichiers PDF standardisés (A-2, A-4, UA-2, etc.) et balisés
(\textit{tagged PDF}) offrant une meilleure accessibilité aux personnes
malvoyantes par exemple.  L’intégration automatique de ces balises a nécessité
une réécriture complète de nombreuses parties du code LaTeX.  Le nouveau code
est construit à partir de gabarits (\textit{templates}) qui se
déclinent en instances (\textit{instances}) \emph{flexibles}.

Le vœu de l’équipe LaTeX3 est de proposer suffisamment de flexibilité pour que
les auteurs de classes ou d’extensions n’aient plus à \emph{redéfinir} les
commandes ou environnements de base mais seulement à \emph{modifier} leurs
paramètres de configuration. Ainsi, d’une part les balises ajoutées
automatiquement dans le fichier PDF seront préservées et d’autre part les
incompatibilités dues aux redéfinitions concurrentes seront évitées.

Ceci suppose que les auteurs de classes ou d’extensions adoptent rapidement
les nouvelles procédures. Le document
\url{https://ctan.org/pkg/latex-tagging-status}, actualisé régulièrement,
renseigne sur le statut des différentes classes et extensions
(\textit{compatible}, \textit{partially compatible},
\textit{currently-incompatible}, …). Pour connaître le statut des classes et
extensions utilisées dans un document, il suffit d’ajouter,
avant le |\documentclass{}|, l’option |check-tagging-status| à
la commande |\DocumentMetadata{}|.

L’utilisateur de LaTeX a actuellement deux choix possibles :
\begin{itemize}
\item soit ne rien changer à ses documents,  ceux-ci ne seront évidemment ni
  standardisés ni balisés (les procédures traditionnelles
  (\textit{legacy code}) sont utilisées) ;
\item soit ajouter une commande |\DocumentMetadata{|\meta{options}|}|
  \emph{avant} la commande |\documentclass{}|, les options précisant
  le ou les standards souhaités, l’ajout ou non de balises (\opt{tagging=on}%
  \footnote{Noter que cette option ajoute plein de balises dans le
    fichier~PDF, ce qui augmente sensiblement la taille de celui-ci.}
  ou \opt{tagging=off}), éventuellement
  la langue principale du document (par exemple \opt{lang=fr})\footnote{%
  À défaut, la langue principale de \pkg{babel} sera prise en compte par
  \opt{lang}, mais en cas de conflit la valeur de \opt{lang} impose
  à \pkg{babel} la langue principale !}.
  L’ajout de la commande |\DocumentMetadata{}|, quelles que soient les options
  retenues, provoque le basculement vers les nouveaux \textit{templates}.

  Le présent document se veut balisé et conforme aux standards PDF A-4 et
  UA-2, d’où sa première ligne :
  |\DocumentMetadata{pdfstandard={A-4,UA-2}, tagging=on, lang=fr}|

Pour le détail des options disponibles, voir le fichier
\file{documentmetadata-support-code.pdf}
(commande `\texttt{texdoc documentmetadata}’ sous TeXLive).
\end{itemize}

Les nouveaux \textit{templates} ont vocation à remplacer, dans un futur
plus ou moins proche, les anciennes structures au sein du noyau LaTeX.
Aussi, je recommande d’ajouter dès maintenant
une commande |\DocumentMetadata{}|%
\footnote{Noter que celle-ci requiert un format LaTeX 2026-06-01
  ou postérieur.}
pour profiter des nouveaux \textit{templates} et de privilégier le moteur
LuaTeX comme le préconise l’équipe LaTeX3 depuis novembre~2024
(voir \file{ltnews40.pdf}).

Revenons à \pkg{babel-french}. L’objectif de la version~4.1 est d’assurer la
compatibilité avec les nouveaux \textit{templates} LaTeX tout en gardant les
fonctionnalités des versions antérieures.

Le changement le plus important concerne le traitement des listes suspendu
provisoirement en version 4.0 en présence d’une commande
|\DocumentMetadata{...}|.  En version~4.1, le formatage de celles-ci avec les
nouveaux \textit{templates} est très proche de celui obtenu sans eux. De
petites différences sont inévitables, la conception des listes ayant
complètement changé. La liste des options a également évolué (voir
section~\ref{ssec:lists} p.~\pageref{ssec:lists}) : certaines
(\opt{StandardItemizeEnv} et \opt{StandardEnumerateEnv}) bien que conservées
pour le moment, ne sont plus documentées car elles ne servaient qu’à éviter
des conflits avec \pkg{enumitem}, \pkg{paralist} ou \pkg{enumerate} ; d’autres
(\opt{NosepItemize}, \opt{NosepEnumerate}) ont été ajoutées, notez
que ces dernières ne fonctionnent qu’avec les nouveaux \textit{templates}.

Voici une liste (non exhaustive) des changements à attendre lors de l’ajout
d’une commande |\DocumentMetadata{...}| :
\begin{itemize}
  \item L’extension \pkg{enumitem} est émulée (si elle est chargée
    explicitement) par \pkg{latex-lab-enumitem}, il n’y a plus
    d’incompatibilité avec \pkg{babel-french}. En particulier, rien n’empêche
    d’utiliser l’argument optionnel de \env{enumerate} : on peut par exemple
    coder\\
    \verb|\begin{enumerate}[label=\arabic*)]|\quad pour une énumération
    en 1), 2), etc., ou \\
    \verb|\begin{enumerate}[label=\Roman*.]| pour obtenir I., II., etc.
    Il y a aussi \verb|label=\roman*|, \verb|label=\alph*| et
    \verb|label=\Alph*|…
  \item En revanche, l’extension \pkg{enumerate} ne sera pas adaptée aux
    nouveaux \textit{templates}, il faut utiliser \pkg{enumitem} à la place
    (avec une syntaxe un peu moins conviviale) comme indiqué ci-dessus.
  \item Ni les classes koma-script, ni la classe \cls{memoir} ne sont, pour
    le moment (mai 2026), compatibles. Il convient de se passer de la
    commande |\DocumentMetadata{...}| si on veut les utiliser actuellement.
  \item L’extension \pkg{footmisc}, compatible avec les nouveaux
    \textit{templates}, le devient aussi avec \pkg{babel-french}.
\end{itemize}

\subsection{Quoi de neuf en version 4.0 ?}
\label{ssec:changes-4.0}

\pkg{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
  \pkg{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
\textit{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
\pkg{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 \pkg{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)\,\cdotp\,12\,=\,0,5pt 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 \pkg{caption}, \pkg{subcaption}, \pkg{floatrow}
  doivent impérativement être chargées \emph{après} \pkg{babel}.
  En revanche \pkg{beameraticle} doit être chargée \emph{avant} \pkg{babel}.

  À chaque fois que le bon ordre de chargement
  n’est pas respecté, un avertissement le signale dans le fichier \file{.log}.

\item \pkg{babel-french} modifie la présentation des listes ce qui peut
  perturber les classes ou extensions qui veulent également le faire.
  \pkg{babel-french} s’efface automatiquement%
  \footnote{Sauf avec les nouveaux \textit{templates}, voir
    section~\ref{ssec:changes-4.1}, p.~\pageref{ssec:changes-4.1}.}
  lorsqu’une des extensions
  \pkg{enumitem}, \pkg{enumerate} ou \pkg{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 \pkg{babel-french} en utilisant la commande
  \fbsetup{} avec les options adéquates (cf. section~\ref{ssec:frenchsetup})
  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 \pkg{footmisc} insère normalement
  une virgule entre les appels de notes multiples.  Pour que ce mécanisme
  fonctionne avec \pkg{babel-french} il faut ajouter l’option
  \fbsetup{AutoSpaceFootnotes=false}, sinon \pkg{babel-french} remplace la
  virgule par une espace fine. Cette incompatibilité est maintenant levée
  grâce aux nouveaux \textit{templates}, voir  section~\ref{ssec:changes-4.1},
  p.~\pageref{ssec:changes-4.1}.

\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}[labelsep=0pt]

\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 \pkg{bibtopic}, \pkg{bibunits}, \pkg{chapterbib},
  \pkg{cite}, \pkg{multibib}, \pkg{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 \pkg{e-french}}
\label{sec:CompatFP}

Il est souhaitable qu’un texte saisi avec
\pkg{e-french} de Bernard~\bsc{Gaulle} puisse être compilé avec un
minimum de modifications sur une machine utilisant \pkg{babel-french}
et réciproquement.

En ce qui concerne les guillemets français, \pkg{e-french} rend actifs les
caractères |<| et |>| afin de saisir les guillemets sous la forme |<||<| et
|>||>| tandis que \pkg{babel-french} propose d’utiliser les vrais guillemets
chevrons « et » ou la commande |\frquote{}|.

Les points de suspensions sont saisis |...| avec
\pkg{e-french} et |…| (ou |\dots|) avec \pkg{babel-french}.

Les commandes suivantes peuvent être ajoutées au préambule pour
émuler certaines commandes de \pkg{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
\pkg{e-french} facilitant sa compilation avec \pkg{babel-french}.  L’appel
à \pkg{e-french} est remplacé en un appel à \pkg{babel-french}, les guillemets
|<<| et |>>| sont convertis en |\og| et |\fg| et les |...| en |…|, enfin
quelques commandes spécifiques à \pkg{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
%%% End:
