\NeedsTeXFormat{LaTeX2e}[2026/06/01]
\DocumentMetadata{pdfstandard={A-4f,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{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}
\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*{\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}\}}}

% Provisoire (changement de nom en cours)
\IfFormatAtLeastTF{2026-06-01}
  {
   \DeclareInstanceCopy{block}{std-list-0}{std-list-1}
  }
  {
   \DeclareInstanceCopy{block}{listblock-0}{listblock-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 \ext{babel-french}}
\author{\href{mailto:daniel.flipo@free.fr}{Daniel \textsc{Flipo}}}
\newcommand*{\latestversion}{3.7f}
\date{Version {\latestversion} -- 6 juin 2026}

\begin{document}

\maketitle
\thispagestyle{empty}

\begin{center}
\fbox{%
    \parbox{.75\textwidth}{\centering\Large\bfseries
      Cette documentation concerne\rule{0pt}{3ex}\\
      pdf(La)TeX et Xe(La)TeX.\\[.5\baselineskip]
      Les utilisateurs de Lua(La)TeX\\
      sont invités à consulter \\
      le fichier \file{frenchb-fr.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}, 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 et adaption à l’évolution du noyau LaTeX~--, 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~3.7
    se trouve à la section~\ref{ssec:changes-3.7}
    p.~\pageref{ssec:changes-3.7}.}
\end{abstract}

\bgroup
\renewcommand{\abstractname}%
             {Historique des mises à jour de cette documentation}
\newlength\mybox
\settowidth{\mybox}{23 mai 2026}
\renewcommand{\descriptionlabel}[1]{\makebox[\mybox][l]{\textbf{#1 :}}}
\vspace{\baselineskip}\noindent
\begin{abstract}
  \vspace{-\baselineskip}\noindent
  \descindentFB=0pt
  \begin{description}
  \item[22 mai 2024] Adaptation à la version 3.6a, voir
    section~\ref{ssec:changes-3.6}.
  \item[25 mai 2025] Adaptation à la version 3.7a, voir
    section~\ref{ssec:changes-3.7}.
  \item[6 juin 2026] Adaptation à la version 3.7f, voir
    section~\ref{ssec:changes-3.7}.
  \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) 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…}|}|.

Depuis la version~3.10 de Babel, 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}|.

\emph{Remarque importante sur les fontes.}
Le recours à \ext{babel-french} ne suffit pas pour obtenir des césures
correctes des mots accentués, il faut en outre utiliser des fontes contenant
tous les caractères spéciaux du français (â, é, ï, ù, ç, etc.) ; la façon de
le faire dépend du format utilisé :
\begin{itemize}
\item avec pdfLaTeX il convient d’ajouter dans le préambule les deux
  commandes\\
  |\usepackage[T1]{fontenc}|\\
  |\usepackage{lmodern}|\\
  rappelons que la déclaration du codage d’entrée n’est nécessaire que si
  celui-ci n’est pas le codage par défaut (|utf8| depuis 2018), par exemple
  |latin9| ou |latin1| ou |applemac|, etc.\\
  |\usepackage[latin9]{inputenc}|
\item avec XeLaTeX on peut ajouter |\usepackage{fontspec}| mais
  ceci est devenu facultatif avec les formats LaTeX récents (2017).
\end{itemize}
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
\textit{Computer Modern}, fontes historiques de TeX.
Les fontes LM conviennent pour toutes les langues de l’Europe de l’ouest
(latines, anglo-saxonnes et scandinaves).\\
Rappelons qu’avec XeLaTeX aucun appel à
|\usepackage[...]{inputenc}| n’est à faire, le texte source
\emph{devant être codé} en |utf8|.

\goodbreak
L’utilisation de fontes de la famille CM/LM n’est pas du tout indispensable,
\begin{itemize}
\item pour pdfLaTeX toute fonte PostScript en codage~T1 convient, ainsi on
  pourra remplacer |lmodern|, au choix par |kpfonts|, |fourier| (Utopia),
  |mathptmx| ou |txfonts| (Times), |mathpazo| ou |pxfonts| (Palatino), etc.
\item pour XeLaTeX, 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.

  Il est également possible d’utiliser des  fontes PostScript, pour plus de
  détails consulter par exemple le chapitre~15 du livre
  \textit{LaTeX, l’essentiel} de \bsc{D.~Bitouzé} et \bsc{J.-C.~Charpentier}.
\end{itemize}

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

Depuis la version~2.2, \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é. Depuis la version~2.6a, 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.

\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 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}

