summaryrefslogtreecommitdiff
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
parenta7ecf3589db1dd3722fda599c2ac8e80ac17b6ad (diff)
babel-french (11jul17)
git-svn-id: svn://tug.org/texlive/trunk@44782 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/babel-french/README8
-rw-r--r--Master/texmf-dist/doc/generic/babel-french/frenchb.pdfbin235679 -> 278433 bytes
-rw-r--r--Master/texmf-dist/source/generic/babel-french/frenchb.dtx314
-rw-r--r--Master/texmf-dist/source/generic/babel-french/frenchb.ins63
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/acadian.ldf48
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/canadien.ldf54
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/francais.ldf54
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/french.ldf1803
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/frenchb.ldf1850
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/frenchb.lua14
10 files changed, 2226 insertions, 1982 deletions
diff --git a/Master/texmf-dist/doc/generic/babel-french/README b/Master/texmf-dist/doc/generic/babel-french/README
index 7d9a4c1f99e..90dc8d625ba 100644
--- a/Master/texmf-dist/doc/generic/babel-french/README
+++ b/Master/texmf-dist/doc/generic/babel-french/README
@@ -31,9 +31,11 @@ The bundle consists of the following files:
If the latest version of this package is not included in your LaTeX
distribution, do the following:
-* issue "luatex frenchb.ins" to unpack the language definition files,
-* copy the files frenchb.ldf and frenchb.lua to a location where TeX
- can find them (default location: $TEXMF/tex/generic/babel-french/).
+* issue "luatex frenchb.ins" to unpack the language definition files;
+* copy the files frenchb.lua, french.ldf, frenchb.ldf, francais.ldf,
+ acadian.ldf and canadien.ldf to a location where TeX can find them
+ (default location: $TEXMF/tex/generic/babel-french/);
+* rebuild the database (mktexlsr or so).
== DOCUMENTATION ==
diff --git a/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf b/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
index 328aff00744..6399f445b3a 100644
--- a/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
+++ b/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
index f4b263f49d0..bf8cba8ecbc 100644
--- a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
+++ b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
@@ -1,4 +1,4 @@
-%\CheckSum{3486}
+%\CheckSum{3473}
%
%\iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
@@ -6,44 +6,36 @@
%<*dtx>
\ProvidesFile{frenchb.dtx}
%</dtx>
-% \changes{v2.1d}{2008/05/04}{Argument of \cs{ProvidesLanguage} changed
-% from `french’ to `frenchb’, otherwise \cs{listfiles} prints
-% no date/version information. The bug with \cs{listfiles}
-% (introduced in v.~1.5!), was pointed out by Ulrike Fischer.}
-%<ldf>\ProvidesLanguage{frenchb}
-%\ProvidesFile{frenchb.dtx}
-%<*!lua>
- [2017/04/30 v3.3a French support from the babel system]
-%</!lua>
+%<acadian>\ProvidesLanguage{acadian}
+%<canadien>\ProvidesLanguage{canadien}
+%<francais>\ProvidesLanguage{francais}
+%<french>\ProvidesLanguage{french}
+%<frenchb>\ProvidesLanguage{frenchb}
+%<lua>--[[
+%<lua> File `frenchb.lua’ generated from frenchb.dtx
+ [2017/07/08 v3.3b French support from the babel system]
%<*internal>
\iffalse
%</internal>
%<*lua>
---
--- File `frenchb.lua’ generated from frenchb.dtx [2017/04/30 v3.3a]
---
--- Copyright © 2014-2017 Daniel Flipo
--- <daniel (dot) flipo (at) free (dot) fr>
--- License LPPL: see frenchb.ldf.
---
+ Copyright © 2014-2017 Daniel Flipo
+ <daniel (dot) flipo (at) free (dot) fr>
+ License LPPL: see french.ldf.
+--]]
%</lua>
%<*internal>
\fi
%</internal>
%<*dtx>
-%%
%% File `frenchb.dtx’
%</dtx>
-%<*ldf>
+%<*dtx|french>
%%
-%% File `frenchb.ldf’
-%</ldf>
-%<*dtx|ldf>
%% Babel package for LaTeX version 2e
%% Copyright © 1996 - 2017
%% by Daniel Flipo <daniel (dot) flipo (at) free (dot) fr>
%%
-%</dtx|ldf>
+%</dtx|french>
%<*dtx>
%% This file is part of the babel system, it provides the source
%% code for the French language definition file.
@@ -66,6 +58,7 @@
\hypersetup{colorlinks,urlcolor=blue,unicode}
\newcommand*\babel{\textsf{babel}}
\newcommand*\frenchb{\textsf{babel-french}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
\newcommand*\Lopt[1]{\texttt{#1}}
\newcommand*\opt[1]{\texttt{#1}}
\newcommand*\file[1]{\texttt{#1}}
@@ -150,6 +143,12 @@
% lists, footnotes, indentation of first paragraphs of sections) and
% should apply to the whole document.
%
+% The French language can be loaded with \babel{} by a command like:
+% \\ |\usepackage[german,spanish,french,british]{babel}|%
+% \footnote{\emph{Always} use \Lopt{french} as option name for the
+% French language, former aliases \Lopt{frenchb} or \Lopt{francais}
+% are \emph{depreciated}; expect them to be removed sooner or later!}
+%
% \frenchb{} takes account of \babel’s \emph{main language} defined
% as the \emph{last} option at \babel’s loading. When French is
% not \babel’s main language, \frenchb{} does not alter the general
@@ -561,7 +560,7 @@
% The older syntax |\addto\captionsfrench{\def\proofname{Preuve}}|
% still works. Keep in mind that \emph{only} |french| can be used to
% redefine captions, even if \babel{}’s option was entered as
-% |francais| or |frenchb|.
+% |frenchb|.
%
% When French is the main language, by default (see below)
% \frenchb{} changes the separator (colon) used in figures’ and
@@ -635,6 +634,13 @@
%
% \subsubsection*{What’s new in version 3.3?}
%
+% According to current \babel's standards, every dialect should
+% have it’s own \file{.ldf} file; the main support for French is
+% now in \file{french.ldf}, portemanteau files \file{frenchb.ldf},
+% \file{francais.ldf}, \file{acadian.ldf} and \file{canadien.ldf}
+% have been added. Recommended options are \Lopt{french} and
+% \Lopt{acadian}, all other are deprecated.
+%
% Release 3.3a is compatible with LuaTeX v.~0.95 (TL2016) and up.
% Former skips |\FBcolonskip|, |\FBthinskip| and |\FBguillskip|
% controlling punctuation spacings in LuaTeX have been removed;
@@ -754,40 +760,12 @@
% (french) as to be corrected before calling \cs{LdfInit}.}
%
% \iffalse
-%<*ldf>
+%<*french>
% \fi
%
% \changes{v3.0a}{2014/02/28}{Support for options frenchb, francais,
% canadien, acadian changed.}
%
-% If \file{frenchb.ldf} was loaded with \babel{}’s options
-% \Lopt{francais} or \Lopt{frenchb}, we make it behave as if
-% \Lopt{french} was specified.
-% In Plain formats, \texttt{@} catcode is not `letter’.
-% \begin{macrocode}
-\chardef\atcatcode=\catcode`\@
-\catcode`\@=11\relax
-\def\bbl@tempa{francais}
-\ifx\CurrentOption\bbl@tempa
- \let\l@francais\l@french
- \def\captionsfrancais{\captionsfrench}
- \def\datefrancais{\datefrench}
- \def\extrasfrancais{\extrasfrench}
- \def\noextrasfrancais{\extrasfrench}
- \def\CurrentOption{french}
-\fi
-\def\bbl@tempa{frenchb}
-\ifx\CurrentOption\bbl@tempa
- \let\l@frenchb\l@french
- \def\captionsfrenchb{\captionsfrench}
- \def\datefrenchb{\datefrench}
- \def\extrasfrenchb{\extrasfrench}
- \def\noextrasfrenchb{\extrasfrench}
- \def\CurrentOption{french}
-\fi
-\catcode`\@=\atcatcode \let\atcatcode\relax
-% \end{macrocode}
-%
% \changes{v3.0a}{2014/02/19}{\cs{LdfInit} checks \cs{datefrench}
% instead of \cs{captionsfrench} to avoid a conflict with
% papertex.cls which loads datetime.sty.}
@@ -832,7 +810,7 @@
\let\bbl@tempa\relax
\ifx\magnification\@undefined
\ifx\@compatibilitytrue\@undefined
- \PackageError{frenchb.ldf}
+ \PackageError{french.ldf}
{LaTeX-2.09 format is no longer supported.\MessageBreak
Aborting here}
{Please upgrade to LaTeX2e!}
@@ -854,13 +832,13 @@
\def\fb@error#1#2{%
\begingroup
\newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
+ \def\\{^^J(french.ldf) }%
\errhelp{#2}\errmessage{\\#1^^J}%
\endgroup}
\def\fb@warning#1{%
\begingroup
\newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
+ \def\\{^^J(french.ldf) }%
\message{\\#1^^J}%
\endgroup}
\def\fb@info#1{%
@@ -879,7 +857,7 @@
\ifx\babeltags\@undefined
\let\bbl@tempa\endinput
\ifLaTeXe
- \PackageError{frenchb.ldf}
+ \PackageError{french.ldf}
{frenchb requires babel v.3.9i.\MessageBreak
Aborting here}
{Please upgrade Babel!}
@@ -892,33 +870,16 @@
\bbl@tempa
% \end{macrocode}
%
-% \file{frenchb.ldf} can be loaded with options \Lopt{canadien} or
-% \Lopt{acadian}, which both stand for Canadian French. Internally,
-% \Lopt{acadian} will be the name of the corresponding \babel’s
-% dialect, so we set |\CurrentOption| to \Lopt{acadian} in both
-% cases.
+% Babel’s French language can be loaded with option \Lopt{acadian}
+% which stands for Canadian French.
% If no specific hyphenation patterns are available, Canadian French
% will use the French ones.
-%
-% TODO: Canadian French hyphenation doesn’t work with LuaTeX.
% \begin{macrocode}
-\ifx\l@acadian\@undefined
- \ifx\l@canadien\@undefined
- \adddialect\l@acadian\l@french
- \adddialect\l@canadien\l@french
- \else
- \adddialect\l@acadian\l@canadien
- \fi
-\else
- \adddialect\l@canadien\l@acadian
-\fi
-\def\bbl@tempa{canadien}
+\def\bbl@tempa{acadian}
\ifx\CurrentOption\bbl@tempa
- \def\captionscanadien{\captionsacadian}
- \def\datecanadien{\dateacadian}
- \def\extrascanadien{\extrasacadian}
- \def\noextrascanadien{\extrasacadian}
- \def\CurrentOption{acadian}
+ \ifx\l@acadian\@undefined
+ \adddialect\l@acadian\l@french
+ \fi
\fi
% \end{macrocode}
%
@@ -930,7 +891,7 @@
\expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@}
% \end{macrocode}
%
-% \begin{macro}{\ifFBunicode}
+%\begin{macro}{\ifFBunicode}
% \begin{macro}{\ifFBLuaTeX}
% \begin{macro}{\ifFBXeTeX}
% French hyphenation patterns are now coded in Unicode, see file
@@ -972,6 +933,19 @@
% \end{macro}
% \end{macro}
%
+% \changes{v3.3b}{2017/07/08}{New `if' \cs{ifFBfrench} to replace
+% \cs{iflanguage} test which is based on patterns.}
+%
+% \begin{macro}{\ifFBfrench}
+% True when the current language is French or any of its dialects;
+% will be set to true by |\extras\CurrentOption| and to false by
+% |\noextras\CurrentOption|. Used in |\DecimalMathComma| and
+% |frenchsetup{og=«, fg=»}|.
+% \begin{macrocode}
+\newif\ifFBfrench
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\extrasfrench}
% \changes{v3.0a}{2014/02/18}{Take advantage of babel’s
% \cs{babel@savevariable} to handle apostrophe’s \cs{lccode}.}
@@ -995,6 +969,7 @@
%
% \begin{macrocode}
\@namedef{extras\CurrentOption}{%
+ \FBfrenchtrue
\babel@savevariable{\lccode`\'}%
\ifFBunicode
\babel@savevariable{\lccode"2019}%
@@ -1003,7 +978,7 @@
\lccode`\'=`\'
\fi
}
-\@namedef{noextras\CurrentOption}{}
+\@namedef{noextras\CurrentOption}{\FBfrenchfalse}
% \end{macrocode}
%
% Let’s define a handy command for adding stuff to
@@ -1065,7 +1040,7 @@
frenchb will make high punctuation characters (;:!?) active\\%
with LuaTeX < 0.95.}%
\else
- \PackageWarning{frenchb.ldf}{Please upgrade LuaTeX
+ \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}%
@@ -1237,7 +1212,7 @@
\newattribute\FB@addDPspace \FB@addDPspace=1 \relax
\newattribute\FB@addGUILspace \FB@addGUILspace=0 \relax
\ifLaTeXe
- \PackageInfo{frenchb.ldf}{No need for active punctuation
+ \PackageInfo{french.ldf}{No need for active punctuation
characters\MessageBreak with this version
of LuaTeX!\MessageBreak reported}
\else
@@ -1248,8 +1223,7 @@
% \end{macrocode}
%
% \iffalse
-%</ldf>
-%<*lua>
+%</french>
% \fi
% This is \file{frenchb.lua}. It holds Lua code to deal with `high
% punctuation’ and quotes. This code is based on suggestions from
@@ -1263,6 +1237,7 @@
% quotes in T1-encoding.}
%
% \begin{macrocode}
+%<*lua>
local FB_punct_thin =
{[string.byte("!")] = true,
[string.byte("?")] = true,
@@ -1634,11 +1609,11 @@ local function french_punctuation (head)
return head
end
return french_punctuation
+%</lua>
% \end{macrocode}
% \end{macro}
% \iffalse
-%</lua>
-%<*ldf>
+%<*french>
% \fi
%
% \begin{macro}{\FB@luatex@punct@french}
@@ -1662,7 +1637,7 @@ return french_punctuation
LuaTeX,\\ use \noexpand\NoAutoSpacing
*inside a group* instead.}%
\else
- \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is
+ \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is
helpless with LuaTeX,\MessageBreak use \protect\NoAutoSpacing
\space *inside a group* instead;\MessageBreak reported}%
\fi}%
@@ -1747,7 +1722,7 @@ return french_punctuation
% \begin{macrocode}
\ifFB@xetex@punct
\ifLaTeXe
- \PackageInfo{frenchb.ldf}{No need for active punctuation characters%
+ \PackageInfo{french.ldf}{No need for active punctuation characters%
\MessageBreak with this version of XeTeX!%
\MessageBreak reported}
\else
@@ -1864,7 +1839,7 @@ return french_punctuation
XeTeX,\\ use \noexpand\NoAutoSpacing
*inside a group* instead.}%
\else
- \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is
+ \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is
helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing
\space *inside a group* instead;\MessageBreak reported}%
\fi}%
@@ -2487,7 +2462,7 @@ return french_punctuation
\fb@warning{\noexpand\frquote\space handles up to
two levels.\\ Quotation not printed.}%
\else
- \PackageWarning{frenchb.ldf}{%
+ \PackageWarning{french.ldf}{%
\protect\frquote\space handles up to two levels.
\MessageBreak Quotation not printed. Reported}
\fi
@@ -2962,7 +2937,7 @@ return french_punctuation
\newcommand*{\std@math@comma}{\mathcode`\,=\std@mcc}
\fi
\newcommand*{\DecimalMathComma}{%
- \iflanguage{french}{\dec@math@comma}{}%
+ \ifFBfrench\dec@math@comma\fi
\ifFB@icomma\else\FB@addto{extras}{\dec@math@comma}\fi
}
\newcommand*{\StandardMathComma}{%
@@ -3037,7 +3012,7 @@ return french_punctuation
\ifdefined\numprint
\numprint{#1}%
\else
- \PackageWarning{frenchb.ldf}{%
+ \PackageWarning{french.ldf}{%
\protect\nombre\space now relies on package numprint.sty,%
\MessageBreak add \protect
\usepackage[autolanguage]{numprint},\MessageBreak
@@ -3188,8 +3163,8 @@ return french_punctuation
% Up to v2.6h \frenchb{} used to merge |\captionsfrenchb| and
% |\captionsfrancais| into |\captionsfrench| at |\begin{document}|.
% This is deprecated in favor of the new (much simpler!) syntax
-% introduced in \babel~3.9. No need to define |\captionscanadien|
-% and |\captionsacadian| either.
+% introduced in \babel~3.9. No need to define |\captionsacadian|
+% either.
%
% \begin{macro}{\CaptionSeparator}
% Let’s consider now captions in figures and tables.
@@ -3261,7 +3236,7 @@ return french_punctuation
% \begin{macrocode}
\newif\if@FBwarning@capsep
\@FBwarning@capseptrue
-\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}}
+\newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}}
\newcommand*{\CaptionSeparator}{\space\textendash\space}
\def\FBCaption@Separator{: }
\long\def\FB@makecaption#1#2{%
@@ -3715,13 +3690,13 @@ return french_punctuation
\ifx\bbl@main@language\FB@french
\FBGlobalLayoutFrenchtrue
\@ifclassloaded{beamer}%
- {\PackageInfo{frenchb.ldf}{%
+ {\PackageInfo{french.ldf}{%
No list customisation for the beamer class,%
\MessageBreak reported}}%
{\@ifpackageloaded{beamerarticle}%
{\FBStandardItemLabelsfalse
\FBReduceListSpacingtrue
- \PackageInfo{frenchb.ldf}{%
+ \PackageInfo{french.ldf}{%
Minimal list customisation for the beamerarticle%
\MessageBreak package; reported}}%
% \end{macrocode}
@@ -3741,7 +3716,7 @@ return french_punctuation
\fi
% \end{macrocode}
% \frenchb{} being an option of \babel, it cannot load a package
-% (\pkg{keyval}) while \file{frenchb.ldf} is read, so we defer the
+% (\pkg{keyval}) while \file{french.ldf} is read, so we defer the
% loading of \file{keyval} and the options setup at the end of
% \babel’s loading.
% \begin{macrocode}
@@ -3781,7 +3756,7 @@ return french_punctuation
\ifx\bbl@main@language\FB@french
\else
\FBGlobalLayoutFrenchfalse
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Option `GlobalLayoutFrench' skipped:\MessageBreak
French is *not* babel's last option.\MessageBreak
Reported}%
@@ -3864,7 +3839,7 @@ return french_punctuation
{\csname FBOldFigTabCaptions#1\endcsname
% \end{macrocode}
% |\CurrentOption| no longer defined. It’s value has been saved
-% in |\FB@CurOpt| while reading \file{frenchb.ldf}.
+% in |\FB@CurOpt| while reading \file{french.ldf}.
% \begin{macrocode}
\ifFBOldFigTabCaptions
\FB@addto{extras}{\babel@save\FBCaption@Separator
@@ -3905,7 +3880,7 @@ return french_punctuation
\else\ifx\FBeveryparguill\FBguillnone
\else
\let\FBeveryparguill\FBguillopen
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Wrong value for `EveryParGuill':
try `open',\MessageBreak
`close' or `none'. Reported}%
@@ -4001,7 +3976,7 @@ return french_punctuation
% characters.
% \begin{macrocode}
\ifFB@active@punct
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Option og=« not supported with this version
of\MessageBreak LuaTeX/XeTeX; reported}%
\fi
@@ -4010,11 +3985,11 @@ return french_punctuation
% This is for conventional TeX engines:
% \begin{macrocode}
\newcommand*{\FB@@og}{%
- \iflanguage{french}%
- {\ifFB@spacing\FB@og\ignorespaces
- \else\guillemotleft
- \fi}%
- {\guillemotleft}}%
+ \ifFBfrench
+ \ifFB@spacing\FB@og\ignorespaces
+ \else\guillemotleft
+ \fi
+ \else\guillemotleft\fi}%
\AtBeginDocument{%
\ifdefined\DeclareInputText
\ifdefined\uc@dclc
@@ -4049,7 +4024,7 @@ return french_punctuation
% \end{macrocode}
% Package \pkg{inputenc} not loaded, no way\dots{}
% \begin{macrocode}
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Option `og' requires package inputenc;%
\MessageBreak reported}%
\fi
@@ -4072,17 +4047,17 @@ return french_punctuation
\XeTeXcharclass"202F = \FB@guilnul
\fi
\ifFB@active@punct
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Option fg=» not supported with this version
of\MessageBreak LuaTeX/XeTeX; reported}%
\fi
\else
\newcommand*{\FB@@fg}{%
- \iflanguage{french}%
- {\ifFB@spacing\FB@fg
- \else\guillemotright
- \fi}%
- {\guillemotright}}%
+ \ifFBfrench
+ \ifFB@spacing\FB@fg
+ \else\guillemotright
+ \fi
+ \else\guillemotright\fi}%
\AtBeginDocument{%
\ifdefined\DeclareInputText
\ifdefined\uc@dclc
@@ -4100,7 +4075,7 @@ return french_punctuation
\fi
\fi
\else
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Option `fg' requires package inputenc;%
\MessageBreak reported}%
\fi
@@ -4132,7 +4107,7 @@ return french_punctuation
\ifFBStandardItemizeEnv
\else
\FBStandardItemizeEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardItemizeEnv=true for\MessageBreak
compatibility with enumitem package,\MessageBreak
reported}%
@@ -4140,7 +4115,7 @@ return french_punctuation
\ifFBStandardEnumerateEnv
\else
\FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardEnumerateEnv=true for\MessageBreak
compatibility with enumitem package,\MessageBreak
reported}%
@@ -4149,7 +4124,7 @@ return french_punctuation
\ifFBStandardItemizeEnv
\else
\FBStandardItemizeEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardItemizeEnv=true for\MessageBreak
compatibility with paralist package,\MessageBreak
reported}%
@@ -4157,7 +4132,7 @@ return french_punctuation
\ifFBStandardEnumerateEnv
\else
\FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardEnumerateEnv=true for\MessageBreak
compatibility with paralist package,\MessageBreak
reported}%
@@ -4166,7 +4141,7 @@ return french_punctuation
\ifFBStandardEnumerateEnv
\else
\FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardEnumerateEnv=true for\MessageBreak
compatibility with enumerate package,\MessageBreak
reported}%
@@ -4458,7 +4433,7 @@ return french_punctuation
\ifFBunicode
\@ifpackageloaded{fontspec}{}%
{\@ifpackageloaded{luainputenc}{}%
- {\PackageWarning{frenchb.ldf}%
+ {\PackageWarning{french.ldf}%
{Add \protect\usepackage{fontspec} to the\MessageBreak
preamble of your document, reported}%
}%
@@ -4466,7 +4441,7 @@ return french_punctuation
\else
\begingroup \newcommand{\FBOTone}{OT1}%
\ifx\encodingdefault\FBOTone
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{OT1 encoding should not be used for French.%
\MessageBreak
Add \protect\usepackage[T1]{fontenc} to the
@@ -4895,7 +4870,7 @@ return french_punctuation
%
% \begin{macrocode}
\AtBeginDocument{\@ifpackageloaded{bigfoot}%
- {\PackageInfo{frenchb.ldf}%
+ {\PackageInfo{french.ldf}%
{bigfoot package in use.\MessageBreak
frenchb will NOT customise footnotes;%
\MessageBreak reported}}%
@@ -5150,8 +5125,89 @@ return french_punctuation
\let\loadlocalcfg\FB@llc
% \end{macrocode}
% \iffalse
-%</ldf>
-%<*dtx>
+%</french>
+% \fi
+%
+% \subsection{Files \file{frenchb.ldf}, \file{francais.ldf},
+% \file{canadien.ldf} and\\ \file{acadian.ldf}}
+%
+% \changes{v3.3b}{2017/06/28}{Generate portmanteau files
+% \file{acadian.ldf}, \file{canadien.ldf}, \file{frenchb.ldf},
+% and \file{francais.ldf} and warn about deprecated options.}
+%
+% Babel now expects a \file{\langvar{}.ldf} file for each \langvar.
+% So we create portmanteau \file{.ldf} files for options \texttt{canadien},
+% \texttt{francais}, \texttt{frenchb} and \texttt{acadian}.
+% These files themselves only load \file{french.ldf} which does
+% the real work.
+% Warn users about options \Lopt{canadien}, \Lopt{frenchb} and
+% \Lopt{francais} being deprecated and force recommended options
+% \Lopt{acadian} or \Lopt{french}.
+% \begin{macrocode}
+%<*canadien>
+\PackageWarning{canadien.ldf}%
+ {Option `canadien' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `acadian' instead; reported}%
+\let\l@canadien\l@acadian
+\def\CurrentOption{acadian}
+%</canadien>
+%<*francais>
+\PackageWarning{francais.ldf}%
+ {Option `francais' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}%
+\let\l@francais\l@french
+\def\CurrentOption{french}
+%</francais>
+% \end{macrocode}
+% Compatibility code for \babel{} pre-3.13: \file{frenchb.ldf}
+% could be loaded with options \Lopt{acadian}, \Lopt{canadien},
+% \Lopt{frenchb} or \Lopt{francais}.
+% \begin{macrocode}
+%<*frenchb>
+\def\bbl@tempa{frenchb}
+\ifx\CurrentOption\bbl@tempa
+ \let\l@frenchb\l@french
+ \def\CurrentOption{french}
+ \PackageWarning{babel-french}%
+ {Option `frenchb' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}
+\else
+ \def\bbl@tempa{francais}
+ \ifx\CurrentOption\bbl@tempa
+ \let\l@francais\l@french
+ \def\CurrentOption{french}
+% \end{macrocode}
+% Plain formats: no warning when \file{francais.sty} loads
+% \file{frenchb.ldf} (\babel{} pre-3.13).
+% \begin{macrocode}
+ \ifx\magnification\@undefined
+ \PackageWarning{babel-french}%
+ {Option `francais' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}%
+ \fi
+ \else
+ \def\bbl@tempa{canadien}
+ \ifx\CurrentOption\bbl@tempa
+ \let\l@canadien\l@acadian
+ \def\CurrentOption{acadian}
+ \PackageWarning{babel-french}%
+ {Option `canadien' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `acadian' instead; reported}
+ \fi
+ \fi
+\fi
+%</frenchb>
+%<acadian|canadien|frenchb|francais>\input french.ldf\relax
+% \end{macrocode}
+%
+% \Finale
+% \iffalse
+%<*!lua>
% \fi
%%
%% \CharacterTable
@@ -5171,8 +5227,6 @@ return french_punctuation
%% Right brace \} Tilde \~}
%%
% \iffalse
-%</dtx>
+%</!lua>
% \fi
-%
-% \Finale
\endinput
diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.ins b/Master/texmf-dist/source/generic/babel-french/frenchb.ins
index 7ac0e63db5c..672caafa06c 100644
--- a/Master/texmf-dist/source/generic/babel-french/frenchb.ins
+++ b/Master/texmf-dist/source/generic/babel-french/frenchb.ins
@@ -1,12 +1,12 @@
%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
+%% This file will generate fast loadable files and documentation driver
+%% files from the doc files in this package when run through LuaTeX.
%%
%% Copyright 2001-2017 Daniel Flipo. All rights reserved.
%%
-%% This file is part of the Babel system, release 3.9.
-%% ---------------------------------------------------
+%% This is a generated file part of the the babel-french bundle
+%% to be used with the Babel system.
+%% -------------------------------------------------------------
%%
%% It may be distributed under the terms of the LaTeX Project Public
%% License, as described in lppl.txt in the base LaTeX distribution.
@@ -14,7 +14,7 @@
%%
%% --------------- start of docstrip commands ------------------
%%
-\def\filedate{2017/01/09}
+\def\filedate{2017/07/06}
\def\batchfile{frenchb.ins}
\input docstrip.tex
@@ -34,8 +34,9 @@
\fi}
\declarepreamble\mainpreamble
-This is a generated file of the Babel system.
----------------------------------------------------------
+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
@@ -49,38 +50,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Daniel Flipo.
-This file may only be distributed together with a copy of the Babel
-system. You may however distribute the Babel system without
-such generated files.
-
-The list of all files belonging to the Babel distribution is
-given in the file `manifest.bbl'. See also `legal.bbl for additional
-information.
-
-The list of derived (unpacked) files belonging to the distribution
-and covered by LPPL is defined by the unpacking scripts (with
-extension .ins) which are part of the distribution.
-
-\endpreamble
-
-\declarepreamble\fdpreamble
-
-This is a generated file.
-
-Copyright 2001-2017 Daniel Flipo. All rights reserved.
-
-This file is part of the Babel system, release 3.9.
----------------------------------------------------
-
-It may be distributed under the terms of the LaTeX Project Public
-License, as described in lppl.txt in the base LaTeX distribution.
-Either version 1.3 or, at your option, any later version.
-
-In particular, permission is granted to customize the declarations in
-this file to serve the needs of your installation.
-
-However, NO PERMISSION is granted to distribute a modified version
-of this file under its original name.
+Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
\endpreamble
@@ -90,7 +60,12 @@ of this file under its original name.
\usedir{tex/generic/babel-french}
\usepreamble\mainpreamble
-\generate{\file{frenchb.ldf}{\from{frenchb.dtx}{ldf}}}
+\generate{\file{french.ldf}{\from{frenchb.dtx}{french}}
+ \file{acadian.ldf}{\from{frenchb.dtx}{acadian}}
+ \file{canadien.ldf}{\from{frenchb.dtx}{canadien}}
+ \file{frenchb.ldf}{\from{frenchb.dtx}{frenchb}}
+ \file{francais.ldf}{\from{frenchb.dtx}{francais}}
+ }
\def\MetaPrefix{-- }
@@ -109,7 +84,9 @@ of this file under its original name.
\Msg{* To finish the installation you have to move the following}
\Msg{* files into a directory searched by TeX:}
\Msg{*}
-\Msg{* \space\space frenchb.ldf\space\space frenchb.lua}
+\Msg{* \space\space frenchb.lua\space\space french.ldf}
+\Msg{* \space\space frenchb.ldf\space\space francais.ldf}
+\Msg{* \space\space canadian.ldf\space\space and acadian.ldf}
\Msg{*}
\Msg{* To produce the documentation run the file frenchb.dtx}
\Msg{* through pdfLaTeX.}
@@ -118,4 +95,4 @@ of this file under its original name.
\Msg{***********************************************************}
}
-\endinput
+\endbatchfile
diff --git a/Master/texmf-dist/tex/generic/babel-french/acadian.ldf b/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
new file mode 100644
index 00000000000..a3c517b808d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
@@ -0,0 +1,48 @@
+%%
+%% This is file `acadian.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% frenchb.dtx (with options: `acadian')
+%% 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{acadian}
+ [2017/07/08 v3.3b French support from the babel system]
+\input french.ldf\relax
+%%
+%% \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 `acadian.ldf'.
diff --git a/Master/texmf-dist/tex/generic/babel-french/canadien.ldf b/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
new file mode 100644
index 00000000000..45bb81d2581
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
@@ -0,0 +1,54 @@
+%%
+%% This is file `canadien.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% frenchb.dtx (with options: `canadien')
+%% 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{canadien}
+ [2017/07/08 v3.3b French support from the babel system]
+\PackageWarning{canadien.ldf}%
+ {Option `canadien' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `acadian' instead; reported}%
+\let\l@canadien\l@acadian
+\def\CurrentOption{acadian}
+\input french.ldf\relax
+%%
+%% \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 `canadien.ldf'.
diff --git a/Master/texmf-dist/tex/generic/babel-french/francais.ldf b/Master/texmf-dist/tex/generic/babel-french/francais.ldf
new file mode 100644
index 00000000000..8bfe1ef23d7
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel-french/francais.ldf
@@ -0,0 +1,54 @@
+%%
+%% This is file `francais.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% frenchb.dtx (with options: `francais')
+%% 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{francais}
+ [2017/07/08 v3.3b French support from the babel system]
+\PackageWarning{francais.ldf}%
+ {Option `francais' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}%
+\let\l@francais\l@french
+\def\CurrentOption{french}
+\input french.ldf\relax
+%%
+%% \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 `francais.ldf'.
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'.
diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
index b1f5be0de66..d3de9a86b00 100644
--- a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
+++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
@@ -4,9 +4,10 @@
%%
%% The original source files were:
%%
-%% frenchb.dtx (with options: `ldf')
-%% This is a generated file of the Babel system.
-%% ---------------------------------------------------------
+%% frenchb.dtx (with options: `frenchb')
+%% 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
@@ -20,1808 +21,59 @@
%%
%% The Current Maintainer of this work is Daniel Flipo.
%%
-%% This file may only be distributed together with a copy of the Babel
-%% system. You may however distribute the Babel system without
-%% such generated files.
-%%
-%% The list of all files belonging to the Babel distribution is
-%% given in the file `manifest.bbl'. See also `legal.bbl for additional
-%% information.
-%%
-%% The list of derived (unpacked) files belonging to the distribution
-%% and covered by LPPL is defined by the unpacking scripts (with
-%% extension .ins) which are part of the distribution.
+%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
\ProvidesLanguage{frenchb}
- [2017/04/30 v3.3a French support from the babel system]
-%%
-%% File `frenchb.ldf’
-%% Babel package for LaTeX version 2e
-%% Copyright © 1996 - 2017
-%% by Daniel Flipo <daniel (dot) flipo (at) free (dot) fr>
-%%
-\chardef\atcatcode=\catcode`\@
-\catcode`\@=11\relax
-\def\bbl@tempa{francais}
-\ifx\CurrentOption\bbl@tempa
- \let\l@francais\l@french
- \def\captionsfrancais{\captionsfrench}
- \def\datefrancais{\datefrench}
- \def\extrasfrancais{\extrasfrench}
- \def\noextrasfrancais{\extrasfrench}
- \def\CurrentOption{french}
-\fi
+ [2017/07/08 v3.3b French support from the babel system]
\def\bbl@tempa{frenchb}
\ifx\CurrentOption\bbl@tempa
\let\l@frenchb\l@french
- \def\captionsfrenchb{\captionsfrench}
- \def\datefrenchb{\datefrench}
- \def\extrasfrenchb{\extrasfrench}
- \def\noextrasfrenchb{\extrasfrench}
\def\CurrentOption{french}
-\fi
-\catcode`\@=\atcatcode \let\atcatcode\relax
-\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{frenchb.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(frenchb.ldf) }%
- \errhelp{#2}\errmessage{\\#1^^J}%
- \endgroup}
-\def\fb@warning#1{%
- \begingroup
- \newlinechar=`\^^J
- \def\\{^^J(frenchb.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{frenchb.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
-\ifx\l@acadian\@undefined
- \ifx\l@canadien\@undefined
- \adddialect\l@acadian\l@french
- \adddialect\l@canadien\l@french
- \else
- \adddialect\l@acadian\l@canadien
- \fi
-\else
- \adddialect\l@canadien\l@acadian
-\fi
-\def\bbl@tempa{canadien}
-\ifx\CurrentOption\bbl@tempa
- \def\captionscanadien{\captionsacadian}
- \def\datecanadien{\dateacadian}
- \def\extrascanadien{\extrasacadian}
- \def\noextrascanadien{\extrasacadian}
- \def\CurrentOption{acadian}
-\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
-\@namedef{extras\CurrentOption}{%
- \babel@savevariable{\lccode`\'}%
- \ifFBunicode
- \babel@savevariable{\lccode"2019}%
- \lccode`\'="2019\lccode"2019="2019
- \else
- \lccode`\'=`\'
- \fi
-}
-\@namedef{noextras\CurrentOption}{}
-\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{frenchb.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{frenchb.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{frenchb.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{frenchb.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{frenchb.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{frenchb.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}{%
- \iflanguage{french}{\dec@math@comma}{}%
- \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{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@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{frenchb.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{frenchb.ldf}{%
- No list customisation for the beamer class,%
- \MessageBreak reported}}%
- {\@ifpackageloaded{beamerarticle}%
- {\FBStandardItemLabelsfalse
- \FBReduceListSpacingtrue
- \PackageInfo{frenchb.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{frenchb.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{frenchb.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{frenchb.ldf}%
- {Option og=« not supported with this version
- of\MessageBreak LuaTeX/XeTeX; reported}%
- \fi
- \else
- \newcommand*{\FB@@og}{%
- \iflanguage{french}%
- {\ifFB@spacing\FB@og\ignorespaces
- \else\guillemotleft
- \fi}%
- {\guillemotleft}}%
- \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{frenchb.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{frenchb.ldf}%
- {Option fg=» not supported with this version
- of\MessageBreak LuaTeX/XeTeX; reported}%
- \fi
- \else
- \newcommand*{\FB@@fg}{%
- \iflanguage{french}%
- {\ifFB@spacing\FB@fg
- \else\guillemotright
- \fi}%
- {\guillemotright}}%
- \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{frenchb.ldf}%
- {Option `fg' requires package inputenc;%
- \MessageBreak reported}%
- \fi
- }%
- \fi
- }%
-}
-\newcommand*{\FBprocess@options}{%
- \@ifpackageloaded{enumitem}{%
- \ifFBStandardItemizeEnv
- \else
- \FBStandardItemizeEnvtrue
- \PackageInfo{frenchb.ldf}%
- {Setting StandardItemizeEnv=true for\MessageBreak
- compatibility with enumitem package,\MessageBreak
- reported}%
- \fi
- \ifFBStandardEnumerateEnv
- \else
- \FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
- {Setting StandardEnumerateEnv=true for\MessageBreak
- compatibility with enumitem package,\MessageBreak
- reported}%
- \fi}{}%
- \@ifpackageloaded{paralist}{%
- \ifFBStandardItemizeEnv
- \else
- \FBStandardItemizeEnvtrue
- \PackageInfo{frenchb.ldf}%
- {Setting StandardItemizeEnv=true for\MessageBreak
- compatibility with paralist package,\MessageBreak
- reported}%
- \fi
- \ifFBStandardEnumerateEnv
- \else
- \FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
- {Setting StandardEnumerateEnv=true for\MessageBreak
- compatibility with paralist package,\MessageBreak
- reported}%
- \fi}{}%
- \@ifpackageloaded{enumerate}{%
- \ifFBStandardEnumerateEnv
- \else
- \FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.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{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; 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{frenchb.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
+ \PackageWarning{babel-french}%
+ {Option `frenchb' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}
+\else
+ \def\bbl@tempa{francais}
+ \ifx\CurrentOption\bbl@tempa
+ \let\l@francais\l@french
+ \def\CurrentOption{french}
+ \ifx\magnification\@undefined
+ \PackageWarning{babel-french}%
+ {Option `francais' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}%
+ \fi
+ \else
+ \def\bbl@tempa{canadien}
+ \ifx\CurrentOption\bbl@tempa
+ \let\l@canadien\l@acadian
+ \def\CurrentOption{acadian}
+ \PackageWarning{babel-french}%
+ {Option `canadien' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `acadian' instead; reported}
+ \fi
+ \fi
+\fi
+\input french.ldf\relax
+%%
+%% \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 `frenchb.ldf'.
diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.lua b/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
index f8e10ef8ceb..3a4ba453dde 100644
--- a/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
+++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
@@ -1,10 +1,10 @@
---
--- File `frenchb.lua’ generated from frenchb.dtx [2017/04/30 v3.3a]
---
--- Copyright © 2014-2017 Daniel Flipo
--- <daniel (dot) flipo (at) free (dot) fr>
--- License LPPL: see frenchb.ldf.
---
+--[[
+ File `frenchb.lua’ generated from frenchb.dtx
+ [2017/07/08 v3.3b French support from the babel system]
+ Copyright © 2014-2017 Daniel Flipo
+ <daniel (dot) flipo (at) free (dot) fr>
+ License LPPL: see french.ldf.
+--]]
local FB_punct_thin =
{[string.byte("!")] = true,
[string.byte("?")] = true,