texlive[43107] Master/texmf-dist: babel-french (31jan17)

commits+karl at tug.org commits+karl at tug.org
Tue Jan 31 23:46:16 CET 2017


Revision: 43107
          http://tug.org/svn/texlive?view=revision&revision=43107
Author:   karl
Date:     2017-01-31 23:46:16 +0100 (Tue, 31 Jan 2017)
Log Message:
-----------
babel-french (31jan17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/babel-french/README
    trunk/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
    trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
    trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
    trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua

Modified: trunk/Master/texmf-dist/doc/generic/babel-french/README
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx	2017-01-31 22:45:55 UTC (rev 43106)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx	2017-01-31 22:46:16 UTC (rev 43107)
@@ -1,4 +1,4 @@
-%\CheckSum{3424}
+%\CheckSum{3472}
 %
 %\iffalse
 %    Tell the \LaTeX\ system who we are and write an entry on the
@@ -13,7 +13,7 @@
 %<ldf>\ProvidesLanguage{frenchb}
 %\ProvidesFile{frenchb.dtx}
 %<*!lua>
-         [2017/01/15 v3.2f French support from the babel system]
+         [2017/01/30 v3.2g French support from the babel system]
 %</!lua>
 %<*internal>
 \iffalse
@@ -20,7 +20,7 @@
 %</internal>
 %<*lua>
 --
---  File `frenchb.lua' generated from frenchb.dtx [2017/01/15 v3.2f]
+--  File `frenchb.lua' generated from frenchb.dtx [2017/01/30 v3.2g]
 --
 --  Copyright © 2014-2017 Daniel Flipo
 --  <daniel (dot) flipo (at) free (dot) fr>
@@ -219,30 +219,33 @@
 %          quotations.  For quotations spreading over more than one
 %          paragraph, |\frquote| will add at the beginning of every
 %          paragraph of the quotation either an opening French
-%          guillemet («), or a closing one (») depending on option
-%          \fbo{EveryParGuill=open} or \fbo{=close}, see
-%          p.~\pageref{everyparguill}.\label{frquote}
+%          guillemet («), or a closing one (») or nothing depending
+%          on option \fbo{EveryParGuill=open} or \fbo{=close} or
+%          \fbo{=none}, see p.~\pageref{everyparguill}.\label{frquote}
 %
 %          |\frquote| is recommended to enter embedded quotations ``à la
-%          française'', several variants are provided through options:
+%          française'', several variants are provided through options.
 %          \begin{itemize}
-%          \item with LuaTeX based engines, every line of the inner
-%            quotation will start with a French opening or closing
-%            guillemet (« or »)
-%            depending on option \fbo{EveryLineGuill=open} (default) or
-%            \fbo{=close} unless you explicitly set
-%            \fbo{EveryLineGuill=none}, then |\frquote{}| will behave
-%            as with non-LuaTeX engines;
-%          \item with all other engines, the inner quotation is
-%            surrounded by double quotes (``\textit{texte}'') unless
-%            option \fbo{InnerGuillSingle=true}, then a) the inner
-%            quotation is printed as
+%          \item with all engines: the inner quotation
+%            is surrounded by double quotes (``\textit{texte}'')
+%            unless option \fbo{InnerGuillSingle=true}, then
+%            a) the inner quotation is printed as
 %            \guilsinglleft\FBguillspace\textit{texte}\FBguillspace
 %            \guilsinglright{} and b) if the inner quotation
 %            spreads over more than one paragraph, every paragraph
 %            included in the inner quotation starts with
-%            a \guilsinglleft{} or a \guilsinglright, depending on
-%            option \fbo{EveryParGuill=open} or \fbo{close}.
+%            a \guilsinglleft{} or a \guilsinglright{} or nothing,
+%            depending on option \fbo{EveryParGuill=open} (default)
+%            or \fbo{=close} or \fbo{=none}.
+%          \item with LuaTeX based engines, it is possible to add a
+%            French opening or closing guillemet (« or ») at the
+%            beginning of every line of the inner quotation using
+%            option \fbo{EveryLineGuill=open} or \fbo{=close}; note
+%            that with any of these options, the inner quotation is
+%            surrounded by French guillemets (« and ») regardless
+%            option \fbo{InnerGuillSingle};
+%            the default is \fbo{EveryLineGuill=none} so that
+%            |\frquote{}| behaves as with non-LuaTeX engines.
 %          \end{itemize}
 %          A starred variant |\frquote*| is meant for inner quotations
 %          which end together with the outer one: using |\frquote*| for
@@ -490,25 +493,20 @@
 %     \item [EveryParGuill=open, close, none (open)]; sets whether
 %       an opening quote (\texttt{«}) or a closing one (\texttt{»}) or
 %       nothing should be printed by |\frquote{}| at the beginning of
-%       every parapraph in case of a level 1 (outer) quotation
-%       spreading over more than one parapraph.  This option is also
-%       considered for level 2 (inner) quotations to decide between
-%       \texttt{\guilsinglleft} and \texttt{\guilsinglright} when
-%       \fbo{InnerGuillSingle=true} (see below). \label{everyparguill}
-%     \item [EveryLineGuill=open, close, none (open in LuaTeX, none
-%       otherwise)]; with engines other than LuaTeX this
-%       option is set to \fbo{none} which means that nothing will be
-%       printed at the beginning of every line of inner quotations,
-%       trying to set this option will issue a warning in the
-%       \file{.log} file.
-%
-%       With LuaTeX based engines, this option is set to \fbo{open} by
-%       default, it ensures that a `«' followed by proper
-%       kern will be repeated at the beginning of every line in case an
-%       embedded (inner) quotation  spreads over more than one line
-%       (provided that both outer and inner quotations are entered with
-%       |\frquote{}|). Set this option to \fbo{close} if you want
-%       a `»' instead of a `«'.
+%       every parapraph included in a level 1 (outer) quotation.
+%       This option is also considered for level 2 (inner) quotations
+%       to decide between \texttt{\guilsinglleft} and
+%       \texttt{\guilsinglright} when \fbo{InnerGuillSingle=true}
+%       (see below). \label{everyparguill}
+%     \item [EveryLineGuill=open, close, none (none)]; with LuaTeX
+%       based engines \emph{only}, it is possible to set this option
+%       to \fbo{open} [resp. \fbo{close}]; this ensures that a `«'
+%       [resp. `»'] followed by a proper kern will be inserted at the
+%       beginning of every line of embedded (inner) quotations
+%       spreading over more than one line (provided that both outer
+%       and inner quotations are entered with |\frquote{}|). When
+%       \fbo{EveryLineGuill=open} or \fbo{=close} the inner quotation is
+%       always surrounded by « and », the next option is ineffective.
 %     \item [InnerGuillSingle=true (false)];
 %       if \fbo{InnerGuillSingle=false} (default), inner quotations
 %       entered with |\frquote{}| start with~\texttt{``} and end
@@ -515,8 +513,10 @@
 %       with~\texttt{''}.
 %       If \fbo{InnerGuillSingle=true}, \texttt{\guilsinglleft} and
 %       \texttt{\guilsinglright} are used instead of British double
-%       quotes. Please note that this option only makes
-%       sense when \fbo{EveryLineGuill=none}.
+%       quotes; moreover if option \fbo{EveryParGuill=open} (or
+%       \fbo{close}) is set, a \texttt{\guilsinglleft} (or
+%       \texttt{\guilsinglright}) is added at the beginning of every
+%       parapraph included in the inner quotation.
 %     \item [og=«, fg=»]; when guillemets characters are available on
 %       the keyboard (through a compose key for instance), it is nice
 %       to use them instead of typing |\og| and |\fg|.  This option