\item Les légendes des figures et des tables utilisent un tiret double
  à la place du «\string:», ceci pour toutes les langues, on obtient
  «Figure~1~--~Légende» au lieu de «Figure~1\string:~Légende».
  Il est possible de choisir un autre séparateur :
  pour remplacer le tiret double «--» par un tiret triple «---»,
  ajouter dans le préambule\hlabel{captionseparator}\\
  |\renewcommand*{\CaptionSeparator}{\space\textemdash\space}|.

  Lorsque la langue principale n’est pas le français, le séparateur «\string:»
  est utilisé pour toutes les langues mais une espace insécable est en principe
  ajoutée en français ; lorsque l’ajout échoue, un message est affiché dans le
  fichier \file{.log}.

  Certaines classes ou extensions modifient la présentation des légendes ;
  parmi elles, les classes \cls{memoir}, \cls{beamer}, koma-script et AMS
  et les extensions \ext{caption} et \ext{floatrow} sont compatibles avec
  \ext{babel-french}.

  Un avertissement est inséré dans le fichier \file{.log} lorsqu’il y a risque
  de conflit avec une autre extension ou classe qui modifie la définition de
  la commande |\@makecaption| ou lorsque le chargement d’une extension
  intervient trop tôt ou trop tard.
\end{itemize}

En ce qui concerne les conventions typographiques locales (variables avec 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 (|; : ! ?|)%
  \footnote{Voir section~\ref{sec:Perso} p.~\pageref{sec:Perso} comment
  éviter les ajouts abusifs d’espace avant ces caractères
  et section~\ref{sec:active-char} p.~\pageref{sec:active-char} en cas de
  problème dû aux caractères actifs.}.
  Ceci impose que ces caractères soient rendus actifs (en fait dans tout le
  document), \emph{sauf} avec les versions récentes de Xe(La)TeX
  qui disposent d’un mécanisme permettant d’accéder aux mêmes fonctionnalités
  sans recours aux caractères actifs.

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

\item La définition de |\dots| est modifiée%
\footnote{en mode texte seulement, en fait c’est \cs{textellipsis} qui est
  modifiée.}, \emph{uniquement} avec les moteurs 8-bits (pdftex), afin de
  supprimer l’espace qui suit, espace gênant devant une parenthèse par exemple.
  Ceci dit, la commande |\dots| \emph{ne devrait plus être utilisée}
  dès lors que le texte source est codé en utf-8 :
  il est plus facile de saisir |…|%
\footnote{Il s’agit du glyphe \texttt{…} obtenu par exemple grâce à une touche
  \texttt{Compose}, \emph{pas} de \texttt{...} (trois points consécutifs).}
  que |\dots|, le texte source est plus lisible et on évite les
  problèmes d’avalement des espaces après une commande.
  Avec le moteur XeTeX, la commande |\dots| standard
  utilise le glyphe de la police de sortie sans ajout d’espace,
  \ext{babel-french} ne la redéfinit donc pas.

\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, voir
  la fin de la section~\ref{sec:Perso}, p.~\pageref{og-fg}.

  Notez que les guillemets français ne devraient \emph{jamais} être saisis
  avec |<<| et |>>| contrairement à ce qui se fait avec
  {e-French} (voir section~\ref{sec:CompatFP}).

  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).
  \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{}|.

{\samepage
Exemple de citation imbriquée :
\begin{center}
\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}
\end{center}
}

