summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel-french/french.ldf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-07-13 23:06:10 +0000
committerKarl Berry <karl@freefriends.org>2017-07-13 23:06:10 +0000
commit04f93eb1202717fcb407f1271d28f4153aaa0ca0 (patch)
treeefe1f0565081a30b419c33d54007326a80e4fd80 /Master/texmf-dist/tex/generic/babel-french/french.ldf
parenta7ecf3589db1dd3722fda599c2ac8e80ac17b6ad (diff)
babel-french (11jul17)
git-svn-id: svn://tug.org/texlive/trunk@44782 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel-french/french.ldf')
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/french.ldf1803
1 files changed, 1803 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/babel-french/french.ldf b/Master/texmf-dist/tex/generic/babel-french/french.ldf
new file mode 100644
index 00000000000..dd45998b7e2
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel-french/french.ldf
@@ -0,0 +1,1803 @@
+%%
+%% This is file `french.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% frenchb.dtx (with options: `french')
+%% This is a generated file part of the the babel-french bundle
+%% to be used with the Babel system.
+%% -------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Daniel Flipo.
+%%
+%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
+%%
+\ProvidesLanguage{french}
+ [2017/07/08 v3.3b French support from the babel system]
+%%
+%% Babel package for LaTeX version 2e
+%% Copyright © 1996 - 2017
+%% by Daniel Flipo <daniel (dot) flipo (at) free (dot) fr>
+%%
+\LdfInit\CurrentOption\captionsfrench
+\def\FB@nopatterns{%
+ \ifx\l@nohyphenation\@undefined
+ \edef\bbl@nulllanguage{\string\language=0}%
+ \adddialect\l@french0
+ \else
+ \adddialect\l@french\l@nohyphenation
+ \edef\bbl@nulllanguage{\string\language=nohyphenation}%
+ \fi
+ \@nopatterns{French}}
+\ifx\l@french\@undefined
+ \FB@nopatterns
+\fi
+\newif\ifLaTeXe
+\let\bbl@tempa\relax
+\ifx\magnification\@undefined
+ \ifx\@compatibilitytrue\@undefined
+ \PackageError{french.ldf}
+ {LaTeX-2.09 format is no longer supported.\MessageBreak
+ Aborting here}
+ {Please upgrade to LaTeX2e!}
+ \let\bbl@tempa\endinput
+ \else
+ \LaTeXetrue
+ \fi
+\fi
+\bbl@tempa
+\def\fb@error#1#2{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(french.ldf) }%
+ \errhelp{#2}\errmessage{\\#1^^J}%
+ \endgroup}
+\def\fb@warning#1{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(french.ldf) }%
+ \message{\\#1^^J}%
+ \endgroup}
+\def\fb@info#1{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J}%
+ \wlog{#1}%
+ \endgroup}
+\let\bbl@tempa\relax
+\ifx\babeltags\@undefined
+ \let\bbl@tempa\endinput
+ \ifLaTeXe
+ \PackageError{french.ldf}
+ {frenchb requires babel v.3.9i.\MessageBreak
+ Aborting here}
+ {Please upgrade Babel!}
+ \else
+ \fb@error{frenchb requires babel v.3.9i.\\
+ Aborting here}
+ {Please upgrade Babel!}
+ \fi
+\fi
+\bbl@tempa
+\def\bbl@tempa{acadian}
+\ifx\CurrentOption\bbl@tempa
+ \ifx\l@acadian\@undefined
+ \adddialect\l@acadian\l@french
+ \fi
+\fi
+\expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@}
+\newif\ifFBunicode
+\newif\ifFBLuaTeX
+\newif\ifFBXeTeX
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname luatexversion\endcsname\relax
+\else
+ \FBunicodetrue \FBLuaTeXtrue
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname XeTeXrevision\endcsname\relax
+\else
+ \FBunicodetrue \FBXeTeXtrue
+\fi
+\newif\ifFBfrench
+\@namedef{extras\CurrentOption}{%
+ \FBfrenchtrue
+ \babel@savevariable{\lccode`\'}%
+ \ifFBunicode
+ \babel@savevariable{\lccode"2019}%
+ \lccode`\'="2019\lccode"2019="2019
+ \else
+ \lccode`\'=`\'
+ \fi
+}
+\@namedef{noextras\CurrentOption}{\FBfrenchfalse}
+\let\FB@CurOpt\CurrentOption
+\newcommand*{\FB@addto}[2]{%
+ \expandafter\addto\csname #1\FB@CurOpt\endcsname{#2}}
+\FB@addto{extras}{\bbl@frenchspacing}
+\FB@addto{noextras}{\bbl@nonfrenchspacing}
+\newif\ifFB@active@punct \FB@active@puncttrue
+\newif\ifFB@luatex@punct
+\ifFBLuaTeX
+ \ifnum\luatexversion<95
+ \ifx\PackageWarning\@undefined
+ \fb@warning{Please upgrade LuaTeX to version 0.95 or above!\\%
+ frenchb will make high punctuation characters (;:!?) active\\%
+ with LuaTeX < 0.95.}%
+ \else
+ \PackageWarning{french.ldf}{Please upgrade LuaTeX
+ to version 0.95 or above!\MessageBreak
+ frenchb will make high punctuation characters\MessageBreak
+ (;:!?) active with LuaTeX < 0.95;\MessageBreak reported}%
+ \fi
+ \else
+ \FB@luatex@puncttrue\FB@active@punctfalse
+ \fi
+\fi
+\newcount\FB@nonchar
+\newif\ifFB@xetex@punct
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax
+\else
+ \FB@xetex@puncttrue\FB@active@punctfalse
+ \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
+ \FB@nonchar=255 \relax
+ \else
+ \FB@nonchar=4095 \relax
+ \fi
+\fi
+\newcommand*{\FBcolonspace}{\space}
+\newcommand*{\FBthinspace}{\hskip.5\fontdimen2\font \relax}
+\newtoks\FBcolonsp
+\newtoks\FBthinsp
+\newif\ifFB@spacing \FB@spacingtrue
+\newcommand*{\FB@spacing@on}{%
+ \ifFB@luatex@punct
+ \FB@spacing=1 \relax
+ \else
+ \FB@spacingtrue
+ \fi}
+\newcommand*{\FB@spacing@off}{%
+ \ifFB@luatex@punct
+ \FB@spacing=0 \relax
+ \else
+ \FB@spacingfalse
+ \fi}
+\ifFB@luatex@punct
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname newluafunction\endcsname\relax
+ \input ltluatex.tex
+ \fi
+ \newattribute\FB@spacing \FB@spacing=1 \relax
+ \newattribute\FB@addDPspace \FB@addDPspace=1 \relax
+ \newattribute\FB@addGUILspace \FB@addGUILspace=0 \relax
+ \ifLaTeXe
+ \PackageInfo{french.ldf}{No need for active punctuation
+ characters\MessageBreak with this version
+ of LuaTeX!\MessageBreak reported}
+ \else
+ \fb@info{No need for active punctuation characters\\
+ with this version of LuaTeX!}
+ \fi
+\fi
+\ifFB@luatex@punct
+ \newcommand*{\FB@luatex@punct@french}{%
+ \babel@save{\shorthandon}%
+ \babel@save{\shorthandoff}%
+ \def\shorthandoff##1{%
+ \ifx\PackageWarning\@undefined
+ \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with
+ LuaTeX,\\ use \noexpand\NoAutoSpacing
+ *inside a group* instead.}%
+ \else
+ \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is
+ helpless with LuaTeX,\MessageBreak use \protect\NoAutoSpacing
+ \space *inside a group* instead;\MessageBreak reported}%
+ \fi}%
+ \def\shorthandon##1{}%
+ }
+ \FB@addto{extras}{\FB@luatex@punct@french}
+ \def\activate@luatexpunct{%
+ \directlua{%
+ FR = \the\l@french
+ local path = kpse.find_file("frenchb.lua", "lua")
+ if path then
+ local f = dofile(path)
+ luatexbase.add_to_callback("kerning",
+ f, "frenchb.french_punctuation")
+ else
+ texio.write_nl('')
+ texio.write_nl('*****************************')
+ texio.write_nl('Error: frenchb.lua not found.')
+ texio.write_nl('*****************************')
+ texio.write_nl('')
+ end
+ }%
+ }
+\fi
+\ifFB@xetex@punct
+ \ifLaTeXe
+ \PackageInfo{french.ldf}{No need for active punctuation characters%
+ \MessageBreak with this version of XeTeX!%
+ \MessageBreak reported}
+ \else
+ \fb@info{No need for active punctuation characters\\
+ with this version of XeTeX!}
+ \fi
+ \newXeTeXintercharclass\FB@punctthick
+ \newXeTeXintercharclass\FB@punctthin
+ \newXeTeXintercharclass\FB@punctnul
+ \newXeTeXintercharclass\FB@guilo
+ \newXeTeXintercharclass\FB@guilf
+ \newXeTeXintercharclass\FB@guilnul
+ \def\FBsavevariable@loop#1#2{\begingroup
+ \toks@\expandafter{\originalTeX #1}%
+ \edef\x{\endgroup
+ \def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}%
+ \x}
+ \def\FB@charlist{"21,"3A,"3B,"3F,"AB,"BB,"28,"5B,"A0,"202F,%
+ "29,"5D,"7B,"7D,"2C,"2D,"2E,"22,"25,"27,"60,"2019}
+ \newcommand*{\FB@xetex@punct@french}{%
+ \babel@savevariable{\XeTeXinterchartokenstate}%
+ \babel@save{\shorthandon}%
+ \babel@save{\shorthandoff}%
+ \bbl@for\FB@char\FB@charlist
+ {\FBsavevariable@loop{\XeTeXcharclass}{\FB@char}}%
+ \def\shorthandoff##1{%
+ \ifx\PackageWarning\@undefined
+ \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with
+ XeTeX,\\ use \noexpand\NoAutoSpacing
+ *inside a group* instead.}%
+ \else
+ \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is
+ helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing
+ \space *inside a group* instead;\MessageBreak reported}%
+ \fi}%
+ \def\shorthandon##1{}%
+ \XeTeXinterchartokenstate=1
+ \XeTeXcharclass `\: = \FB@punctthick
+ \XeTeXinterchartoks \z@ \FB@punctthick = {%
+ \ifFB@spacing\ifhmode\FDP@colonspace\fi\fi}%
+ \XeTeXinterchartoks \FB@guilf \FB@punctthick = {%
+ \ifFB@spacing\FDP@colonspace\fi}%
+ \XeTeXinterchartoks \FB@nonchar \FB@punctthick = {%
+ \ifFB@spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBcolonspace
+ \else
+ \FDP@colonspace
+ \fi
+ \fi
+ \fi}%
+ \bbl@for\FB@char
+ {`\;,`\!,`\?}%
+ {\XeTeXcharclass\FB@char=\FB@punctthin}%
+ \XeTeXinterchartoks \z@ \FB@punctthin = {%
+ \ifFB@spacing\ifhmode\FDP@thinspace\fi\fi}%
+ \XeTeXinterchartoks \FB@guilf \FB@punctthin = {%
+ \ifFB@spacing\FDP@thinspace\fi}%
+ \XeTeXinterchartoks \FB@nonchar \FB@punctthin = {%
+ \ifFB@spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \fi}%
+ \XeTeXinterchartoks \FB@guilo \z@ = {%
+ \ifFB@spacing\FB@guillspace\fi}%
+ \XeTeXinterchartoks \FB@guilo \FB@nonchar = {%
+ \ifFB@spacing\FB@guillspace\ignorespaces\fi}%
+ \XeTeXinterchartoks \z@ \FB@guilf = {%
+ \ifFB@spacing\FB@guillspace\fi}%
+ \XeTeXinterchartoks \FB@punctthin \FB@guilf = {%
+ \ifFB@spacing\FB@guillspace\fi}%
+ \XeTeXinterchartoks \FB@nonchar \FB@guilf = {%
+ \ifFB@spacing\unskip\FB@guillspace\fi}%
+ \bbl@for\FB@char
+ {`\[,`\(,"A0,"202F}%
+ {\XeTeXcharclass\FB@char=\FB@punctnul}%
+ \bbl@for\FB@char
+ {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}%
+ {\XeTeXcharclass\FB@char=\z@}%
+ }
+ \FB@addto{extras}{\FB@xetex@punct@french}
+\fi
+\ifFB@active@punct
+ \initiate@active@char{:}%
+ \initiate@active@char{;}%
+ \initiate@active@char{!}%
+ \initiate@active@char{?}%
+ \declare@shorthand{french}{;}{%
+ \ifFB@spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \fi
+ \string;}
+ \declare@shorthand{french}{!}{%
+ \ifFB@spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \fi
+ \string!}
+ \declare@shorthand{french}{?}{%
+ \ifFB@spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \fi
+ \string?}
+ \declare@shorthand{french}{:}{%
+ \ifFB@spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBcolonspace
+ \else
+ \FDP@colonspace
+ \fi
+ \fi
+ \fi
+ \string:}
+ \declare@shorthand{system}{:}{\string:}
+ \declare@shorthand{system}{!}{\string!}
+ \declare@shorthand{system}{?}{\string?}
+ \declare@shorthand{system}{;}{\string;}
+ \FB@addto{extras}{\languageshorthands{french}%
+ \bbl@activate{:}\bbl@activate{;}%
+ \bbl@activate{!}\bbl@activate{?}%
+ }
+ \FB@addto{noextras}{%
+ \bbl@deactivate{:}\bbl@deactivate{;}%
+ \bbl@deactivate{!}\bbl@deactivate{?}%
+ }
+\fi
+\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue
+\def\autospace@beforeFDP{%
+ \ifFB@luatex@punct\FB@addDPspace=1 \fi
+ \def\FDP@thinspace{\penalty\@M\FBthinspace}%
+ \def\FDP@colonspace{\penalty\@M\FBcolonspace}}
+\def\noautospace@beforeFDP{%
+ \ifFB@luatex@punct\FB@addDPspace=0 \fi
+ \let\FDP@thinspace\@empty
+ \let\FDP@colonspace\@empty}
+\ifLaTeXe
+ \def\AutoSpaceBeforeFDP{\autospace@beforeFDP
+ \FBAutoSpacePunctuationtrue}
+ \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP
+ \FBAutoSpacePunctuationfalse}
+ \AtEndOfPackage{\AutoSpaceBeforeFDP}
+\else
+ \let\AutoSpaceBeforeFDP\autospace@beforeFDP
+ \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP
+ \AutoSpaceBeforeFDP
+\fi
+\ifLaTeXe
+ \DeclareRobustCommand\ttfamilyFB{\FB@spacing@off \ttfamilyORI}
+ \DeclareRobustCommand\rmfamilyFB{\FB@spacing@on \rmfamilyORI}
+ \DeclareRobustCommand\sffamilyFB{\FB@spacing@on \sffamilyORI}
+\fi
+\DeclareRobustCommand*{\NoAutoSpacing}{%
+ \FB@spacing@off
+ \ifFB@active@punct\shorthandoff{;:!?}\fi
+}
+\ifLaTeXe
+\else
+ \ifFBunicode
+ \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$}}
+ \def\guillemotright{\raise0.25ex
+ \hbox{$\scriptscriptstyle\gg$}}
+ \def\textquotedblleft{``}
+ \def\textquotedblright{''}
+ \fi
+ \let\xspace\relax
+\fi
+\newcommand*{\FBguillspace}{\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.8\fontdimen4\font \relax}
+\newcommand*{\FB@guillspace}{\penalty\@M\FBguillspace}
+\newtoks\FBguillsp
+\ifFB@luatex@punct
+ \DeclareRobustCommand*{\FB@og}{\leavevmode
+ \bgroup\FB@spacing=0 \guillemotleft\egroup
+ \FB@guillspace}
+ \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
+ \FB@guillspace
+ \bgroup\FB@spacing=0 \guillemotright\egroup}
+\fi
+\ifFB@xetex@punct
+ \DeclareRobustCommand*{\FB@og}{\leavevmode
+ \bgroup\FB@spacingfalse\guillemotleft\egroup
+ \FB@guillspace}
+ \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
+ \FB@guillspace
+ \bgroup\FB@spacingfalse\guillemotright\egroup}
+\fi
+\ifFB@active@punct
+ \DeclareRobustCommand*{\FB@og}{\leavevmode
+ \guillemotleft
+ \FB@guillspace}
+ \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
+ \FB@guillspace
+ \guillemotright}
+\fi
+\newcommand*{\og}{\@empty}
+\newcommand*{\fg}{\@empty}
+\ifLaTeXe
+ \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}%
+ \renewcommand*{\fg}{\FB@fg\xspace}}
+ \renewcommand*{\og}{\textquotedblleft}
+ \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi
+ \textquotedblright\xspace}
+\else
+ \def\bbl@frenchguillemets{\let\og\FB@og
+ \let\fg\FB@fg}
+ \def\og{\textquotedblleft}
+ \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}
+\fi
+\FB@addto{extras}{\babel@save\og \babel@save\fg \bbl@frenchguillemets}
+\newcommand*{\ogi}{\FB@og}
+\newcommand*{\fgi}{\FB@fg}
+\newcommand*{\ogii}{\textquotedblleft}
+\newcommand*{\fgii}{\textquotedblright}
+\newcount\FBguill@level
+\newtoks\FB@everypar
+\newif\ifFBcloseguill \FBcloseguilltrue
+\newif\ifFBInnerGuillSingle
+\def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup}
+\def\FBguillclose{\bgroup\NoAutoSpacing\guillemotright\egroup}
+\let\FBguillnone\empty
+\let\FBeveryparguill\FBguillopen
+\let\FBeverylineguill\FBguillnone
+\ifLaTeXe
+ \DeclareRobustCommand\frquote{%
+ \@ifstar{\FBcloseguillfalse\fr@quote}%
+ {\FBcloseguilltrue\fr@quote}}
+\else
+ \newcommand\frquote[1]{\fr@quote{#1}}
+\fi
+\newcommand{\fr@quote}[1]{%
+ \leavevmode
+ \advance\FBguill@level by \@ne
+ \ifcase\FBguill@level
+ \or
+ \FB@everypar=\everypar
+ \ifx\FBeveryparguill\FBguillnone
+ \else
+ \def\FBeverypar@quote{\FBeveryparguill\FB@guillspace}%
+ \everypar=\expandafter{\the\everypar \FBeverypar@quote}%
+ \fi
+ \ogi #1\fgi
+ \or
+ \ifx\FBeverylineguill\FBguillopen
+ \localleftbox{\guillemotleft\FB@guillspace}%
+ \let\FBeverypar@quote\relax
+ \ogi #1\ifFBcloseguill\fgi\fi
+ \else
+ \ifx\FBeverylineguill\FBguillclose
+ \localleftbox{\guillemotright\FB@guillspace}%
+ \let\FBeverypar@quote\relax
+ \ogi #1\ifFBcloseguill\fgi\fi
+ \else
+ \let\FBeverypar@quote\relax
+ \ifFBInnerGuillSingle
+ \def\ogii{\leavevmode
+ \guilsinglleft\FB@guillspace}%
+ \def\fgii{\ifdim\lastskip>\z@\unskip\fi
+ \FB@guillspace\guilsinglright}%
+ \ifx\FBeveryparguill\FBguillopen
+ \def\FBeverypar@quote{\guilsinglleft\FB@guillspace}%
+ \fi
+ \ifx\FBeveryparguill\FBguillclose
+ \def\FBeverypar@quote{\guilsinglright\FB@guillspace}%
+ \fi
+ \fi
+ \ogii #1\ifFBcloseguill \fgii \fi
+ \fi
+ \fi
+ \else
+ \ifx\PackageWarning\@undefined
+ \fb@warning{\noexpand\frquote\space handles up to
+ two levels.\\ Quotation not printed.}%
+ \else
+ \PackageWarning{french.ldf}{%
+ \protect\frquote\space handles up to two levels.
+ \MessageBreak Quotation not printed. Reported}
+ \fi
+ \fi
+ \advance\FBguill@level by \m@ne
+ \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi
+ \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB@everypar\fi
+}
+\ifLaTeXe
+ \def\BabelLanguages{french,acadian}
+ \StartBabelCommands*{\BabelLanguages}{date}
+ [unicode, fontenc=EU1 EU2, charset=utf8]
+ \SetString\monthiiname{février}
+ \SetString\monthviiiname{août}
+ \SetString\monthxiiname{décembre}
+ \StartBabelCommands*{\BabelLanguages}{date}
+ \SetStringLoop{month#1name}{%
+ janvier,f\'evrier,mars,avril,mai,juin,juillet,%
+ ao\^ut,septembre,octobre,novembre,d\'ecembre}
+ \SetString\today{{\number\day}\ifnum1=\day {\ier}\fi\space
+ \csname month\romannumeral\month name\endcsname \space
+ \number\year
+ }
+ \EndBabelCommands
+\else
+ \ifFBunicode
+ \@namedef{date\CurrentOption}{%
+ \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space
+ \ifcase\month
+ \or janvier\or février\or mars\or avril\or mai\or
+ juin\or juillet\or août\or septembre\or
+ octobre\or novembre\or décembre\fi
+ \space \number\year}}
+ \else
+ \@namedef{date\CurrentOption}{%
+ \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space
+ \ifcase\month
+ \or janvier\or f\'evrier\or mars\or avril\or mai\or
+ juin\or juillet\or ao\^ut\or septembre\or
+ octobre\or novembre\or d\'ecembre\fi
+ \space \number\year}}
+ \fi
+\fi
+\newif\ifFB@poorman
+\newdimen\FB@Mht
+\ifLaTeXe
+ \AtEndOfPackage{\RequirePackage{scalefnt}}
+ \newcommand*{\FBsupR}{-0.12}
+ \newcommand*{\FBsupS}{0.65}
+ \newcommand*{\FB@lc}[1]{\MakeLowercase{#1}}
+ \DeclareRobustCommand*{\FB@up@fake}[1]{%
+ \settoheight{\FB@Mht}{M}%
+ \addtolength{\FB@Mht}{\FBsupR \FB@Mht}%
+ \addtolength{\FB@Mht}{-\FBsupS ex}%
+ \raisebox{\FB@Mht}{\scalefont{\FBsupS}{\FB@lc{#1}}}%
+ }
+ \def\FB@split#1#2#3#4\@nil{\def\FB@firstthree{#1#2#3}%
+ \def\FB@suffix{#4}}
+ \def\FB@x{x}
+ \def\FB@j{j}
+ \DeclareRobustCommand*{\FB@up}[1]{%
+ \bgroup \FB@poormantrue
+ \expandafter\FB@split\f@family\@nil
+ \edef\reserved@a{\lowercase{%
+ \noexpand\IfFileExists{\f@encoding\FB@firstthree -sup.fd}}}%
+ \reserved@a
+ {\ifx\FB@suffix\FB@x \FB@poormanfalse\fi
+ \ifx\FB@suffix\FB@j \FB@poormanfalse\fi
+ \ifFB@poorman \FB@up@fake{#1}%
+ \else \FB@up@real{#1}%
+ \fi}%
+ {\FB@up@fake{#1}}%
+ \egroup}
+ \newcommand*{\FB@up@real}[1]{\bgroup
+ \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup}
+ \DeclareRobustCommand*{\fup}[1]{%
+ \ifx\realsuperscript\@undefined
+ \FB@up{#1}%
+ \else
+ \bgroup\let\fakesuperscript\FB@up@fake
+ \realsuperscript{\FB@lc{#1}}\egroup
+ \fi}
+ \providecommand*{\up}{\relax}
+\else
+ \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}}
+\fi
+\def\ieme{\up{e}\xspace}
+\def\iemes{\up{es}\xspace}
+\def\ier{\up{er}\xspace}
+\def\iers{\up{ers}\xspace}
+\def\iere{\up{re}\xspace}
+\def\ieres{\up{res}\xspace}
+\newcommand*{\FrenchEnumerate}[1]{%
+ #1\up{o}\kern+.3em}
+\newcommand*{\FrenchPopularEnumerate}[1]{%
+ #1\up{o})\kern+.3em}
+\def\primo{\FrenchEnumerate1}
+\def\secundo{\FrenchEnumerate2}
+\def\tertio{\FrenchEnumerate3}
+\def\quarto{\FrenchEnumerate4}
+\def\fprimo){\FrenchPopularEnumerate1}
+\def\fsecundo){\FrenchPopularEnumerate2}
+\def\ftertio){\FrenchPopularEnumerate3}
+\def\fquarto){\FrenchPopularEnumerate4}
+\DeclareRobustCommand*{\No}{N\up{o}\kern+.2em}
+\DeclareRobustCommand*{\no}{n\up{o}\kern+.2em}
+\DeclareRobustCommand*{\Nos}{N\up{os}\kern+.2em}
+\DeclareRobustCommand*{\nos}{n\up{os}\kern+.2em}
+\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt
+ \scshape #1\endgroup}
+\ifLaTeXe\else\let\scshape\relax\fi
+\ifFBunicode
+ \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}
+ \DeclareTextSymbol{\circonflexe}{T1}{94}
+ \DeclareTextSymbol{\tild}{T1}{126}
+ \DeclareTextSymbolDefault{\at}{T1}
+ \DeclareTextSymbolDefault{\circonflexe}{T1}
+ \DeclareTextSymbolDefault{\tild}{T1}
+ \DeclareRobustCommand*{\boi}{\textbackslash}
+ \DeclareRobustCommand*{\degre}{\r{}}
+ \else
+ \def\T@one{T1}
+ \ifx\f@encoding\T@one
+ \newcommand*{\degre}{{\char6}}
+ \else
+ \newcommand*{\degre}{{\char23}}
+ \fi
+ \newcommand*{\at}{{\char64}}
+ \newcommand*{\circonflexe}{{\char94}}
+ \newcommand*{\tild}{{\char126}}
+ \newcommand*{\boi}{$\backslash$}
+ \fi
+\fi
+\ifLaTeXe
+ \newcommand*{\degres}{\degre}
+ \ifFBunicode
+ \DeclareRobustCommand*{\degres}{\degre}
+ \else
+ \def\Warning@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@degree@TSone
+ \global\let\Warning@degree@TSone\relax}%
+ \else
+ \DeclareRobustCommand*{\degres}{%
+ \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
+ \fi
+ }
+ \fi
+\else
+ \newcommand*{\degres}{%
+ \leavevmode\hbox to 0.3em{\hss\degre\hss}}
+\fi
+\newif\ifFB@icomma
+\newcount\mc@charclass
+\newcount\mc@charfam
+\newcount\mc@charslot
+\newcount\std@mcc
+\newcount\dec@mcc
+\ifFBLuaTeX
+ \mc@charclass=\Umathcharclass`\,
+ \newcommand*{\dec@math@comma}{%
+ \mc@charfam=\Umathcharfam`\,
+ \mc@charslot=\Umathcharslot`\,
+ \Umathcode`\,= 0 \mc@charfam \mc@charslot
+ }
+ \newcommand*{\std@math@comma}{%
+ \mc@charfam=\Umathcharfam`\,
+ \mc@charslot=\Umathcharslot`\,
+ \Umathcode`\,= \mc@charclass \mc@charfam \mc@charslot
+ }
+\else
+ \std@mcc=\mathcode`\,
+ \dec@mcc=\std@mcc
+ \@tempcnta=\std@mcc
+ \divide\@tempcnta by "1000
+ \multiply\@tempcnta by "1000
+ \advance\dec@mcc by -\@tempcnta
+ \newcommand*{\dec@math@comma}{\mathcode`\,=\dec@mcc}
+ \newcommand*{\std@math@comma}{\mathcode`\,=\std@mcc}
+\fi
+\newcommand*{\DecimalMathComma}{%
+ \ifFBfrench\dec@math@comma\fi
+ \ifFB@icomma\else\FB@addto{extras}{\dec@math@comma}\fi
+}
+\newcommand*{\StandardMathComma}{%
+ \std@math@comma
+ \ifFB@icomma\else\FB@addto{extras}{\std@math@comma}\fi
+}
+\ifLaTeXe
+ \AtBeginDocument{\@ifpackageloaded{icomma}%
+ {\FB@icommatrue}%
+ {\FB@addto{noextras}{\std@math@comma}}%
+ }
+\else
+ \FB@addto{noextras}{\std@math@comma}
+\fi
+\newcommand*{\nombre}[1]{{#1}\fb@warning{*** \noexpand\nombre
+ no longer formats numbers\string! ***}}
+\let\FBstop@here\relax
+\def\FBclean@on@exit{\let\ifLaTeXe\undefined
+ \let\LaTeXetrue\undefined
+ \let\LaTeXefalse\undefined}
+\ifx\magnification\@undefined
+\else
+ \def\FBstop@here{\ifFB@luatex@punct
+ \activate@luatexpunct
+ \fi
+ \FBclean@on@exit
+ \ldf@quit\CurrentOption\endinput}
+\fi
+\FBstop@here
+\renewcommand*{\nombre}[1]{\Warning@nombre{#1}}
+\newcommand*{\Warning@nombre}[1]{%
+ \ifdefined\numprint
+ \numprint{#1}%
+ \else
+ \PackageWarning{french.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@nombre\relax
+ {#1}%
+ \fi
+}
+\ifx\FBfigtabshape\@undefined \let\FBfigtabshape\scshape \fi
+\StartBabelCommands*{\BabelLanguages}{captions}
+ [unicode, fontenc=EU1 EU2 TU, charset=utf8]
+ \SetString{\refname}{Références}
+ \SetString{\abstractname}{Résumé}
+ \SetString{\prefacename}{Préface}
+ \SetString{\contentsname}{Table des matières}
+ \SetString{\ccname}{Copie à }
+ \SetString{\proofname}{Démonstration}
+ \SetString{\partfirst}{Première}
+ \SetString{\partsecond}{Deuxième}
+ \SetStringLoop{ordinal#1}{%
+ \frenchpartfirst,\frenchpartsecond,Troisième,Quatrième,%
+ Cinquième,Sixième,Septième,Huitième,Neuvième,Dixième,Onzième,%
+ Douzième,Treizième,Quatorzième,Quinzième,Seizième,%
+ Dix-septième,Dix-huitième,Dix-neuvième,Vingtième}
+\StartBabelCommands*{\BabelLanguages}{captions}
+ \SetString{\refname}{R\'ef\'erences}
+ \SetString{\abstractname}{R\'esum\'e}
+ \SetString{\bibname}{Bibliographie}
+ \SetString{\prefacename}{Pr\'eface}
+ \SetString{\chaptername}{Chapitre}
+ \SetString{\appendixname}{Annexe}
+ \SetString{\contentsname}{Table des mati\`eres}
+ \SetString{\listfigurename}{Table des figures}
+ \SetString{\listtablename}{Liste des tableaux}
+ \SetString{\indexname}{Index}
+ \SetString{\figurename}{{\FBfigtabshape Figure}}
+ \SetString{\tablename}{{\FBfigtabshape Table}}
+ \SetString{\pagename}{page}
+ \SetString{\seename}{voir}
+ \SetString{\alsoname}{voir aussi}
+ \SetString{\enclname}{P.~J. }
+ \SetString{\ccname}{Copie \`a }
+ \SetString{\headtoname}{}
+ \SetString{\proofname}{D\'emonstration}
+ \SetString{\glossaryname}{Glossaire}
+ \SetString{\partfirst}{Premi\`ere}
+ \SetString{\partsecond}{Deuxi\`eme}
+ \SetString{\partnameord}{partie}
+ \SetStringLoop{ordinal#1}{%
+ \frenchpartfirst,\frenchpartsecond,Troisi\`eme,Quatri\`eme,%
+ Cinqui\`eme,Sixi\`eme,Septi\`eme,Huiti\`eme,Neuvi\`eme,Dixi\`eme,%
+ Onzi\`eme,Douzi\`eme,Treizi\`eme,Quatorzi\`eme,Quinzi\`eme,%
+ Seizi\`eme,Dix-septi\`eme,Dix-huiti\`eme,Dix-neuvi\`eme,%
+ Vingti\`eme}
+ \AfterBabelCommands{%
+ \DeclareRobustCommand*{\FB@emptypart}{\def\thepart{}}%
+ \DeclareRobustCommand*{\FB@partname}{%
+ \ifFBPartNameFull
+ \csname ordinal\romannumeral\value{part}\endcsname\space
+ \frenchpartnameord\FB@emptypart
+ \else
+ Partie%
+ \fi}%
+ }
+ \SetString{\partname}{\FB@partname}
+\EndBabelCommands
+\AtEndOfPackage{%
+ \ifFB@koma
+ \ifdefined\partformat
+ \FB@addto{captions}{%
+ \ifFBPartNameFull
+ \babel@save\partformat
+ \renewcommand*{\partformat}{\partname}%
+ \fi}%
+ \fi
+ \fi
+}
+\bgroup
+ \catcode`:=12 \catcode`>=12 \relax
+ \long\gdef\STD@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\egroup
+\newif\if@FBwarning@capsep
+\@FBwarning@capseptrue
+\newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}}
+\newcommand*{\CaptionSeparator}{\space\textendash\space}
+\def\FBCaption@Separator{: }
+\long\def\FB@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1\FBCaption@Separator #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1\FBCaption@Separator #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\@ifclassloaded{amsart}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{amsbook}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{amsdtx}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{amsldoc}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{amproc}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{smfart}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{smfbook}{\@FBwarning@capsepfalse}{}
+\ifFB@active@punct\else\@FBwarning@capsepfalse\fi
+\newif\ifFB@koma
+\@ifclassloaded{memoir}{\@FBwarning@capsepfalse}{}
+\@ifclassloaded{scrartcl}{\@FBwarning@capsepfalse\FB@komatrue}{}
+\@ifclassloaded{scrbook}{\@FBwarning@capsepfalse\FB@komatrue}{}
+\@ifclassloaded{scrreprt}{\@FBwarning@capsepfalse\FB@komatrue}{}
+\@ifclassloaded{beamer}{\@FBwarning@capsepfalse}{}
+\ifdefined\@makecaption\else\@FBwarning@capsepfalse\fi
+\@ifpackageloaded{caption}
+ {\FBWarning{Please load the "caption" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ \@FBwarning@capsepfalse}%
+ {}
+\@ifpackageloaded{subcaption}
+ {\FBWarning{Please load the "subcaption" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ \@FBwarning@capsepfalse}%
+ {}
+\@ifpackageloaded{floatrow}
+ {\FBWarning{Please load the "floatrow" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ \@FBwarning@capsepfalse}%
+ {}
+\AtBeginDocument{%
+ \ifx\@makecaption\STD@makecaption
+ \global\let\@makecaption\FB@makecaption
+ \ifFBOldFigTabCaptions
+ \else
+ \def\FBCaption@Separator{{\autospace@beforeFDP : }}%
+ \fi
+ \ifFBCustomiseFigTabCaptions
+ \ifx\bbl@main@language\FB@french
+ \def\FBCaption@Separator{\CaptionSeparator}%
+ \fi
+ \fi
+ \@FBwarning@capsepfalse
+ \fi
+ \if@FBwarning@capsep
+ \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
+ reported}%
+ \fi
+ \let\FB@makecaption\relax
+ \let\STD@makecaption\relax
+}
+\ifFBunicode
+ \let\FBtextellipsis\textellipsis
+\else
+ \DeclareTextSymbol{\FBtextellipsis}{LY1}{133}
+ \DeclareTextCommandDefault{\FBtextellipsis}{%
+ .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace}
+\fi
+\newcommand*{\Tdots@}{\@xp\textellipsis}
+\newcommand*{\Mdots@}{\@xp\mdots@}
+\AtBeginDocument{\DeclareRobustCommand*{\dots}{\relax
+ \csname\ifmmode M\else T\fi dots@\endcsname}%
+ \ifdefined\@xp\else\let\@xp\relax\fi
+ \ifdefined\mdots@\else\let\Mdots@\mathellipsis\fi
+ }
+\def\bbl@frenchdots{\babel@save\Tdots@ \let\Tdots@\FBtextellipsis}
+\FB@addto{extras}{\bbl@frenchdots}
+\ifFB@active@punct
+ \@ifpackageloaded{listings}
+ {\FBWarning{Please load the "listings" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ }{}
+\fi
+\newif\if@FBwarning@natbib
+\ifFB@active@punct
+ \@ifpackageloaded{natbib}{}{\@FBwarning@natbibtrue}
+\fi
+\AtBeginDocument{%
+ \if@FBwarning@natbib
+ \@ifpackageloaded{natbib}{}{\@FBwarning@natbibfalse}%
+ \fi
+ \if@FBwarning@natbib
+ \FBWarning{Please load the "natbib" package\MessageBreak
+ BEFORE babel/frenchb; reported}%
+ \fi
+}
+\newif\if@FBwarning@beamerarticle
+\@ifpackageloaded{beamerarticle}{}{\@FBwarning@beamerarticletrue}
+\AtBeginDocument{%
+ \if@FBwarning@beamerarticle
+ \@ifpackageloaded{beamerarticle}{}%
+ {\@FBwarning@beamerarticlefalse}%
+ \fi
+ \if@FBwarning@beamerarticle
+ \FBWarning{Please load the "beamerarticle" package\MessageBreak
+ BEFORE babel/frenchb; reported}%
+ \fi
+}
+\newcommand*{\frenchsetup}[1]{%
+ \setkeys{FB}{#1}%
+}%
+\@onlypreamble\frenchsetup
+\let\frenchbsetup\frenchsetup
+\@onlypreamble\frenchbsetup
+\newif\ifFBShowOptions \FBShowOptionsfalse
+\newif\ifFBStandardLayout \FBStandardLayouttrue
+\newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchtrue
+\newif\ifFBReduceListSpacing \FBReduceListSpacingfalse
+\newif\ifFBListOldLayout \FBListOldLayoutfalse
+\newif\ifFBCompactItemize \FBCompactItemizefalse
+\newif\ifFBStandardItemizeEnv \FBStandardItemizeEnvtrue
+\newif\ifFBStandardEnumerateEnv \FBStandardEnumerateEnvtrue
+\newif\ifFBStandardItemLabels \FBStandardItemLabelstrue
+\newif\ifFBStandardLists \FBStandardListstrue
+\newif\ifFBIndentFirst \FBIndentFirstfalse
+\newif\ifFBFrenchFootnotes \FBFrenchFootnotesfalse
+\newif\ifFBAutoSpaceFootnotes \FBAutoSpaceFootnotesfalse
+\newif\ifFBOriginalTypewriter \FBOriginalTypewriterfalse
+\newif\ifFBThinColonSpace \FBThinColonSpacefalse
+\newif\ifFBThinSpaceInFrenchNumbers \FBThinSpaceInFrenchNumbersfalse
+\newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue
+\newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue
+\newif\ifFBPartNameFull \FBPartNameFulltrue
+\newif\ifFBCustomiseFigTabCaptions \FBCustomiseFigTabCaptionsfalse
+\newif\ifFBOldFigTabCaptions \FBOldFigTabCaptionsfalse
+\newif\ifFBSmallCapsFigTabCaptions \FBSmallCapsFigTabCaptionstrue
+\newif\ifFBSuppressWarning \FBSuppressWarningfalse
+\newif\ifFBINGuillSpace \FBINGuillSpacefalse
+\edef\FB@french{\CurrentOption}
+\AtEndOfPackage{%
+ \ifx\bbl@main@language\FB@french
+ \FBGlobalLayoutFrenchtrue
+ \@ifclassloaded{beamer}%
+ {\PackageInfo{french.ldf}{%
+ No list customisation for the beamer class,%
+ \MessageBreak reported}}%
+ {\@ifpackageloaded{beamerarticle}%
+ {\FBStandardItemLabelsfalse
+ \FBReduceListSpacingtrue
+ \PackageInfo{french.ldf}{%
+ Minimal list customisation for the beamerarticle%
+ \MessageBreak package; reported}}%
+ {\FBReduceListSpacingtrue
+ \FBStandardItemizeEnvfalse
+ \FBStandardEnumerateEnvfalse
+ \FBStandardItemLabelsfalse}%
+ }
+ \FBIndentFirsttrue
+ \FBFrenchFootnotestrue
+ \FBAutoSpaceFootnotestrue
+ \FBCustomiseFigTabCaptionstrue
+ \else
+ \FBGlobalLayoutFrenchfalse
+ \fi
+ \RequirePackage{keyval}%
+ \define@key{FB}{ShowOptions}[true]%
+ {\csname FBShowOptions#1\endcsname}%
+ \define@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}%
+ \define@key{FB}{GlobalLayoutFrench}[true]%
+ {\csname FBGlobalLayoutFrench#1\endcsname
+ \ifFBGlobalLayoutFrench
+ \ifx\bbl@main@language\FB@french
+ \else
+ \FBGlobalLayoutFrenchfalse
+ \PackageWarning{french.ldf}%
+ {Option `GlobalLayoutFrench' skipped:\MessageBreak
+ French is *not* babel's last option.\MessageBreak
+ Reported}%
+ \fi
+ \fi}%
+ \define@key{FB}{ReduceListSpacing}[true]%
+ {\csname FBReduceListSpacing#1\endcsname}%
+ \define@key{FB}{ListOldLayout}[true]%
+ {\csname FBListOldLayout#1\endcsname
+ \ifFBListOldLayout
+ \FBStandardEnumerateEnvtrue
+ \renewcommand*{\FrenchLabelItem}{\textendash}%
+ \fi}%
+ \define@key{FB}{CompactItemize}[true]%
+ {\csname FBCompactItemize#1\endcsname
+ \ifFBCompactItemize
+ \FBStandardItemizeEnvfalse
+ \FBStandardEnumerateEnvfalse
+ \else
+ \FBStandardItemizeEnvtrue
+ \FBStandardEnumerateEnvtrue
+ \fi}%
+ \define@key{FB}{StandardItemizeEnv}[true]%
+ {\csname FBStandardItemizeEnv#1\endcsname}%
+ \define@key{FB}{StandardEnumerateEnv}[true]%
+ {\csname FBStandardEnumerateEnv#1\endcsname}%
+ \define@key{FB}{StandardItemLabels}[true]%
+ {\csname FBStandardItemLabels#1\endcsname}%
+ \define@key{FB}{ItemLabels}%
+ {\renewcommand*{\FrenchLabelItem}{#1}}%
+ \define@key{FB}{ItemLabeli}%
+ {\renewcommand*{\Frlabelitemi}{#1}}%
+ \define@key{FB}{ItemLabelii}%
+ {\renewcommand*{\Frlabelitemii}{#1}}%
+ \define@key{FB}{ItemLabeliii}%
+ {\renewcommand*{\Frlabelitemiii}{#1}}%
+ \define@key{FB}{ItemLabeliv}%
+ {\renewcommand*{\Frlabelitemiv}{#1}}%
+ \define@key{FB}{StandardLists}[true]%
+ {\csname FBStandardLists#1\endcsname
+ \ifFBStandardLists
+ \FBReduceListSpacingfalse
+ \FBCompactItemizefalse
+ \FBStandardItemizeEnvtrue
+ \FBStandardEnumerateEnvtrue
+ \FBStandardItemLabelstrue
+ \else
+ \FBReduceListSpacingtrue
+ \FBCompactItemizetrue
+ \FBStandardItemizeEnvfalse
+ \FBStandardEnumerateEnvfalse
+ \FBStandardItemLabelsfalse
+ \fi}%
+ \define@key{FB}{IndentFirst}[true]%
+ {\csname FBIndentFirst#1\endcsname}%
+ \define@key{FB}{FrenchFootnotes}[true]%
+ {\csname FBFrenchFootnotes#1\endcsname}%
+ \define@key{FB}{AutoSpaceFootnotes}[true]%
+ {\csname FBAutoSpaceFootnotes#1\endcsname}%
+ \define@key{FB}{AutoSpacePunctuation}[true]%
+ {\csname FBAutoSpacePunctuation#1\endcsname}%
+ \define@key{FB}{OriginalTypewriter}[true]%
+ {\csname FBOriginalTypewriter#1\endcsname}%
+ \define@key{FB}{ThinColonSpace}[true]%
+ {\csname FBThinColonSpace#1\endcsname
+ \ifFBThinColonSpace
+ \renewcommand*{\FBcolonspace}{\FBthinspace}%
+ \fi}%
+ \define@key{FB}{ThinSpaceInFrenchNumbers}[true]%
+ {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
+ \define@key{FB}{FrenchSuperscripts}[true]%
+ {\csname FBFrenchSuperscripts#1\endcsname}
+ \define@key{FB}{LowercaseSuperscripts}[true]%
+ {\csname FBLowercaseSuperscripts#1\endcsname}
+ \define@key{FB}{PartNameFull}[true]%
+ {\csname FBPartNameFull#1\endcsname}%
+ \define@key{FB}{CustomiseFigTabCaptions}[true]%
+ {\csname FBCustomiseFigTabCaptions#1\endcsname}%
+ \define@key{FB}{OldFigTabCaptions}[true]%
+ {\csname FBOldFigTabCaptions#1\endcsname
+ \ifFBOldFigTabCaptions
+ \FB@addto{extras}{\babel@save\FBCaption@Separator
+ \def\FBCaption@Separator{\CaptionSeparator}}%
+ \fi}%
+ \define@key{FB}{SmallCapsFigTabCaptions}[true]%
+ {\csname FBSmallCapsFigTabCaptions#1\endcsname
+ \ifFBSmallCapsFigTabCaptions
+ \let\FBfigtabshape\scshape
+ \else
+ \let\FBfigtabshape\relax
+ \fi}%
+ \define@key{FB}{SuppressWarning}[true]%
+ {\csname FBSuppressWarning#1\endcsname
+ \ifFBSuppressWarning
+ \renewcommand{\FBWarning}[1]{}%
+ \fi}%
+ \define@key{FB}{INGuillSpace}[true]%
+ {\csname FBINGuillSpace#1\endcsname
+ \ifFBINGuillSpace
+ \renewcommand*{\FBguillspace}{\space}%
+ \fi}%
+ \define@key{FB}{InnerGuillSingle}[true]%
+ {\csname FBInnerGuillSingle#1\endcsname}%
+ \define@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{french.ldf}%
+ {Wrong value for `EveryParGuill':
+ try `open',\MessageBreak
+ `close' or `none'. Reported}%
+ \fi
+ \fi
+ \fi}%
+ \define@key{FB}{EveryLineGuill}[open]%
+ {\ifFB@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@key{FB}{og}%
+ {\ifFBunicode
+ \ifFB@luatex@punct
+ \FB@addGUILspace=1 \relax
+ \fi
+ \ifFB@xetex@punct
+ \XeTeXcharclass"13 = \FB@guilo
+ \XeTeXcharclass"AB = \FB@guilo
+ \XeTeXcharclass"A0 = \FB@guilnul
+ \XeTeXcharclass"202F = \FB@guilnul
+ \fi
+ \ifFB@active@punct
+ \PackageWarning{french.ldf}%
+ {Option og=« not supported with this version
+ of\MessageBreak LuaTeX/XeTeX; reported}%
+ \fi
+ \else
+ \newcommand*{\FB@@og}{%
+ \ifFBfrench
+ \ifFB@spacing\FB@og\ignorespaces
+ \else\guillemotleft
+ \fi
+ \else\guillemotleft\fi}%
+ \AtBeginDocument{%
+ \ifdefined\DeclareInputText
+ \ifdefined\uc@dclc
+ \uc@dclc{171}{default}{\FB@@og}%
+ \else
+ \ifdefined\DeclareUnicodeCharacter
+ \DeclareUnicodeCharacter{00AB}{\FB@@og}%
+ \else
+ \@tempcnta`#1\relax
+ \ifdefined\mule@def
+ \mule@def{11}{\FB@@og}%
+ \else
+ \DeclareInputText{\the\@tempcnta}{\FB@@og}%
+ \fi
+ \fi
+ \fi
+ \else
+ \PackageWarning{french.ldf}%
+ {Option `og' requires package inputenc;%
+ \MessageBreak reported}%
+ \fi
+ }%
+ \fi
+ }%
+ \define@key{FB}{fg}%
+ {\ifFBunicode
+ \ifFB@luatex@punct
+ \FB@addGUILspace=1 \relax
+ \fi
+ \ifFB@xetex@punct
+ \XeTeXcharclass"14 = \FB@guilf
+ \XeTeXcharclass"BB = \FB@guilf
+ \XeTeXcharclass"A0 = \FB@guilnul
+ \XeTeXcharclass"202F = \FB@guilnul
+ \fi
+ \ifFB@active@punct
+ \PackageWarning{french.ldf}%
+ {Option fg=» not supported with this version
+ of\MessageBreak LuaTeX/XeTeX; reported}%
+ \fi
+ \else
+ \newcommand*{\FB@@fg}{%
+ \ifFBfrench
+ \ifFB@spacing\FB@fg
+ \else\guillemotright
+ \fi
+ \else\guillemotright\fi}%
+ \AtBeginDocument{%
+ \ifdefined\DeclareInputText
+ \ifdefined\uc@dclc
+ \uc@dclc{187}{default}{\FB@@fg}%
+ \else
+ \ifdefined\DeclareUnicodeCharacter
+ \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
+ \else
+ \@tempcnta`#1\relax
+ \ifdefined\mule@def
+ \mule@def{27}{{\FB@@fg}}%
+ \else
+ \DeclareInputText{\the\@tempcnta}{\FB@@fg}%
+ \fi
+ \fi
+ \fi
+ \else
+ \PackageWarning{french.ldf}%
+ {Option `fg' requires package inputenc;%
+ \MessageBreak reported}%
+ \fi
+ }%
+ \fi
+ }%
+}
+\newcommand*{\FBprocess@options}{%
+ \@ifpackageloaded{enumitem}{%
+ \ifFBStandardItemizeEnv
+ \else
+ \FBStandardItemizeEnvtrue
+ \PackageInfo{french.ldf}%
+ {Setting StandardItemizeEnv=true for\MessageBreak
+ compatibility with enumitem package,\MessageBreak
+ reported}%
+ \fi
+ \ifFBStandardEnumerateEnv
+ \else
+ \FBStandardEnumerateEnvtrue
+ \PackageInfo{french.ldf}%
+ {Setting StandardEnumerateEnv=true for\MessageBreak
+ compatibility with enumitem package,\MessageBreak
+ reported}%
+ \fi}{}%
+ \@ifpackageloaded{paralist}{%
+ \ifFBStandardItemizeEnv
+ \else
+ \FBStandardItemizeEnvtrue
+ \PackageInfo{french.ldf}%
+ {Setting StandardItemizeEnv=true for\MessageBreak
+ compatibility with paralist package,\MessageBreak
+ reported}%
+ \fi
+ \ifFBStandardEnumerateEnv
+ \else
+ \FBStandardEnumerateEnvtrue
+ \PackageInfo{french.ldf}%
+ {Setting StandardEnumerateEnv=true for\MessageBreak
+ compatibility with paralist package,\MessageBreak
+ reported}%
+ \fi}{}%
+ \@ifpackageloaded{enumerate}{%
+ \ifFBStandardEnumerateEnv
+ \else
+ \FBStandardEnumerateEnvtrue
+ \PackageInfo{french.ldf}%
+ {Setting StandardEnumerateEnv=true for\MessageBreak
+ compatibility with enumerate package,\MessageBreak
+ reported}%
+ \fi}{}%
+ \def\FB@ufl{\update@frenchlists}
+ \ifx\bbl@main@language\FB@french
+ \update@frenchlists
+ \fi
+ \ifFBAutoSpacePunctuation
+ \autospace@beforeFDP
+ \else
+ \noautospace@beforeFDP
+ \fi
+ \ifFBOriginalTypewriter
+ \else
+ \let\ttfamilyORI\ttfamily
+ \let\rmfamilyORI\rmfamily
+ \let\sffamilyORI\sffamily
+ \let\ttfamily\ttfamilyFB
+ \let\rmfamily\rmfamilyFB
+ \let\sffamily\sffamilyFB
+ \fi
+ \@ifpackageloaded{numprint}%
+ {\ifnprt@autolanguage
+ \providecommand*{\npstylefrench}{}%
+ \ifFBThinSpaceInFrenchNumbers
+ \renewcommand*\npstylefrench{%
+ \npthousandsep{\,}%
+ \npdecimalsign{,}%
+ \npproductsign{\cdot}%
+ \npunitseparator{\,}%
+ \npdegreeseparator{}%
+ \nppercentseparator{\nprt@unitsep}%
+ }%
+ \else
+ \renewcommand*\npstylefrench{%
+ \npthousandsep{~}%
+ \npdecimalsign{,}%
+ \npproductsign{\cdot}%
+ \npunitseparator{\,}%
+ \npdegreeseparator{}%
+ \nppercentseparator{\nprt@unitsep}%
+ }%
+ \fi
+ \npaddtolanguage{french}{french}%
+ \fi}{}%
+ \ifFBFrenchSuperscripts
+ \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}{\fup}}%
+ \else
+ \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}%
+ {\textsuperscript}}%
+ \fi
+ \ifFBLowercaseSuperscripts
+ \else
+ \renewcommand*{\FB@lc}[1]{##1}%
+ \fi
+ \ifFBCustomiseFigTabCaptions
+ \ifFB@koma
+ \renewcommand*{\captionformat}{\CaptionSeparator}%
+ \fi
+ \@ifclassloaded{memoir}%
+ {\captiondelim{\CaptionSeparator}}{}%
+ \@ifclassloaded{beamer}%
+ {\defbeamertemplate{caption label separator}{FBcustom}{%
+ \CaptionSeparator}%
+ \setbeamertemplate{caption label separator}[FBcustom]}{}%
+ \else
+ \ifFB@koma
+ \renewcommand*{\captionformat}{{\autospace@beforeFDP : }}%
+ \fi
+ \@ifclassloaded{memoir}%
+ {\captiondelim{{\autospace@beforeFDP : }}%
+ }{}%
+ \@ifclassloaded{beamer}%
+ {\defbeamertemplate{caption label separator}{FBcolon}{%
+ {\autospace@beforeFDP : }}%
+ \setbeamertemplate{caption label separator}[FBcolon]%
+ }{}%
+ \fi
+ \ifFBShowOptions
+ \GenericWarning{* }{%
+ * **** List of possible options for frenchb ****\MessageBreak
+ [Default values between brackets when frenchb is loaded *LAST*]%
+ \MessageBreak
+ ShowOptions=true [false]\MessageBreak
+ StandardLayout=true [false]\MessageBreak
+ GlobalLayoutFrench=false [true]\MessageBreak
+ StandardLists=true [false]\MessageBreak
+ IndentFirst=false [true]\MessageBreak
+ ReduceListSpacing=false [true]\MessageBreak
+ ListOldLayout=true [false]\MessageBreak
+ StandardItemizeEnv=true [false]\MessageBreak
+ StandardEnumerateEnv=true [false]\MessageBreak
+ StandardItemLabels=true [false]\MessageBreak
+ ItemLabels=\textemdash, \textbullet,
+ \protect\ding{43},... [\textendash]\MessageBreak
+ ItemLabeli=\textemdash, \textbullet,
+ \protect\ding{43},... [\textendash]\MessageBreak
+ ItemLabelii=\textemdash, \textbullet,
+ \protect\ding{43},... [\textendash]\MessageBreak
+ ItemLabeliii=\textemdash, \textbullet,
+ \protect\ding{43},... [\textendash]\MessageBreak
+ ItemLabeliv=\textemdash, \textbullet,
+ \protect\ding{43},... [\textendash]\MessageBreak
+ FrenchFootnotes=false [true]\MessageBreak
+ AutoSpaceFootnotes=false [true]\MessageBreak
+ AutoSpacePunctuation=false [true]\MessageBreak
+ OriginalTypewriter=true [false]\MessageBreak
+ ThinColonSpace=true [false]\MessageBreak
+ ThinSpaceInFrenchNumbers=true [false]\MessageBreak
+ FrenchSuperscripts=false [true]\MessageBreak
+ LowercaseSuperscripts=false [true]\MessageBreak
+ PartNameFull=false [true]\MessageBreak
+ SuppressWarning=true [false]\MessageBreak
+ CustomiseFigTabCaptions=false [true]\MessageBreak
+ OldFigTabCaptions=true [false]\MessageBreak
+ SmallCapsFigTabCaptions=false [true]\MessageBreak
+ INGuillSpace=true [false]\MessageBreak
+ InnerGuillSingle=true [false]\MessageBreak
+ EveryParGuill=open, close, none [open]\MessageBreak
+ EveryLineGuill=open, close, none
+ [open in LuaTeX, none otherwise]\MessageBreak
+ og= <left quote character>, fg= <right quote character>%
+ \MessageBreak
+ *********************************************%
+ \MessageBreak\protect\frenchsetup{ShowOptions}}
+ \fi
+}
+\AtBeginDocument{%
+ \providecommand*{\xspace}{\relax}%
+ \ifdefined\pdfstringdefDisableCommands
+ \pdfstringdefDisableCommands{%
+ \let\up\relax
+ \let\fup\relax
+ \let\degre\textdegree
+ \let\degres\textdegree
+ \def\ieme{e\xspace}%
+ \def\iemes{es\xspace}%
+ \def\ier{er\xspace}%
+ \def\iers{ers\xspace}%
+ \def\iere{re\xspace}%
+ \def\ieres{res\xspace}%
+ \def\FrenchEnumerate#1{#1\degre\space}%
+ \def\FrenchPopularEnumerate#1{#1\degre)\space}%
+ \def\No{N\degre\space}%
+ \def\no{n\degre\space}%
+ \def\Nos{N\degre\space}%
+ \def\nos{n\degre\space}%
+ \def\FB@og{\guillemotleft\space}%
+ \def\FB@fg{\space\guillemotright}%
+ \def\at{@}%
+ \def\circonflexe{\string^}%
+ \def\tild{\string~}%
+ \def\boi{\textbackslash}%
+ \let\bsc\textsc
+ }%
+ \fi
+ \FBprocess@options
+ \ifFB@luatex@punct
+ \FBcolonsp=\expandafter{\meaning\FBcolonspace}
+ \FBthinsp= \expandafter{\meaning\FBthinspace}
+ \FBguillsp=\expandafter{\meaning\FBguillspace}
+ \activate@luatexpunct
+ \fi
+ \ifFBunicode
+ \@ifpackageloaded{fontspec}{}%
+ {\@ifpackageloaded{luainputenc}{}%
+ {\PackageWarning{french.ldf}%
+ {Add \protect\usepackage{fontspec} to the\MessageBreak
+ preamble of your document, reported}%
+ }%
+ }
+ \else
+ \begingroup \newcommand{\FBOTone}{OT1}%
+ \ifx\encodingdefault\FBOTone
+ \PackageWarning{french.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
+\let\endlistORI\endlist
+\def\FB@listVsettings{%
+ \setlength{\itemsep}{0.4ex plus 0.2ex minus 0.2ex}%
+ \setlength{\parsep}{0.4ex plus 0.2ex minus 0.2ex}%
+ \setlength{\topsep}{0.8ex plus 0.4ex minus 0.4ex}%
+ \setlength{\partopsep}{0.4ex plus 0.2ex minus 0.2ex}%
+ \@tempdima=\parskip
+ \addtolength{\topsep}{-\@tempdima}%
+ \addtolength{\partopsep}{\@tempdima}%
+}
+\def\listFB#1#2{\listORI{#1}{\FB@listVsettings #2}}
+\let\endlistFB\endlist
+\newcommand*{\FrenchLabelItem}{\textemdash}
+\newcommand*{\Frlabelitemi}{\FrenchLabelItem}
+\newcommand*{\Frlabelitemii}{\FrenchLabelItem}
+\newcommand*{\Frlabelitemiii}{\FrenchLabelItem}
+\newcommand*{\Frlabelitemiv}{\FrenchLabelItem}
+\newlength\listindentFB
+\setlength{\listindentFB}{-1pt}
+\newlength\descindentFB
+\setlength{\descindentFB}{-1pt}
+\newlength\labelwidthFB
+\setlength{\labelwidthFB}{-1pt}
+\newlength\leftmarginFB
+\def\FB@listHsettings{%
+ \leftmarginFB\labelwidthFB
+ \advance\leftmarginFB \labelsep
+ \bbl@for\FB@dp {1, 2, 3, 4, 5, 6}%
+ {\csname leftmargin\romannumeral\FB@dp\endcsname \leftmarginFB}%
+ \advance\leftmargini \listindentFB
+ \leftmargin\csname leftmargin\ifnum\@listdepth=\@ne i\else
+ ii\fi\endcsname
+}
+\def\FB@itemizesettings{%
+ \ifFBReduceListSpacing
+ \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}%
+ \else
+ \FB@listHsettings
+ \fi
+}
+\def\itemizeFB{%
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \listORI
+ \csname\@itemitem\endcsname
+ \FB@itemizesettings
+ \fi
+}
+\let\enditemizeFB\endlistORI
+\def\labelitemsFB{%
+ \let\labelitemi\Frlabelitemi
+ \let\labelitemii\Frlabelitemii
+ \let\labelitemiii\Frlabelitemiii
+ \let\labelitemiv\Frlabelitemiv
+ \ifdim\labelwidthFB<\z@
+ \settowidth{\labelwidthFB}{\FrenchLabelItem}%
+ \fi
+ \ifdim\listindentFB<\z@
+ \ifdim\parindent=\z@
+ \setlength{\listindentFB}{1.5em}%
+ \else
+ \setlength{\listindentFB}{\parindent}%
+ \fi
+ \fi
+ \ifdim\descindentFB<\z@
+ \setlength{\descindentFB}{\listindentFB}%
+ \fi
+}
+\def\enumerateFB{%
+ \ifnum \@enumdepth >\thr@@\@toodeep\else
+ \advance\@enumdepth\@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \expandafter
+ \list
+ \csname label\@enumctr\endcsname
+ {\FB@listHsettings
+ \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
+ \fi
+}
+\let\endenumerateFB\endlistORI
+\def\descriptionFB{%
+ \list{}{\FB@listHsettings
+ \labelwidth\z@
+ \itemindent-\leftmargin
+ \ifnum\@listdepth=1
+ \ifdim\descindentFB=\z@
+ \ifdim\listindentFB>\z@
+ \leftmargini\listindentFB
+ \leftmargin\leftmargini
+ \itemindent-\leftmargin
+ \fi
+ \else
+ \advance\itemindent by \descindentFB
+ \fi
+ \fi
+ \let\makelabel\descriptionlabel}%
+}
+\let\enddescriptionFB\endlistORI
+\def\update@frenchlists{%
+ \ifFBReduceListSpacing \let\list\listFB \fi
+ \ifFBStandardItemizeEnv
+ \else \let\itemize\itemizeFB \fi
+ \ifFBStandardItemLabels
+ \else \labelitemsFB \fi
+ \ifFBStandardEnumerateEnv
+ \else \let\enumerate\enumerateFB \let\description\descriptionFB \fi
+}
+\def\FB@ufl{\relax}
+\def\bbl@frenchlistlayout{%
+ \ifFBGlobalLayoutFrench
+ \else
+ \babel@save\list \babel@save\itemize
+ \babel@save\enumerate \babel@save\description
+ \babel@save\labelitemi \babel@save\labelitemii
+ \babel@save\labelitemiii \babel@save\labelitemiv
+ \FB@ufl
+ \fi
+}
+\FB@addto{extras}{\bbl@frenchlistlayout}
+\def\bbl@frenchindent{%
+ \ifFBGlobalLayoutFrench
+ \else
+ \babel@save\@afterindentfalse
+ \fi
+ \ifFBIndentFirst
+ \let\@afterindentfalse\@afterindenttrue
+ \@afterindenttrue
+ \fi}
+\def\bbl@nonfrenchindent{%
+ \ifFBGlobalLayoutFrench
+ \ifFBIndentFirst
+ \@afterindenttrue
+ \fi
+ \fi}
+\FB@addto{extras}{\bbl@frenchindent}
+\FB@addto{noextras}{\bbl@nonfrenchindent}
+\AtBeginDocument{\@ifpackageloaded{bigfoot}%
+ {\PackageInfo{french.ldf}%
+ {bigfoot package in use.\MessageBreak
+ frenchb will NOT customise footnotes;%
+ \MessageBreak reported}}%
+ {\let\@footnotemarkORI\@footnotemark
+ \def\@footnotemarkFB{\leavevmode\unskip\unkern
+ \,\@footnotemarkORI}%
+ \ifFBAutoSpaceFootnotes
+ \let\@footnotemark\@footnotemarkFB
+ \fi}%
+ }
+\newdimen\parindentFFN
+\parindentFFN=10in
+\newcommand*{\dotFFN}{.}
+\newcommand*{\kernFFN}{\kern .5em}
+\newlength\FBfnindent
+\ifFB@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
+\fi
+\@ifclassloaded{memoir}
+ {\newcommand{\@makefntextFB}[1]{%
+ \def\footscript##1{##1\dotFFN\kernFFN}%
+ \setlength{\footmarkwidth}{\FBfnindent}%
+ \setlength{\footmarksep}{-\footmarkwidth}%
+ \setlength{\footparindent}{\parindentFFN}%
+ \makefootmark #1}%
+ }{}
+\@ifclassloaded{beamer}
+ {\def\@makefntextFB#1{%
+ \def\insertfootnotetext{#1}%
+ \def\insertfootnotemark{\insertfootnotemarkFB}%
+ \usebeamertemplate***{footnote}}%
+ \def\insertfootnotemarkFB{%
+ \usebeamercolor[fg]{footnote mark}%
+ \usebeamerfont*{footnote mark}%
+ \llap{\@thefnmark}\dotFFN\kernFFN}%
+ }{}
+\providecommand*{\insertfootnotemarkFB}{%
+ \parindent=\parindentFFN
+ \rule\z@\footnotesep
+ \setbox\@tempboxa\hbox{\@thefnmark}%
+ \ifdim\wd\@tempboxa>\z@
+ \llap{\@thefnmark}\dotFFN\kernFFN
+ \fi}
+\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@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{%
+ \ifFBFrenchFootnotes
+ \@makefntextFB{#1}%
+ \else
+ \@makefntextORI{#1}%
+ \fi}%
+ \fi
+ }%
+}
+\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue}
+\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue}
+\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse}
+\FBclean@on@exit
+\let\FB@llc\loadlocalcfg
+\let\loadlocalcfg\@gobble
+\ldf@finish\CurrentOption
+\let\loadlocalcfg\FB@llc
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
+%%
+%% End of file `french.ldf'.