@@ -624,6 +624,11 @@
 %
 %  \subsubsection*{What's new in version 3.2?}
 %
+%      Version 3.2g changes the default behaviour of |\frquote{}|
+%      with LuaTeX based engines, the output is now the same with
+%      all engines; to recover the former behaviour, add option
+%      \fbo{EveryLineGuill=open}.
+%
 %      The handling of footnotes has been redesigned for the
 %      \cls{beamer}, \cls{memoir} and koma-script classes.
 %      The layout of footnotes ``à la française'' should be unchanged
@@ -2192,10 +2197,10 @@
 \ifLaTeXe
 \else
   \ifFBunicode
-     \def\guillemotleft{{\char"00AB}}
-     \def\guillemotright{{\char"00BB}}
-     \def\textquotedblleft{{\char"201C}}
-     \def\textquotedblright{{\char"201D}}
+    \def\guillemotleft{{\char"00AB}}
+    \def\guillemotright{{\char"00BB}}
+    \def\textquotedblleft{{\char"201C}}
+    \def\textquotedblright{{\char"201D}}
   \else
     \def\guillemotleft{\leavevmode\raise0.25ex
                        \hbox{$\scriptscriptstyle\ll$}}
@@ -2353,6 +2358,10 @@
 \newcommand*{\fgii}{\textquotedblright}
 %    \end{macrocode}
 %    and the needed technical stuff to handle options:
+%
+% \changes{v3.2g}{2017/01/30}{Default options of \cs{frquote} are no
+%    longer engine-dependent.}
+%
 %    \begin{macrocode}
 \newcount\FBguill at level
 \newtoks\FB at everypar
@@ -2360,13 +2369,9 @@
 \newif\ifFBInnerGuillSingle
 \def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup}
 \def\FBguillclose{\bgroup\NoAutoSpacing\guillemotright\egroup}
-\let\FBguillnone\relax
+\let\FBguillnone\empty
 \let\FBeveryparguill\FBguillopen
-\ifFB at luatex@punct
-   \let\FBeverylineguill\FBguillopen
-\else
-   \let\FBeverylineguill\FBguillnone
-\fi
+\let\FBeverylineguill\FBguillnone
 %    \end{macrocode}
 %    The main command |\frquote| accepts (in \LaTeXe{} only) a starred
 %    version which suppresses the closing quote; it is meant to be used
@@ -2374,11 +2379,11 @@
 %    only one closing guillemet (the outer one) should be printed.
 %    \begin{macrocode}
 \ifLaTeXe
-   \DeclareRobustCommand\frquote{%
+  \DeclareRobustCommand\frquote{%
        \@ifstar{\FBcloseguillfalse\fr at quote}%
                {\FBcloseguilltrue\fr at quote}}
 \else
-   \newcommand\frquote[1]{\fr at quote{#1}}
+  \newcommand\frquote[1]{\fr at quote{#1}}
 \fi
 %    \end{macrocode}
 %
@@ -2409,7 +2414,7 @@
 %    and add it to |\everypar|, then print the quotation:
 %    \begin{macrocode}
     \FB at everypar=\everypar
-    \ifx\FBeveryparguill\relax
+    \ifx\FBeveryparguill\FBguillnone
     \else
       \def\FBeverypar at quote{\FBeveryparguill\FB at quotespace}%
       \everypar=\expandafter{\the\everypar \FBeverypar at quote}%
@@ -2427,33 +2432,33 @@
 %
 %    \begin{macrocode}
     \ifx\FBeverylineguill\FBguillopen
-       \localleftbox{\guillemotleft\FB at quotespace}%
-       \let\FBeverypar at quote\relax
-       \ogi #1\ifFBcloseguill\fgi\fi
+      \localleftbox{\guillemotleft\FB at quotespace}%
+      \let\FBeverypar at quote\relax
+      \ogi #1\ifFBcloseguill\fgi\fi
     \else
       \ifx\FBeverylineguill\FBguillclose
-         \localleftbox{\guillemotright\FB at quotespace}%
-         \let\FBeverypar at quote\relax
-         \ogi #1\ifFBcloseguill\fgi\fi
+        \localleftbox{\guillemotright\FB at quotespace}%
+        \let\FBeverypar at quote\relax
+        \ogi #1\ifFBcloseguill\fgi\fi
       \else
 %    \end{macrocode}
 %    otherwise we need to redefine |\FBeverypar at quote| (and eventually
 %    |\ogii|, |\fgii|) for level 2 quotations:
 %    \begin{macrocode}
-         \let\FBeverypar at quote\relax
-         \ifFBInnerGuillSingle
-            \def\ogii{\leavevmode
-                      \guilsinglleft\FBguillspace}%
-            \def\fgii{\ifdim\lastskip>\z@\unskip\fi
-                      \FBguillspace\guilsinglright}%
-            \ifx\FBeveryparguill\FBguillopen
-               \def\FBeverypar at quote{\guilsinglleft\FB at quotespace}%
-            \fi
-            \ifx\FBeveryparguill\FBguillclose
-               \def\FBeverypar at quote{\guilsinglright\FB at quotespace}%
-            \fi
-         \fi
-         \ogii #1\ifFBcloseguill \fgii \fi
+        \let\FBeverypar at quote\relax
+        \ifFBInnerGuillSingle
+          \def\ogii{\leavevmode
+                    \guilsinglleft\FBguillspace}%
+          \def\fgii{\ifdim\lastskip>\z@\unskip\fi
+                    \FBguillspace\guilsinglright}%
+          \ifx\FBeveryparguill\FBguillopen
+            \def\FBeverypar at quote{\guilsinglleft\FB at quotespace}%
+          \fi
+          \ifx\FBeveryparguill\FBguillclose
+            \def\FBeverypar at quote{\guilsinglright\FB at quotespace}%
+          \fi
+        \fi
+        \ogii #1\ifFBcloseguill \fgii \fi
       \fi
     \fi
   \else
@@ -2460,14 +2465,14 @@
 %    \end{macrocode}
 %    Warn if |\FBguill at level| $\ge 3$:
 %    \begin{macrocode}
-     \ifx\PackageWarning\@undefined
-        \fb at warning{\noexpand\frquote\space accepts no more than
-           two levels.\\ Quotation not printed.}%
-     \else
-        \PackageWarning{frenchb.ldf}{%
-           \protect\frquote\space accepts no more than two levels
-           \MessageBreak Quotation not printed.  Reported}
-     \fi
+    \ifx\PackageWarning\@undefined
+      \fb at warning{\noexpand\frquote\space accepts no more than
+                  two levels.\\ Quotation not printed.}%
+    \else
+      \PackageWarning{frenchb.ldf}{%
+         \protect\frquote\space accepts no more than two levels
+         \MessageBreak Quotation not printed.  Reported}
+    \fi
   \fi
 %    \end{macrocode}
 %    Clean on exit: adjust |\FBguill at level| and restore
@@ -2475,7 +2480,7 @@
 %    \begin{macrocode}
   \advance\FBguill at level by \m at ne
   \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi
-  \ifx\FBeveryparguill\relax\else\everypar=\FB at everypar\fi
+  \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB at everypar\fi
 }
 %    \end{macrocode}
 %    \end{macro}
@@ -2670,7 +2675,7 @@
 %    \begin{macrocode}
   \DeclareRobustCommand*{\fup}[1]{%
     \ifx\realsuperscript\@undefined
-       \FB at up{#1}%
+      \FB at up{#1}%
     \else
       \bgroup\let\fakesuperscript\FB at up@fake
              \realsuperscript{\FB at lc{#1}}\egroup
@@ -2799,13 +2804,15 @@
 %    \cs{circonflexe}, \cs{tild}, \cs{boi} and \cs{degre} for
 %    Unicode based engines.}
 %
+% \changes{v3.2g}{2017/01/24}{Changed Unicode definition of \cs{boi}.}
+%
 %    \begin{macrocode}
 \ifFBunicode
-    \newcommand*{\at}{{\char"0040}}
-    \newcommand*{\circonflexe}{{\char"005E}}
-    \newcommand*{\tild}{{\char"007E}}
-    \newcommand*{\boi}{\textbackslash}
-    \newcommand*{\degre}{{\char"00B0}}
+  \newcommand*{\at}{{\char"0040}}
+  \newcommand*{\circonflexe}{{\char"005E}}
+  \newcommand*{\tild}{{\char"007E}}
+  \newcommand*{\boi}{{\char"005C}}
+  \newcommand*{\degre}{{\char"00B0}}
 \else
   \ifLaTeXe
     \DeclareTextSymbol{\at}{T1}{64}
@@ -2862,19 +2869,18 @@
   \ifFBunicode
     \DeclareRobustCommand*{\degres}{\degre}
   \else
-    \def\Warning at degree@TSone{%
-          \PackageWarning{frenchb.ldf}{%
-             Degrees would look better in TS1-encoding:%
-             \MessageBreak add \protect
-             \usepackage{textcomp} to the preamble.%
-             \MessageBreak Degrees used}}
+    \def\Warning at degree@TSone{\FBWarning
+             {Degrees would look better in TS1-encoding:%
+              \MessageBreak add \protect
+              \usepackage{textcomp} to the preamble.%
+              \MessageBreak Degrees used}}
     \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined
-                        \DeclareRobustCommand*{\degres}{%
-                           \leavevmode\hbox to 0.3em{\hss\degre\hss}%
-                        \Warning at degree@TSone
-                        \global\let\Warning at degree@TSone\relax}%
+                       \DeclareRobustCommand*{\degres}{%
+                          \leavevmode\hbox to 0.3em{\hss\degre\hss}%
+                       \Warning at degree@TSone
+                       \global\let\Warning at degree@TSone\relax}%
                      \else
-                        \DeclareRobustCommand*{\degres}{%
+                       \DeclareRobustCommand*{\degres}{%
                           \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
                      \fi
                      }
@@ -2987,11 +2993,11 @@
                      \let\LaTeXefalse\undefined}
 \ifx\magnification\@undefined
 \else
-   \def\FBstop at here{\ifFB at luatex@punct
-                       \activate at luatexpunct
-                    \fi
-                    \FBclean at on@exit
-                    \ldf at quit\CurrentOption\endinput}
+  \def\FBstop at here{\ifFB at luatex@punct
+                     \activate at luatexpunct
+                   \fi
+                   \FBclean at on@exit
+                   \ldf at quit\CurrentOption\endinput}
 \fi
 \FBstop at here
 %    \end{macrocode}
@@ -3011,16 +3017,16 @@
 \renewcommand*{\nombre}[1]{\Warning at nombre{#1}}
 \newcommand*{\Warning at nombre}[1]{%
    \ifdefined\numprint
-      \numprint{#1}%
+     \numprint{#1}%
    \else
-      \PackageWarning{frenchb.ldf}{%
-         \protect\nombre\space now relies on package numprint.sty,%
-         \MessageBreak add \protect
-         \usepackage[autolanguage]{numprint},\MessageBreak
-         see file numprint.pdf for more options.\MessageBreak
-         \protect\nombre\space called}%
-      \global\let\Warning at nombre\relax
-      {#1}%
+     \PackageWarning{frenchb.ldf}{%
+        \protect\nombre\space now relies on package numprint.sty,%
+        \MessageBreak add \protect
+        \usepackage[autolanguage]{numprint},\MessageBreak
+        see file numprint.pdf for more options.\MessageBreak
+        \protect\nombre\space called}%
+     \global\let\Warning at nombre\relax
+     {#1}%
    \fi
 }
 %    \end{macrocode}
@@ -3136,13 +3142,13 @@
 %    \begin{macrocode}
 \AtEndOfPackage{%
    \ifFB at koma
-      \ifdefined\partformat
-         \FB at addto{captions}{%
-             \ifFBPartNameFull
-                \babel at save\partformat
-                \renewcommand*{\partformat}{\partname}%
-             \fi}%
-      \fi
+     \ifdefined\partformat
+       \FB at addto{captions}{%
+           \ifFBPartNameFull
+             \babel at save\partformat
+             \renewcommand*{\partformat}{\partname}%
+           \fi}%
+     \fi
    \fi
 }
 %    \end{macrocode}
@@ -3228,7 +3234,7 @@
 %    \begin{macrocode}
 \newif\if at FBwarning@capsep
 \@FBwarning at capseptrue
-\newcommand{\FBWarning}[2]{\PackageWarning{#1}{#2}}
+\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}}
 \newcommand*{\CaptionSeparator}{\space\textendash\space}
 \def\FBCaption at Separator{: }
 \long\def\FB at makecaption#1#2{%
@@ -3298,16 +3304,15 @@
 %    The \pkg{caption}, \pkg{subcaption} and \pkg{floatrow} packages are
 %    compatible with \frenchb{} if they are loaded after \babel{}.
 %
-%    Check if package \pkg{caption} is loaded now (before
-%    \babel/\frenchb), then issue a warning advising to load it
-%    after \babel/\frenchb{} and disable the standard warning.
+%    Check if package \pkg{caption} is loaded now (before \frenchb),
+%    then issue a warning advising to load it after \frenchb{} and
+%    disable the standard warning.
 %    \begin{macrocode}
 \@ifpackageloaded{caption}
-    {\FBWarning{frenchb.ldf}%
-        {Please load the "caption" package\MessageBreak
-         AFTER babel/frenchb; reported}%
-     \@FBwarning at capsepfalse}%
-     {}
+   {\FBWarning{Please load the "caption" package\MessageBreak
+               AFTER babel/frenchb; reported}%
+    \@FBwarning at capsepfalse}%
+   {}
 %    \end{macrocode}
 %
 % \changes{v3.2b}{2016/03/30}{Warning added when the subcaption
@@ -3316,21 +3321,19 @@
 %    Same for package \pkg{subcaption}.
 %    \begin{macrocode}
 \@ifpackageloaded{subcaption}
-    {\FBWarning{frenchb.ldf}%
-        {Please load the "subcaption" package\MessageBreak
-         AFTER babel/frenchb; reported}%
-     \@FBwarning at capsepfalse}%
-     {}
+   {\FBWarning{Please load the "subcaption" package\MessageBreak
+               AFTER babel/frenchb; reported}%
+    \@FBwarning at capsepfalse}%
+   {}
 %    \end{macrocode}
 %
 %    Same for package \pkg{floatrow}.
 %    \begin{macrocode}
 \@ifpackageloaded{floatrow}
-    {\FBWarning{frenchb.ldf}%
-        {Please load the "floatrow" package\MessageBreak
-         AFTER babel/frenchb; reported}%
-     \@FBwarning at capsepfalse}%
-     {}
+   {\FBWarning{Please load the "floatrow" package\MessageBreak
+               AFTER babel/frenchb; reported}%
+    \@FBwarning at capsepfalse}%
+   {}
 %    \end{macrocode}
 %
 % \changes{v3.0a}{2014/02/20}{More informative, less TeXnical warning
@@ -3348,25 +3351,25 @@
 %    \begin{macrocode}
 \AtBeginDocument{%
   \ifx\@makecaption\STD at makecaption
-      \global\let\@makecaption\FB at makecaption
+    \global\let\@makecaption\FB at makecaption
 %    \end{macrocode}
 %    Do not overwrite |\FBCaption at Separator| if already saved
 %    as ': '  for other languages and set to |\CaptionSeparator| by
 %    |\extrasfrench| when French is the main language.
 %    \begin{macrocode}
-      \ifFBOldFigTabCaptions
-      \else
-        \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+    \ifFBOldFigTabCaptions
+    \else
+      \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+    \fi
+    \ifFBCustomiseFigTabCaptions
+      \ifx\bbl at main@language\FB at french
+        \def\FBCaption at Separator{\CaptionSeparator}%
       \fi
-      \ifFBCustomiseFigTabCaptions
-         \ifx\bbl at main@language\FB at french
-            \def\FBCaption at Separator{\CaptionSeparator}%
-         \fi
-      \fi
-      \@FBwarning at capsepfalse
+    \fi
+    \@FBwarning at capsepfalse
   \fi
   \if at FBwarning@capsep
-    \FBWarning{frenchb.ldf}%
+    \FBWarning
        {Figures' and tables' captions might look like\MessageBreak
         `Figure 1:' which is wrong in French.\MessageBreak
         Check your class or packages to change this;\MessageBreak
@@ -3443,40 +3446,59 @@
 %    numprint.sty after babel.}
 %
 %    Like packages \file{captions} and \file{floatrow} (see
-%    section~\ref{ssec-captions}), package \file{listings} should be
-%    loaded after \babel/\frenchb{} due to active characters issues
+%    section~\ref{ssec-captions}), package \file{listings} should
+%    be loaded after \frenchb{} due to active characters issues
 %    (pdfLaTeX only).
 %
 %    \begin{macrocode}
 \ifFB at active@punct
    \@ifpackageloaded{listings}
-      {\FBWarning{frenchb.ldf}%
-          {Please load the "listings" package\MessageBreak
-           AFTER babel/frenchb; reported}%
+      {\FBWarning{Please load the "listings" package\MessageBreak
+                  AFTER babel/frenchb; reported}%
       }{}
 \fi
 %    \end{macrocode}
 %
-%    Package \file{natbib} should be loaded before \babel/\frenchb{}
+%    Package \file{natbib} should be loaded before \frenchb{}
 %    due to active characters issues (pdfLaTeX only).
 %
 %    \begin{macrocode}
 \newif\if at FBwarning@natbib
 \ifFB at active@punct
-   \@ifpackageloaded{natbib}{}{\@FBwarning at natbibtrue}
+  \@ifpackageloaded{natbib}{}{\@FBwarning at natbibtrue}
 \fi
 \AtBeginDocument{%
    \if at FBwarning@natbib
-      \@ifpackageloaded{natbib}{}{\@FBwarning at natbibfalse}%
+     \@ifpackageloaded{natbib}{}{\@FBwarning at natbibfalse}%
    \fi
    \if at FBwarning@natbib
-      \FBWarning{frenchb.ldf}%
-         {Please load the "natbib" package\MessageBreak
-          BEFORE babel/frenchb; reported}%
+     \FBWarning{Please load the "natbib" package\MessageBreak
+                BEFORE babel/frenchb; reported}%
    \fi
 }
 %    \end{macrocode}
 %
+% \changes{v3.2g}{2017/01/30}{Issue a warning if beamerarticle.sty
+%    is loaded after babel.}
+%
+%    Package \pkg{beamerarticle} should be loaded before \frenchb{}
+%    to avoid list’s conflicts, see p.~\pageref{beamerarticle}.
+%
+%    \begin{macrocode}
+\newif\if at FBwarning@beamerarticle
+\@ifpackageloaded{beamerarticle}{}{\@FBwarning at beamerarticletrue}
+\AtBeginDocument{%
+   \if at FBwarning@beamerarticle
+     \@ifpackageloaded{beamerarticle}{}%
+                                     {\@FBwarning at beamerarticlefalse}%
+   \fi
+   \if at FBwarning@beamerarticle
+     \FBWarning{Please load the "beamerarticle" package\MessageBreak
+                BEFORE babel/frenchb; reported}%
+   \fi
+}
+%    \end{macrocode}
+%
 %  \subsection{Setup options: keyval stuff}
 %  \label{ssec-keyval}
 %
@@ -3620,8 +3642,6 @@
 %    looking layout for the whole document (even in parts written in
 %    languages other than French); the end-user will then be able to
 %    customise the values of all these flags with \fbsetup{}.
-%    When the \cls{beamer} is loaded, lists are not customised at all
-%    to ensure compatibility.
 %
 % \changes{v2.5b}{2010/10/30}{Do not use the
 %    test \cs{iflanguage}\{french\} to check whether French is the
@@ -3631,9 +3651,23 @@
 %    In this case \cs{l at french} and \cs{l at english} are 0.
 %    Pointed out by Günter Milde.}
 %
-% \changes{v3.0c}{2014/03/30}{Activate option StandardLists when beamer
+% \changes{v3.0c}{2014/03/30}{No list customisation when beamer
 %    class is loaded.}
 %
+% \changes{v3.2g}{2017/01/30}{Minimal list customisation when
+%    beamerarticle.sty is loaded.}
+%
+%    Our list customisation conflicts with the \cls{beamer} class and
+%    with the \pkg{beamerarticle} package.  The patch provided in
+%    \pkg{beamerbasecompatibility} solves the conflict except in case
+%    of language changes, so we provide our own patch.
+%    When the \cls{beamer} is loaded, lists are not customised at all
+%    to ensure compatibility.\label{beamerarticle}
+%    The \pkg{beamerarticle} package needs to be loaded \emph{before}
+%    \babel, a warning is issued otherwise, see
+%    section~\ref{ssec-loading-order}; a light customisation is
+%    compatible with the \pkg{beamerarticle} package.
+%
 %    \begin{macrocode}
 \edef\FB at french{\CurrentOption}
 \AtEndOfPackage{%
@@ -3643,10 +3677,17 @@
       {\PackageInfo{frenchb.ldf}{%
           No list customisation for the beamer class,%
           \MessageBreak reported}}%
-      {\FBReduceListSpacingtrue
-       \FBStandardItemizeEnvfalse
-       \FBStandardEnumerateEnvfalse
-       \FBStandardItemLabelsfalse}%
+      {\@ifpackageloaded{beamerarticle}%
+         {\FBStandardItemLabelsfalse
+          \FBReduceListSpacingtrue
+          \PackageInfo{frenchb.ldf}{%
+             Minimal list customisation for the beamerarticle%
+             \MessageBreak package; reported}}%
+         {\FBReduceListSpacingtrue
+          \FBStandardItemizeEnvfalse
+          \FBStandardEnumerateEnvfalse
+          \FBStandardItemLabelsfalse}%
+      }
     \FBIndentFirsttrue
     \FBFrenchFootnotestrue
     \FBAutoSpaceFootnotestrue
@@ -3662,29 +3703,29 @@
 %    \begin{macrocode}
   \RequirePackage{keyval}%
   \define at key{FB}{ShowOptions}[true]%
-                      {\csname FBShowOptions#1\endcsname}%
+          {\csname FBShowOptions#1\endcsname}%
   \define at key{FB}{StandardLayout}[true]%
-                      {\csname FBStandardLayout#1\endcsname
-                       \ifFBStandardLayout
-                         \FBReduceListSpacingfalse
-                         \FBStandardItemizeEnvtrue
-                         \FBStandardItemLabelstrue
-                         \FBStandardEnumerateEnvtrue
-                         \FBIndentFirstfalse
-                         \FBFrenchFootnotesfalse
-                         \FBAutoSpaceFootnotesfalse
-                         \FBGlobalLayoutFrenchfalse
-                       \else
-                         \FBReduceListSpacingtrue
-                         \FBStandardItemizeEnvfalse
-                         \FBStandardItemLabelsfalse
-                         \FBStandardEnumerateEnvfalse
-                         \FBIndentFirsttrue
-                         \FBFrenchFootnotestrue
-                         \FBAutoSpaceFootnotestrue
-                       \fi}%
+          {\csname FBStandardLayout#1\endcsname
+           \ifFBStandardLayout
+             \FBReduceListSpacingfalse
+             \FBStandardItemizeEnvtrue
+             \FBStandardItemLabelstrue
+             \FBStandardEnumerateEnvtrue
+             \FBIndentFirstfalse
+             \FBFrenchFootnotesfalse
+             \FBAutoSpaceFootnotesfalse
+             \FBGlobalLayoutFrenchfalse
+           \else
+             \FBReduceListSpacingtrue
+             \FBStandardItemizeEnvfalse
+             \FBStandardItemLabelsfalse
+             \FBStandardEnumerateEnvfalse
+             \FBIndentFirsttrue
+             \FBFrenchFootnotestrue
+             \FBAutoSpaceFootnotestrue
+           \fi}%
   \define at key{FB}{GlobalLayoutFrench}[true]%
-                      {\csname FBGlobalLayoutFrench#1\endcsname
+          {\csname FBGlobalLayoutFrench#1\endcsname
 %    \end{macrocode}
 %    If this key is set to \fbo{true} when French is the main language,
 %    nothing to do: all flags keep their default value.
@@ -3691,83 +3732,83 @@
 %    If this key is set to \fbo{false}, nothing to do either:
 %    |\babel at save| will do the job.
 %    \begin{macrocode}
-                      \ifFBGlobalLayoutFrench
-                         \ifx\bbl at main@language\FB at french
-                         \else
-                            \PackageWarning{frenchb.ldf}%
-                              {Option `GlobalLayoutFrench' skipped:%
-                               \MessageBreak French is *not*
-                               babel's last option.\MessageBreak}%
-                         \fi
-                       \fi}%
+           \ifFBGlobalLayoutFrench
+             \ifx\bbl at main@language\FB at french
+             \else
+               \PackageWarning{frenchb.ldf}%
+                  {Option `GlobalLayoutFrench' skipped:\MessageBreak
+                   French is *not* babel's last option.\MessageBreak
+                   Reported}%
+             \fi
+           \fi}%
   \define at key{FB}{ReduceListSpacing}[true]%
-                      {\csname FBReduceListSpacing#1\endcsname}%
+          {\csname FBReduceListSpacing#1\endcsname}%
   \define at key{FB}{ListOldLayout}[true]%
-                      {\csname FBListOldLayout#1\endcsname
-                       \ifFBListOldLayout
-                         \FBStandardEnumerateEnvtrue
-                         \renewcommand*{\FrenchLabelItem}{\textendash}%
-                       \fi}%
+          {\csname FBListOldLayout#1\endcsname
+           \ifFBListOldLayout
+             \FBStandardEnumerateEnvtrue
+             \renewcommand*{\FrenchLabelItem}{\textendash}%
+           \fi}%
   \define at key{FB}{CompactItemize}[true]%
-                      {\csname FBCompactItemize#1\endcsname
-                       \ifFBCompactItemize
-                         \FBStandardItemizeEnvfalse
-                         \FBStandardEnumerateEnvfalse
-                       \else
-                         \FBStandardItemizeEnvtrue
-                         \FBStandardEnumerateEnvtrue
-                       \fi}%
+          {\csname FBCompactItemize#1\endcsname
+           \ifFBCompactItemize
+             \FBStandardItemizeEnvfalse
+             \FBStandardEnumerateEnvfalse
+           \else
+             \FBStandardItemizeEnvtrue
+             \FBStandardEnumerateEnvtrue
+           \fi}%
   \define at key{FB}{StandardItemizeEnv}[true]%
-                      {\csname FBStandardItemizeEnv#1\endcsname}%
+          {\csname FBStandardItemizeEnv#1\endcsname}%
   \define at key{FB}{StandardEnumerateEnv}[true]%
-                      {\csname FBStandardEnumerateEnv#1\endcsname}%
+          {\csname FBStandardEnumerateEnv#1\endcsname}%
   \define at key{FB}{StandardItemLabels}[true]%
-                      {\csname FBStandardItemLabels#1\endcsname}%
-  \define at key{FB}{ItemLabels}{%
-        \renewcommand*{\FrenchLabelItem}{#1}}%
-  \define at key{FB}{ItemLabeli}{%
-        \renewcommand*{\Frlabelitemi}{#1}}%
-  \define at key{FB}{ItemLabelii}{%
-      \renewcommand*{\Frlabelitemii}{#1}}%
-  \define at key{FB}{ItemLabeliii}{%
-        \renewcommand*{\Frlabelitemiii}{#1}}%
-  \define at key{FB}{ItemLabeliv}{%
-      \renewcommand*{\Frlabelitemiv}{#1}}%
+          {\csname FBStandardItemLabels#1\endcsname}%
+  \define at key{FB}{ItemLabels}%
+          {\renewcommand*{\FrenchLabelItem}{#1}}%
+  \define at key{FB}{ItemLabeli}%
+          {\renewcommand*{\Frlabelitemi}{#1}}%
+  \define at key{FB}{ItemLabelii}%
+          {\renewcommand*{\Frlabelitemii}{#1}}%
+  \define at key{FB}{ItemLabeliii}%
+          {\renewcommand*{\Frlabelitemiii}{#1}}%
+  \define at key{FB}{ItemLabeliv}%
+          {\renewcommand*{\Frlabelitemiv}{#1}}%
   \define at key{FB}{StandardLists}[true]%
-                      {\csname FBStandardLists#1\endcsname
-                       \ifFBStandardLists
-                         \FBReduceListSpacingfalse
-                         \FBCompactItemizefalse
-                         \FBStandardItemizeEnvtrue
-                         \FBStandardEnumerateEnvtrue
-                         \FBStandardItemLabelstrue
-                       \else
-                         \FBReduceListSpacingtrue
-                         \FBCompactItemizetrue
-                         \FBStandardItemizeEnvfalse
-                         \FBStandardEnumerateEnvfalse
-                         \FBStandardItemLabelsfalse
-                       \fi}%
+          {\csname FBStandardLists#1\endcsname
+           \ifFBStandardLists
+             \FBReduceListSpacingfalse
+             \FBCompactItemizefalse
+             \FBStandardItemizeEnvtrue
+             \FBStandardEnumerateEnvtrue
+             \FBStandardItemLabelstrue
+           \else
+             \FBReduceListSpacingtrue
+             \FBCompactItemizetrue
+             \FBStandardItemizeEnvfalse
+             \FBStandardEnumerateEnvfalse
+             \FBStandardItemLabelsfalse
+           \fi}%
   \define at key{FB}{IndentFirst}[true]%
-                      {\csname FBIndentFirst#1\endcsname}%
+          {\csname FBIndentFirst#1\endcsname}%
   \define at key{FB}{FrenchFootnotes}[true]%
-                      {\csname FBFrenchFootnotes#1\endcsname}%
+          {\csname FBFrenchFootnotes#1\endcsname}%
   \define at key{FB}{AutoSpaceFootnotes}[true]%
-                      {\csname FBAutoSpaceFootnotes#1\endcsname}%
+          {\csname FBAutoSpaceFootnotes#1\endcsname}%
   \define at key{FB}{AutoSpacePunctuation}[true]%
-                      {\csname FBAutoSpacePunctuation#1\endcsname}%
+          {\csname FBAutoSpacePunctuation#1\endcsname}%
   \define at key{FB}{OriginalTypewriter}[true]%
-                      {\csname FBOriginalTypewriter#1\endcsname}%
+          {\csname FBOriginalTypewriter#1\endcsname}%
   \define at key{FB}{ThinColonSpace}[true]%
-                      {\csname FBThinColonSpace#1\endcsname}%
+          {\csname FBThinColonSpace#1\endcsname}%
   \define at key{FB}{ThinSpaceInFrenchNumbers}[true]%
-                     {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
+          {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
   \define at key{FB}{FrenchSuperscripts}[true]%
-                     {\csname FBFrenchSuperscripts#1\endcsname}
+          {\csname FBFrenchSuperscripts#1\endcsname}
   \define at key{FB}{LowercaseSuperscripts}[true]%
-                     {\csname FBLowercaseSuperscripts#1\endcsname}
+          {\csname FBLowercaseSuperscripts#1\endcsname}
   \define at key{FB}{PartNameFull}[true]%
-                     {\csname FBPartNameFull#1\endcsname}%
+          {\csname FBPartNameFull#1\endcsname}%
   \define at key{FB}{CustomiseFigTabCaptions}[true]%
           {\csname FBCustomiseFigTabCaptions#1\endcsname}%
   \define at key{FB}{OldFigTabCaptions}[true]%
@@ -3777,41 +3818,68 @@
 %    in |\FB at CurOpt| while reading \file{frenchb.ldf}.
 %    \begin{macrocode}
            \ifFBOldFigTabCaptions
-              \FB at addto{extras}{\babel at save\FBCaption at Separator
-                       \def\FBCaption at Separator{\CaptionSeparator}}%
+             \FB at addto{extras}{\babel at save\FBCaption at Separator
+                      \def\FBCaption at Separator{\CaptionSeparator}}%
            \fi}%
   \define at key{FB}{SmallCapsFigTabCaptions}[true]%
           {\csname FBSmallCapsFigTabCaptions#1\endcsname
            \ifFBSmallCapsFigTabCaptions
-              \let\FBfigtabshape\scshape
+             \let\FBfigtabshape\scshape
            \else
-              \let\FBfigtabshape\relax
+             \let\FBfigtabshape\relax
            \fi}%
   \define at key{FB}{SuppressWarning}[true]%
-                      {\csname FBSuppressWarning#1\endcsname
-                       \ifFBSuppressWarning
-                         \renewcommand{\FBWarning}[2]{\relax}%
-                       \fi}%
+          {\csname FBSuppressWarning#1\endcsname
+           \ifFBSuppressWarning
+             \renewcommand{\FBWarning}[1]{}%
+           \fi}%
 %    \end{macrocode}
 %    Here are the options controlling French guillemets spacing
 %    and the output of |\frquote{}|.
+%
+% \changes{v3.2g}{2017/01/30}{Warn when wrong values are provided to
+%    options EveryParGuill or EveryLineGuill.}
+%
 %    \begin{macrocode}
   \define at key{FB}{INGuillSpace}[true]%
-                      {\csname FBINGuillSpace#1\endcsname}%
+          {\csname FBINGuillSpace#1\endcsname}%
   \define at key{FB}{InnerGuillSingle}[true]%
-                     {\csname FBInnerGuillSingle#1\endcsname}%
-  \define at key{FB}{EveryParGuill}{\expandafter\let\expandafter
-                 \FBeveryparguill\csname FBguill#1\endcsname}%
-  \define at key{FB}{EveryLineGuill}{\expandafter\let\expandafter
-                 \FBeverylineguill\csname FBguill#1\endcsname
-                    \ifFB at luatex@punct
-                    \else
-                      \let\FBeverylineguill\FBguillnone
-                      \PackageWarning{frenchb.ldf}%
-                         {Option `EveryLineGuill' skipped:%
-                          \MessageBreak this option is for
-                          LuaTeX *only*.\MessageBreak Reported}%
-                    \fi}%
+          {\csname FBInnerGuillSingle#1\endcsname}%
+  \define at key{FB}{EveryParGuill}[open]%
+          {\expandafter\let\expandafter
+             \FBeveryparguill\csname FBguill#1\endcsname
+           \ifx\FBeveryparguill\FBguillopen
+           \else\ifx\FBeveryparguill\FBguillclose
+                \else\ifx\FBeveryparguill\FBguillnone
+                     \else
+                       \let\FBeveryparguill\FBguillopen
+                       \PackageWarning{frenchb.ldf}%
+                          {Wrong value for `EveryParGuill':
+                           try `open’,\MessageBreak
+                           `close’ or `none’. Reported}%
+                     \fi
+                \fi
+           \fi}%
+  \define at key{FB}{EveryLineGuill}[open]%
+          {\ifFB at luatex@punct
+             \expandafter\let\expandafter
+               \FBeverylineguill\csname FBguill#1\endcsname
+             \ifx\FBeverylineguill\FBguillopen
+             \else\ifx\FBeverylineguill\FBguillclose
+                  \else\ifx\FBeverylineguill\FBguillnone
+                       \else
+                         \let\FBeverylineguill\FBguillnone
+                         \FBWarning{Wrong value for `EveryLineGuill':
+                                    try `open’,\MessageBreak
+                                    `close’ or `none’. Reported}%
+                       \fi
+                  \fi
+             \fi
+           \else
+             \FBWarning{Option `EveryLineGuill' skipped:%
+                        \MessageBreak this option is for
+                        LuaTeX *only*.\MessageBreak Reported}%
+           \fi}%
 %    \end{macrocode}
 %    Inputing French quotes as \emph{single characters} when they are
 %    available on the keyboard (through a compose key for instance)
@@ -3853,138 +3921,140 @@
 %    XeTeX or LuaTeX engines requiring active characters.}
 %
 %    \begin{macrocode}
-  \define at key{FB}{og}{%
-      \ifFBunicode
+  \define at key{FB}{og}%
+          {\ifFBunicode
 %    \end{macrocode}
 %    LuaTeX or XeTeX in use, first try modern LuaTeX: we just need
 %    to set LuaTeX's attribute |\FB at addGUILspace| to 1,
 %    \begin{macrocode}
-         \ifFB at luatex@punct
-           \FB at addGUILspace=1 \relax
-         \fi
+             \ifFB at luatex@punct
+               \FB at addGUILspace=1 \relax
+             \fi
 %    \end{macrocode}
 %    then with XeTeX it is a bit more tricky:
 %    \begin{macrocode}
-         \ifFB at xetex@punct
+             \ifFB at xetex@punct
 %    \end{macrocode}
 %    |\XeTeXinterchartokenstate| is defined, we just need to set
 %    |\XeTeXcharclass| to |\FB at guilo| for the French opening quote
 %    in T1 and Unicode encoding (see subsection~\ref{ssec-punct}).
 %    \begin{macrocode}
-           \XeTeXcharclass"13   = \FB at guilo
-           \XeTeXcharclass"AB   = \FB at guilo
-           \XeTeXcharclass"A0   = \FB at guilnul
-           \XeTeXcharclass"202F = \FB at guilnul
-         \fi
+               \XeTeXcharclass"13   = \FB at guilo
+               \XeTeXcharclass"AB   = \FB at guilo
+               \XeTeXcharclass"A0   = \FB at guilnul
+               \XeTeXcharclass"202F = \FB at guilnul
+             \fi
 %    \end{macrocode}
 %    Issue a warning with older Unicode engines requiring active
 %    characters.
 %    \begin{macrocode}
-         \ifFB at active@punct
-           \FBWarning{frenchb.ldf}%
-             {Option og=« not supported with this version
-              of\MessageBreak LuaTeX/XeTeX; reported}%
-         \fi
-      \else
+             \ifFB at active@punct
+               \PackageWarning{frenchb.ldf}%
+                  {Option og=« not supported with this version
+                   of\MessageBreak LuaTeX/XeTeX; reported}%
+             \fi
+           \else
 %    \end{macrocode}
 %    This is for conventional TeX engines:
 %    \begin{macrocode}
-         \newcommand*{\FB@@og}{%
-            \iflanguage{french}%
-              {\ifFB at spacing\FB at og\ignorespaces
-               \else\guillemotleft
-               \fi}%
-              {\guillemotleft}}%
-         \AtBeginDocument{%
-           \ifdefined\DeclareInputText
-              \ifdefined\uc at dclc
+             \newcommand*{\FB@@og}{%
+                \iflanguage{french}%
+                  {\ifFB at spacing\FB at og\ignorespaces
+                   \else\guillemotleft
+                   \fi}%
+                  {\guillemotleft}}%
+             \AtBeginDocument{%
+                \ifdefined\DeclareInputText
+                  \ifdefined\uc at dclc
 %    \end{macrocode}
 %    Package \pkg{inputenc} with utf8x encoding loaded, use |\uc at dclc|,
 %    \begin{macrocode}
-                 \uc at dclc{171}{default}{\FB@@og}%
-              \else
+                    \uc at dclc{171}{default}{\FB@@og}%
+                  \else
 %    \end{macrocode}
 %    if encoding is not utf8x, try utf8\dots
 %    \begin{macrocode}
-                 \ifdefined\DeclareUnicodeCharacter
+                    \ifdefined\DeclareUnicodeCharacter
 %    \end{macrocode}
 %    utf8 loaded, use |\DeclareUnicodeCharacter|,
 %    \begin{macrocode}
-                    \DeclareUnicodeCharacter{00AB}{\FB@@og}%
-                 \else
+                      \DeclareUnicodeCharacter{00AB}{\FB@@og}%
+                    \else
 %    \end{macrocode}
 %    if utf8 is not loaded either, we assume 8-bit character input
 %    encoding.  Package \pkg{MULEenc} (from CJK) defines |\mule at def|
 %    to map characters to control sequences.
 %    \begin{macrocode}
-                    \@tempcnta`#1\relax
-                    \ifdefined\mule at def
-                       \mule at def{11}{\FB@@og}%
-                    \else
-                       \DeclareInputText{\the\@tempcnta}{\FB@@og}%
+                      \@tempcnta`#1\relax
+                      \ifdefined\mule at def
+                        \mule at def{11}{\FB@@og}%
+                      \else
+                        \DeclareInputText{\the\@tempcnta}{\FB@@og}%
+                      \fi
                     \fi
-                 \fi
-              \fi
-           \else
+                  \fi
+                \else
 %    \end{macrocode}
 %    Package \pkg{inputenc} not loaded, no way\dots{}
 %    \begin{macrocode}
-              \PackageWarning{frenchb.ldf}%
-                {Option `og' requires package inputenc.\MessageBreak}%
+                  \PackageWarning{frenchb.ldf}%
+                     {Option `og' requires package inputenc;%
+                      \MessageBreak reported}%
+                \fi
+              }%
            \fi
-         }%
-      \fi
-  }%
+          }%
 %    \end{macrocode}
 %
 %    Same code for the closing quote.
 %    \begin{macrocode}
-  \define at key{FB}{fg}{%
-      \ifFBunicode
-         \ifFB at luatex@punct
-           \FB at addGUILspace=1 \relax
-         \fi
-         \ifFB at xetex@punct
-           \XeTeXcharclass"14   = \FB at guilf
-           \XeTeXcharclass"BB   = \FB at guilf
-           \XeTeXcharclass"A0   = \FB at guilnul
-           \XeTeXcharclass"202F = \FB at guilnul
-         \fi
-         \ifFB at active@punct
-           \FBWarning{frenchb.ldf}%
-             {Option fg=» not supported with this version
-              of\MessageBreak LuaTeX/XeTeX; reported}%
-         \fi
-      \else
-         \newcommand*{\FB@@fg}{%
-            \iflanguage{french}%
-              {\ifFB at spacing\FB at fg
-               \else\guillemotright
-               \fi}%
-              {\guillemotright}}%
-         \AtBeginDocument{%
-           \ifdefined\DeclareInputText
-              \ifdefined\uc at dclc
-                 \uc at dclc{187}{default}{\FB@@fg}%
-              \else
-                 \ifdefined\DeclareUnicodeCharacter
-                   \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
+  \define at key{FB}{fg}%
+          {\ifFBunicode
+             \ifFB at luatex@punct
+               \FB at addGUILspace=1 \relax
+             \fi
+             \ifFB at xetex@punct
+               \XeTeXcharclass"14   = \FB at guilf
+               \XeTeXcharclass"BB   = \FB at guilf
+               \XeTeXcharclass"A0   = \FB at guilnul
+               \XeTeXcharclass"202F = \FB at guilnul
+             \fi
+             \ifFB at active@punct
+               \PackageWarning{frenchb.ldf}%
+                  {Option fg=» not supported with this version
+                   of\MessageBreak LuaTeX/XeTeX; reported}%
+             \fi
+           \else
+             \newcommand*{\FB@@fg}{%
+                \iflanguage{french}%
+                  {\ifFB at spacing\FB at fg
+                   \else\guillemotright
+                   \fi}%
+                  {\guillemotright}}%
+             \AtBeginDocument{%
+               \ifdefined\DeclareInputText
+                 \ifdefined\uc at dclc
+                   \uc at dclc{187}{default}{\FB@@fg}%
                  \else
-                    \@tempcnta`#1\relax
+                   \ifdefined\DeclareUnicodeCharacter
+                     \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
+                   \else
+                     \@tempcnta`#1\relax
                      \ifdefined\mule at def
-                        \mule at def{27}{{\FB@@fg}}%
+                       \mule at def{27}{{\FB@@fg}}%
                      \else
-                        \DeclareInputText{\the\@tempcnta}{\FB@@fg}%
+                       \DeclareInputText{\the\@tempcnta}{\FB@@fg}%
                      \fi
+                   \fi
                  \fi
-              \fi
-           \else
-              \PackageWarning{frenchb.ldf}%
-                {Option `fg' requires package inputenc.\MessageBreak}%
+               \else
+                 \PackageWarning{frenchb.ldf}%
+                    {Option `fg' requires package inputenc;%
+                     \MessageBreak reported}%
+               \fi
+              }%
            \fi
-         }%
-      \fi
-  }%
+          }%
 }
 %    \end{macrocode}
 %  \end{macro}
@@ -4009,40 +4079,45 @@
   \@ifpackageloaded{enumitem}{%
      \ifFBStandardItemizeEnv
      \else
-        \FBStandardItemizeEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardItemizeEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardItemizeEnv=true for\MessageBreak
-           compatibility with enumitem package,\MessageBreak}%
+           compatibility with enumitem package,\MessageBreak
+           reported}%
      \fi
      \ifFBStandardEnumerateEnv
      \else
-        \FBStandardEnumerateEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardEnumerateEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardEnumerateEnv=true for\MessageBreak
-           compatibility with enumitem package,\MessageBreak}%
+           compatibility with enumitem package,\MessageBreak
+           reported}%
      \fi}{}%
   \@ifpackageloaded{paralist}{%
      \ifFBStandardItemizeEnv
      \else
-        \FBStandardItemizeEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardItemizeEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardItemizeEnv=true for\MessageBreak
-           compatibility with paralist package,\MessageBreak}%
+           compatibility with paralist package,\MessageBreak
+           reported}%
      \fi
      \ifFBStandardEnumerateEnv
      \else
-        \FBStandardEnumerateEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardEnumerateEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardEnumerateEnv=true for\MessageBreak
-           compatibility with paralist package,\MessageBreak}%
+           compatibility with paralist package,\MessageBreak
+           reported}%
      \fi}{}%
   \@ifpackageloaded{enumerate}{%
      \ifFBStandardEnumerateEnv
      \else
-        \FBStandardEnumerateEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardEnumerateEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardEnumerateEnv=true for\MessageBreak
-           compatibility with enumerate package,\MessageBreak}%
+           compatibility with enumerate package,\MessageBreak
+           reported}%
      \fi}{}%
 %    \end{macrocode}
 %    Reset |\FB at ufl|'s normal meaning and update lists' settings
@@ -4050,7 +4125,7 @@
 %    \begin{macrocode}
   \def\FB at ufl{\update at frenchlists}
   \ifx\bbl at main@language\FB at french
-     \update at frenchlists
+    \update at frenchlists
   \fi
 %    \end{macrocode}
 %    The layout of footnotes is handled at the |\begin{document}|
@@ -4063,9 +4138,9 @@
 %    been typed before them.
 %    \begin{macrocode}
   \ifFBAutoSpacePunctuation
-       \autospace at beforeFDP
+    \autospace at beforeFDP
   \else
-       \noautospace at beforeFDP
+    \noautospace at beforeFDP
   \fi
 %    \end{macrocode}
 %    When \fbo{OriginalTypewriter} is set to \fbo{false} (the default),
@@ -4076,12 +4151,12 @@
 %    \begin{macrocode}
   \ifFBOriginalTypewriter
   \else
-     \let\ttfamilyORI\ttfamily
-     \let\rmfamilyORI\rmfamily
-     \let\sffamilyORI\sffamily
-     \let\ttfamily\ttfamilyFB
-     \let\rmfamily\rmfamilyFB
-     \let\sffamily\sffamilyFB
+    \let\ttfamilyORI\ttfamily
+    \let\rmfamilyORI\rmfamily
+    \let\sffamilyORI\sffamily
+    \let\ttfamily\ttfamilyFB
+    \let\rmfamily\rmfamilyFB
+    \let\sffamily\sffamilyFB
   \fi
 %    \end{macrocode}
 %
@@ -4093,9 +4168,9 @@
 %    \begin{macrocode}
   \ifFBThinColonSpace
     \ifFB at luatex@punct
-       \FBcolonskip=\FBthinskip\relax
+      \FBcolonskip=\FBthinskip\relax
     \else
-       \renewcommand*{\FBcolonspace}{\FBthinspace}%
+      \renewcommand*{\FBcolonspace}{\FBthinspace}%
     \fi
   \fi
 %    \end{macrocode}
@@ -4105,9 +4180,9 @@
 %    \begin{macrocode}
   \ifFBINGuillSpace
     \ifFB at luatex@punct
-       \FBguillskip=3.33pt plus 1.665pt minus 1.11pt \relax
+      \FBguillskip=3.33pt plus 1.665pt minus 1.11pt \relax
     \else
-       \renewcommand*{\FBguillspace}{\space}%
+      \renewcommand*{\FBguillspace}{\space}%
     \fi
   \fi
 %    \end{macrocode}
@@ -4181,12 +4256,12 @@
 %    \cls{beamer} classes.
 %    \begin{macrocode}
   \ifFBCustomiseFigTabCaptions
-     \ifFB at koma
-        \renewcommand*{\captionformat}{\CaptionSeparator}%
-     \fi
-     \@ifclassloaded{memoir}%
+    \ifFB at koma
+      \renewcommand*{\captionformat}{\CaptionSeparator}%
+    \fi
+    \@ifclassloaded{memoir}%
        {\captiondelim{\CaptionSeparator}}{}%
-     \@ifclassloaded{beamer}%
+    \@ifclassloaded{beamer}%
        {\defbeamertemplate{caption label separator}{FBcustom}{%
             \CaptionSeparator}%
         \setbeamertemplate{caption label separator}[FBcustom]}{}%
@@ -4196,17 +4271,17 @@
 %    behave properly in French: locally force |\autospace at beforeFDP| in
 %    case of \fbo{AutoSpacePunctuation=false}.
 %    \begin{macrocode}
-     \ifFB at koma
-        \renewcommand*{\captionformat}{{\autospace at beforeFDP : }}%
-     \fi
-     \@ifclassloaded{memoir}%
-        {\captiondelim{{\autospace at beforeFDP : }}%
-        }{}%
-     \@ifclassloaded{beamer}%
-        {\defbeamertemplate{caption label separator}{FBcolon}{%
+    \ifFB at koma
+      \renewcommand*{\captionformat}{{\autospace at beforeFDP : }}%
+    \fi
+    \@ifclassloaded{memoir}%
+       {\captiondelim{{\autospace at beforeFDP : }}%
+       }{}%
+    \@ifclassloaded{beamer}%
+       {\defbeamertemplate{caption label separator}{FBcolon}{%
              {\autospace at beforeFDP : }}%
-         \setbeamertemplate{caption label separator}[FBcolon]%
-        }{}%
+        \setbeamertemplate{caption label separator}[FBcolon]%
+       }{}%
   \fi
 %    \end{macrocode}
 %    \fbo{ShowOptions}: if \fbo{true}, print the list of all options
@@ -4285,10 +4360,13 @@
 % \changes{v2.5g}{2011/11/13}{Redefine \cs{degre}, \cs{degres} \cs{at}
 %    \cs{circonflexe} and \cs{tild} for bookmarks.  Add \cs{fup} also.}
 %
+% \changes{v3.2g}{2017/01/24}{Add \cs{boi} to redefinitions for
+%    bookmarks.}
+%
 %    Let's redefine some commands in \file{hyperref}'s bookmarks.
 %    \begin{macrocode}
    \ifdefined\pdfstringdefDisableCommands
-      \pdfstringdefDisableCommands{%
+     \pdfstringdefDisableCommands{%
         \let\up\relax
         \let\fup\relax
         \let\degre\textdegree
@@ -4310,8 +4388,9 @@
         \def\at{@}%
         \def\circonflexe{\string^}%
         \def\tild{\string~}%
+        \def\boi{\textbackslash}%
         \let\bsc\textsc
-       }%
+      }%
    \fi
 %    \end{macrocode}
 %    It is time to process the options set with \fbsetup{} or later.
@@ -4332,34 +4411,36 @@
 % \changes{v3.1a}{2014/06/14}{fontspec is not required for T1 fonts
 %    used with the luainputenc.sty package.}
 %
+% \changes{v3.2g}{2017/01/24}{fontspec defines TU encoding now and
+%    no longer loads xunicode.sty. Test changed.}
+%
 %    Some warnings are issued when output font encodings are not
-%    properly set.  With XeLaTeX or LuaLaTeX, \file{fontspec.sty} and
-%    \file{xunicode.sty} should be loaded unless T1 encoded fonts are
-%    used through \file{luainputenc}, in the latter case |\FB at og| and
-%    |\FB at fg| have to be redefined; with (pdf)\LaTeX, a warning
-%    is issued when OT1 encoding is in use at the |\begin{document}|.
+%    properly set.  With XeLaTeX or LuaLaTeX, \file{fontspec.sty}
+%    should be loaded unless T1 encoded fonts are used through
+%    \file{luainputenc}, in the latter case |\FB at og| and |\FB at fg|
+%    have to be redefined; with (pdf)\LaTeX, a warning is issued
+%    when OT1 encoding is in use at the |\begin{document}|.
 %    Mind that |\encodingdefault| is defined as `long', defining
 %    |\FBOTone| with |\newcommand*| would fail!
 %    \begin{macrocode}
    \ifFBunicode
-      \ifdefined\DeclareUTFcharacter
-      \else
-         \@ifpackageloaded{luainputenc}{}%
-           {\PackageWarning{frenchb.ldf}%
-            {Add \protect\usepackage{fontspec} to the\MessageBreak
-            preamble of your document,}%
-           }%
-      \fi
+     \@ifpackageloaded{fontspec}{}%
+        {\@ifpackageloaded{luainputenc}{}%
+            {\PackageWarning{frenchb.ldf}%
+                {Add \protect\usepackage{fontspec} to the\MessageBreak
+                 preamble of your document, reported}%
+            }%
+        }
    \else
-      \begingroup \newcommand{\FBOTone}{OT1}%
-      \ifx\encodingdefault\FBOTone
-        \PackageWarning{frenchb.ldf}%
-           {OT1 encoding should not be used for French.%
-            \MessageBreak
-            Add \protect\usepackage[T1]{fontenc} to the
-            preamble\MessageBreak of your document,}%
-      \fi
-      \endgroup
+     \begingroup \newcommand{\FBOTone}{OT1}%
+     \ifx\encodingdefault\FBOTone
+       \PackageWarning{frenchb.ldf}%
+          {OT1 encoding should not be used for French.%
+           \MessageBreak
+           Add \protect\usepackage[T1]{fontenc} to the
+           preamble\MessageBreak of your document; reported}%
+     \fi
+     \endgroup
    \fi
 }
 %    \end{macrocode}
@@ -4533,21 +4614,21 @@
 %    \begin{macrocode}
 \def\FB at itemizesettings{%
     \ifFBReduceListSpacing
-       \setlength{\itemsep}{\z@}%
-       \setlength{\parsep}{\z@}%
-       \setlength{\topsep}{\z@}%
-       \setlength{\partopsep}{\z@}%
-       \@tempdima=\parskip
-       \addtolength{\topsep}{-\@tempdima}%
-       \addtolength{\partopsep}{\@tempdima}%
+      \setlength{\itemsep}{\z@}%
+      \setlength{\parsep}{\z@}%
+      \setlength{\topsep}{\z@}%
+      \setlength{\partopsep}{\z@}%
+      \@tempdima=\parskip
+      \addtolength{\topsep}{-\@tempdima}%
+      \addtolength{\partopsep}{\@tempdima}%
     \fi
     \settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
     \ifFBListOldLayout
-       \setlength{\leftmargin}{\labelwidth}%
-       \addtolength{\leftmargin}{\labelsep}%
-       \addtolength{\leftmargin}{\parindent}%
+      \setlength{\leftmargin}{\labelwidth}%
+      \addtolength{\leftmargin}{\labelsep}%
+      \addtolength{\leftmargin}{\parindent}%
     \else
-       \FB at listHsettings
+      \FB at listHsettings
     \fi
 }
 %    \end{macrocode}
@@ -4694,7 +4775,7 @@
 }
 \def\bbl at nonfrenchlistlayout{%
   \ifFBGlobalLayoutFrench
-     \update at frenchlists
+    \update at frenchlists
   \fi
 }
 \FB at addto{extras}{\bbl at frenchlistlayout}
@@ -4725,14 +4806,14 @@
 \def\bbl at frenchindent{%
   \ifFBGlobalLayoutFrench\else\babel at save\@afterindentfalse\fi
   \ifFBIndentFirst
-     \let\@afterindentfalse\@afterindenttrue
-     \@afterindenttrue
+    \let\@afterindentfalse\@afterindenttrue
+    \@afterindenttrue
   \fi}
 \def\bbl at nonfrenchindent{%
   \ifFBGlobalLayoutFrench
-     \ifFBIndentFirst
-        \@afterindenttrue
-     \fi
+    \ifFBIndentFirst
+      \@afterindenttrue
+    \fi
   \fi}
 \FB at addto{extras}{\bbl at frenchindent}
 \FB at addto{noextras}{\bbl at nonfrenchindent}
@@ -4770,14 +4851,14 @@
 %    controlled by flag |\ifFBAutoSpaceFootnotes|.
 %
 % \changes{v2.4a}{2009/11/23}{\cs{PackageWarning} changed to
-%      \cs{FBWarning} (when bigfoot package in use).}
+%      \cs{PackageInfo} (when bigfoot package in use).}
 %
 %    \begin{macrocode}
 \AtBeginDocument{\@ifpackageloaded{bigfoot}%
                    {\PackageInfo{frenchb.ldf}%
                      {bigfoot package in use.\MessageBreak
-                      frenchb will NOT customise footnotes;\MessageBreak
-                      reported}}%
+                      frenchb will NOT customise footnotes;%
+                      \MessageBreak reported}}%
                    {\let\@footnotemarkORI\@footnotemark
                     \def\@footnotemarkFB{\leavevmode\unskip\unkern
                                          \,\@footnotemarkORI}%
@@ -4835,30 +4916,30 @@
 %    |\@@makefnmark|.  First, save the original definitions.
 %    \begin{macrocode}
 \ifFB at koma
-   \let\@makefntextORI\@makefntext
-   \let\@@makefnmarkORI\@@makefnmark
+  \let\@makefntextORI\@makefntext
+  \let\@@makefnmarkORI\@@makefnmark
 %    \end{macrocode}
 %    |\@makefntextFB| and |\@@makefnmarkFB| will be used when option
 %    \fbo{FrenchFootnotes} is \fbo{true}.
 %    \begin{macrocode}
-   \deffootnote[\FBfnindent]{0pt}{\parindentFFN}%
-               {\thefootnotemark\dotFFN\kernFFN}
-   \let\@makefntextFB\@makefntext
-   \let\@@makefnmarkFB\@@makefnmark
+  \deffootnote[\FBfnindent]{0pt}{\parindentFFN}%
+              {\thefootnotemark\dotFFN\kernFFN}
+  \let\@makefntextFB\@makefntext
+  \let\@@makefnmarkFB\@@makefnmark
 %    \end{macrocode}
 %    |\@makefntextTH| and |\@@makefnmarkTH| are meant for the
 %    |\thanks| command used by |\maketitle| when \fbo{FrenchFootnotes}
 %    is \fbo{true}.
 %    \begin{macrocode}
-   \deffootnote[\parindentFFN]{0pt}{\parindentFFN}%
-               {\textsuperscript{\thefootnotemark}}
-   \let\@makefntextTH\@makefntext
-   \let\@@makefnmarkTH\@@makefnmark
+  \deffootnote[\parindentFFN]{0pt}{\parindentFFN}%
+              {\textsuperscript{\thefootnotemark}}
+  \let\@makefntextTH\@makefntext
+  \let\@@makefnmarkTH\@@makefnmark
 %    \end{macrocode}
 %    Restore the original definitions.
 %    \begin{macrocode}
-   \let\@makefntext\@makefntextORI
-   \let\@@makefnmark\@@makefnmarkORI
+  \let\@makefntext\@makefntextORI
+  \let\@@makefnmark\@@makefnmarkORI
 \fi
 %    \end{macrocode}
 %    Definitions for the \cls{memoir} class:
@@ -4921,70 +5002,70 @@
 %    \begin{macrocode}
 \AtBeginDocument{%
    \@ifpackageloaded{bigfoot}{}%
-       {\ifdim\parindentFFN<10in
-        \else
-           \parindentFFN=\parindent
-           \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi
-        \fi
-        \settowidth{\FBfnindent}{\dotFFN\kernFFN}%
-        \addtolength{\FBfnindent}{\parindentFFN}%
-        \let\@makefntextORI\@makefntext
-        \ifFB at koma
+      {\ifdim\parindentFFN<10in
+       \else
+         \parindentFFN=\parindent
+         \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi
+       \fi
+       \settowidth{\FBfnindent}{\dotFFN\kernFFN}%
+       \addtolength{\FBfnindent}{\parindentFFN}%
+       \let\@makefntextORI\@makefntext
+       \ifFB at koma
 %    \end{macrocode}
 %    Definition of |\@makefntext| for koma-script classes:
 %    \begin{macrocode}
-          \let\@@makefnmarkORI\@@makefnmark
-          \long\def\@makefntext#1{%
-                 \ifFBFrenchFootnotes
-                   \ifx\footnote\thanks
-                     \let\@@makefnmark\@@makefnmarkTH
-                     \@makefntextTH{#1}%
-                   \else
-                     \let\@@makefnmark\@@makefnmarkFB
-                     \@makefntextFB{#1}%
-                   \fi
-                 \else
-                   \let\@@makefnmark\@@makefnmarkORI
-                   \@makefntextORI{#1}%
-                 \fi}%
-        \else
+         \let\@@makefnmarkORI\@@makefnmark
+         \long\def\@makefntext#1{%
+                \ifFBFrenchFootnotes
+                  \ifx\footnote\thanks
+                    \let\@@makefnmark\@@makefnmarkTH
+                    \@makefntextTH{#1}%
+                  \else
+                    \let\@@makefnmark\@@makefnmarkFB
+                    \@makefntextFB{#1}%
+                  \fi
+                \else
+                  \let\@@makefnmark\@@makefnmarkORI
+                  \@makefntextORI{#1}%
+                \fi}%
+       \else
 %    \end{macrocode}
 %    Special add-on for the \cls{memoir} class: |\maketitle| redefines
 %    |\@makefntext| as |\makethanksmark| which is customised as follows
 %    to match the other notes' vertical alignment.
 %    \begin{macrocode}
-          \@ifclassloaded{memoir}%
-             {\ifFBFrenchFootnotes
-                \setlength{\thanksmarkwidth}{\parindentFFN}%
-                \setlength{\thanksmarksep}{-\thanksmarkwidth}%
-              \fi
-             }{}%
+         \@ifclassloaded{memoir}%
+            {\ifFBFrenchFootnotes
+               \setlength{\thanksmarkwidth}{\parindentFFN}%
+               \setlength{\thanksmarksep}{-\thanksmarkwidth}%
+             \fi
+            }{}%
 %    \end{macrocode}
 %    Special add-on for the \cls{beamer} class: issue a warning
 %    in case |\parindentFFN| has been changed.
 %    \begin{macrocode}
-          \@ifclassloaded{beamer}%
-             {\ifFBFrenchFootnotes
-                \ifdim\parindentFFN=1.5em\else
-                  \FBWarning{frenchb}{%
+         \@ifclassloaded{beamer}%
+            {\ifFBFrenchFootnotes
+               \ifdim\parindentFFN=1.5em\else
+                 \FBWarning{%
                     \protect\parindentFFN\space is ineffective%
-                    \MessageBreak within the beamer class.\MessageBreak
-                    Reported}%
-                \fi
-              \fi
-             }{}%
+                    \MessageBreak within the beamer class.%
+                    \MessageBreak Reported}%
+               \fi
+             \fi
+            }{}%
 %    \end{macrocode}
 %    Definition of |\@makefntext| for all classes other than
 %    koma-script:
 %    \begin{macrocode}
-          \long\def\@makefntext#1{%
+         \long\def\@makefntext#1{%
                  \ifFBFrenchFootnotes
                    \@makefntextFB{#1}%
                  \else
                    \@makefntextORI{#1}%
                  \fi}%
-        \fi
-       }%
+       \fi
+    }%
 }
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf	2017-01-31 22:45:55 UTC (rev 43106)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf	2017-01-31 22:46:16 UTC (rev 43107)
@@ -33,7 +33,7 @@
 %% extension .ins) which are part of the distribution.
 %% 
 \ProvidesLanguage{frenchb}
-         [2017/01/15 v3.2f French support from the babel system]
+         [2017/01/30 v3.2g French support from the babel system]
 %%
 %%  File `frenchb.ldf'
 %%  Babel package for LaTeX version 2e
@@ -455,10 +455,10 @@
 \ifLaTeXe
 \else
   \ifFBunicode
-     \def\guillemotleft{{\char"00AB}}
-     \def\guillemotright{{\char"00BB}}
-     \def\textquotedblleft{{\char"201C}}
-     \def\textquotedblright{{\char"201D}}
+    \def\guillemotleft{{\char"00AB}}
+    \def\guillemotright{{\char"00BB}}
+    \def\textquotedblleft{{\char"201C}}
+    \def\textquotedblright{{\char"201D}}
   \else
     \def\guillemotleft{\leavevmode\raise0.25ex
                        \hbox{$\scriptscriptstyle\ll$}}
@@ -523,19 +523,15 @@
 \newif\ifFBInnerGuillSingle
 \def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup}
 \def\FBguillclose{\bgroup\NoAutoSpacing\guillemotright\egroup}
-\let\FBguillnone\relax
+\let\FBguillnone\empty
 \let\FBeveryparguill\FBguillopen
-\ifFB at luatex@punct
-   \let\FBeverylineguill\FBguillopen
-\else
-   \let\FBeverylineguill\FBguillnone
-\fi
+\let\FBeverylineguill\FBguillnone
 \ifLaTeXe
-   \DeclareRobustCommand\frquote{%
+  \DeclareRobustCommand\frquote{%
        \@ifstar{\FBcloseguillfalse\fr at quote}%
                {\FBcloseguilltrue\fr at quote}}
 \else
-   \newcommand\frquote[1]{\fr at quote{#1}}
+  \newcommand\frquote[1]{\fr at quote{#1}}
 \fi
 \newcommand{\fr at quote}[1]{%
   \leavevmode
@@ -544,7 +540,7 @@
   \ifcase\FBguill at level
   \or
     \FB at everypar=\everypar
-    \ifx\FBeveryparguill\relax
+    \ifx\FBeveryparguill\FBguillnone
     \else
       \def\FBeverypar at quote{\FBeveryparguill\FB at quotespace}%
       \everypar=\expandafter{\the\everypar \FBeverypar at quote}%
@@ -552,44 +548,44 @@
     \ogi #1\fgi
   \or
     \ifx\FBeverylineguill\FBguillopen
-       \localleftbox{\guillemotleft\FB at quotespace}%
-       \let\FBeverypar at quote\relax
-       \ogi #1\ifFBcloseguill\fgi\fi
+      \localleftbox{\guillemotleft\FB at quotespace}%
+      \let\FBeverypar at quote\relax
+      \ogi #1\ifFBcloseguill\fgi\fi
     \else
       \ifx\FBeverylineguill\FBguillclose
-         \localleftbox{\guillemotright\FB at quotespace}%
-         \let\FBeverypar at quote\relax
-         \ogi #1\ifFBcloseguill\fgi\fi
+        \localleftbox{\guillemotright\FB at quotespace}%
+        \let\FBeverypar at quote\relax
+        \ogi #1\ifFBcloseguill\fgi\fi
       \else
-         \let\FBeverypar at quote\relax
-         \ifFBInnerGuillSingle
-            \def\ogii{\leavevmode
-                      \guilsinglleft\FBguillspace}%
-            \def\fgii{\ifdim\lastskip>\z@\unskip\fi
-                      \FBguillspace\guilsinglright}%
-            \ifx\FBeveryparguill\FBguillopen
-               \def\FBeverypar at quote{\guilsinglleft\FB at quotespace}%
-            \fi
-            \ifx\FBeveryparguill\FBguillclose
-               \def\FBeverypar at quote{\guilsinglright\FB at quotespace}%
-            \fi
-         \fi
-         \ogii #1\ifFBcloseguill \fgii \fi
+        \let\FBeverypar at quote\relax
+        \ifFBInnerGuillSingle
+          \def\ogii{\leavevmode
+                    \guilsinglleft\FBguillspace}%
+          \def\fgii{\ifdim\lastskip>\z@\unskip\fi
+                    \FBguillspace\guilsinglright}%
+          \ifx\FBeveryparguill\FBguillopen
+            \def\FBeverypar at quote{\guilsinglleft\FB at quotespace}%
+          \fi
+          \ifx\FBeveryparguill\FBguillclose
+            \def\FBeverypar at quote{\guilsinglright\FB at quotespace}%
+          \fi
+        \fi
+        \ogii #1\ifFBcloseguill \fgii \fi
       \fi
     \fi
   \else
-     \ifx\PackageWarning\@undefined
-        \fb at warning{\noexpand\frquote\space accepts no more than
-           two levels.\\ Quotation not printed.}%
-     \else
-        \PackageWarning{frenchb.ldf}{%
-           \protect\frquote\space accepts no more than two levels
-           \MessageBreak Quotation not printed.  Reported}
-     \fi
+    \ifx\PackageWarning\@undefined
+      \fb at warning{\noexpand\frquote\space accepts no more than
+                  two levels.\\ Quotation not printed.}%
+    \else
+      \PackageWarning{frenchb.ldf}{%
+         \protect\frquote\space accepts no more than two levels
+         \MessageBreak Quotation not printed.  Reported}
+    \fi
   \fi
   \advance\FBguill at level by \m at ne
   \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi
-  \ifx\FBeveryparguill\relax\else\everypar=\FB at everypar\fi
+  \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB at everypar\fi
 }
 \ifLaTeXe
   \def\BabelLanguages{french,acadian}
@@ -660,7 +656,7 @@
        \fontfamily{\FB at firstthree -sup}\selectfont \FB at lc{#1}\egroup}
   \DeclareRobustCommand*{\fup}[1]{%
     \ifx\realsuperscript\@undefined
-       \FB at up{#1}%
+      \FB at up{#1}%
     \else
       \bgroup\let\fakesuperscript\FB at up@fake
              \realsuperscript{\FB at lc{#1}}\egroup
@@ -695,11 +691,11 @@
                                            \scshape #1\endgroup}
 \ifLaTeXe\else\let\scshape\relax\fi
 \ifFBunicode
-    \newcommand*{\at}{{\char"0040}}
-    \newcommand*{\circonflexe}{{\char"005E}}
-    \newcommand*{\tild}{{\char"007E}}
-    \newcommand*{\boi}{\textbackslash}
-    \newcommand*{\degre}{{\char"00B0}}
+  \newcommand*{\at}{{\char"0040}}
+  \newcommand*{\circonflexe}{{\char"005E}}
+  \newcommand*{\tild}{{\char"007E}}
+  \newcommand*{\boi}{{\char"005C}}
+  \newcommand*{\degre}{{\char"00B0}}
 \else
   \ifLaTeXe
     \DeclareTextSymbol{\at}{T1}{64}
@@ -728,19 +724,18 @@
   \ifFBunicode
     \DeclareRobustCommand*{\degres}{\degre}
   \else
-    \def\Warning at degree@TSone{%
-          \PackageWarning{frenchb.ldf}{%
-             Degrees would look better in TS1-encoding:%
-             \MessageBreak add \protect
-             \usepackage{textcomp} to the preamble.%
-             \MessageBreak Degrees used}}
+    \def\Warning at degree@TSone{\FBWarning
+             {Degrees would look better in TS1-encoding:%
+              \MessageBreak add \protect
+              \usepackage{textcomp} to the preamble.%
+              \MessageBreak Degrees used}}
     \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined
-                        \DeclareRobustCommand*{\degres}{%
-                           \leavevmode\hbox to 0.3em{\hss\degre\hss}%
-                        \Warning at degree@TSone
-                        \global\let\Warning at degree@TSone\relax}%
+                       \DeclareRobustCommand*{\degres}{%
+                          \leavevmode\hbox to 0.3em{\hss\degre\hss}%
+                       \Warning at degree@TSone
+                       \global\let\Warning at degree@TSone\relax}%
                      \else
-                        \DeclareRobustCommand*{\degres}{%
+                       \DeclareRobustCommand*{\degres}{%
                           \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
                      \fi
                      }
@@ -801,26 +796,26 @@
                      \let\LaTeXefalse\undefined}
 \ifx\magnification\@undefined
 \else
-   \def\FBstop at here{\ifFB at luatex@punct
-                       \activate at luatexpunct
-                    \fi
-                    \FBclean at on@exit
-                    \ldf at quit\CurrentOption\endinput}
+  \def\FBstop at here{\ifFB at luatex@punct
+                     \activate at luatexpunct
+                   \fi
+                   \FBclean at on@exit
+                   \ldf at quit\CurrentOption\endinput}
 \fi
 \FBstop at here
 \renewcommand*{\nombre}[1]{\Warning at nombre{#1}}
 \newcommand*{\Warning at nombre}[1]{%
    \ifdefined\numprint
-      \numprint{#1}%
+     \numprint{#1}%
    \else
-      \PackageWarning{frenchb.ldf}{%
-         \protect\nombre\space now relies on package numprint.sty,%
-         \MessageBreak add \protect
-         \usepackage[autolanguage]{numprint},\MessageBreak
-         see file numprint.pdf for more options.\MessageBreak
-         \protect\nombre\space called}%
-      \global\let\Warning at nombre\relax
-      {#1}%
+     \PackageWarning{frenchb.ldf}{%
+        \protect\nombre\space now relies on package numprint.sty,%
+        \MessageBreak add \protect
+        \usepackage[autolanguage]{numprint},\MessageBreak
+        see file numprint.pdf for more options.\MessageBreak
+        \protect\nombre\space called}%
+     \global\let\Warning at nombre\relax
+     {#1}%
    \fi
 }
 \ifx\FBfigtabshape\@undefined \let\FBfigtabshape\scshape \fi
@@ -877,13 +872,13 @@
 \EndBabelCommands
 \AtEndOfPackage{%
    \ifFB at koma
-      \ifdefined\partformat
-         \FB at addto{captions}{%
-             \ifFBPartNameFull
-                \babel at save\partformat
-                \renewcommand*{\partformat}{\partname}%
-             \fi}%
-      \fi
+     \ifdefined\partformat
+       \FB at addto{captions}{%
+           \ifFBPartNameFull
+             \babel at save\partformat
+             \renewcommand*{\partformat}{\partname}%
+           \fi}%
+     \fi
    \fi
 }
 \bgroup
@@ -901,7 +896,7 @@
 \egroup
 \newif\if at FBwarning@capsep
 \@FBwarning at capseptrue
-\newcommand{\FBWarning}[2]{\PackageWarning{#1}{#2}}
+\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}}
 \newcommand*{\CaptionSeparator}{\space\textendash\space}
 \def\FBCaption at Separator{: }
 \long\def\FB at makecaption#1#2{%
@@ -930,39 +925,36 @@
 \@ifclassloaded{beamer}{\@FBwarning at capsepfalse}{}
 \ifdefined\@makecaption\else\@FBwarning at capsepfalse\fi
 \@ifpackageloaded{caption}
-    {\FBWarning{frenchb.ldf}%
-        {Please load the "caption" package\MessageBreak
-         AFTER babel/frenchb; reported}%
-     \@FBwarning at capsepfalse}%
-     {}
+   {\FBWarning{Please load the "caption" package\MessageBreak
+               AFTER babel/frenchb; reported}%
+    \@FBwarning at capsepfalse}%
+   {}
 \@ifpackageloaded{subcaption}
-    {\FBWarning{frenchb.ldf}%
-        {Please load the "subcaption" package\MessageBreak
-         AFTER babel/frenchb; reported}%
-     \@FBwarning at capsepfalse}%
-     {}
+   {\FBWarning{Please load the "subcaption" package\MessageBreak
+               AFTER babel/frenchb; reported}%
+    \@FBwarning at capsepfalse}%
+   {}
 \@ifpackageloaded{floatrow}
-    {\FBWarning{frenchb.ldf}%
-        {Please load the "floatrow" package\MessageBreak
-         AFTER babel/frenchb; reported}%
-     \@FBwarning at capsepfalse}%
-     {}
+   {\FBWarning{Please load the "floatrow" package\MessageBreak
+               AFTER babel/frenchb; reported}%
+    \@FBwarning at capsepfalse}%
+   {}
 \AtBeginDocument{%
   \ifx\@makecaption\STD at makecaption
-      \global\let\@makecaption\FB at makecaption
-      \ifFBOldFigTabCaptions
-      \else
-        \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+    \global\let\@makecaption\FB at makecaption
+    \ifFBOldFigTabCaptions
+    \else
+      \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+    \fi
+    \ifFBCustomiseFigTabCaptions
+      \ifx\bbl at main@language\FB at french
+        \def\FBCaption at Separator{\CaptionSeparator}%
       \fi
-      \ifFBCustomiseFigTabCaptions
-         \ifx\bbl at main@language\FB at french
-            \def\FBCaption at Separator{\CaptionSeparator}%
-         \fi
-      \fi
-      \@FBwarning at capsepfalse
+    \fi
+    \@FBwarning at capsepfalse
   \fi
   \if at FBwarning@capsep
-    \FBWarning{frenchb.ldf}%
+    \FBWarning
        {Figures' and tables' captions might look like\MessageBreak
         `Figure 1:' which is wrong in French.\MessageBreak
         Check your class or packages to change this;\MessageBreak
@@ -989,25 +981,35 @@
 \FB at addto{extras}{\bbl at frenchdots}
 \ifFB at active@punct
    \@ifpackageloaded{listings}
-      {\FBWarning{frenchb.ldf}%
-          {Please load the "listings" package\MessageBreak
-           AFTER babel/frenchb; reported}%
+      {\FBWarning{Please load the "listings" package\MessageBreak
+                  AFTER babel/frenchb; reported}%
       }{}
 \fi
 \newif\if at FBwarning@natbib
 \ifFB at active@punct
-   \@ifpackageloaded{natbib}{}{\@FBwarning at natbibtrue}
+  \@ifpackageloaded{natbib}{}{\@FBwarning at natbibtrue}
 \fi
 \AtBeginDocument{%
    \if at FBwarning@natbib
-      \@ifpackageloaded{natbib}{}{\@FBwarning at natbibfalse}%
+     \@ifpackageloaded{natbib}{}{\@FBwarning at natbibfalse}%
    \fi
    \if at FBwarning@natbib
-      \FBWarning{frenchb.ldf}%
-         {Please load the "natbib" package\MessageBreak
-          BEFORE babel/frenchb; reported}%
+     \FBWarning{Please load the "natbib" package\MessageBreak
+                BEFORE babel/frenchb; reported}%
    \fi
 }
+\newif\if at FBwarning@beamerarticle
+\@ifpackageloaded{beamerarticle}{}{\@FBwarning at beamerarticletrue}
+\AtBeginDocument{%
+   \if at FBwarning@beamerarticle
+     \@ifpackageloaded{beamerarticle}{}%
+                                     {\@FBwarning at beamerarticlefalse}%
+   \fi
+   \if at FBwarning@beamerarticle
+     \FBWarning{Please load the "beamerarticle" package\MessageBreak
+                BEFORE babel/frenchb; reported}%
+   \fi
+}
 \newcommand*{\frenchbsetup}[1]{%
   \setkeys{FB}{#1}%
 }%
@@ -1044,10 +1046,17 @@
       {\PackageInfo{frenchb.ldf}{%
           No list customisation for the beamer class,%
           \MessageBreak reported}}%
-      {\FBReduceListSpacingtrue
-       \FBStandardItemizeEnvfalse
-       \FBStandardEnumerateEnvfalse
-       \FBStandardItemLabelsfalse}%
+      {\@ifpackageloaded{beamerarticle}%
+         {\FBStandardItemLabelsfalse
+          \FBReduceListSpacingtrue
+          \PackageInfo{frenchb.ldf}{%
+             Minimal list customisation for the beamerarticle%
+             \MessageBreak package; reported}}%
+         {\FBReduceListSpacingtrue
+          \FBStandardItemizeEnvfalse
+          \FBStandardEnumerateEnvfalse
+          \FBStandardItemLabelsfalse}%
+      }
     \FBIndentFirsttrue
     \FBFrenchFootnotestrue
     \FBAutoSpaceFootnotestrue
@@ -1057,304 +1066,334 @@
   \fi
   \RequirePackage{keyval}%
   \define at key{FB}{ShowOptions}[true]%
-                      {\csname FBShowOptions#1\endcsname}%
+          {\csname FBShowOptions#1\endcsname}%
   \define at key{FB}{StandardLayout}[true]%
-                      {\csname FBStandardLayout#1\endcsname
-                       \ifFBStandardLayout
-                         \FBReduceListSpacingfalse
-                         \FBStandardItemizeEnvtrue
-                         \FBStandardItemLabelstrue
-                         \FBStandardEnumerateEnvtrue
-                         \FBIndentFirstfalse
-                         \FBFrenchFootnotesfalse
-                         \FBAutoSpaceFootnotesfalse
-                         \FBGlobalLayoutFrenchfalse
-                       \else
-                         \FBReduceListSpacingtrue
-                         \FBStandardItemizeEnvfalse
-                         \FBStandardItemLabelsfalse
-                         \FBStandardEnumerateEnvfalse
-                         \FBIndentFirsttrue
-                         \FBFrenchFootnotestrue
-                         \FBAutoSpaceFootnotestrue
-                       \fi}%
+          {\csname FBStandardLayout#1\endcsname
+           \ifFBStandardLayout
+             \FBReduceListSpacingfalse
+             \FBStandardItemizeEnvtrue
+             \FBStandardItemLabelstrue
+             \FBStandardEnumerateEnvtrue
+             \FBIndentFirstfalse
+             \FBFrenchFootnotesfalse
+             \FBAutoSpaceFootnotesfalse
+             \FBGlobalLayoutFrenchfalse
+           \else
+             \FBReduceListSpacingtrue
+             \FBStandardItemizeEnvfalse
+             \FBStandardItemLabelsfalse
+             \FBStandardEnumerateEnvfalse
+             \FBIndentFirsttrue
+             \FBFrenchFootnotestrue
+             \FBAutoSpaceFootnotestrue
+           \fi}%
   \define at key{FB}{GlobalLayoutFrench}[true]%
-                      {\csname FBGlobalLayoutFrench#1\endcsname
-                      \ifFBGlobalLayoutFrench
-                         \ifx\bbl at main@language\FB at french
-                         \else
-                            \PackageWarning{frenchb.ldf}%
-                              {Option `GlobalLayoutFrench' skipped:%
-                               \MessageBreak French is *not*
-                               babel's last option.\MessageBreak}%
-                         \fi
-                       \fi}%
+          {\csname FBGlobalLayoutFrench#1\endcsname
+           \ifFBGlobalLayoutFrench
+             \ifx\bbl at main@language\FB at french
+             \else
+               \PackageWarning{frenchb.ldf}%
+                  {Option `GlobalLayoutFrench' skipped:\MessageBreak
+                   French is *not* babel's last option.\MessageBreak
+                   Reported}%
+             \fi
+           \fi}%
   \define at key{FB}{ReduceListSpacing}[true]%
-                      {\csname FBReduceListSpacing#1\endcsname}%
+          {\csname FBReduceListSpacing#1\endcsname}%
   \define at key{FB}{ListOldLayout}[true]%
-                      {\csname FBListOldLayout#1\endcsname
-                       \ifFBListOldLayout
-                         \FBStandardEnumerateEnvtrue
-                         \renewcommand*{\FrenchLabelItem}{\textendash}%
-                       \fi}%
+          {\csname FBListOldLayout#1\endcsname
+           \ifFBListOldLayout
+             \FBStandardEnumerateEnvtrue
+             \renewcommand*{\FrenchLabelItem}{\textendash}%
+           \fi}%
   \define at key{FB}{CompactItemize}[true]%
-                      {\csname FBCompactItemize#1\endcsname
-                       \ifFBCompactItemize
-                         \FBStandardItemizeEnvfalse
-                         \FBStandardEnumerateEnvfalse
-                       \else
-                         \FBStandardItemizeEnvtrue
-                         \FBStandardEnumerateEnvtrue
-                       \fi}%
+          {\csname FBCompactItemize#1\endcsname
+           \ifFBCompactItemize
+             \FBStandardItemizeEnvfalse
+             \FBStandardEnumerateEnvfalse
+           \else
+             \FBStandardItemizeEnvtrue
+             \FBStandardEnumerateEnvtrue
+           \fi}%
   \define at key{FB}{StandardItemizeEnv}[true]%
-                      {\csname FBStandardItemizeEnv#1\endcsname}%
+          {\csname FBStandardItemizeEnv#1\endcsname}%
   \define at key{FB}{StandardEnumerateEnv}[true]%
-                      {\csname FBStandardEnumerateEnv#1\endcsname}%
+          {\csname FBStandardEnumerateEnv#1\endcsname}%
   \define at key{FB}{StandardItemLabels}[true]%
-                      {\csname FBStandardItemLabels#1\endcsname}%
-  \define at key{FB}{ItemLabels}{%
-        \renewcommand*{\FrenchLabelItem}{#1}}%
-  \define at key{FB}{ItemLabeli}{%
-        \renewcommand*{\Frlabelitemi}{#1}}%
-  \define at key{FB}{ItemLabelii}{%
-      \renewcommand*{\Frlabelitemii}{#1}}%
-  \define at key{FB}{ItemLabeliii}{%
-        \renewcommand*{\Frlabelitemiii}{#1}}%
-  \define at key{FB}{ItemLabeliv}{%
-      \renewcommand*{\Frlabelitemiv}{#1}}%
+          {\csname FBStandardItemLabels#1\endcsname}%
+  \define at key{FB}{ItemLabels}%
+          {\renewcommand*{\FrenchLabelItem}{#1}}%
+  \define at key{FB}{ItemLabeli}%
+          {\renewcommand*{\Frlabelitemi}{#1}}%
+  \define at key{FB}{ItemLabelii}%
+          {\renewcommand*{\Frlabelitemii}{#1}}%
+  \define at key{FB}{ItemLabeliii}%
+          {\renewcommand*{\Frlabelitemiii}{#1}}%
+  \define at key{FB}{ItemLabeliv}%
+          {\renewcommand*{\Frlabelitemiv}{#1}}%
   \define at key{FB}{StandardLists}[true]%
-                      {\csname FBStandardLists#1\endcsname
-                       \ifFBStandardLists
-                         \FBReduceListSpacingfalse
-                         \FBCompactItemizefalse
-                         \FBStandardItemizeEnvtrue
-                         \FBStandardEnumerateEnvtrue
-                         \FBStandardItemLabelstrue
-                       \else
-                         \FBReduceListSpacingtrue
-                         \FBCompactItemizetrue
-                         \FBStandardItemizeEnvfalse
-                         \FBStandardEnumerateEnvfalse
-                         \FBStandardItemLabelsfalse
-                       \fi}%
+          {\csname FBStandardLists#1\endcsname
+           \ifFBStandardLists
+             \FBReduceListSpacingfalse
+             \FBCompactItemizefalse
+             \FBStandardItemizeEnvtrue
+             \FBStandardEnumerateEnvtrue
+             \FBStandardItemLabelstrue
+           \else
+             \FBReduceListSpacingtrue
+             \FBCompactItemizetrue
+             \FBStandardItemizeEnvfalse
+             \FBStandardEnumerateEnvfalse
+             \FBStandardItemLabelsfalse
+           \fi}%
   \define at key{FB}{IndentFirst}[true]%
-                      {\csname FBIndentFirst#1\endcsname}%
+          {\csname FBIndentFirst#1\endcsname}%
   \define at key{FB}{FrenchFootnotes}[true]%
-                      {\csname FBFrenchFootnotes#1\endcsname}%
+          {\csname FBFrenchFootnotes#1\endcsname}%
   \define at key{FB}{AutoSpaceFootnotes}[true]%
-                      {\csname FBAutoSpaceFootnotes#1\endcsname}%
+          {\csname FBAutoSpaceFootnotes#1\endcsname}%
   \define at key{FB}{AutoSpacePunctuation}[true]%
-                      {\csname FBAutoSpacePunctuation#1\endcsname}%
+          {\csname FBAutoSpacePunctuation#1\endcsname}%
   \define at key{FB}{OriginalTypewriter}[true]%
-                      {\csname FBOriginalTypewriter#1\endcsname}%
+          {\csname FBOriginalTypewriter#1\endcsname}%
   \define at key{FB}{ThinColonSpace}[true]%
-                      {\csname FBThinColonSpace#1\endcsname}%
+          {\csname FBThinColonSpace#1\endcsname}%
   \define at key{FB}{ThinSpaceInFrenchNumbers}[true]%
-                     {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
+          {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
   \define at key{FB}{FrenchSuperscripts}[true]%
-                     {\csname FBFrenchSuperscripts#1\endcsname}
+          {\csname FBFrenchSuperscripts#1\endcsname}
   \define at key{FB}{LowercaseSuperscripts}[true]%
-                     {\csname FBLowercaseSuperscripts#1\endcsname}
+          {\csname FBLowercaseSuperscripts#1\endcsname}
   \define at key{FB}{PartNameFull}[true]%
-                     {\csname FBPartNameFull#1\endcsname}%
+          {\csname FBPartNameFull#1\endcsname}%
   \define at key{FB}{CustomiseFigTabCaptions}[true]%
           {\csname FBCustomiseFigTabCaptions#1\endcsname}%
   \define at key{FB}{OldFigTabCaptions}[true]%
           {\csname FBOldFigTabCaptions#1\endcsname
            \ifFBOldFigTabCaptions
-              \FB at addto{extras}{\babel at save\FBCaption at Separator
-                       \def\FBCaption at Separator{\CaptionSeparator}}%
+             \FB at addto{extras}{\babel at save\FBCaption at Separator
+                      \def\FBCaption at Separator{\CaptionSeparator}}%
            \fi}%
   \define at key{FB}{SmallCapsFigTabCaptions}[true]%
           {\csname FBSmallCapsFigTabCaptions#1\endcsname
            \ifFBSmallCapsFigTabCaptions
-              \let\FBfigtabshape\scshape
+             \let\FBfigtabshape\scshape
            \else
-              \let\FBfigtabshape\relax
+             \let\FBfigtabshape\relax
            \fi}%
   \define at key{FB}{SuppressWarning}[true]%
-                      {\csname FBSuppressWarning#1\endcsname
-                       \ifFBSuppressWarning
-                         \renewcommand{\FBWarning}[2]{\relax}%
-                       \fi}%
+          {\csname FBSuppressWarning#1\endcsname
+           \ifFBSuppressWarning
+             \renewcommand{\FBWarning}[1]{}%
+           \fi}%
   \define at key{FB}{INGuillSpace}[true]%
-                      {\csname FBINGuillSpace#1\endcsname}%
+          {\csname FBINGuillSpace#1\endcsname}%
   \define at key{FB}{InnerGuillSingle}[true]%
-                     {\csname FBInnerGuillSingle#1\endcsname}%
-  \define at key{FB}{EveryParGuill}{\expandafter\let\expandafter
-                 \FBeveryparguill\csname FBguill#1\endcsname}%
-  \define at key{FB}{EveryLineGuill}{\expandafter\let\expandafter
-                 \FBeverylineguill\csname FBguill#1\endcsname
-                    \ifFB at luatex@punct
+          {\csname FBInnerGuillSingle#1\endcsname}%
+  \define at key{FB}{EveryParGuill}[open]%
+          {\expandafter\let\expandafter
+             \FBeveryparguill\csname FBguill#1\endcsname
+           \ifx\FBeveryparguill\FBguillopen
+           \else\ifx\FBeveryparguill\FBguillclose
+                \else\ifx\FBeveryparguill\FBguillnone
+                     \else
+                       \let\FBeveryparguill\FBguillopen
+                       \PackageWarning{frenchb.ldf}%
+                          {Wrong value for `EveryParGuill':
+                           try `open’,\MessageBreak
+                           `close’ or `none’. Reported}%
+                     \fi
+                \fi
+           \fi}%
+  \define at key{FB}{EveryLineGuill}[open]%
+          {\ifFB at luatex@punct
+             \expandafter\let\expandafter
+               \FBeverylineguill\csname FBguill#1\endcsname
+             \ifx\FBeverylineguill\FBguillopen
+             \else\ifx\FBeverylineguill\FBguillclose
+                  \else\ifx\FBeverylineguill\FBguillnone
+                       \else
+                         \let\FBeverylineguill\FBguillnone
+                         \FBWarning{Wrong value for `EveryLineGuill':
+                                    try `open’,\MessageBreak
+                                    `close’ or `none’. Reported}%
+                       \fi
+                  \fi
+             \fi
+           \else
+             \FBWarning{Option `EveryLineGuill' skipped:%
+                        \MessageBreak this option is for
+                        LuaTeX *only*.\MessageBreak Reported}%
+           \fi}%
+  \define at key{FB}{og}%
+          {\ifFBunicode
+             \ifFB at luatex@punct
+               \FB at addGUILspace=1 \relax
+             \fi
+             \ifFB at xetex@punct
+               \XeTeXcharclass"13   = \FB at guilo
+               \XeTeXcharclass"AB   = \FB at guilo
+               \XeTeXcharclass"A0   = \FB at guilnul
+               \XeTeXcharclass"202F = \FB at guilnul
+             \fi
+             \ifFB at active@punct
+               \PackageWarning{frenchb.ldf}%
+                  {Option og=« not supported with this version
+                   of\MessageBreak LuaTeX/XeTeX; reported}%
+             \fi
+           \else
+             \newcommand*{\FB@@og}{%
+                \iflanguage{french}%
+                  {\ifFB at spacing\FB at og\ignorespaces
+                   \else\guillemotleft
+                   \fi}%
+                  {\guillemotleft}}%
+             \AtBeginDocument{%
+                \ifdefined\DeclareInputText
+                  \ifdefined\uc at dclc
+                    \uc at dclc{171}{default}{\FB@@og}%
+                  \else
+                    \ifdefined\DeclareUnicodeCharacter
+                      \DeclareUnicodeCharacter{00AB}{\FB@@og}%
                     \else
-                      \let\FBeverylineguill\FBguillnone
-                      \PackageWarning{frenchb.ldf}%
-                         {Option `EveryLineGuill' skipped:%
-                          \MessageBreak this option is for
-                          LuaTeX *only*.\MessageBreak Reported}%
-                    \fi}%
-  \define at key{FB}{og}{%
-      \ifFBunicode
-         \ifFB at luatex@punct
-           \FB at addGUILspace=1 \relax
-         \fi
-         \ifFB at xetex@punct
-           \XeTeXcharclass"13   = \FB at guilo
-           \XeTeXcharclass"AB   = \FB at guilo
-           \XeTeXcharclass"A0   = \FB at guilnul
-           \XeTeXcharclass"202F = \FB at guilnul
-         \fi
-         \ifFB at active@punct
-           \FBWarning{frenchb.ldf}%
-             {Option og=« not supported with this version
-              of\MessageBreak LuaTeX/XeTeX; reported}%
-         \fi
-      \else
-         \newcommand*{\FB@@og}{%
-            \iflanguage{french}%
-              {\ifFB at spacing\FB at og\ignorespaces
-               \else\guillemotleft
-               \fi}%
-              {\guillemotleft}}%
-         \AtBeginDocument{%
-           \ifdefined\DeclareInputText
-              \ifdefined\uc at dclc
-                 \uc at dclc{171}{default}{\FB@@og}%
-              \else
-                 \ifdefined\DeclareUnicodeCharacter
-                    \DeclareUnicodeCharacter{00AB}{\FB@@og}%
-                 \else
-                    \@tempcnta`#1\relax
-                    \ifdefined\mule at def
-                       \mule at def{11}{\FB@@og}%
-                    \else
-                       \DeclareInputText{\the\@tempcnta}{\FB@@og}%
+                      \@tempcnta`#1\relax
+                      \ifdefined\mule at def
+                        \mule at def{11}{\FB@@og}%
+                      \else
+                        \DeclareInputText{\the\@tempcnta}{\FB@@og}%
+                      \fi
                     \fi
-                 \fi
-              \fi
+                  \fi
+                \else
+                  \PackageWarning{frenchb.ldf}%
+                     {Option `og' requires package inputenc;%
+                      \MessageBreak reported}%
+                \fi
+              }%
+           \fi
+          }%
+  \define at key{FB}{fg}%
+          {\ifFBunicode
+             \ifFB at luatex@punct
+               \FB at addGUILspace=1 \relax
+             \fi
+             \ifFB at xetex@punct
+               \XeTeXcharclass"14   = \FB at guilf
+               \XeTeXcharclass"BB   = \FB at guilf
+               \XeTeXcharclass"A0   = \FB at guilnul
+               \XeTeXcharclass"202F = \FB at guilnul
+             \fi
+             \ifFB at active@punct
+               \PackageWarning{frenchb.ldf}%
+                  {Option fg=» not supported with this version
+                   of\MessageBreak LuaTeX/XeTeX; reported}%
+             \fi
            \else
-              \PackageWarning{frenchb.ldf}%
-                {Option `og' requires package inputenc.\MessageBreak}%
-           \fi
-         }%
-      \fi
-  }%
-  \define at key{FB}{fg}{%
-      \ifFBunicode
-         \ifFB at luatex@punct
-           \FB at addGUILspace=1 \relax
-         \fi
-         \ifFB at xetex@punct
-           \XeTeXcharclass"14   = \FB at guilf
-           \XeTeXcharclass"BB   = \FB at guilf
-           \XeTeXcharclass"A0   = \FB at guilnul
-           \XeTeXcharclass"202F = \FB at guilnul
-         \fi
-         \ifFB at active@punct
-           \FBWarning{frenchb.ldf}%
-             {Option fg=» not supported with this version
-              of\MessageBreak LuaTeX/XeTeX; reported}%
-         \fi
-      \else
-         \newcommand*{\FB@@fg}{%
-            \iflanguage{french}%
-              {\ifFB at spacing\FB at fg
-               \else\guillemotright
-               \fi}%
-              {\guillemotright}}%
-         \AtBeginDocument{%
-           \ifdefined\DeclareInputText
-              \ifdefined\uc at dclc
-                 \uc at dclc{187}{default}{\FB@@fg}%
-              \else
-                 \ifdefined\DeclareUnicodeCharacter
-                   \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
+             \newcommand*{\FB@@fg}{%
+                \iflanguage{french}%
+                  {\ifFB at spacing\FB at fg
+                   \else\guillemotright
+                   \fi}%
+                  {\guillemotright}}%
+             \AtBeginDocument{%
+               \ifdefined\DeclareInputText
+                 \ifdefined\uc at dclc
+                   \uc at dclc{187}{default}{\FB@@fg}%
                  \else
-                    \@tempcnta`#1\relax
+                   \ifdefined\DeclareUnicodeCharacter
+                     \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
+                   \else
+                     \@tempcnta`#1\relax
                      \ifdefined\mule at def
-                        \mule at def{27}{{\FB@@fg}}%
+                       \mule at def{27}{{\FB@@fg}}%
                      \else
-                        \DeclareInputText{\the\@tempcnta}{\FB@@fg}%
+                       \DeclareInputText{\the\@tempcnta}{\FB@@fg}%
                      \fi
+                   \fi
                  \fi
-              \fi
-           \else
-              \PackageWarning{frenchb.ldf}%
-                {Option `fg' requires package inputenc.\MessageBreak}%
+               \else
+                 \PackageWarning{frenchb.ldf}%
+                    {Option `fg' requires package inputenc;%
+                     \MessageBreak reported}%
+               \fi
+              }%
            \fi
-         }%
-      \fi
-  }%
+          }%
 }
 \newcommand*{\FBprocess at options}{%
   \@ifpackageloaded{enumitem}{%
      \ifFBStandardItemizeEnv
      \else
-        \FBStandardItemizeEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardItemizeEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardItemizeEnv=true for\MessageBreak
-           compatibility with enumitem package,\MessageBreak}%
+           compatibility with enumitem package,\MessageBreak
+           reported}%
      \fi
      \ifFBStandardEnumerateEnv
      \else
-        \FBStandardEnumerateEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardEnumerateEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardEnumerateEnv=true for\MessageBreak
-           compatibility with enumitem package,\MessageBreak}%
+           compatibility with enumitem package,\MessageBreak
+           reported}%
      \fi}{}%
   \@ifpackageloaded{paralist}{%
      \ifFBStandardItemizeEnv
      \else
-        \FBStandardItemizeEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardItemizeEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardItemizeEnv=true for\MessageBreak
-           compatibility with paralist package,\MessageBreak}%
+           compatibility with paralist package,\MessageBreak
+           reported}%
      \fi
      \ifFBStandardEnumerateEnv
      \else
-        \FBStandardEnumerateEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardEnumerateEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardEnumerateEnv=true for\MessageBreak
-           compatibility with paralist package,\MessageBreak}%
+           compatibility with paralist package,\MessageBreak
+           reported}%
      \fi}{}%
   \@ifpackageloaded{enumerate}{%
      \ifFBStandardEnumerateEnv
      \else
-        \FBStandardEnumerateEnvtrue
-        \PackageInfo{frenchb.ldf}%
+       \FBStandardEnumerateEnvtrue
+       \PackageInfo{frenchb.ldf}%
           {Setting StandardEnumerateEnv=true for\MessageBreak
-           compatibility with enumerate package,\MessageBreak}%
+           compatibility with enumerate package,\MessageBreak
+           reported}%
      \fi}{}%
   \def\FB at ufl{\update at frenchlists}
   \ifx\bbl at main@language\FB at french
-     \update at frenchlists
+    \update at frenchlists
   \fi
   \ifFBAutoSpacePunctuation
-       \autospace at beforeFDP
+    \autospace at beforeFDP
   \else
-       \noautospace at beforeFDP
+    \noautospace at beforeFDP
   \fi
   \ifFBOriginalTypewriter
   \else
-     \let\ttfamilyORI\ttfamily
-     \let\rmfamilyORI\rmfamily
-     \let\sffamilyORI\sffamily
-     \let\ttfamily\ttfamilyFB
-     \let\rmfamily\rmfamilyFB
-     \let\sffamily\sffamilyFB
+    \let\ttfamilyORI\ttfamily
+    \let\rmfamilyORI\rmfamily
+    \let\sffamilyORI\sffamily
+    \let\ttfamily\ttfamilyFB
+    \let\rmfamily\rmfamilyFB
+    \let\sffamily\sffamilyFB
   \fi
   \ifFBThinColonSpace
     \ifFB at luatex@punct
-       \FBcolonskip=\FBthinskip\relax
+      \FBcolonskip=\FBthinskip\relax
     \else
-       \renewcommand*{\FBcolonspace}{\FBthinspace}%
+      \renewcommand*{\FBcolonspace}{\FBthinspace}%
     \fi
   \fi
   \ifFBINGuillSpace
     \ifFB at luatex@punct
-       \FBguillskip=3.33pt plus 1.665pt minus 1.11pt \relax
+      \FBguillskip=3.33pt plus 1.665pt minus 1.11pt \relax
     \else
-       \renewcommand*{\FBguillspace}{\space}%
+      \renewcommand*{\FBguillspace}{\space}%
     \fi
   \fi
   \@ifpackageloaded{numprint}%
@@ -1392,27 +1431,27 @@
     \renewcommand*{\FB at lc}[1]{##1}%
   \fi
   \ifFBCustomiseFigTabCaptions
-     \ifFB at koma
-        \renewcommand*{\captionformat}{\CaptionSeparator}%
-     \fi
-     \@ifclassloaded{memoir}%
+    \ifFB at koma
+      \renewcommand*{\captionformat}{\CaptionSeparator}%
+    \fi
+    \@ifclassloaded{memoir}%
        {\captiondelim{\CaptionSeparator}}{}%
-     \@ifclassloaded{beamer}%
+    \@ifclassloaded{beamer}%
        {\defbeamertemplate{caption label separator}{FBcustom}{%
             \CaptionSeparator}%
         \setbeamertemplate{caption label separator}[FBcustom]}{}%
   \else
-     \ifFB at koma
-        \renewcommand*{\captionformat}{{\autospace at beforeFDP : }}%
-     \fi
-     \@ifclassloaded{memoir}%
-        {\captiondelim{{\autospace at beforeFDP : }}%
-        }{}%
-     \@ifclassloaded{beamer}%
-        {\defbeamertemplate{caption label separator}{FBcolon}{%
+    \ifFB at koma
+      \renewcommand*{\captionformat}{{\autospace at beforeFDP : }}%
+    \fi
+    \@ifclassloaded{memoir}%
+       {\captiondelim{{\autospace at beforeFDP : }}%
+       }{}%
+    \@ifclassloaded{beamer}%
+       {\defbeamertemplate{caption label separator}{FBcolon}{%
              {\autospace at beforeFDP : }}%
-         \setbeamertemplate{caption label separator}[FBcolon]%
-        }{}%
+        \setbeamertemplate{caption label separator}[FBcolon]%
+       }{}%
   \fi
   \ifFBShowOptions
     \GenericWarning{* }{%
@@ -1466,7 +1505,7 @@
 \AtBeginDocument{%
    \providecommand*{\xspace}{\relax}%
    \ifdefined\pdfstringdefDisableCommands
-      \pdfstringdefDisableCommands{%
+     \pdfstringdefDisableCommands{%
         \let\up\relax
         \let\fup\relax
         \let\degre\textdegree
@@ -1488,8 +1527,9 @@
         \def\at{@}%
         \def\circonflexe{\string^}%
         \def\tild{\string~}%
+        \def\boi{\textbackslash}%
         \let\bsc\textsc
-       }%
+      }%
    \fi
    \FBprocess at options
    \ifFB at luatex@punct
@@ -1496,24 +1536,23 @@
      \activate at luatexpunct
    \fi
    \ifFBunicode
-      \ifdefined\DeclareUTFcharacter
-      \else
-         \@ifpackageloaded{luainputenc}{}%
-           {\PackageWarning{frenchb.ldf}%
-            {Add \protect\usepackage{fontspec} to the\MessageBreak
-            preamble of your document,}%
-           }%
-      \fi
+     \@ifpackageloaded{fontspec}{}%
+        {\@ifpackageloaded{luainputenc}{}%
+            {\PackageWarning{frenchb.ldf}%
+                {Add \protect\usepackage{fontspec} to the\MessageBreak
+                 preamble of your document, reported}%
+            }%
+        }
    \else
-      \begingroup \newcommand{\FBOTone}{OT1}%
-      \ifx\encodingdefault\FBOTone
-        \PackageWarning{frenchb.ldf}%
-           {OT1 encoding should not be used for French.%
-            \MessageBreak
-            Add \protect\usepackage[T1]{fontenc} to the
-            preamble\MessageBreak of your document,}%
-      \fi
-      \endgroup
+     \begingroup \newcommand{\FBOTone}{OT1}%
+     \ifx\encodingdefault\FBOTone
+       \PackageWarning{frenchb.ldf}%
+          {OT1 encoding should not be used for French.%
+           \MessageBreak
+           Add \protect\usepackage[T1]{fontenc} to the
+           preamble\MessageBreak of your document; reported}%
+     \fi
+     \endgroup
    \fi
 }
 \let\listORI\list
@@ -1552,21 +1591,21 @@
 }
 \def\FB at itemizesettings{%
     \ifFBReduceListSpacing
-       \setlength{\itemsep}{\z@}%
-       \setlength{\parsep}{\z@}%
-       \setlength{\topsep}{\z@}%
-       \setlength{\partopsep}{\z@}%
-       \@tempdima=\parskip
-       \addtolength{\topsep}{-\@tempdima}%
-       \addtolength{\partopsep}{\@tempdima}%
+      \setlength{\itemsep}{\z@}%
+      \setlength{\parsep}{\z@}%
+      \setlength{\topsep}{\z@}%
+      \setlength{\partopsep}{\z@}%
+      \@tempdima=\parskip
+      \addtolength{\topsep}{-\@tempdima}%
+      \addtolength{\partopsep}{\@tempdima}%
     \fi
     \settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
     \ifFBListOldLayout
-       \setlength{\leftmargin}{\labelwidth}%
-       \addtolength{\leftmargin}{\labelsep}%
-       \addtolength{\leftmargin}{\parindent}%
+      \setlength{\leftmargin}{\labelwidth}%
+      \addtolength{\leftmargin}{\labelsep}%
+      \addtolength{\leftmargin}{\parindent}%
     \else
-       \FB at listHsettings
+      \FB at listHsettings
     \fi
 }
 \def\itemizeFB{%
@@ -1651,7 +1690,7 @@
 }
 \def\bbl at nonfrenchlistlayout{%
   \ifFBGlobalLayoutFrench
-     \update at frenchlists
+    \update at frenchlists
   \fi
 }
 \FB at addto{extras}{\bbl at frenchlistlayout}
@@ -1659,14 +1698,14 @@
 \def\bbl at frenchindent{%
   \ifFBGlobalLayoutFrench\else\babel at save\@afterindentfalse\fi
   \ifFBIndentFirst
-     \let\@afterindentfalse\@afterindenttrue
-     \@afterindenttrue
+    \let\@afterindentfalse\@afterindenttrue
+    \@afterindenttrue
   \fi}
 \def\bbl at nonfrenchindent{%
   \ifFBGlobalLayoutFrench
-     \ifFBIndentFirst
-        \@afterindenttrue
-     \fi
+    \ifFBIndentFirst
+      \@afterindenttrue
+    \fi
   \fi}
 \FB at addto{extras}{\bbl at frenchindent}
 \FB at addto{noextras}{\bbl at nonfrenchindent}
@@ -1673,8 +1712,8 @@
 \AtBeginDocument{\@ifpackageloaded{bigfoot}%
                    {\PackageInfo{frenchb.ldf}%
                      {bigfoot package in use.\MessageBreak
-                      frenchb will NOT customise footnotes;\MessageBreak
-                      reported}}%
+                      frenchb will NOT customise footnotes;%
+                      \MessageBreak reported}}%
                    {\let\@footnotemarkORI\@footnotemark
                     \def\@footnotemarkFB{\leavevmode\unskip\unkern
                                          \,\@footnotemarkORI}%
@@ -1688,18 +1727,18 @@
 \newcommand*{\kernFFN}{\kern .5em}
 \newlength\FBfnindent
 \ifFB at koma
-   \let\@makefntextORI\@makefntext
-   \let\@@makefnmarkORI\@@makefnmark
-   \deffootnote[\FBfnindent]{0pt}{\parindentFFN}%
-               {\thefootnotemark\dotFFN\kernFFN}
-   \let\@makefntextFB\@makefntext
-   \let\@@makefnmarkFB\@@makefnmark
-   \deffootnote[\parindentFFN]{0pt}{\parindentFFN}%
-               {\textsuperscript{\thefootnotemark}}
-   \let\@makefntextTH\@makefntext
-   \let\@@makefnmarkTH\@@makefnmark
-   \let\@makefntext\@makefntextORI
-   \let\@@makefnmark\@@makefnmarkORI
+  \let\@makefntextORI\@makefntext
+  \let\@@makefnmarkORI\@@makefnmark
+  \deffootnote[\FBfnindent]{0pt}{\parindentFFN}%
+              {\thefootnotemark\dotFFN\kernFFN}
+  \let\@makefntextFB\@makefntext
+  \let\@@makefnmarkFB\@@makefnmark
+  \deffootnote[\parindentFFN]{0pt}{\parindentFFN}%
+              {\textsuperscript{\thefootnotemark}}
+  \let\@makefntextTH\@makefntext
+  \let\@@makefnmarkTH\@@makefnmark
+  \let\@makefntext\@makefntextORI
+  \let\@@makefnmark\@@makefnmarkORI
 \fi
 \@ifclassloaded{memoir}
    {\newcommand{\@makefntextFB}[1]{%
@@ -1729,54 +1768,54 @@
 \providecommand\@makefntextFB[1]{\insertfootnotemarkFB #1}
 \AtBeginDocument{%
    \@ifpackageloaded{bigfoot}{}%
-       {\ifdim\parindentFFN<10in
-        \else
-           \parindentFFN=\parindent
-           \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi
-        \fi
-        \settowidth{\FBfnindent}{\dotFFN\kernFFN}%
-        \addtolength{\FBfnindent}{\parindentFFN}%
-        \let\@makefntextORI\@makefntext
-        \ifFB at koma
-          \let\@@makefnmarkORI\@@makefnmark
-          \long\def\@makefntext#1{%
-                 \ifFBFrenchFootnotes
-                   \ifx\footnote\thanks
-                     \let\@@makefnmark\@@makefnmarkTH
-                     \@makefntextTH{#1}%
-                   \else
-                     \let\@@makefnmark\@@makefnmarkFB
-                     \@makefntextFB{#1}%
-                   \fi
-                 \else
-                   \let\@@makefnmark\@@makefnmarkORI
-                   \@makefntextORI{#1}%
-                 \fi}%
-        \else
-          \@ifclassloaded{memoir}%
-             {\ifFBFrenchFootnotes
-                \setlength{\thanksmarkwidth}{\parindentFFN}%
-                \setlength{\thanksmarksep}{-\thanksmarkwidth}%
-              \fi
-             }{}%
-          \@ifclassloaded{beamer}%
-             {\ifFBFrenchFootnotes
-                \ifdim\parindentFFN=1.5em\else
-                  \FBWarning{frenchb}{%
+      {\ifdim\parindentFFN<10in
+       \else
+         \parindentFFN=\parindent
+         \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi
+       \fi
+       \settowidth{\FBfnindent}{\dotFFN\kernFFN}%
+       \addtolength{\FBfnindent}{\parindentFFN}%
+       \let\@makefntextORI\@makefntext
+       \ifFB at koma
+         \let\@@makefnmarkORI\@@makefnmark
+         \long\def\@makefntext#1{%
+                \ifFBFrenchFootnotes
+                  \ifx\footnote\thanks
+                    \let\@@makefnmark\@@makefnmarkTH
+                    \@makefntextTH{#1}%
+                  \else
+                    \let\@@makefnmark\@@makefnmarkFB
+                    \@makefntextFB{#1}%
+                  \fi
+                \else
+                  \let\@@makefnmark\@@makefnmarkORI
+                  \@makefntextORI{#1}%
+                \fi}%
+       \else
+         \@ifclassloaded{memoir}%
+            {\ifFBFrenchFootnotes
+               \setlength{\thanksmarkwidth}{\parindentFFN}%
+               \setlength{\thanksmarksep}{-\thanksmarkwidth}%
+             \fi
+            }{}%
+         \@ifclassloaded{beamer}%
+            {\ifFBFrenchFootnotes
+               \ifdim\parindentFFN=1.5em\else
+                 \FBWarning{%
                     \protect\parindentFFN\space is ineffective%
-                    \MessageBreak within the beamer class.\MessageBreak
-                    Reported}%
-                \fi
-              \fi
-             }{}%
-          \long\def\@makefntext#1{%
+                    \MessageBreak within the beamer class.%
+                    \MessageBreak Reported}%
+               \fi
+             \fi
+            }{}%
+         \long\def\@makefntext#1{%
                  \ifFBFrenchFootnotes
                    \@makefntextFB{#1}%
                  \else
                    \@makefntextORI{#1}%
                  \fi}%
-        \fi
-       }%
+       \fi
+    }%
 }
 \newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue}
 \newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue}

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua	2017-01-31 22:45:55 UTC (rev 43106)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua	2017-01-31 22:46:16 UTC (rev 43107)
@@ -1,5 +1,5 @@
 --
---  File `frenchb.lua' generated from frenchb.dtx [2017/01/15 v3.2f]
+--  File `frenchb.lua' generated from frenchb.dtx [2017/01/30 v3.2g]
 --
 --  Copyright © 2014-2017 Daniel Flipo
 --  <daniel (dot) flipo (at) free (dot) fr>



More information about the tex-live-commits mailing list