\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
  \begin{itemize}
  \item avec le moteur XeTeX, en chargeant les extensions \ext{fontspec}
    \emph{et} \ext{realscripts} et en choisissant une police de type OpenType
    qui connaît 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`|) ;
  \item sous (pdf)LaTeX avec certaines polices type~1 expertes
    (Fourier-Utopia).
  \end{itemize}
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 ou la police
type~1 Utopia-expert par exemple, n’ont pas de «g supérieur» ; en codant
|M\up{gr}| on obtient Mg\up{r} (Jenson) ou M\up{r} (Utopia-expert) 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}.

Pour les perfectionnistes, il est facile d’ajuster la taille et le placement
vertical des lettres supérieures simulées par |\fup|
(voir dans le code de \file{frenchb.dtx} les commandes |\FBsupS| et
|\FBsupR|).

\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 Le caractère \degre{} (à ne pas confondre avec le petit «o» de \No)
  est saisi |\degre|, mais comme les espaces avant
  et après ce caractère dépendent fortement de la police utilisée
  (PostScript ou non), on emploiera |\degres| pour saisir
  les températures « 20~\textdegree C » (codé |20~\degres C|
  avec espace insécable) ou les titres alcooliques « 45\degres{} »
  (codé |45\degres| sans espace).
  Lorsque l’extension \ext{textcomp} est chargée (elle donne accès
  aux « \TeX{} Companion fonts » qui contiennent un vrai symbole degré),
  |\degres| utilise celui-ci (|\textdegree|).

\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}. Un exemple extrême est fourni par la
commande |\dots| : lorsqu’elle est redéfinie par \pkg{babel-french} (moteurs
8-bits et en français seulement) on peut omettre la paire d’accolades, mais
celle-ci est indispensable dans une partie en anglais par exemple ou avec les
moteurs Unicode (|\dots| garde sa définition standard)… 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} a été supprimé en
version~3.0.

\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}

\item [\fbo{StandardLayout=true (false*)}] supprime (dans le cas où le
  français est la langue principale) toute action de \ext{babel-french}
  sur la maquette : retour aux listes standard, pas de retrait des 1\iers{}
  paragraphes des sections, notes de bas de page standard, séparateur
  «\string:» dans les légendes de figures et tableaux.  Lorsque le français
  n’est pas la langue principale, elle est sans effet.

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

\end{description}

\subsubsection*{Présentation des listes}

\begin{description}
\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 \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{itemize}, \env{enumerate}  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 [\fbo{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 [\fbo{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 [\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 \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 [\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
  \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 [\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 affecte la totalité du document.
  La commande |\StandardFootnotes| peut encore être utilisée
  \emph{localement}, par exemple dans les environnements \env{minipage} si la
  présentation «à la française» ne convient pas (notes numérotées `a’, `b’,
  etc.).

\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}

\item [\fbo{AutoSpacePunctuation=false (true)}] ; par défaut, \ext{babel-french}
  corrige la faute de saisie qui consiste à omettre l’espace devant la
  ponctuation haute (\string: \string; \string? \string!) en ajoutant
  automatiquement une espace insécable de taille adaptée.
  Toutefois, l’ajout d’espace n’a pas lieu lorsque la police courante est
  à espacement fixe%
  \footnote{Ceci évite en particulier les problèmes en verbatim.} :
  |\texttt{http://truc}| produit \texttt{http://truc}.

  Ceux qui sont sûrs de leur saisie peuvent mettre cette option à
  \fbo{false} pour contrôler complètement l’ajout d’espace devant la
  ponctuation haute : l’espace adéquate (toujours insécable) est ajoutée
  si et seulement si un espace précède le signe de ponctuation dans le
  fichier source. Ils éviteront ainsi, quel que soit le moteur utilisé,
  de voir des espaces ajoutées à tort.

  Autre solution pour les autres : laisser le mode par défaut et éviter,
  le cas échéant, l’insertion d’espaces parasites en utilisant la commande
  |\NoAutoSpacing| dans un groupe, par exemple |{\NoAutoSpacing 10:55}|.

\item [\fbo{ThinColonSpace=true (false)}] ; par défaut l’espace placée
  avant le `\string:’ 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 le
  `\string:’.

  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 un argument optionnel
  (pour le dialecte \lang{french} ou \lang{acadian}, son absence équivaut
  à \lang{french}) et quatre arguments obligatoires : le premier précise le
  type d’espace à redéfinir, il doit être |colon| (pour le~`:’), |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.)
  \ext{babel-french}, n’ajoute jamais d’espace avant la ponctuation haute ni
  après `«’, ni avant `»’ même si ces caractères ont été activés par l’option
  \fbo{og=«, fg=»}.  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, ce qui peut être
  utile pour recompiler à l’identique des anciens textes.

\end{description}

\subsubsection*{Guillemets}

\begin{description}

\item [\fbo{og=«, fg=»}]%
  \footnote{Les valeurs affectées à \fbo{og} et \fbo{fg} sont les vrais
    guillemets \fbo{«} et \fbo{»}, pas \fbo{<{}<} et \fbo{>{}>}.
    Les espaces avant et après ces guillemets dans la commande
    \fbsetup{} sont optionnels.} ;
  \hlabel{og-fg} lorsqu’on dispose de guillemets français au
  clavier (grâce à une touche \textit{compose} par exemple), cette option permet
  d’utiliser directement ces guillemets à la place des commandes |\frquote{}|
  ou |\og| et |\fg|.
  On peut ainsi saisir \code{«guillemets»} (sans espace) ou
  \code{« guillemets »} (avec espaces à l’intérieur) pour obtenir «guillemets»
  avec les espaces insécables adéquates en français.
  En revanche, si on active cette option,
  \emph{il ne faut pas coder explicitement les espaces insécables} coder
  \code{«}|~|\code{guillemets}|~|\code{»} produirait
  une espace trop large après le guillemet ouvrant.

  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«)}. %»

  Ceci fonctionne en (pdf)LaTeX pour les codages d’entrée 8-bits (latin1,
  latin9, ansinew, applemac,…) et pour les codages sur plusieurs octets
  comme utf8 ou  utf8x. Ceci fonctionne également avec XeLaTeX ;
  avec XeLaTeX toutefois, comme pour la ponctuation haute,
  \ext{babel-french} respecte les espaces insécables U+00A0 et U+202F (fine).

\item [\fbo{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 [\fbo{InnerGuillSingle=true (false)}] ; si \fbo{InnerGuillSingle=true}
  les citations internes sont balisées comme
  \guilsinglleft\FBguillspace ceci\FBguillspace\guilsinglright,
  sinon comme ``cela’’.

\item [\fbo{EveryParGuill=open, close, none (open)}] ;
  selon sa valeur, cette option ajoute un guillemet ouvrant
  \bgroup\NoAutoSpacing («\FBguillspace), fermant (»\FBguillspace) \egroup
  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
  \bgroup\NoAutoSpacing
    (\guilsinglleft\FBguillspace), ou fermant (\guilsinglright\FBguillspace)%
  \egroup,
  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.

\end{description}

\subsubsection*{Présentation des nombres}

{\sloppy
\begin{description}
\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 \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.
\end{description}
\par}

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

\begin{description}

\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 \ext{babel}.\hlabel{scfigtab}

\item [\fbo{CustomiseFigTabCaptions=false (true*)}] ; si cette option est mise
  à \fbo{false}, le séparateur défini par |\CaptionSeparator| est remplacé par
  le séparateur par défaut (deux-points) dans les légendes des figures et des
  tables, ceci pour toutes les langues.  En français, \ext{babel-french} ajoute
  si possible une espace insécable adéquate devant le deux-points ou affiche
  un message dans le fichier \file{.log}.

\item [\fbo{OldFigTabCaptions=true (false)}] peut être utilisée pour retrouver
  la présentation antérieure (pré~3.0) des légendes de figures et tables,
  c.-à-d. |\CaptionSeparator| en français et deux-points pour les autres
  langues.  Cette option ne fonctionne que pour les classes standard
  \cls{article}, \cls{report}, \cls{book} et rend inopérante l’option
  \fbo{CustomiseFigTabCaptions}.

\end{description}

\subsubsection*{Divers : lettres supérieures et « warnings »}

\begin{description}

\item [\fbo{FrenchSuperscripts=false (true)}] ne devrait être utilisée que pour
  recompiler des anciens fichiers à l’identique. Elle redéfinit |\up| comme
  |\textsuperscript| alors que par défaut |\up| fait appel à la
  commande |\fup| plus conforme aux usages francophones (voir
  section~\ref{sec:description}, p.~\pageref{sec:description}.

\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| (sauf si elle est redéfinie en |\textsuperscript| par l’option
  précédente) 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 \ext{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 \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,AutoSpaceFootnotes=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}

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\label{def}.},
noter que l’ancienne syntaxe |\addto\captionsfrench{\def\proofname{Preuve}}|
fonctionne toujours.\hlabel{captionsfrench}

{\sloppy
\emph{Attention}, dans les deux cas, le nom de la langue est
\emph{obligatoirement} \opt{french}, les variantes \opt{frenchb} ou
\opt{francais} seraient sans effet ! \par}

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 en petites capitales en
français. Il serait préférable, notamment dans un document multilingue, de
s’en tenir à la traduction pure
(|\def\frenchfigurename{Figure}|\footref{def},
|\def\frenchtablename{Table}|\footref{def}
et de choisir les attributs de la police
(|\scshape| par exemple) au niveau de la classe ou d’une extension comme
\ext{captions}. L’option \fbo{SmallCapsFigTabCaptions} (p.~\pageref{scfigtab})
peut être mise à \fbo{false} pour supprimer le passage en petites capitales.

\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}.

\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
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{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\linewidth}\raggedright
%         \parindent=0pt \listindentFB=1.5em
%         \noindent\LEFTmargin{} Marge gauche\par
%         Paragraphe précédant la liste\par
%         \vspace{0.8ex}
%         \hspace*{\listindentFB}\hbox to\labelwidthFB{\hfill 1.}%
%            \hspace{\labelsep}Premier élément sur plus\par
%         \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}d’une ligne…\par
%         \vspace{0.4ex}
%         \hspace*{\listindentFB}\hspace*{12pt}%
%            \hbox to\labelwidthFB{\hfill (a)}%
%            \hspace{\labelsep}Un élément niveau 2,\par
%         \vspace{0.4ex}
%         \hspace*{\listindentFB}\hspace*{12pt}%
%            \hbox to\labelwidthFB{\hfill (b)}%
%            \hspace{\labelsep}Un élément niveau 2,\par
%         \vspace{0.4ex}
%         \hspace*{\listindentFB}\hbox to\labelwidthFB{\hfill 2.}%
%            \hspace{\labelsep}Second élément…
%        \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]{.45\textwidth}
%\stepcounter{mpfootnote}
%\hspace*{\fill}
%  \fbox{\begin{minipage}[t]{.9\linewidth}\raggedright
%         \parindent=0pt \listindentFB=1.5em
%         \noindent\LEFTmargin{} Marge gauche\par
%         Paragraphe précédant la liste\par
%         \vspace{0.8ex}
%         \hspace*{\listindentFB}\hbox to\labelwidthFB{\hfill 1.}%
%            \hspace{\labelsep}Premier élément sur plus\par
%         \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}d’une ligne…\par
%         \vspace{0.4ex}
%         \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}%
%            \hbox to\labelwidthFB{\hfill (a)}%
%            \hspace{\labelsep}Un élément niveau 2,\par
%         \vspace{0.4ex}
%         \hspace*{\listindentFB}\hspace*{\labelfullwidthFB}%
%            \hbox to\labelwidthFB{\hfill (b)}%
%            \hspace{\labelsep}Un élément niveau 2,\par
%         \vspace{0.4ex}
%         \hspace*{\listindentFB}\hbox to\labelfullwidthFB{2.\hfill}%
%            Second élément…
%        \end{minipage}%
%}\\
%\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}
\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{2\baselineskip}
\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}

\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 !
}

%\pagebreak[4]
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.3 (2018)}
\label{sec:changes}

%\subsection{Changements en version 3.8}
%\label{ssec:changes-3.8}

\subsection{Changements en version 3.7}
\label{ssec:changes-3.7}

\ext{frenchb} est maintenant scindée en deux parties, une partie
« historique » réservée aux moteurs anciens (TeX, pdfTeX et XeTeX) qui
restera figée (\file{frenchb3.dtx}) ---~sauf corrections éventuelles de
bogues et adaption à l’évolution du noyau LaTeX~--, l’autre « moderne »
(\file{frenchb.dtx}) destinée à Lua(La)TeX qui continuera à évoluer.
Cette scission a permis de simplifier le code pour LuaTeX et de le
débarrasser de vieilleries devenues inutiles mais également d’alléger
\file{frenchb3.dtx} en supprimant le support pour LuaTeX.

Le support de la variante \opt{acadian}%
\footnote{Et de son synomyme \opt{canadien}},
est abandonné ainsi que les alias \opt{frenchb} et \opt{francais}.
La seule option acceptée désormais pour le français est \opt{french}.

Les options \opt{ListOldLayout}, \opt{CompactItemize}
et \opt{GlobalLayoutFrench} ont été supprimées car elles ne servaient qu’à
reproduire des comportements très anciens de \ext{babel-french}.

\textbf{Note sur le projet « PDF tagging%
  \footnote{Il s’agit de produire des fichiers PDF conformes aux standards
    d’archivage (A-4) et d’accessiblité (UA-2) et dotés de balises de
    structure.}
  » :} ce projet de l’équipe LaTeX3 nécessite 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 les balises ajoutées automatiquement dans
le fichier PDF seront préservées et les incompatibilités entre redéfinitions
concurrentes seront évitées.

En version~3.7a la personnalisation des listes a été désactivée et un message
l’annonçait dans le fichier \file{.log} dès que les nouvelles listes étaient
utilisées, c.-à-d. en présence de la ligne
|\DocumentMetadata{testphase=latest}| ou
|\DocumentMetadata{tagging=on}|

La version~3.7b 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 (composé avec LuaLaTeX) contient\\
|\DocumentMetadata{pdfstandard={A-4,UA-2}, tagging=on, lang=fr}|\\
|\documentclass[a4paper,12pt,german,british,french]{article}|\\
|\usepackage{babel}|

Le changement majeur dans la version 3.7f est l’ajout de code permettant de
paramétrer les listes à partir de la nouvelle interface pour obtenir un
rendu analogue à ce qui est produit par les versions précédentes de
\ext{babel-french}. Il faut
savoir que cette nouvelle interface a vocation à remplacer, dans un futur
plus ou moins proche, les anciennes structures au sein du noyau LaTeX.
Actuellement, ce nouveau code n’est pris en compte que si le document commence
par une commande |\DocumentMetadata{...}|, rien ne change donc ni pour les
utilisateurs de XeLaTeX%
\footnote{Le balisage des fichiers PDF n’est pas possible avec le moteur
  XeTeX qui ne produit pas directement de fichiers PDF.},
ni pour ceux de pdfLaTeX qui ne sont pas intéressés par le balisage des
fichiers PDF.

Ceux qui souhaitent expérimenter à ce sujet devraient plutôt opter pour
LuaLaTeX et consulter la documentation française \file{frenchb-fr.pdf} de la
version~4.1a de \pkg{babel-french} dédiée au moteur LuaTeX. Ceci dit, rien
n’empêche de tester la nouvelle interface avec pdfLaTeX en ajoutant par
exemple une commande |\DocumentMetadata{...}| avant la commande
|\documentclass{}|, mais il faut alors utiliser une distribution très
récente car le format LaTeX~2026-06-01 est indispensable.

\subsection{Changements 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 {\ColorVerb |\,|}
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)\,\cdot\,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}{\,}|.

\subsection{Changements en version 3.5}
\label{ssec:changes-3.5}

La version 3.5a propose une nouvelle option \fbo{ListItemsAsPar} qui permet
une présentation des listes plus conforme à la tradition typographique
française, voir p.~\pageref{ListAsPar}. La présentation par défaut des listes
est inchangée.

Quelques bogues affectant la commande |\frquote{}| ont été corrigées dans les
versions 3.5b à 3.5d. Cette dernière introduit une nouvelle option
\fbo{StandardListSpacing} à utiliser à la place de \fbo{ReduceListSpacing},
voir p.~\pageref{listspacing}. La présente documentation est maintenant
incluse dans la distribution \ext{babel-french} sur CTAN.

La commande |\NoEveryParQuote| a été ajoutée en version~3.5e, voir
p.~\pageref{frquote}.

La version 3.5g corrige une bogue ancienne affectant l’usage des polices
type~1 avec Lua\-(La)TeX : tout crénage était supprimé pour ces polices depuis
la version~3.1f (2015) ; les polices OpenType elles, n’ont jamais été affectées.

La version 3.5j corrige aussi une bogue ancienne affectant les classes
koma-script, \cls{memoir} et \cls{beamer} : les redéfinitions du séparateur
des légendes de figures et tables (commandes |\captionformat|, |\captiondelim|,
etc.) sont maintenant prises en compte correctement.

À partir de la version 3.5k :
\begin{itemize}
  \item La traduction française de |\figurename| et |\tablename| ne
    contient plus de commande de changement de fonte comme c’est la règle.
    Le passage en petites capitales a été déplacé dans |\fnum@figure| et
    |\fnum@table|, ce qui a pour effet de mettre le numéro également en
    petites capitales. Noter que la classe \cls{beamer} ne reconnaît pas les
    commandes |\fnum@...|, les légendes ne sont donc plus en petites
    capitales.
  \item Le chargement de \pkg{caption} peut se faire indiféremment avant ou
    après celui de \pkg{babel}.
  \item La commande |\pdfstringdefDisableCommands| n’est plus utilisée :
    toutes les commandes nécessitant un traitement spécial dans les
    signets \pkg{hyperref} sont maintenant définies à partir de
    |\textorpdfstring{}{}| (suggestion de l’équipe LaTeX3).
\end{itemize}

La commande |\bname{}| (voir section~\pageref{bname}) a été ajoutée en
version~3.5n, la documentation concernant la commande |\bsc{}| a été revue
comme celle concernant la saisie des guillemets.

À partir de la version 3.5o :
\begin{itemize}
\item Le codage (déconseillé) |«~abc~»| ne produit plus d’espace parasite
  \emph{avec Lua(La)TeX}, ceci répond à la demande formulée
  \href{https://tex.stackexchange.com/questions/661377/}{ici}.
\item Les commandes |\shorthandoff{}| et |\shorthandon{}| affichent maintenant
  le message standard de \pkg{babel} lorsqu’elles sont exécutées (à tort) sous
  LuaTeX ou XeTeX. Leur redéfinition, qui permettait de conseiller
  |\NoAutoSpacing| à la place, a été supprimée à la demande de Javier Bezos,
  car elle cassait la variante |\shorthandoff*{}|.
\end{itemize}

\vspace{\parskip}
Le comportement de |\DecimalMathComma| a changé en version~3.5p suite à une
remarque de Fabrice Eudes : elle peut désormais être utilisée dans le préambule.
Voir section~\ref{decimalmathcomma} p.~\pageref{decimalmathcomma} pour plus de
détails.

\vspace{\parskip}
La version 3.5q corrige un bug concernant les listes signalé par Denis
Bitouzé : les alinéas inclus dans une liste n’étaient pas distinguables.
Dorénavant |\listparindent| est défini comme |\parindent| et si|\parskip > 0|,
|\parsep| est défini comme |\parskip|.  Il est possible de revenir
à l’ancienne présentation en ajoutant \emph{dans l’environnement de liste}
les commandes |\parskip=0pt| et |\parindent=0pt|.\hlabel{par-in-lists}

\vspace{\parskip}
La version 3.5r est compatible avec \pkg{ucharclasses.sty} qui est maintenant
chargé avec l’extension \pkg{fontsetup} lorsque le moteur XeTeX est utilisé.
D’autre part le fichier \file{frenchb.ins} n’est plus nécessaire pour extraire
les fichiers \file{*.ldf} de \file{frenchb.dtx} (voir~\file{README.md}).

\vspace{\parskip}
La version 3.5s désactive l’option \opt{FrenchFootnotes} lorsque l’extension
\pkg{footnotebackref} est chargée, les deux étant incompatibles ; un message
d’avertissement est affiché dans le fichier \file{.log}.

\subsection{Changements en version  3.4}
\label{ssec:changes-3.4}

La version 3.4a introduit une nouvelle commande |\frenchdate| (voir
p.~\pageref{frenchdate}) et corrige une bogue mineure : |\FBthousandsep| n’est
plus une espace justifiante insécable mais une espace rigide (de même valeur).
Le retour à l’ancien comportement est obtenu par l’ajout dans le préambule de
|\renewcommand*{\FBthousandsep}{~}|.

Les deux options \lang{french} et \lang{acadian} peuvent maintenant être
utilisées simultanément dans un même document ; elles ne présentent par défaut
aucune différence mais rien n’empêche de les personnaliser différemment
en ce qui concerne les motifs de césures, les légendes ou la ponctuation.

Une commande |\FBsetspaces| a été ajoutée pour faciliter le réglage des
espaces précédant la ponctuation haute et les guillemets avec la possibilité
de réglages différents selon l’option \lang{french} ou \lang{acadian}, voir
p.~\pageref{FBsetspaces}.

À partir de La version 3.4, eTeX et LuaTeX 1.0 sont requis.

\subsection{Changements en version 3.3}
\label{ssec:changes-3.3}

Le contrôle de l’ajout d’espace devant le deux-points a été amélioré dans la
version 3.3d mais uniquement avec le moteur LuaTeX : il n’y a plus d’ajout
d’espace parasite dans les URL (http://monsite), les chemins MSDOS
(C:\boi Mes Documents) ou les horaires (10:55).

Lors de la conversion en HTML par \exe{lwarp} (versions 0.37 et suivantes)
des fichiers compilés sous  XeLaTeX ou pdfLaTeX, les espaces insécables ajoutées
par \ext{babel-french} pour la ponctuation haute et les guillemets sont
respectées.
Une nouvelle option (expérimentale) \fbo{UnicodeNoBreakSpaces} pour LuaLaTeX
a été ajoutée dans la version~3.3c.

{\sloppy
La version 3.3b a subi un réaménagement interne : chaque langue ou dialecte de
Babel devrait avoir son propre fichier \file{.ldf}.  Ainsi pour le français il
y a dorénavant \file{french.ldf} qui contient le code principal et quatre
fichiers satellites \file{frenchb.ldf}, \file{francais.ldf}, \file{acadian.ldf}
et \file{canadien.ldf}. L’option à utiliser pour charger le français avec
Babel est toujours \opt{french} (ou \opt{acadian} pour le français du Canada
pour l’instant identique au français de base), les autres options (\opt{frenchb},
\opt{francais} ou \opt{canadien}) sont déconseillées et affichent un message
d’avertissement dans le fichier \file{.log}.\par
}

La version 3.3a disponible dans TeXLive 2017 est compatible avec LuaTeX 1.0.4
(stable) mais aussi avec la version 0.95 (beta) de TL2016.
L’espacement de la ponctuation haute et des guillemets français est maintenant
contrôlé par les \emph{commandes} |\FBcolonspace|, |\FBthinspace| et
|\FBguillspace| quel que soit le moteur utilisé (LuaTeX, XeTeX ou pdfTeX) ;
auparavant LuaTeX avait recours à des \emph{glue} |\FBcolonskip|,
|\FBthinskip| et |\FBguillskip|.

L’option \opt{french} devant être préférée à \opt{frenchb}, il m’a semblé
judicieux de renommer la commande de personnalisation |\frenchbsetup{}| en
|\frenchsetup{}|, l’ancien nom étant conservé par souci de compatibilité.

De nouvelles possibilités de personnalisation de la commande |\part{}| ont été
introduites, voir page~\pageref{ssec:captions}.


\subsection{Comment recompiler un document écrit pour
                {babel-french}~2.x ?}
\label{ssec:compat-2.6}

Penser d’abord à remplacer \opt{frenchb} et \opt{francais} par \opt{french}
dans les options de Babel et dans |\selectlanguage{...}|,
|\begin{otherlanguage}{...}|, |\foreignlanguage{...}|.
Une exception toutefois : les classes SMF (\cls{smfart} et \cls{smfbook}) ne
fonctionnent qu’avec l’option \opt{frenchb}… vieux reliquat d’un passé
lointain où l’option \opt{french} de babel était ambiguë (ambiguïté levée depuis
2004).

Ajouter |\listindentFB=0pt| juste avant les environnements \env{description}
si on souhaite que les étiquettes de ces environnements collent à la marge
gauche au premier niveau.

\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{Problèmes avec les quatre caractères actifs
           (\string; \string: \string! \string?)}
\label{sec:active-char}

Rappelons d’abord que ces quatre caractères \emph{ne sont pas rendus actifs}
avec le moteur XeTeX, donc aucun problème n’est à craindre
avec celui-ci%
\footnote{N’est-ce pas une bonne raison d’abandonner pdf(La)TeX ? Passer
  à LuaTeX me semble s’imposer…},
cette section ne concerne \emph{que les vieux moteurs} TeX’82 et pdfTeX.

Normalement, le nécessaire est fait par Babel pour que les caractères rendus
actifs ne perturbent pas les autres extensions… mais il y a hélas des
exceptions (\ext{tikz}, \ext{xypic}, \ext{xcolor}, \ext{autonum}, \ext{arabtex},
\ext{cleveref} par exemple).  Il faut savoir que les caractères
rendus actifs par une langue \emph{le restent dans tout le document}, repasser
en anglais par exemple ne désactive pas les \string; \string: \string!
\string?  s’ils ont été rendus actifs par \ext{babel-french} !

Les espaces insécables ajoutés entre les guillemets peuvent également être
gênants.

Depuis la version~2.5, la commande à utiliser en cas de problème est
|\NoAutoSpacing|%
\footnote{Elle fonctionne avec les formats pdf(La)TeX et
    et Xe(La)TeX mais ne règle pas tous les problèmes de caractères actifs,
    notamment dans les \texttt{\boi{}label} et autres \texttt{\boi{}caption},
    voir la section~\ref{sec:Incomp} à ce sujet.
.}
\emph{dans un groupe} comme ceci :

|{\NoAutoSpacing|\\
  \textit{Partie ne supportant pas les caractères actifs}\\
|}|

ou à l’intérieur d’un environnement, par exemple

|\begin{tikzpicture}\NoAutoSpacing|\\
| ... |\\
|\end{tikzpicture}|

Avec \ext{tikz} v3.0, une solution alternative consiste à ajouter
|\usetikzlibrary{babel}| dans le préambule, voir la documentation de TikZ
(\file{pgfmanual.pdf}). L’avantage de cette solution est de tenter de préserver
les caractères actifs dans les nœuds même si ça ne fonctionne pas toujours,
notamment pour le point d’exclamation.

Avec pdf(La)TeX, il est également possible de désactiver un seul ou plusieurs
caractères actifs de manière sélective grâce à la commande |\shorthandoff| de
Babel. Le mieux est de le faire \emph{localement} dans un environnement ou
dans un groupe comme ceci :

|{\shorthandoff{:!}%|\\
  \textit{Partie ne supportant pas les caractères actifs `:’ et `!’}\\
|}|

\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 caractères rendus actifs par \ext{babel-french}%
  \footnote{Ceci ne concerne pas Xe(La)TeX qui gère autrement
    la ponctuation haute.}
  (\string; \string: \string!  \string?) peuvent perturber certaines
  extensions, c’est le cas de \ext{tikz}, \ext{xypic}, \ext{xcolor},
  \ext{arabtex}, \ext{cleveref} par exemple, voir comment y remédier
  section~\ref{sec:active-char}.

  En règle générale, il vaudrait mieux éviter les caractères actifs dans les
  |\label| et |\caption|, remplacer systématiquement les « \string: » par des
  tirets « - » dans les |\label| est une saine précaution.  Pour éviter les
  problèmes de caractères actifs avec \ext{natbib} ou \ext{listings}, il
  convient de charger \ext{natbib} \emph{avant} \ext{babel} et \ext{listings}
  \emph{après} \ext{babel}.\hlabel{ch-doc3}
  Un message est affiché dans le fichier \file{.log} lorsque l’ordre de
  chargement n’est pas correct.

  \ext{hyperref} ne fonctionne pas avec la commande |\cite| standard lorsque
  celle-ci contient un caractère actif, charger l’extension \ext{cite} règle
  le problème.

\item En LaTeX, les caractères \string; \string: \string! \string? ne sont
  rendus actifs
  qu’au |\begin{document}|, ainsi les espaces attendues ne sont pas
  ajoutées automatiquement lorsque ces caractères sont utilisés dans des
  commandes définies dans le préambule ou dans des fichiers~\file{.sty}.\\
  Exemple : la commande |\title{Quelle crise?}| placée dans le
  préambule imprimera « Quelle crise\string? » (sans espace)%
  \footnote{Mais l’espace sera préservée si on compile en
    en XeLaTeX puisque le mécanisme est différent.}
  lors de l’appel de |\maketitle|. Il y a plusieurs parades :
  \begin{itemize}
  \item soit placer la commande |\title{Quelle crise?}| après le
    |\begin{document}| (et avant |\maketitle|),
  \item soit placer les commandes du type |\title| entre un
    |\shorthandon{;:!?}| (avant) et un |\shorthandoff{;:!?}|
    (après), si on tient à les laisser dans le préambule.
  \end{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: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 \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 soit une erreur à la compilation (en LaTeX),
  soit un mauvais classement de l’entrée |«toto»| dans l’index (en
  XeLaTeX).
\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{}|.

Lorsqu’on travaille en codage~\texttt{T1} avec \ext{babel-french}, l’existence
des ligatures~|<||<| et~|>||>| permet de saisir
|<||<~|\code{guillemets français}|~>||>|,
mais les espaces insécables sont \emph{indispensables}.
Les commandes |\og| et |\fg| (ou leurs alias \fbo{«} et \fbo{»}, à condition
que ceux-ci aient été activés dans \fbsetup{}) sont préférables : elles
introduisent automatiquement des espaces insécables et plus fines pour un
meilleur rendu typographique.

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
%%% End:
