texlive[44782] Master/texmf-dist: babel-french (11jul17)
commits+karl at tug.org
commits+karl at tug.org
Fri Jul 14 01:06:11 CEST 2017
Revision: 44782
http://tug.org/svn/texlive?view=revision&revision=44782
Author: karl
Date: 2017-07-14 01:06:10 +0200 (Fri, 14 Jul 2017)
Log Message:
-----------
babel-french (11jul17)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/generic/babel-french/README
trunk/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins
trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
Added Paths:
-----------
trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf
trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf
Modified: trunk/Master/texmf-dist/doc/generic/babel-french/README
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx 2017-07-13 23:05:35 UTC (rev 44781)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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 at tempa{francais}
-\ifx\CurrentOption\bbl at tempa
- \let\l at francais\l at french
- \def\captionsfrancais{\captionsfrench}
- \def\datefrancais{\datefrench}
- \def\extrasfrancais{\extrasfrench}
- \def\noextrasfrancais{\extrasfrench}
- \def\CurrentOption{french}
-\fi
-\def\bbl at tempa{frenchb}
-\ifx\CurrentOption\bbl at tempa
- \let\l at frenchb\l at 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 at 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 at error#1#2{%
\begingroup
\newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
+ \def\\{^^J(french.ldf) }%
\errhelp{#2}\errmessage{\\#1^^J}%
\endgroup}
\def\fb at warning#1{%
\begingroup
\newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
+ \def\\{^^J(french.ldf) }%
\message{\\#1^^J}%
\endgroup}
\def\fb at info#1{%
@@ -879,7 +857,7 @@
\ifx\babeltags\@undefined
\let\bbl at 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 at 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 at acadian\@undefined
- \ifx\l at canadien\@undefined
- \adddialect\l at acadian\l at french
- \adddialect\l at canadien\l at french
- \else
- \adddialect\l at acadian\l at canadien
- \fi
-\else
- \adddialect\l at canadien\l at acadian
-\fi
-\def\bbl at tempa{canadien}
+\def\bbl at tempa{acadian}
\ifx\CurrentOption\bbl at tempa
- \def\captionscanadien{\captionsacadian}
- \def\datecanadien{\dateacadian}
- \def\extrascanadien{\extrasacadian}
- \def\noextrascanadien{\extrasacadian}
- \def\CurrentOption{acadian}
+ \ifx\l at acadian\@undefined
+ \adddialect\l at acadian\l at 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 at savevariable} to handle apostrophe’s \cs{lccode}.}
@@ -995,6 +969,7 @@
%
% \begin{macrocode}
\@namedef{extras\CurrentOption}{%
+ \FBfrenchtrue
\babel at savevariable{\lccode`\'}%
\ifFBunicode
\babel at 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 at addDPspace \FB at addDPspace=1 \relax
\newattribute\FB at addGUILspace \FB at 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 @@
return head
end
return french_punctuation
+%</lua>
% \end{macrocode}
% \end{macro}
% \iffalse
-%</lua>
-%<*ldf>
+%<*french>
% \fi
%
% \begin{macro}{\FB at luatex@punct at french}
@@ -1662,7 +1637,7 @@
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 @@
% \begin{macrocode}
\ifFB at 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 @@
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 @@
\fb at 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 @@
\newcommand*{\std at math@comma}{\mathcode`\,=\std at mcc}
\fi
\newcommand*{\DecimalMathComma}{%
- \iflanguage{french}{\dec at math@comma}{}%
+ \ifFBfrench\dec at math@comma\fi
\ifFB at icomma\else\FB at addto{extras}{\dec at math@comma}\fi
}
\newcommand*{\StandardMathComma}{%
@@ -3037,7 +3012,7 @@
\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 @@
% 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 @@
% \begin{macrocode}
\newif\if at FBwarning@capsep
\@FBwarning at capseptrue
-\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}}
+\newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}}
\newcommand*{\CaptionSeparator}{\space\textendash\space}
\def\FBCaption at Separator{: }
\long\def\FB at makecaption#1#2{%
@@ -3715,13 +3690,13 @@
\ifx\bbl at main@language\FB at 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 @@
\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 @@
\ifx\bbl at main@language\FB at 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 @@
{\csname FBOldFigTabCaptions#1\endcsname
% \end{macrocode}
% |\CurrentOption| no longer defined. It’s value has been saved
-% in |\FB at CurOpt| while reading \file{frenchb.ldf}.
+% in |\FB at CurOpt| while reading \file{french.ldf}.
% \begin{macrocode}
\ifFBOldFigTabCaptions
\FB at addto{extras}{\babel at save\FBCaption at Separator
@@ -3905,7 +3880,7 @@
\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 @@
% characters.
% \begin{macrocode}
\ifFB at 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 @@
% This is for conventional TeX engines:
% \begin{macrocode}
\newcommand*{\FB@@og}{%
- \iflanguage{french}%
- {\ifFB at spacing\FB at og\ignorespaces
- \else\guillemotleft
- \fi}%
- {\guillemotleft}}%
+ \ifFBfrench
+ \ifFB at spacing\FB at og\ignorespaces
+ \else\guillemotleft
+ \fi
+ \else\guillemotleft\fi}%
\AtBeginDocument{%
\ifdefined\DeclareInputText
\ifdefined\uc at dclc
@@ -4049,7 +4024,7 @@
% \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 @@
\XeTeXcharclass"202F = \FB at guilnul
\fi
\ifFB at 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 at spacing\FB at fg
- \else\guillemotright
- \fi}%
- {\guillemotright}}%
+ \ifFBfrench
+ \ifFB at spacing\FB at fg
+ \else\guillemotright
+ \fi
+ \else\guillemotright\fi}%
\AtBeginDocument{%
\ifdefined\DeclareInputText
\ifdefined\uc at dclc
@@ -4100,7 +4075,7 @@
\fi
\fi
\else
- \PackageWarning{frenchb.ldf}%
+ \PackageWarning{french.ldf}%
{Option `fg' requires package inputenc;%
\MessageBreak reported}%
\fi
@@ -4132,7 +4107,7 @@
\ifFBStandardItemizeEnv
\else
\FBStandardItemizeEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardItemizeEnv=true for\MessageBreak
compatibility with enumitem package,\MessageBreak
reported}%
@@ -4140,7 +4115,7 @@
\ifFBStandardEnumerateEnv
\else
\FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardEnumerateEnv=true for\MessageBreak
compatibility with enumitem package,\MessageBreak
reported}%
@@ -4149,7 +4124,7 @@
\ifFBStandardItemizeEnv
\else
\FBStandardItemizeEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardItemizeEnv=true for\MessageBreak
compatibility with paralist package,\MessageBreak
reported}%
@@ -4157,7 +4132,7 @@
\ifFBStandardEnumerateEnv
\else
\FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardEnumerateEnv=true for\MessageBreak
compatibility with paralist package,\MessageBreak
reported}%
@@ -4166,7 +4141,7 @@
\ifFBStandardEnumerateEnv
\else
\FBStandardEnumerateEnvtrue
- \PackageInfo{frenchb.ldf}%
+ \PackageInfo{french.ldf}%
{Setting StandardEnumerateEnv=true for\MessageBreak
compatibility with enumerate package,\MessageBreak
reported}%
@@ -4458,7 +4433,7 @@
\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 @@
\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 @@
%
% \begin{macrocode}
\AtBeginDocument{\@ifpackageloaded{bigfoot}%
- {\PackageInfo{frenchb.ldf}%
+ {\PackageInfo{french.ldf}%
{bigfoot package in use.\MessageBreak
frenchb will NOT customise footnotes;%
\MessageBreak reported}}%
@@ -5150,9 +5125,90 @@
\let\loadlocalcfg\FB at 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 at canadien\l at 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 at francais\l at 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 at tempa{frenchb}
+\ifx\CurrentOption\bbl at tempa
+ \let\l at frenchb\l at 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 at tempa{francais}
+ \ifx\CurrentOption\bbl at tempa
+ \let\l at francais\l at 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 at tempa{canadien}
+ \ifx\CurrentOption\bbl at tempa
+ \let\l at canadien\l at 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
%% {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
@@ -5171,8 +5227,6 @@
%% Right brace \} Tilde \~}
%%
% \iffalse
-%</dtx>
+%</!lua>
% \fi
-%
-% \Finale
\endinput
Modified: trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins 2017-07-13 23:05:35 UTC (rev 44781)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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,41 +50,10 @@
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.
+Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
-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.
-
-\endpreamble
-
\keepsilent
\askforoverwritefalse
@@ -90,7 +60,12 @@
\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 @@
\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 @@
\Msg{***********************************************************}
}
-\endinput
+\endbatchfile
Added: trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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'.
Property changes on: trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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 at canadien\l at 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'.
Property changes on: trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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 at francais\l at 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'.
Property changes on: trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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 at nopatterns{%
+ \ifx\l at nohyphenation\@undefined
+ \edef\bbl at nulllanguage{\string\language=0}%
+ \adddialect\l at french0
+ \else
+ \adddialect\l at french\l at nohyphenation
+ \edef\bbl at nulllanguage{\string\language=nohyphenation}%
+ \fi
+ \@nopatterns{French}}
+\ifx\l at french\@undefined
+ \FB at nopatterns
+\fi
+\newif\ifLaTeXe
+\let\bbl at 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 at tempa\endinput
+ \else
+ \LaTeXetrue
+ \fi
+\fi
+\bbl at tempa
+\def\fb at error#1#2{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(french.ldf) }%
+ \errhelp{#2}\errmessage{\\#1^^J}%
+ \endgroup}
+\def\fb at warning#1{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(french.ldf) }%
+ \message{\\#1^^J}%
+ \endgroup}
+\def\fb at info#1{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J}%
+ \wlog{#1}%
+ \endgroup}
+\let\bbl at tempa\relax
+\ifx\babeltags\@undefined
+ \let\bbl at tempa\endinput
+ \ifLaTeXe
+ \PackageError{french.ldf}
+ {frenchb requires babel v.3.9i.\MessageBreak
+ Aborting here}
+ {Please upgrade Babel!}
+ \else
+ \fb at error{frenchb requires babel v.3.9i.\\
+ Aborting here}
+ {Please upgrade Babel!}
+ \fi
+\fi
+\bbl at tempa
+\def\bbl at tempa{acadian}
+\ifx\CurrentOption\bbl at tempa
+ \ifx\l at acadian\@undefined
+ \adddialect\l at acadian\l at 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 at savevariable{\lccode`\'}%
+ \ifFBunicode
+ \babel at savevariable{\lccode"2019}%
+ \lccode`\'="2019\lccode"2019="2019
+ \else
+ \lccode`\'=`\'
+ \fi
+}
+\@namedef{noextras\CurrentOption}{\FBfrenchfalse}
+\let\FB at CurOpt\CurrentOption
+\newcommand*{\FB at addto}[2]{%
+ \expandafter\addto\csname #1\FB at CurOpt\endcsname{#2}}
+\FB at addto{extras}{\bbl at frenchspacing}
+\FB at addto{noextras}{\bbl at nonfrenchspacing}
+\newif\ifFB at active@punct \FB at active@puncttrue
+\newif\ifFB at luatex@punct
+\ifFBLuaTeX
+ \ifnum\luatexversion<95
+ \ifx\PackageWarning\@undefined
+ \fb at 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 at luatex@puncttrue\FB at active@punctfalse
+ \fi
+\fi
+\newcount\FB at nonchar
+\newif\ifFB at xetex@punct
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax
+\else
+ \FB at xetex@puncttrue\FB at active@punctfalse
+ \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
+ \FB at nonchar=255 \relax
+ \else
+ \FB at nonchar=4095 \relax
+ \fi
+\fi
+\newcommand*{\FBcolonspace}{\space}
+\newcommand*{\FBthinspace}{\hskip.5\fontdimen2\font \relax}
+\newtoks\FBcolonsp
+\newtoks\FBthinsp
+\newif\ifFB at spacing \FB at spacingtrue
+\newcommand*{\FB at spacing@on}{%
+ \ifFB at luatex@punct
+ \FB at spacing=1 \relax
+ \else
+ \FB at spacingtrue
+ \fi}
+\newcommand*{\FB at spacing@off}{%
+ \ifFB at luatex@punct
+ \FB at spacing=0 \relax
+ \else
+ \FB at spacingfalse
+ \fi}
+\ifFB at luatex@punct
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname newluafunction\endcsname\relax
+ \input ltluatex.tex
+ \fi
+ \newattribute\FB at spacing \FB at spacing=1 \relax
+ \newattribute\FB at addDPspace \FB at addDPspace=1 \relax
+ \newattribute\FB at addGUILspace \FB at addGUILspace=0 \relax
+ \ifLaTeXe
+ \PackageInfo{french.ldf}{No need for active punctuation
+ characters\MessageBreak with this version
+ of LuaTeX!\MessageBreak reported}
+ \else
+ \fb at info{No need for active punctuation characters\\
+ with this version of LuaTeX!}
+ \fi
+\fi
+\ifFB at luatex@punct
+ \newcommand*{\FB at luatex@punct at french}{%
+ \babel at save{\shorthandon}%
+ \babel at save{\shorthandoff}%
+ \def\shorthandoff##1{%
+ \ifx\PackageWarning\@undefined
+ \fb at 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 at addto{extras}{\FB at luatex@punct at french}
+ \def\activate at luatexpunct{%
+ \directlua{%
+ FR = \the\l at 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 at xetex@punct
+ \ifLaTeXe
+ \PackageInfo{french.ldf}{No need for active punctuation characters%
+ \MessageBreak with this version of XeTeX!%
+ \MessageBreak reported}
+ \else
+ \fb at info{No need for active punctuation characters\\
+ with this version of XeTeX!}
+ \fi
+ \newXeTeXintercharclass\FB at punctthick
+ \newXeTeXintercharclass\FB at punctthin
+ \newXeTeXintercharclass\FB at punctnul
+ \newXeTeXintercharclass\FB at guilo
+ \newXeTeXintercharclass\FB at guilf
+ \newXeTeXintercharclass\FB at guilnul
+ \def\FBsavevariable at loop#1#2{\begingroup
+ \toks@\expandafter{\originalTeX #1}%
+ \edef\x{\endgroup
+ \def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}%
+ \x}
+ \def\FB at 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 at xetex@punct at french}{%
+ \babel at savevariable{\XeTeXinterchartokenstate}%
+ \babel at save{\shorthandon}%
+ \babel at save{\shorthandoff}%
+ \bbl at for\FB at char\FB at charlist
+ {\FBsavevariable at loop{\XeTeXcharclass}{\FB at char}}%
+ \def\shorthandoff##1{%
+ \ifx\PackageWarning\@undefined
+ \fb at 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 at punctthick
+ \XeTeXinterchartoks \z@ \FB at punctthick = {%
+ \ifFB at spacing\ifhmode\FDP at colonspace\fi\fi}%
+ \XeTeXinterchartoks \FB at guilf \FB at punctthick = {%
+ \ifFB at spacing\FDP at colonspace\fi}%
+ \XeTeXinterchartoks \FB at nonchar \FB at punctthick = {%
+ \ifFB at spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBcolonspace
+ \else
+ \FDP at colonspace
+ \fi
+ \fi
+ \fi}%
+ \bbl at for\FB at char
+ {`\;,`\!,`\?}%
+ {\XeTeXcharclass\FB at char=\FB at punctthin}%
+ \XeTeXinterchartoks \z@ \FB at punctthin = {%
+ \ifFB at spacing\ifhmode\FDP at thinspace\fi\fi}%
+ \XeTeXinterchartoks \FB at guilf \FB at punctthin = {%
+ \ifFB at spacing\FDP at thinspace\fi}%
+ \XeTeXinterchartoks \FB at nonchar \FB at punctthin = {%
+ \ifFB at spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP at thinspace
+ \fi
+ \fi
+ \fi}%
+ \XeTeXinterchartoks \FB at guilo \z@ = {%
+ \ifFB at spacing\FB at guillspace\fi}%
+ \XeTeXinterchartoks \FB at guilo \FB at nonchar = {%
+ \ifFB at spacing\FB at guillspace\ignorespaces\fi}%
+ \XeTeXinterchartoks \z@ \FB at guilf = {%
+ \ifFB at spacing\FB at guillspace\fi}%
+ \XeTeXinterchartoks \FB at punctthin \FB at guilf = {%
+ \ifFB at spacing\FB at guillspace\fi}%
+ \XeTeXinterchartoks \FB at nonchar \FB at guilf = {%
+ \ifFB at spacing\unskip\FB at guillspace\fi}%
+ \bbl at for\FB at char
+ {`\[,`\(,"A0,"202F}%
+ {\XeTeXcharclass\FB at char=\FB at punctnul}%
+ \bbl at for\FB at char
+ {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}%
+ {\XeTeXcharclass\FB at char=\z@}%
+ }
+ \FB at addto{extras}{\FB at xetex@punct at french}
+\fi
+\ifFB at active@punct
+ \initiate at active@char{:}%
+ \initiate at active@char{;}%
+ \initiate at active@char{!}%
+ \initiate at active@char{?}%
+ \declare at shorthand{french}{;}{%
+ \ifFB at spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP at thinspace
+ \fi
+ \fi
+ \fi
+ \string;}
+ \declare at shorthand{french}{!}{%
+ \ifFB at spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP at thinspace
+ \fi
+ \fi
+ \fi
+ \string!}
+ \declare at shorthand{french}{?}{%
+ \ifFB at spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBthinspace
+ \else
+ \FDP at thinspace
+ \fi
+ \fi
+ \fi
+ \string?}
+ \declare at shorthand{french}{:}{%
+ \ifFB at spacing
+ \ifhmode
+ \ifdim\lastskip>1sp
+ \unskip\penalty\@M\FBcolonspace
+ \else
+ \FDP at colonspace
+ \fi
+ \fi
+ \fi
+ \string:}
+ \declare at shorthand{system}{:}{\string:}
+ \declare at shorthand{system}{!}{\string!}
+ \declare at shorthand{system}{?}{\string?}
+ \declare at shorthand{system}{;}{\string;}
+ \FB at addto{extras}{\languageshorthands{french}%
+ \bbl at activate{:}\bbl at activate{;}%
+ \bbl at activate{!}\bbl at activate{?}%
+ }
+ \FB at addto{noextras}{%
+ \bbl at deactivate{:}\bbl at deactivate{;}%
+ \bbl at deactivate{!}\bbl at deactivate{?}%
+ }
+\fi
+\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue
+\def\autospace at beforeFDP{%
+ \ifFB at luatex@punct\FB at addDPspace=1 \fi
+ \def\FDP at thinspace{\penalty\@M\FBthinspace}%
+ \def\FDP at colonspace{\penalty\@M\FBcolonspace}}
+\def\noautospace at beforeFDP{%
+ \ifFB at luatex@punct\FB at addDPspace=0 \fi
+ \let\FDP at thinspace\@empty
+ \let\FDP at colonspace\@empty}
+\ifLaTeXe
+ \def\AutoSpaceBeforeFDP{\autospace at beforeFDP
+ \FBAutoSpacePunctuationtrue}
+ \def\NoAutoSpaceBeforeFDP{\noautospace at beforeFDP
+ \FBAutoSpacePunctuationfalse}
+ \AtEndOfPackage{\AutoSpaceBeforeFDP}
+\else
+ \let\AutoSpaceBeforeFDP\autospace at beforeFDP
+ \let\NoAutoSpaceBeforeFDP\noautospace at beforeFDP
+ \AutoSpaceBeforeFDP
+\fi
+\ifLaTeXe
+ \DeclareRobustCommand\ttfamilyFB{\FB at spacing@off \ttfamilyORI}
+ \DeclareRobustCommand\rmfamilyFB{\FB at spacing@on \rmfamilyORI}
+ \DeclareRobustCommand\sffamilyFB{\FB at spacing@on \sffamilyORI}
+\fi
+\DeclareRobustCommand*{\NoAutoSpacing}{%
+ \FB at spacing@off
+ \ifFB at 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 at guillspace}{\penalty\@M\FBguillspace}
+\newtoks\FBguillsp
+\ifFB at luatex@punct
+ \DeclareRobustCommand*{\FB at og}{\leavevmode
+ \bgroup\FB at spacing=0 \guillemotleft\egroup
+ \FB at guillspace}
+ \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+ \FB at guillspace
+ \bgroup\FB at spacing=0 \guillemotright\egroup}
+\fi
+\ifFB at xetex@punct
+ \DeclareRobustCommand*{\FB at og}{\leavevmode
+ \bgroup\FB at spacingfalse\guillemotleft\egroup
+ \FB at guillspace}
+ \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+ \FB at guillspace
+ \bgroup\FB at spacingfalse\guillemotright\egroup}
+\fi
+\ifFB at active@punct
+ \DeclareRobustCommand*{\FB at og}{\leavevmode
+ \guillemotleft
+ \FB at guillspace}
+ \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+ \FB at guillspace
+ \guillemotright}
+\fi
+\newcommand*{\og}{\@empty}
+\newcommand*{\fg}{\@empty}
+\ifLaTeXe
+ \def\bbl at frenchguillemets{\renewcommand*{\og}{\FB at og}%
+ \renewcommand*{\fg}{\FB at fg\xspace}}
+ \renewcommand*{\og}{\textquotedblleft}
+ \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi
+ \textquotedblright\xspace}
+\else
+ \def\bbl at frenchguillemets{\let\og\FB at og
+ \let\fg\FB at fg}
+ \def\og{\textquotedblleft}
+ \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}
+\fi
+\FB at addto{extras}{\babel at save\og \babel at save\fg \bbl at frenchguillemets}
+\newcommand*{\ogi}{\FB at og}
+\newcommand*{\fgi}{\FB at fg}
+\newcommand*{\ogii}{\textquotedblleft}
+\newcommand*{\fgii}{\textquotedblright}
+\newcount\FBguill at level
+\newtoks\FB at 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 at quote}%
+ {\FBcloseguilltrue\fr at quote}}
+\else
+ \newcommand\frquote[1]{\fr at quote{#1}}
+\fi
+\newcommand{\fr at quote}[1]{%
+ \leavevmode
+ \advance\FBguill at level by \@ne
+ \ifcase\FBguill at level
+ \or
+ \FB at everypar=\everypar
+ \ifx\FBeveryparguill\FBguillnone
+ \else
+ \def\FBeverypar at quote{\FBeveryparguill\FB at guillspace}%
+ \everypar=\expandafter{\the\everypar \FBeverypar at quote}%
+ \fi
+ \ogi #1\fgi
+ \or
+ \ifx\FBeverylineguill\FBguillopen
+ \localleftbox{\guillemotleft\FB at guillspace}%
+ \let\FBeverypar at quote\relax
+ \ogi #1\ifFBcloseguill\fgi\fi
+ \else
+ \ifx\FBeverylineguill\FBguillclose
+ \localleftbox{\guillemotright\FB at guillspace}%
+ \let\FBeverypar at quote\relax
+ \ogi #1\ifFBcloseguill\fgi\fi
+ \else
+ \let\FBeverypar at quote\relax
+ \ifFBInnerGuillSingle
+ \def\ogii{\leavevmode
+ \guilsinglleft\FB at guillspace}%
+ \def\fgii{\ifdim\lastskip>\z@\unskip\fi
+ \FB at guillspace\guilsinglright}%
+ \ifx\FBeveryparguill\FBguillopen
+ \def\FBeverypar at quote{\guilsinglleft\FB at guillspace}%
+ \fi
+ \ifx\FBeveryparguill\FBguillclose
+ \def\FBeverypar at quote{\guilsinglright\FB at guillspace}%
+ \fi
+ \fi
+ \ogii #1\ifFBcloseguill \fgii \fi
+ \fi
+ \fi
+ \else
+ \ifx\PackageWarning\@undefined
+ \fb at 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 at level by \m at ne
+ \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi
+ \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB at 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 at poorman
+\newdimen\FB at Mht
+\ifLaTeXe
+ \AtEndOfPackage{\RequirePackage{scalefnt}}
+ \newcommand*{\FBsupR}{-0.12}
+ \newcommand*{\FBsupS}{0.65}
+ \newcommand*{\FB at lc}[1]{\MakeLowercase{#1}}
+ \DeclareRobustCommand*{\FB at up@fake}[1]{%
+ \settoheight{\FB at Mht}{M}%
+ \addtolength{\FB at Mht}{\FBsupR \FB at Mht}%
+ \addtolength{\FB at Mht}{-\FBsupS ex}%
+ \raisebox{\FB at Mht}{\scalefont{\FBsupS}{\FB at lc{#1}}}%
+ }
+ \def\FB at split#1#2#3#4\@nil{\def\FB at firstthree{#1#2#3}%
+ \def\FB at suffix{#4}}
+ \def\FB at x{x}
+ \def\FB at j{j}
+ \DeclareRobustCommand*{\FB at up}[1]{%
+ \bgroup \FB at poormantrue
+ \expandafter\FB at split\f at family\@nil
+ \edef\reserved at a{\lowercase{%
+ \noexpand\IfFileExists{\f at encoding\FB at firstthree -sup.fd}}}%
+ \reserved at a
+ {\ifx\FB at suffix\FB at x \FB at poormanfalse\fi
+ \ifx\FB at suffix\FB at j \FB at poormanfalse\fi
+ \ifFB at poorman \FB at up@fake{#1}%
+ \else \FB at up@real{#1}%
+ \fi}%
+ {\FB at up@fake{#1}}%
+ \egroup}
+ \newcommand*{\FB at up@real}[1]{\bgroup
+ \fontfamily{\FB at firstthree -sup}\selectfont \FB at lc{#1}\egroup}
+ \DeclareRobustCommand*{\fup}[1]{%
+ \ifx\realsuperscript\@undefined
+ \FB at up{#1}%
+ \else
+ \bgroup\let\fakesuperscript\FB at up@fake
+ \realsuperscript{\FB at 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 at one{T1}
+ \ifx\f at encoding\T at 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 at degree@TSone{\FBWarning
+ {Degrees would look better in TS1-encoding:%
+ \MessageBreak add \protect
+ \usepackage{textcomp} to the preamble.%
+ \MessageBreak Degrees used}}
+ \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined
+ \DeclareRobustCommand*{\degres}{%
+ \leavevmode\hbox to 0.3em{\hss\degre\hss}%
+ \Warning at degree@TSone
+ \global\let\Warning at degree@TSone\relax}%
+ \else
+ \DeclareRobustCommand*{\degres}{%
+ \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
+ \fi
+ }
+ \fi
+\else
+ \newcommand*{\degres}{%
+ \leavevmode\hbox to 0.3em{\hss\degre\hss}}
+\fi
+\newif\ifFB at icomma
+\newcount\mc at charclass
+\newcount\mc at charfam
+\newcount\mc at charslot
+\newcount\std at mcc
+\newcount\dec at mcc
+\ifFBLuaTeX
+ \mc at charclass=\Umathcharclass`\,
+ \newcommand*{\dec at math@comma}{%
+ \mc at charfam=\Umathcharfam`\,
+ \mc at charslot=\Umathcharslot`\,
+ \Umathcode`\,= 0 \mc at charfam \mc at charslot
+ }
+ \newcommand*{\std at math@comma}{%
+ \mc at charfam=\Umathcharfam`\,
+ \mc at charslot=\Umathcharslot`\,
+ \Umathcode`\,= \mc at charclass \mc at charfam \mc at charslot
+ }
+\else
+ \std at mcc=\mathcode`\,
+ \dec at mcc=\std at mcc
+ \@tempcnta=\std at mcc
+ \divide\@tempcnta by "1000
+ \multiply\@tempcnta by "1000
+ \advance\dec at mcc by -\@tempcnta
+ \newcommand*{\dec at math@comma}{\mathcode`\,=\dec at mcc}
+ \newcommand*{\std at math@comma}{\mathcode`\,=\std at mcc}
+\fi
+\newcommand*{\DecimalMathComma}{%
+ \ifFBfrench\dec at math@comma\fi
+ \ifFB at icomma\else\FB at addto{extras}{\dec at math@comma}\fi
+}
+\newcommand*{\StandardMathComma}{%
+ \std at math@comma
+ \ifFB at icomma\else\FB at addto{extras}{\std at math@comma}\fi
+}
+\ifLaTeXe
+ \AtBeginDocument{\@ifpackageloaded{icomma}%
+ {\FB at icommatrue}%
+ {\FB at addto{noextras}{\std at math@comma}}%
+ }
+\else
+ \FB at addto{noextras}{\std at math@comma}
+\fi
+\newcommand*{\nombre}[1]{{#1}\fb at warning{*** \noexpand\nombre
+ no longer formats numbers\string! ***}}
+\let\FBstop at here\relax
+\def\FBclean at on@exit{\let\ifLaTeXe\undefined
+ \let\LaTeXetrue\undefined
+ \let\LaTeXefalse\undefined}
+\ifx\magnification\@undefined
+\else
+ \def\FBstop at here{\ifFB at luatex@punct
+ \activate at luatexpunct
+ \fi
+ \FBclean at on@exit
+ \ldf at quit\CurrentOption\endinput}
+\fi
+\FBstop at here
+\renewcommand*{\nombre}[1]{\Warning at nombre{#1}}
+\newcommand*{\Warning at 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 at 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 at emptypart}{\def\thepart{}}%
+ \DeclareRobustCommand*{\FB at partname}{%
+ \ifFBPartNameFull
+ \csname ordinal\romannumeral\value{part}\endcsname\space
+ \frenchpartnameord\FB at emptypart
+ \else
+ Partie%
+ \fi}%
+ }
+ \SetString{\partname}{\FB at partname}
+\EndBabelCommands
+\AtEndOfPackage{%
+ \ifFB at koma
+ \ifdefined\partformat
+ \FB at addto{captions}{%
+ \ifFBPartNameFull
+ \babel at save\partformat
+ \renewcommand*{\partformat}{\partname}%
+ \fi}%
+ \fi
+ \fi
+}
+\bgroup
+ \catcode`:=12 \catcode`>=12 \relax
+ \long\gdef\STD at makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\egroup
+\newif\if at FBwarning@capsep
+\@FBwarning at capseptrue
+\newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}}
+\newcommand*{\CaptionSeparator}{\space\textendash\space}
+\def\FBCaption at Separator{: }
+\long\def\FB at makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1\FBCaption at Separator #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1\FBCaption at Separator #2\par
+ \else
+ \global \@minipagefalse
+ \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\@ifclassloaded{amsart}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{amsbook}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{amsdtx}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{amsldoc}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{amproc}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{smfart}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{smfbook}{\@FBwarning at capsepfalse}{}
+\ifFB at active@punct\else\@FBwarning at capsepfalse\fi
+\newif\ifFB at koma
+\@ifclassloaded{memoir}{\@FBwarning at capsepfalse}{}
+\@ifclassloaded{scrartcl}{\@FBwarning at capsepfalse\FB at komatrue}{}
+\@ifclassloaded{scrbook}{\@FBwarning at capsepfalse\FB at komatrue}{}
+\@ifclassloaded{scrreprt}{\@FBwarning at capsepfalse\FB at komatrue}{}
+\@ifclassloaded{beamer}{\@FBwarning at capsepfalse}{}
+\ifdefined\@makecaption\else\@FBwarning at capsepfalse\fi
+\@ifpackageloaded{caption}
+ {\FBWarning{Please load the "caption" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ \@FBwarning at capsepfalse}%
+ {}
+\@ifpackageloaded{subcaption}
+ {\FBWarning{Please load the "subcaption" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ \@FBwarning at capsepfalse}%
+ {}
+\@ifpackageloaded{floatrow}
+ {\FBWarning{Please load the "floatrow" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ \@FBwarning at capsepfalse}%
+ {}
+\AtBeginDocument{%
+ \ifx\@makecaption\STD at makecaption
+ \global\let\@makecaption\FB at makecaption
+ \ifFBOldFigTabCaptions
+ \else
+ \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+ \fi
+ \ifFBCustomiseFigTabCaptions
+ \ifx\bbl at main@language\FB at french
+ \def\FBCaption at Separator{\CaptionSeparator}%
+ \fi
+ \fi
+ \@FBwarning at capsepfalse
+ \fi
+ \if at 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 at makecaption\relax
+ \let\STD at 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 at frenchdots{\babel at save\Tdots@ \let\Tdots@\FBtextellipsis}
+\FB at addto{extras}{\bbl at frenchdots}
+\ifFB at active@punct
+ \@ifpackageloaded{listings}
+ {\FBWarning{Please load the "listings" package\MessageBreak
+ AFTER babel/frenchb; reported}%
+ }{}
+\fi
+\newif\if at FBwarning@natbib
+\ifFB at active@punct
+ \@ifpackageloaded{natbib}{}{\@FBwarning at natbibtrue}
+\fi
+\AtBeginDocument{%
+ \if at FBwarning@natbib
+ \@ifpackageloaded{natbib}{}{\@FBwarning at natbibfalse}%
+ \fi
+ \if at FBwarning@natbib
+ \FBWarning{Please load the "natbib" package\MessageBreak
+ BEFORE babel/frenchb; reported}%
+ \fi
+}
+\newif\if at FBwarning@beamerarticle
+\@ifpackageloaded{beamerarticle}{}{\@FBwarning at beamerarticletrue}
+\AtBeginDocument{%
+ \if at FBwarning@beamerarticle
+ \@ifpackageloaded{beamerarticle}{}%
+ {\@FBwarning at beamerarticlefalse}%
+ \fi
+ \if at FBwarning@beamerarticle
+ \FBWarning{Please load the "beamerarticle" package\MessageBreak
+ BEFORE babel/frenchb; reported}%
+ \fi
+}
+\newcommand*{\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 at french{\CurrentOption}
+\AtEndOfPackage{%
+ \ifx\bbl at main@language\FB at 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 at key{FB}{ShowOptions}[true]%
+ {\csname FBShowOptions#1\endcsname}%
+ \define at key{FB}{StandardLayout}[true]%
+ {\csname FBStandardLayout#1\endcsname
+ \ifFBStandardLayout
+ \FBReduceListSpacingfalse
+ \FBStandardItemizeEnvtrue
+ \FBStandardItemLabelstrue
+ \FBStandardEnumerateEnvtrue
+ \FBIndentFirstfalse
+ \FBFrenchFootnotesfalse
+ \FBAutoSpaceFootnotesfalse
+ \FBGlobalLayoutFrenchfalse
+ \else
+ \FBReduceListSpacingtrue
+ \FBStandardItemizeEnvfalse
+ \FBStandardItemLabelsfalse
+ \FBStandardEnumerateEnvfalse
+ \FBIndentFirsttrue
+ \FBFrenchFootnotestrue
+ \FBAutoSpaceFootnotestrue
+ \fi}%
+ \define at key{FB}{GlobalLayoutFrench}[true]%
+ {\csname FBGlobalLayoutFrench#1\endcsname
+ \ifFBGlobalLayoutFrench
+ \ifx\bbl at main@language\FB at french
+ \else
+ \FBGlobalLayoutFrenchfalse
+ \PackageWarning{french.ldf}%
+ {Option `GlobalLayoutFrench' skipped:\MessageBreak
+ French is *not* babel's last option.\MessageBreak
+ Reported}%
+ \fi
+ \fi}%
+ \define at key{FB}{ReduceListSpacing}[true]%
+ {\csname FBReduceListSpacing#1\endcsname}%
+ \define at key{FB}{ListOldLayout}[true]%
+ {\csname FBListOldLayout#1\endcsname
+ \ifFBListOldLayout
+ \FBStandardEnumerateEnvtrue
+ \renewcommand*{\FrenchLabelItem}{\textendash}%
+ \fi}%
+ \define at key{FB}{CompactItemize}[true]%
+ {\csname FBCompactItemize#1\endcsname
+ \ifFBCompactItemize
+ \FBStandardItemizeEnvfalse
+ \FBStandardEnumerateEnvfalse
+ \else
+ \FBStandardItemizeEnvtrue
+ \FBStandardEnumerateEnvtrue
+ \fi}%
+ \define at key{FB}{StandardItemizeEnv}[true]%
+ {\csname FBStandardItemizeEnv#1\endcsname}%
+ \define at key{FB}{StandardEnumerateEnv}[true]%
+ {\csname FBStandardEnumerateEnv#1\endcsname}%
+ \define at key{FB}{StandardItemLabels}[true]%
+ {\csname FBStandardItemLabels#1\endcsname}%
+ \define at key{FB}{ItemLabels}%
+ {\renewcommand*{\FrenchLabelItem}{#1}}%
+ \define at key{FB}{ItemLabeli}%
+ {\renewcommand*{\Frlabelitemi}{#1}}%
+ \define at key{FB}{ItemLabelii}%
+ {\renewcommand*{\Frlabelitemii}{#1}}%
+ \define at key{FB}{ItemLabeliii}%
+ {\renewcommand*{\Frlabelitemiii}{#1}}%
+ \define at key{FB}{ItemLabeliv}%
+ {\renewcommand*{\Frlabelitemiv}{#1}}%
+ \define at key{FB}{StandardLists}[true]%
+ {\csname FBStandardLists#1\endcsname
+ \ifFBStandardLists
+ \FBReduceListSpacingfalse
+ \FBCompactItemizefalse
+ \FBStandardItemizeEnvtrue
+ \FBStandardEnumerateEnvtrue
+ \FBStandardItemLabelstrue
+ \else
+ \FBReduceListSpacingtrue
+ \FBCompactItemizetrue
+ \FBStandardItemizeEnvfalse
+ \FBStandardEnumerateEnvfalse
+ \FBStandardItemLabelsfalse
+ \fi}%
+ \define at key{FB}{IndentFirst}[true]%
+ {\csname FBIndentFirst#1\endcsname}%
+ \define at key{FB}{FrenchFootnotes}[true]%
+ {\csname FBFrenchFootnotes#1\endcsname}%
+ \define at key{FB}{AutoSpaceFootnotes}[true]%
+ {\csname FBAutoSpaceFootnotes#1\endcsname}%
+ \define at key{FB}{AutoSpacePunctuation}[true]%
+ {\csname FBAutoSpacePunctuation#1\endcsname}%
+ \define at key{FB}{OriginalTypewriter}[true]%
+ {\csname FBOriginalTypewriter#1\endcsname}%
+ \define at key{FB}{ThinColonSpace}[true]%
+ {\csname FBThinColonSpace#1\endcsname
+ \ifFBThinColonSpace
+ \renewcommand*{\FBcolonspace}{\FBthinspace}%
+ \fi}%
+ \define at key{FB}{ThinSpaceInFrenchNumbers}[true]%
+ {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
+ \define at key{FB}{FrenchSuperscripts}[true]%
+ {\csname FBFrenchSuperscripts#1\endcsname}
+ \define at key{FB}{LowercaseSuperscripts}[true]%
+ {\csname FBLowercaseSuperscripts#1\endcsname}
+ \define at key{FB}{PartNameFull}[true]%
+ {\csname FBPartNameFull#1\endcsname}%
+ \define at key{FB}{CustomiseFigTabCaptions}[true]%
+ {\csname FBCustomiseFigTabCaptions#1\endcsname}%
+ \define at key{FB}{OldFigTabCaptions}[true]%
+ {\csname FBOldFigTabCaptions#1\endcsname
+ \ifFBOldFigTabCaptions
+ \FB at addto{extras}{\babel at save\FBCaption at Separator
+ \def\FBCaption at Separator{\CaptionSeparator}}%
+ \fi}%
+ \define at key{FB}{SmallCapsFigTabCaptions}[true]%
+ {\csname FBSmallCapsFigTabCaptions#1\endcsname
+ \ifFBSmallCapsFigTabCaptions
+ \let\FBfigtabshape\scshape
+ \else
+ \let\FBfigtabshape\relax
+ \fi}%
+ \define at key{FB}{SuppressWarning}[true]%
+ {\csname FBSuppressWarning#1\endcsname
+ \ifFBSuppressWarning
+ \renewcommand{\FBWarning}[1]{}%
+ \fi}%
+ \define at key{FB}{INGuillSpace}[true]%
+ {\csname FBINGuillSpace#1\endcsname
+ \ifFBINGuillSpace
+ \renewcommand*{\FBguillspace}{\space}%
+ \fi}%
+ \define at key{FB}{InnerGuillSingle}[true]%
+ {\csname FBInnerGuillSingle#1\endcsname}%
+ \define at key{FB}{EveryParGuill}[open]%
+ {\expandafter\let\expandafter
+ \FBeveryparguill\csname FBguill#1\endcsname
+ \ifx\FBeveryparguill\FBguillopen
+ \else\ifx\FBeveryparguill\FBguillclose
+ \else\ifx\FBeveryparguill\FBguillnone
+ \else
+ \let\FBeveryparguill\FBguillopen
+ \PackageWarning{french.ldf}%
+ {Wrong value for `EveryParGuill':
+ try `open',\MessageBreak
+ `close' or `none'. Reported}%
+ \fi
+ \fi
+ \fi}%
+ \define at key{FB}{EveryLineGuill}[open]%
+ {\ifFB at luatex@punct
+ \expandafter\let\expandafter
+ \FBeverylineguill\csname FBguill#1\endcsname
+ \ifx\FBeverylineguill\FBguillopen
+ \else\ifx\FBeverylineguill\FBguillclose
+ \else\ifx\FBeverylineguill\FBguillnone
+ \else
+ \let\FBeverylineguill\FBguillnone
+ \FBWarning{Wrong value for `EveryLineGuill':
+ try `open',\MessageBreak
+ `close' or `none'. Reported}%
+ \fi
+ \fi
+ \fi
+ \else
+ \FBWarning{Option `EveryLineGuill' skipped:%
+ \MessageBreak this option is for
+ LuaTeX *only*.\MessageBreak Reported}%
+ \fi}%
+ \define at key{FB}{og}%
+ {\ifFBunicode
+ \ifFB at luatex@punct
+ \FB at addGUILspace=1 \relax
+ \fi
+ \ifFB at xetex@punct
+ \XeTeXcharclass"13 = \FB at guilo
+ \XeTeXcharclass"AB = \FB at guilo
+ \XeTeXcharclass"A0 = \FB at guilnul
+ \XeTeXcharclass"202F = \FB at guilnul
+ \fi
+ \ifFB at active@punct
+ \PackageWarning{french.ldf}%
+ {Option og=« not supported with this version
+ of\MessageBreak LuaTeX/XeTeX; reported}%
+ \fi
+ \else
+ \newcommand*{\FB@@og}{%
+ \ifFBfrench
+ \ifFB at spacing\FB at og\ignorespaces
+ \else\guillemotleft
+ \fi
+ \else\guillemotleft\fi}%
+ \AtBeginDocument{%
+ \ifdefined\DeclareInputText
+ \ifdefined\uc at dclc
+ \uc at dclc{171}{default}{\FB@@og}%
+ \else
+ \ifdefined\DeclareUnicodeCharacter
+ \DeclareUnicodeCharacter{00AB}{\FB@@og}%
+ \else
+ \@tempcnta`#1\relax
+ \ifdefined\mule at def
+ \mule at def{11}{\FB@@og}%
+ \else
+ \DeclareInputText{\the\@tempcnta}{\FB@@og}%
+ \fi
+ \fi
+ \fi
+ \else
+ \PackageWarning{french.ldf}%
+ {Option `og' requires package inputenc;%
+ \MessageBreak reported}%
+ \fi
+ }%
+ \fi
+ }%
+ \define at key{FB}{fg}%
+ {\ifFBunicode
+ \ifFB at luatex@punct
+ \FB at addGUILspace=1 \relax
+ \fi
+ \ifFB at xetex@punct
+ \XeTeXcharclass"14 = \FB at guilf
+ \XeTeXcharclass"BB = \FB at guilf
+ \XeTeXcharclass"A0 = \FB at guilnul
+ \XeTeXcharclass"202F = \FB at guilnul
+ \fi
+ \ifFB at active@punct
+ \PackageWarning{french.ldf}%
+ {Option fg=» not supported with this version
+ of\MessageBreak LuaTeX/XeTeX; reported}%
+ \fi
+ \else
+ \newcommand*{\FB@@fg}{%
+ \ifFBfrench
+ \ifFB at spacing\FB at fg
+ \else\guillemotright
+ \fi
+ \else\guillemotright\fi}%
+ \AtBeginDocument{%
+ \ifdefined\DeclareInputText
+ \ifdefined\uc at dclc
+ \uc at dclc{187}{default}{\FB@@fg}%
+ \else
+ \ifdefined\DeclareUnicodeCharacter
+ \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
+ \else
+ \@tempcnta`#1\relax
+ \ifdefined\mule at def
+ \mule at 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 at 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 at ufl{\update at frenchlists}
+ \ifx\bbl at main@language\FB at french
+ \update at frenchlists
+ \fi
+ \ifFBAutoSpacePunctuation
+ \autospace at beforeFDP
+ \else
+ \noautospace at 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 at autolanguage
+ \providecommand*{\npstylefrench}{}%
+ \ifFBThinSpaceInFrenchNumbers
+ \renewcommand*\npstylefrench{%
+ \npthousandsep{\,}%
+ \npdecimalsign{,}%
+ \npproductsign{\cdot}%
+ \npunitseparator{\,}%
+ \npdegreeseparator{}%
+ \nppercentseparator{\nprt at unitsep}%
+ }%
+ \else
+ \renewcommand*\npstylefrench{%
+ \npthousandsep{~}%
+ \npdecimalsign{,}%
+ \npproductsign{\cdot}%
+ \npunitseparator{\,}%
+ \npdegreeseparator{}%
+ \nppercentseparator{\nprt at unitsep}%
+ }%
+ \fi
+ \npaddtolanguage{french}{french}%
+ \fi}{}%
+ \ifFBFrenchSuperscripts
+ \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}{\fup}}%
+ \else
+ \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}%
+ {\textsuperscript}}%
+ \fi
+ \ifFBLowercaseSuperscripts
+ \else
+ \renewcommand*{\FB at lc}[1]{##1}%
+ \fi
+ \ifFBCustomiseFigTabCaptions
+ \ifFB at koma
+ \renewcommand*{\captionformat}{\CaptionSeparator}%
+ \fi
+ \@ifclassloaded{memoir}%
+ {\captiondelim{\CaptionSeparator}}{}%
+ \@ifclassloaded{beamer}%
+ {\defbeamertemplate{caption label separator}{FBcustom}{%
+ \CaptionSeparator}%
+ \setbeamertemplate{caption label separator}[FBcustom]}{}%
+ \else
+ \ifFB at koma
+ \renewcommand*{\captionformat}{{\autospace at beforeFDP : }}%
+ \fi
+ \@ifclassloaded{memoir}%
+ {\captiondelim{{\autospace at beforeFDP : }}%
+ }{}%
+ \@ifclassloaded{beamer}%
+ {\defbeamertemplate{caption label separator}{FBcolon}{%
+ {\autospace at 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 at og{\guillemotleft\space}%
+ \def\FB at fg{\space\guillemotright}%
+ \def\at{@}%
+ \def\circonflexe{\string^}%
+ \def\tild{\string~}%
+ \def\boi{\textbackslash}%
+ \let\bsc\textsc
+ }%
+ \fi
+ \FBprocess at options
+ \ifFB at luatex@punct
+ \FBcolonsp=\expandafter{\meaning\FBcolonspace}
+ \FBthinsp= \expandafter{\meaning\FBthinspace}
+ \FBguillsp=\expandafter{\meaning\FBguillspace}
+ \activate at 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 at 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 at 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 at listHsettings{%
+ \leftmarginFB\labelwidthFB
+ \advance\leftmarginFB \labelsep
+ \bbl at for\FB at dp {1, 2, 3, 4, 5, 6}%
+ {\csname leftmargin\romannumeral\FB at dp\endcsname \leftmarginFB}%
+ \advance\leftmargini \listindentFB
+ \leftmargin\csname leftmargin\ifnum\@listdepth=\@ne i\else
+ ii\fi\endcsname
+}
+\def\FB at itemizesettings{%
+ \ifFBReduceListSpacing
+ \setlength{\itemsep}{\z@}%
+ \setlength{\parsep}{\z@}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\partopsep}{\z@}%
+ \@tempdima=\parskip
+ \addtolength{\topsep}{-\@tempdima}%
+ \addtolength{\partopsep}{\@tempdima}%
+ \fi
+ \settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
+ \ifFBListOldLayout
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \addtolength{\leftmargin}{\parindent}%
+ \else
+ \FB at listHsettings
+ \fi
+}
+\def\itemizeFB{%
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \listORI
+ \csname\@itemitem\endcsname
+ \FB at 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 at listHsettings
+ \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
+ \fi
+}
+\let\endenumerateFB\endlistORI
+\def\descriptionFB{%
+ \list{}{\FB at 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 at 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 at ufl{\relax}
+\def\bbl at frenchlistlayout{%
+ \ifFBGlobalLayoutFrench
+ \else
+ \babel at save\list \babel at save\itemize
+ \babel at save\enumerate \babel at save\description
+ \babel at save\labelitemi \babel at save\labelitemii
+ \babel at save\labelitemiii \babel at save\labelitemiv
+ \FB at ufl
+ \fi
+}
+\FB at addto{extras}{\bbl at frenchlistlayout}
+\def\bbl at frenchindent{%
+ \ifFBGlobalLayoutFrench
+ \else
+ \babel at save\@afterindentfalse
+ \fi
+ \ifFBIndentFirst
+ \let\@afterindentfalse\@afterindenttrue
+ \@afterindenttrue
+ \fi}
+\def\bbl at nonfrenchindent{%
+ \ifFBGlobalLayoutFrench
+ \ifFBIndentFirst
+ \@afterindenttrue
+ \fi
+ \fi}
+\FB at addto{extras}{\bbl at frenchindent}
+\FB at addto{noextras}{\bbl at 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 at koma
+ \let\@makefntextORI\@makefntext
+ \let\@@makefnmarkORI\@@makefnmark
+ \deffootnote[\FBfnindent]{0pt}{\parindentFFN}%
+ {\thefootnotemark\dotFFN\kernFFN}
+ \let\@makefntextFB\@makefntext
+ \let\@@makefnmarkFB\@@makefnmark
+ \deffootnote[\parindentFFN]{0pt}{\parindentFFN}%
+ {\textsuperscript{\thefootnotemark}}
+ \let\@makefntextTH\@makefntext
+ \let\@@makefnmarkTH\@@makefnmark
+ \let\@makefntext\@makefntextORI
+ \let\@@makefnmark\@@makefnmarkORI
+\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 at koma
+ \let\@@makefnmarkORI\@@makefnmark
+ \long\def\@makefntext#1{%
+ \ifFBFrenchFootnotes
+ \ifx\footnote\thanks
+ \let\@@makefnmark\@@makefnmarkTH
+ \@makefntextTH{#1}%
+ \else
+ \let\@@makefnmark\@@makefnmarkFB
+ \@makefntextFB{#1}%
+ \fi
+ \else
+ \let\@@makefnmark\@@makefnmarkORI
+ \@makefntextORI{#1}%
+ \fi}%
+ \else
+ \@ifclassloaded{memoir}%
+ {\ifFBFrenchFootnotes
+ \setlength{\thanksmarkwidth}{\parindentFFN}%
+ \setlength{\thanksmarksep}{-\thanksmarkwidth}%
+ \fi
+ }{}%
+ \@ifclassloaded{beamer}%
+ {\ifFBFrenchFootnotes
+ \ifdim\parindentFFN=1.5em\else
+ \FBWarning{%
+ \protect\parindentFFN\space is ineffective%
+ \MessageBreak within the beamer class.%
+ \MessageBreak Reported}%
+ \fi
+ \fi
+ }{}%
+ \long\def\@makefntext#1{%
+ \ifFBFrenchFootnotes
+ \@makefntextFB{#1}%
+ \else
+ \@makefntextORI{#1}%
+ \fi}%
+ \fi
+ }%
+}
+\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue}
+\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue}
+\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse}
+\FBclean at on@exit
+\let\FB at llc\loadlocalcfg
+\let\loadlocalcfg\@gobble
+\ldf at finish\CurrentOption
+\let\loadlocalcfg\FB at 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'.
Property changes on: trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf 2017-07-13 23:05:35 UTC (rev 44781)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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.
+%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
-%% 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.
-%%
\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 at tempa{francais}
-\ifx\CurrentOption\bbl at tempa
- \let\l at francais\l at 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 at tempa{frenchb}
\ifx\CurrentOption\bbl at tempa
\let\l at frenchb\l at 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 at nopatterns{%
- \ifx\l at nohyphenation\@undefined
- \edef\bbl at nulllanguage{\string\language=0}%
- \adddialect\l at french0
- \else
- \adddialect\l at french\l at nohyphenation
- \edef\bbl at nulllanguage{\string\language=nohyphenation}%
- \fi
- \@nopatterns{French}}
-\ifx\l at french\@undefined
- \FB at nopatterns
-\fi
-\newif\ifLaTeXe
-\let\bbl at 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 at tempa\endinput
- \else
- \LaTeXetrue
- \fi
-\fi
-\bbl at tempa
-\def\fb at error#1#2{%
- \begingroup
- \newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
- \errhelp{#2}\errmessage{\\#1^^J}%
- \endgroup}
-\def\fb at warning#1{%
- \begingroup
- \newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
- \message{\\#1^^J}%
- \endgroup}
-\def\fb at info#1{%
- \begingroup
- \newlinechar=`\^^J
- \def\\{^^J}%
- \wlog{#1}%
- \endgroup}
-\let\bbl at tempa\relax
-\ifx\babeltags\@undefined
- \let\bbl at tempa\endinput
- \ifLaTeXe
- \PackageError{frenchb.ldf}
- {frenchb requires babel v.3.9i.\MessageBreak
- Aborting here}
- {Please upgrade Babel!}
- \else
- \fb at error{frenchb requires babel v.3.9i.\\
- Aborting here}
- {Please upgrade Babel!}
- \fi
-\fi
-\bbl at tempa
-\ifx\l at acadian\@undefined
- \ifx\l at canadien\@undefined
- \adddialect\l at acadian\l at french
- \adddialect\l at canadien\l at french
- \else
- \adddialect\l at acadian\l at canadien
- \fi
+ \PackageWarning{babel-french}%
+ {Option `frenchb' for Babel is *deprecated*,\MessageBreak
+ it might be removed sooner or later. Please\MessageBreak
+ use `french' instead; reported}
\else
- \adddialect\l at canadien\l at acadian
-\fi
-\def\bbl at tempa{canadien}
-\ifx\CurrentOption\bbl at 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 at savevariable{\lccode`\'}%
- \ifFBunicode
- \babel at savevariable{\lccode"2019}%
- \lccode`\'="2019\lccode"2019="2019
- \else
- \lccode`\'=`\'
- \fi
-}
-\@namedef{noextras\CurrentOption}{}
-\let\FB at CurOpt\CurrentOption
-\newcommand*{\FB at addto}[2]{%
- \expandafter\addto\csname #1\FB at CurOpt\endcsname{#2}}
-\FB at addto{extras}{\bbl at frenchspacing}
-\FB at addto{noextras}{\bbl at nonfrenchspacing}
-\newif\ifFB at active@punct \FB at active@puncttrue
-\newif\ifFB at luatex@punct
-\ifFBLuaTeX
- \ifnum\luatexversion<95
- \ifx\PackageWarning\@undefined
- \fb at 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}%
+ \def\bbl at tempa{francais}
+ \ifx\CurrentOption\bbl at tempa
+ \let\l at francais\l at 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
- \FB at luatex@puncttrue\FB at active@punctfalse
- \fi
-\fi
-\newcount\FB at nonchar
-\newif\ifFB at xetex@punct
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax
-\else
- \FB at xetex@puncttrue\FB at active@punctfalse
- \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
- \FB at nonchar=255 \relax
- \else
- \FB at nonchar=4095 \relax
- \fi
-\fi
-\newcommand*{\FBcolonspace}{\space}
-\newcommand*{\FBthinspace}{\hskip.5\fontdimen2\font \relax}
-\newtoks\FBcolonsp
-\newtoks\FBthinsp
-\newif\ifFB at spacing \FB at spacingtrue
-\newcommand*{\FB at spacing@on}{%
- \ifFB at luatex@punct
- \FB at spacing=1 \relax
- \else
- \FB at spacingtrue
- \fi}
-\newcommand*{\FB at spacing@off}{%
- \ifFB at luatex@punct
- \FB at spacing=0 \relax
- \else
- \FB at spacingfalse
- \fi}
-\ifFB at luatex@punct
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname newluafunction\endcsname\relax
- \input ltluatex.tex
- \fi
- \newattribute\FB at spacing \FB at spacing=1 \relax
- \newattribute\FB at addDPspace \FB at addDPspace=1 \relax
- \newattribute\FB at addGUILspace \FB at addGUILspace=0 \relax
- \ifLaTeXe
- \PackageInfo{frenchb.ldf}{No need for active punctuation
- characters\MessageBreak with this version
- of LuaTeX!\MessageBreak reported}
- \else
- \fb at info{No need for active punctuation characters\\
- with this version of LuaTeX!}
- \fi
-\fi
-\ifFB at luatex@punct
- \newcommand*{\FB at luatex@punct at french}{%
- \babel at save{\shorthandon}%
- \babel at save{\shorthandoff}%
- \def\shorthandoff##1{%
- \ifx\PackageWarning\@undefined
- \fb at 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 at addto{extras}{\FB at luatex@punct at french}
- \def\activate at luatexpunct{%
- \directlua{%
- FR = \the\l at 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 at xetex@punct
- \ifLaTeXe
- \PackageInfo{frenchb.ldf}{No need for active punctuation characters%
- \MessageBreak with this version of XeTeX!%
- \MessageBreak reported}
- \else
- \fb at info{No need for active punctuation characters\\
- with this version of XeTeX!}
- \fi
- \newXeTeXintercharclass\FB at punctthick
- \newXeTeXintercharclass\FB at punctthin
- \newXeTeXintercharclass\FB at punctnul
- \newXeTeXintercharclass\FB at guilo
- \newXeTeXintercharclass\FB at guilf
- \newXeTeXintercharclass\FB at guilnul
- \def\FBsavevariable at loop#1#2{\begingroup
- \toks@\expandafter{\originalTeX #1}%
- \edef\x{\endgroup
- \def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}%
- \x}
- \def\FB at 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 at xetex@punct at french}{%
- \babel at savevariable{\XeTeXinterchartokenstate}%
- \babel at save{\shorthandon}%
- \babel at save{\shorthandoff}%
- \bbl at for\FB at char\FB at charlist
- {\FBsavevariable at loop{\XeTeXcharclass}{\FB at char}}%
- \def\shorthandoff##1{%
- \ifx\PackageWarning\@undefined
- \fb at 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 at punctthick
- \XeTeXinterchartoks \z@ \FB at punctthick = {%
- \ifFB at spacing\ifhmode\FDP at colonspace\fi\fi}%
- \XeTeXinterchartoks \FB at guilf \FB at punctthick = {%
- \ifFB at spacing\FDP at colonspace\fi}%
- \XeTeXinterchartoks \FB at nonchar \FB at punctthick = {%
- \ifFB at spacing
- \ifhmode
- \ifdim\lastskip>1sp
- \unskip\penalty\@M\FBcolonspace
- \else
- \FDP at colonspace
- \fi
- \fi
- \fi}%
- \bbl at for\FB at char
- {`\;,`\!,`\?}%
- {\XeTeXcharclass\FB at char=\FB at punctthin}%
- \XeTeXinterchartoks \z@ \FB at punctthin = {%
- \ifFB at spacing\ifhmode\FDP at thinspace\fi\fi}%
- \XeTeXinterchartoks \FB at guilf \FB at punctthin = {%
- \ifFB at spacing\FDP at thinspace\fi}%
- \XeTeXinterchartoks \FB at nonchar \FB at punctthin = {%
- \ifFB at spacing
- \ifhmode
- \ifdim\lastskip>1sp
- \unskip\penalty\@M\FBthinspace
- \else
- \FDP at thinspace
- \fi
- \fi
- \fi}%
- \XeTeXinterchartoks \FB at guilo \z@ = {%
- \ifFB at spacing\FB at guillspace\fi}%
- \XeTeXinterchartoks \FB at guilo \FB at nonchar = {%
- \ifFB at spacing\FB at guillspace\ignorespaces\fi}%
- \XeTeXinterchartoks \z@ \FB at guilf = {%
- \ifFB at spacing\FB at guillspace\fi}%
- \XeTeXinterchartoks \FB at punctthin \FB at guilf = {%
- \ifFB at spacing\FB at guillspace\fi}%
- \XeTeXinterchartoks \FB at nonchar \FB at guilf = {%
- \ifFB at spacing\unskip\FB at guillspace\fi}%
- \bbl at for\FB at char
- {`\[,`\(,"A0,"202F}%
- {\XeTeXcharclass\FB at char=\FB at punctnul}%
- \bbl at for\FB at char
- {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}%
- {\XeTeXcharclass\FB at char=\z@}%
- }
- \FB at addto{extras}{\FB at xetex@punct at french}
-\fi
-\ifFB at active@punct
- \initiate at active@char{:}%
- \initiate at active@char{;}%
- \initiate at active@char{!}%
- \initiate at active@char{?}%
- \declare at shorthand{french}{;}{%
- \ifFB at spacing
- \ifhmode
- \ifdim\lastskip>1sp
- \unskip\penalty\@M\FBthinspace
- \else
- \FDP at thinspace
- \fi
- \fi
+ \def\bbl at tempa{canadien}
+ \ifx\CurrentOption\bbl at tempa
+ \let\l at canadien\l at 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
- \string;}
- \declare at shorthand{french}{!}{%
- \ifFB at spacing
- \ifhmode
- \ifdim\lastskip>1sp
- \unskip\penalty\@M\FBthinspace
- \else
- \FDP at thinspace
- \fi
- \fi
- \fi
- \string!}
- \declare at shorthand{french}{?}{%
- \ifFB at spacing
- \ifhmode
- \ifdim\lastskip>1sp
- \unskip\penalty\@M\FBthinspace
- \else
- \FDP at thinspace
- \fi
- \fi
- \fi
- \string?}
- \declare at shorthand{french}{:}{%
- \ifFB at spacing
- \ifhmode
- \ifdim\lastskip>1sp
- \unskip\penalty\@M\FBcolonspace
- \else
- \FDP at colonspace
- \fi
- \fi
- \fi
- \string:}
- \declare at shorthand{system}{:}{\string:}
- \declare at shorthand{system}{!}{\string!}
- \declare at shorthand{system}{?}{\string?}
- \declare at shorthand{system}{;}{\string;}
- \FB at addto{extras}{\languageshorthands{french}%
- \bbl at activate{:}\bbl at activate{;}%
- \bbl at activate{!}\bbl at activate{?}%
- }
- \FB at addto{noextras}{%
- \bbl at deactivate{:}\bbl at deactivate{;}%
- \bbl at deactivate{!}\bbl at deactivate{?}%
- }
-\fi
-\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue
-\def\autospace at beforeFDP{%
- \ifFB at luatex@punct\FB at addDPspace=1 \fi
- \def\FDP at thinspace{\penalty\@M\FBthinspace}%
- \def\FDP at colonspace{\penalty\@M\FBcolonspace}}
-\def\noautospace at beforeFDP{%
- \ifFB at luatex@punct\FB at addDPspace=0 \fi
- \let\FDP at thinspace\@empty
- \let\FDP at colonspace\@empty}
-\ifLaTeXe
- \def\AutoSpaceBeforeFDP{\autospace at beforeFDP
- \FBAutoSpacePunctuationtrue}
- \def\NoAutoSpaceBeforeFDP{\noautospace at beforeFDP
- \FBAutoSpacePunctuationfalse}
- \AtEndOfPackage{\AutoSpaceBeforeFDP}
-\else
- \let\AutoSpaceBeforeFDP\autospace at beforeFDP
- \let\NoAutoSpaceBeforeFDP\noautospace at beforeFDP
- \AutoSpaceBeforeFDP
-\fi
-\ifLaTeXe
- \DeclareRobustCommand\ttfamilyFB{\FB at spacing@off \ttfamilyORI}
- \DeclareRobustCommand\rmfamilyFB{\FB at spacing@on \rmfamilyORI}
- \DeclareRobustCommand\sffamilyFB{\FB at spacing@on \sffamilyORI}
-\fi
-\DeclareRobustCommand*{\NoAutoSpacing}{%
- \FB at spacing@off
- \ifFB at 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 at guillspace}{\penalty\@M\FBguillspace}
-\newtoks\FBguillsp
-\ifFB at luatex@punct
- \DeclareRobustCommand*{\FB at og}{\leavevmode
- \bgroup\FB at spacing=0 \guillemotleft\egroup
- \FB at guillspace}
- \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
- \FB at guillspace
- \bgroup\FB at spacing=0 \guillemotright\egroup}
-\fi
-\ifFB at xetex@punct
- \DeclareRobustCommand*{\FB at og}{\leavevmode
- \bgroup\FB at spacingfalse\guillemotleft\egroup
- \FB at guillspace}
- \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
- \FB at guillspace
- \bgroup\FB at spacingfalse\guillemotright\egroup}
-\fi
-\ifFB at active@punct
- \DeclareRobustCommand*{\FB at og}{\leavevmode
- \guillemotleft
- \FB at guillspace}
- \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
- \FB at guillspace
- \guillemotright}
-\fi
-\newcommand*{\og}{\@empty}
-\newcommand*{\fg}{\@empty}
-\ifLaTeXe
- \def\bbl at frenchguillemets{\renewcommand*{\og}{\FB at og}%
- \renewcommand*{\fg}{\FB at fg\xspace}}
- \renewcommand*{\og}{\textquotedblleft}
- \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi
- \textquotedblright\xspace}
-\else
- \def\bbl at frenchguillemets{\let\og\FB at og
- \let\fg\FB at fg}
- \def\og{\textquotedblleft}
- \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}
-\fi
-\FB at addto{extras}{\babel at save\og \babel at save\fg \bbl at frenchguillemets}
-\newcommand*{\ogi}{\FB at og}
-\newcommand*{\fgi}{\FB at fg}
-\newcommand*{\ogii}{\textquotedblleft}
-\newcommand*{\fgii}{\textquotedblright}
-\newcount\FBguill at level
-\newtoks\FB at 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 at quote}%
- {\FBcloseguilltrue\fr at quote}}
-\else
- \newcommand\frquote[1]{\fr at quote{#1}}
-\fi
-\newcommand{\fr at quote}[1]{%
- \leavevmode
- \advance\FBguill at level by \@ne
- \ifcase\FBguill at level
- \or
- \FB at everypar=\everypar
- \ifx\FBeveryparguill\FBguillnone
- \else
- \def\FBeverypar at quote{\FBeveryparguill\FB at guillspace}%
- \everypar=\expandafter{\the\everypar \FBeverypar at quote}%
- \fi
- \ogi #1\fgi
- \or
- \ifx\FBeverylineguill\FBguillopen
- \localleftbox{\guillemotleft\FB at guillspace}%
- \let\FBeverypar at quote\relax
- \ogi #1\ifFBcloseguill\fgi\fi
- \else
- \ifx\FBeverylineguill\FBguillclose
- \localleftbox{\guillemotright\FB at guillspace}%
- \let\FBeverypar at quote\relax
- \ogi #1\ifFBcloseguill\fgi\fi
- \else
- \let\FBeverypar at quote\relax
- \ifFBInnerGuillSingle
- \def\ogii{\leavevmode
- \guilsinglleft\FB at guillspace}%
- \def\fgii{\ifdim\lastskip>\z@\unskip\fi
- \FB at guillspace\guilsinglright}%
- \ifx\FBeveryparguill\FBguillopen
- \def\FBeverypar at quote{\guilsinglleft\FB at guillspace}%
- \fi
- \ifx\FBeveryparguill\FBguillclose
- \def\FBeverypar at quote{\guilsinglright\FB at guillspace}%
- \fi
- \fi
- \ogii #1\ifFBcloseguill \fgii \fi
- \fi
- \fi
- \else
- \ifx\PackageWarning\@undefined
- \fb at 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 at level by \m at ne
- \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi
- \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB at 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 at poorman
-\newdimen\FB at Mht
-\ifLaTeXe
- \AtEndOfPackage{\RequirePackage{scalefnt}}
- \newcommand*{\FBsupR}{-0.12}
- \newcommand*{\FBsupS}{0.65}
- \newcommand*{\FB at lc}[1]{\MakeLowercase{#1}}
- \DeclareRobustCommand*{\FB at up@fake}[1]{%
- \settoheight{\FB at Mht}{M}%
- \addtolength{\FB at Mht}{\FBsupR \FB at Mht}%
- \addtolength{\FB at Mht}{-\FBsupS ex}%
- \raisebox{\FB at Mht}{\scalefont{\FBsupS}{\FB at lc{#1}}}%
- }
- \def\FB at split#1#2#3#4\@nil{\def\FB at firstthree{#1#2#3}%
- \def\FB at suffix{#4}}
- \def\FB at x{x}
- \def\FB at j{j}
- \DeclareRobustCommand*{\FB at up}[1]{%
- \bgroup \FB at poormantrue
- \expandafter\FB at split\f at family\@nil
- \edef\reserved at a{\lowercase{%
- \noexpand\IfFileExists{\f at encoding\FB at firstthree -sup.fd}}}%
- \reserved at a
- {\ifx\FB at suffix\FB at x \FB at poormanfalse\fi
- \ifx\FB at suffix\FB at j \FB at poormanfalse\fi
- \ifFB at poorman \FB at up@fake{#1}%
- \else \FB at up@real{#1}%
- \fi}%
- {\FB at up@fake{#1}}%
- \egroup}
- \newcommand*{\FB at up@real}[1]{\bgroup
- \fontfamily{\FB at firstthree -sup}\selectfont \FB at lc{#1}\egroup}
- \DeclareRobustCommand*{\fup}[1]{%
- \ifx\realsuperscript\@undefined
- \FB at up{#1}%
- \else
- \bgroup\let\fakesuperscript\FB at up@fake
- \realsuperscript{\FB at 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 at one{T1}
- \ifx\f at encoding\T at 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 at degree@TSone{\FBWarning
- {Degrees would look better in TS1-encoding:%
- \MessageBreak add \protect
- \usepackage{textcomp} to the preamble.%
- \MessageBreak Degrees used}}
- \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined
- \DeclareRobustCommand*{\degres}{%
- \leavevmode\hbox to 0.3em{\hss\degre\hss}%
- \Warning at degree@TSone
- \global\let\Warning at degree@TSone\relax}%
- \else
- \DeclareRobustCommand*{\degres}{%
- \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
- \fi
- }
- \fi
-\else
- \newcommand*{\degres}{%
- \leavevmode\hbox to 0.3em{\hss\degre\hss}}
-\fi
-\newif\ifFB at icomma
-\newcount\mc at charclass
-\newcount\mc at charfam
-\newcount\mc at charslot
-\newcount\std at mcc
-\newcount\dec at mcc
-\ifFBLuaTeX
- \mc at charclass=\Umathcharclass`\,
- \newcommand*{\dec at math@comma}{%
- \mc at charfam=\Umathcharfam`\,
- \mc at charslot=\Umathcharslot`\,
- \Umathcode`\,= 0 \mc at charfam \mc at charslot
- }
- \newcommand*{\std at math@comma}{%
- \mc at charfam=\Umathcharfam`\,
- \mc at charslot=\Umathcharslot`\,
- \Umathcode`\,= \mc at charclass \mc at charfam \mc at charslot
- }
-\else
- \std at mcc=\mathcode`\,
- \dec at mcc=\std at mcc
- \@tempcnta=\std at mcc
- \divide\@tempcnta by "1000
- \multiply\@tempcnta by "1000
- \advance\dec at mcc by -\@tempcnta
- \newcommand*{\dec at math@comma}{\mathcode`\,=\dec at mcc}
- \newcommand*{\std at math@comma}{\mathcode`\,=\std at mcc}
-\fi
-\newcommand*{\DecimalMathComma}{%
- \iflanguage{french}{\dec at math@comma}{}%
- \ifFB at icomma\else\FB at addto{extras}{\dec at math@comma}\fi
-}
-\newcommand*{\StandardMathComma}{%
- \std at math@comma
- \ifFB at icomma\else\FB at addto{extras}{\std at math@comma}\fi
-}
-\ifLaTeXe
- \AtBeginDocument{\@ifpackageloaded{icomma}%
- {\FB at icommatrue}%
- {\FB at addto{noextras}{\std at math@comma}}%
- }
-\else
- \FB at addto{noextras}{\std at math@comma}
-\fi
-\newcommand*{\nombre}[1]{{#1}\fb at warning{*** \noexpand\nombre
- no longer formats numbers\string! ***}}
-\let\FBstop at here\relax
-\def\FBclean at on@exit{\let\ifLaTeXe\undefined
- \let\LaTeXetrue\undefined
- \let\LaTeXefalse\undefined}
-\ifx\magnification\@undefined
-\else
- \def\FBstop at here{\ifFB at luatex@punct
- \activate at luatexpunct
- \fi
- \FBclean at on@exit
- \ldf at quit\CurrentOption\endinput}
-\fi
-\FBstop at here
-\renewcommand*{\nombre}[1]{\Warning at nombre{#1}}
-\newcommand*{\Warning at 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 at 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 at emptypart}{\def\thepart{}}%
- \DeclareRobustCommand*{\FB at partname}{%
- \ifFBPartNameFull
- \csname ordinal\romannumeral\value{part}\endcsname\space
- \frenchpartnameord\FB at emptypart
- \else
- Partie%
- \fi}%
- }
- \SetString{\partname}{\FB at partname}
-\EndBabelCommands
-\AtEndOfPackage{%
- \ifFB at koma
- \ifdefined\partformat
- \FB at addto{captions}{%
- \ifFBPartNameFull
- \babel at save\partformat
- \renewcommand*{\partformat}{\partname}%
- \fi}%
- \fi
- \fi
-}
-\bgroup
- \catcode`:=12 \catcode`>=12 \relax
- \long\gdef\STD at makecaption#1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{#1: #2}%
- \ifdim \wd\@tempboxa >\hsize
- #1: #2\par
- \else
- \global \@minipagefalse
- \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \vskip\belowcaptionskip}
-\egroup
-\newif\if at FBwarning@capsep
-\@FBwarning at capseptrue
-\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}}
-\newcommand*{\CaptionSeparator}{\space\textendash\space}
-\def\FBCaption at Separator{: }
-\long\def\FB at makecaption#1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{#1\FBCaption at Separator #2}%
- \ifdim \wd\@tempboxa >\hsize
- #1\FBCaption at Separator #2\par
- \else
- \global \@minipagefalse
- \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \vskip\belowcaptionskip}
-\@ifclassloaded{amsart}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{amsbook}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{amsdtx}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{amsldoc}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{amproc}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{smfart}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{smfbook}{\@FBwarning at capsepfalse}{}
-\ifFB at active@punct\else\@FBwarning at capsepfalse\fi
-\newif\ifFB at koma
-\@ifclassloaded{memoir}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{scrartcl}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{scrbook}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{scrreprt}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{beamer}{\@FBwarning at capsepfalse}{}
-\ifdefined\@makecaption\else\@FBwarning at capsepfalse\fi
-\@ifpackageloaded{caption}
- {\FBWarning{Please load the "caption" package\MessageBreak
- AFTER babel/frenchb; reported}%
- \@FBwarning at capsepfalse}%
- {}
-\@ifpackageloaded{subcaption}
- {\FBWarning{Please load the "subcaption" package\MessageBreak
- AFTER babel/frenchb; reported}%
- \@FBwarning at capsepfalse}%
- {}
-\@ifpackageloaded{floatrow}
- {\FBWarning{Please load the "floatrow" package\MessageBreak
- AFTER babel/frenchb; reported}%
- \@FBwarning at capsepfalse}%
- {}
-\AtBeginDocument{%
- \ifx\@makecaption\STD at makecaption
- \global\let\@makecaption\FB at makecaption
- \ifFBOldFigTabCaptions
- \else
- \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
- \fi
- \ifFBCustomiseFigTabCaptions
- \ifx\bbl at main@language\FB at french
- \def\FBCaption at Separator{\CaptionSeparator}%
- \fi
- \fi
- \@FBwarning at capsepfalse
- \fi
- \if at 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 at makecaption\relax
- \let\STD at 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 at frenchdots{\babel at save\Tdots@ \let\Tdots@\FBtextellipsis}
-\FB at addto{extras}{\bbl at frenchdots}
-\ifFB at active@punct
- \@ifpackageloaded{listings}
- {\FBWarning{Please load the "listings" package\MessageBreak
- AFTER babel/frenchb; reported}%
- }{}
-\fi
-\newif\if at FBwarning@natbib
-\ifFB at active@punct
- \@ifpackageloaded{natbib}{}{\@FBwarning at natbibtrue}
-\fi
-\AtBeginDocument{%
- \if at FBwarning@natbib
- \@ifpackageloaded{natbib}{}{\@FBwarning at natbibfalse}%
- \fi
- \if at FBwarning@natbib
- \FBWarning{Please load the "natbib" package\MessageBreak
- BEFORE babel/frenchb; reported}%
- \fi
-}
-\newif\if at FBwarning@beamerarticle
-\@ifpackageloaded{beamerarticle}{}{\@FBwarning at beamerarticletrue}
-\AtBeginDocument{%
- \if at FBwarning@beamerarticle
- \@ifpackageloaded{beamerarticle}{}%
- {\@FBwarning at beamerarticlefalse}%
- \fi
- \if at FBwarning@beamerarticle
- \FBWarning{Please load the "beamerarticle" package\MessageBreak
- BEFORE babel/frenchb; reported}%
- \fi
-}
-\newcommand*{\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 at french{\CurrentOption}
-\AtEndOfPackage{%
- \ifx\bbl at main@language\FB at 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 at key{FB}{ShowOptions}[true]%
- {\csname FBShowOptions#1\endcsname}%
- \define at key{FB}{StandardLayout}[true]%
- {\csname FBStandardLayout#1\endcsname
- \ifFBStandardLayout
- \FBReduceListSpacingfalse
- \FBStandardItemizeEnvtrue
- \FBStandardItemLabelstrue
- \FBStandardEnumerateEnvtrue
- \FBIndentFirstfalse
- \FBFrenchFootnotesfalse
- \FBAutoSpaceFootnotesfalse
- \FBGlobalLayoutFrenchfalse
- \else
- \FBReduceListSpacingtrue
- \FBStandardItemizeEnvfalse
- \FBStandardItemLabelsfalse
- \FBStandardEnumerateEnvfalse
- \FBIndentFirsttrue
- \FBFrenchFootnotestrue
- \FBAutoSpaceFootnotestrue
- \fi}%
- \define at key{FB}{GlobalLayoutFrench}[true]%
- {\csname FBGlobalLayoutFrench#1\endcsname
- \ifFBGlobalLayoutFrench
- \ifx\bbl at main@language\FB at french
- \else
- \FBGlobalLayoutFrenchfalse
- \PackageWarning{frenchb.ldf}%
- {Option `GlobalLayoutFrench' skipped:\MessageBreak
- French is *not* babel's last option.\MessageBreak
- Reported}%
- \fi
- \fi}%
- \define at key{FB}{ReduceListSpacing}[true]%
- {\csname FBReduceListSpacing#1\endcsname}%
- \define at key{FB}{ListOldLayout}[true]%
- {\csname FBListOldLayout#1\endcsname
- \ifFBListOldLayout
- \FBStandardEnumerateEnvtrue
- \renewcommand*{\FrenchLabelItem}{\textendash}%
- \fi}%
- \define at key{FB}{CompactItemize}[true]%
- {\csname FBCompactItemize#1\endcsname
- \ifFBCompactItemize
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \else
- \FBStandardItemizeEnvtrue
- \FBStandardEnumerateEnvtrue
- \fi}%
- \define at key{FB}{StandardItemizeEnv}[true]%
- {\csname FBStandardItemizeEnv#1\endcsname}%
- \define at key{FB}{StandardEnumerateEnv}[true]%
- {\csname FBStandardEnumerateEnv#1\endcsname}%
- \define at key{FB}{StandardItemLabels}[true]%
- {\csname FBStandardItemLabels#1\endcsname}%
- \define at key{FB}{ItemLabels}%
- {\renewcommand*{\FrenchLabelItem}{#1}}%
- \define at key{FB}{ItemLabeli}%
- {\renewcommand*{\Frlabelitemi}{#1}}%
- \define at key{FB}{ItemLabelii}%
- {\renewcommand*{\Frlabelitemii}{#1}}%
- \define at key{FB}{ItemLabeliii}%
- {\renewcommand*{\Frlabelitemiii}{#1}}%
- \define at key{FB}{ItemLabeliv}%
- {\renewcommand*{\Frlabelitemiv}{#1}}%
- \define at key{FB}{StandardLists}[true]%
- {\csname FBStandardLists#1\endcsname
- \ifFBStandardLists
- \FBReduceListSpacingfalse
- \FBCompactItemizefalse
- \FBStandardItemizeEnvtrue
- \FBStandardEnumerateEnvtrue
- \FBStandardItemLabelstrue
- \else
- \FBReduceListSpacingtrue
- \FBCompactItemizetrue
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \FBStandardItemLabelsfalse
- \fi}%
- \define at key{FB}{IndentFirst}[true]%
- {\csname FBIndentFirst#1\endcsname}%
- \define at key{FB}{FrenchFootnotes}[true]%
- {\csname FBFrenchFootnotes#1\endcsname}%
- \define at key{FB}{AutoSpaceFootnotes}[true]%
- {\csname FBAutoSpaceFootnotes#1\endcsname}%
- \define at key{FB}{AutoSpacePunctuation}[true]%
- {\csname FBAutoSpacePunctuation#1\endcsname}%
- \define at key{FB}{OriginalTypewriter}[true]%
- {\csname FBOriginalTypewriter#1\endcsname}%
- \define at key{FB}{ThinColonSpace}[true]%
- {\csname FBThinColonSpace#1\endcsname
- \ifFBThinColonSpace
- \renewcommand*{\FBcolonspace}{\FBthinspace}%
- \fi}%
- \define at key{FB}{ThinSpaceInFrenchNumbers}[true]%
- {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
- \define at key{FB}{FrenchSuperscripts}[true]%
- {\csname FBFrenchSuperscripts#1\endcsname}
- \define at key{FB}{LowercaseSuperscripts}[true]%
- {\csname FBLowercaseSuperscripts#1\endcsname}
- \define at key{FB}{PartNameFull}[true]%
- {\csname FBPartNameFull#1\endcsname}%
- \define at key{FB}{CustomiseFigTabCaptions}[true]%
- {\csname FBCustomiseFigTabCaptions#1\endcsname}%
- \define at key{FB}{OldFigTabCaptions}[true]%
- {\csname FBOldFigTabCaptions#1\endcsname
- \ifFBOldFigTabCaptions
- \FB at addto{extras}{\babel at save\FBCaption at Separator
- \def\FBCaption at Separator{\CaptionSeparator}}%
- \fi}%
- \define at key{FB}{SmallCapsFigTabCaptions}[true]%
- {\csname FBSmallCapsFigTabCaptions#1\endcsname
- \ifFBSmallCapsFigTabCaptions
- \let\FBfigtabshape\scshape
- \else
- \let\FBfigtabshape\relax
- \fi}%
- \define at key{FB}{SuppressWarning}[true]%
- {\csname FBSuppressWarning#1\endcsname
- \ifFBSuppressWarning
- \renewcommand{\FBWarning}[1]{}%
- \fi}%
- \define at key{FB}{INGuillSpace}[true]%
- {\csname FBINGuillSpace#1\endcsname
- \ifFBINGuillSpace
- \renewcommand*{\FBguillspace}{\space}%
- \fi}%
- \define at key{FB}{InnerGuillSingle}[true]%
- {\csname FBInnerGuillSingle#1\endcsname}%
- \define at key{FB}{EveryParGuill}[open]%
- {\expandafter\let\expandafter
- \FBeveryparguill\csname FBguill#1\endcsname
- \ifx\FBeveryparguill\FBguillopen
- \else\ifx\FBeveryparguill\FBguillclose
- \else\ifx\FBeveryparguill\FBguillnone
- \else
- \let\FBeveryparguill\FBguillopen
- \PackageWarning{frenchb.ldf}%
- {Wrong value for `EveryParGuill':
- try `open',\MessageBreak
- `close' or `none'. Reported}%
- \fi
- \fi
- \fi}%
- \define at key{FB}{EveryLineGuill}[open]%
- {\ifFB at luatex@punct
- \expandafter\let\expandafter
- \FBeverylineguill\csname FBguill#1\endcsname
- \ifx\FBeverylineguill\FBguillopen
- \else\ifx\FBeverylineguill\FBguillclose
- \else\ifx\FBeverylineguill\FBguillnone
- \else
- \let\FBeverylineguill\FBguillnone
- \FBWarning{Wrong value for `EveryLineGuill':
- try `open',\MessageBreak
- `close' or `none'. Reported}%
- \fi
- \fi
- \fi
- \else
- \FBWarning{Option `EveryLineGuill' skipped:%
- \MessageBreak this option is for
- LuaTeX *only*.\MessageBreak Reported}%
- \fi}%
- \define at key{FB}{og}%
- {\ifFBunicode
- \ifFB at luatex@punct
- \FB at addGUILspace=1 \relax
- \fi
- \ifFB at xetex@punct
- \XeTeXcharclass"13 = \FB at guilo
- \XeTeXcharclass"AB = \FB at guilo
- \XeTeXcharclass"A0 = \FB at guilnul
- \XeTeXcharclass"202F = \FB at guilnul
- \fi
- \ifFB at active@punct
- \PackageWarning{frenchb.ldf}%
- {Option og=« not supported with this version
- of\MessageBreak LuaTeX/XeTeX; reported}%
- \fi
- \else
- \newcommand*{\FB@@og}{%
- \iflanguage{french}%
- {\ifFB at spacing\FB at og\ignorespaces
- \else\guillemotleft
- \fi}%
- {\guillemotleft}}%
- \AtBeginDocument{%
- \ifdefined\DeclareInputText
- \ifdefined\uc at dclc
- \uc at dclc{171}{default}{\FB@@og}%
- \else
- \ifdefined\DeclareUnicodeCharacter
- \DeclareUnicodeCharacter{00AB}{\FB@@og}%
- \else
- \@tempcnta`#1\relax
- \ifdefined\mule at def
- \mule at 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 at key{FB}{fg}%
- {\ifFBunicode
- \ifFB at luatex@punct
- \FB at addGUILspace=1 \relax
- \fi
- \ifFB at xetex@punct
- \XeTeXcharclass"14 = \FB at guilf
- \XeTeXcharclass"BB = \FB at guilf
- \XeTeXcharclass"A0 = \FB at guilnul
- \XeTeXcharclass"202F = \FB at guilnul
- \fi
- \ifFB at active@punct
- \PackageWarning{frenchb.ldf}%
- {Option fg=» not supported with this version
- of\MessageBreak LuaTeX/XeTeX; reported}%
- \fi
- \else
- \newcommand*{\FB@@fg}{%
- \iflanguage{french}%
- {\ifFB at spacing\FB at fg
- \else\guillemotright
- \fi}%
- {\guillemotright}}%
- \AtBeginDocument{%
- \ifdefined\DeclareInputText
- \ifdefined\uc at dclc
- \uc at dclc{187}{default}{\FB@@fg}%
- \else
- \ifdefined\DeclareUnicodeCharacter
- \DeclareUnicodeCharacter{00BB}{\FB@@fg}%
- \else
- \@tempcnta`#1\relax
- \ifdefined\mule at def
- \mule at 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 at 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 at ufl{\update at frenchlists}
- \ifx\bbl at main@language\FB at french
- \update at frenchlists
- \fi
- \ifFBAutoSpacePunctuation
- \autospace at beforeFDP
- \else
- \noautospace at 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 at autolanguage
- \providecommand*{\npstylefrench}{}%
- \ifFBThinSpaceInFrenchNumbers
- \renewcommand*\npstylefrench{%
- \npthousandsep{\,}%
- \npdecimalsign{,}%
- \npproductsign{\cdot}%
- \npunitseparator{\,}%
- \npdegreeseparator{}%
- \nppercentseparator{\nprt at unitsep}%
- }%
- \else
- \renewcommand*\npstylefrench{%
- \npthousandsep{~}%
- \npdecimalsign{,}%
- \npproductsign{\cdot}%
- \npunitseparator{\,}%
- \npdegreeseparator{}%
- \nppercentseparator{\nprt at unitsep}%
- }%
- \fi
- \npaddtolanguage{french}{french}%
- \fi}{}%
- \ifFBFrenchSuperscripts
- \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}{\fup}}%
- \else
- \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}%
- {\textsuperscript}}%
- \fi
- \ifFBLowercaseSuperscripts
- \else
- \renewcommand*{\FB at lc}[1]{##1}%
- \fi
- \ifFBCustomiseFigTabCaptions
- \ifFB at koma
- \renewcommand*{\captionformat}{\CaptionSeparator}%
- \fi
- \@ifclassloaded{memoir}%
- {\captiondelim{\CaptionSeparator}}{}%
- \@ifclassloaded{beamer}%
- {\defbeamertemplate{caption label separator}{FBcustom}{%
- \CaptionSeparator}%
- \setbeamertemplate{caption label separator}[FBcustom]}{}%
- \else
- \ifFB at koma
- \renewcommand*{\captionformat}{{\autospace at beforeFDP : }}%
- \fi
- \@ifclassloaded{memoir}%
- {\captiondelim{{\autospace at beforeFDP : }}%
- }{}%
- \@ifclassloaded{beamer}%
- {\defbeamertemplate{caption label separator}{FBcolon}{%
- {\autospace at 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 at og{\guillemotleft\space}%
- \def\FB at fg{\space\guillemotright}%
- \def\at{@}%
- \def\circonflexe{\string^}%
- \def\tild{\string~}%
- \def\boi{\textbackslash}%
- \let\bsc\textsc
- }%
- \fi
- \FBprocess at options
- \ifFB at luatex@punct
- \FBcolonsp=\expandafter{\meaning\FBcolonspace}
- \FBthinsp= \expandafter{\meaning\FBthinspace}
- \FBguillsp=\expandafter{\meaning\FBguillspace}
- \activate at 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 at 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 at 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 at listHsettings{%
- \leftmarginFB\labelwidthFB
- \advance\leftmarginFB \labelsep
- \bbl at for\FB at dp {1, 2, 3, 4, 5, 6}%
- {\csname leftmargin\romannumeral\FB at dp\endcsname \leftmarginFB}%
- \advance\leftmargini \listindentFB
- \leftmargin\csname leftmargin\ifnum\@listdepth=\@ne i\else
- ii\fi\endcsname
-}
-\def\FB at itemizesettings{%
- \ifFBReduceListSpacing
- \setlength{\itemsep}{\z@}%
- \setlength{\parsep}{\z@}%
- \setlength{\topsep}{\z@}%
- \setlength{\partopsep}{\z@}%
- \@tempdima=\parskip
- \addtolength{\topsep}{-\@tempdima}%
- \addtolength{\partopsep}{\@tempdima}%
- \fi
- \settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
- \ifFBListOldLayout
- \setlength{\leftmargin}{\labelwidth}%
- \addtolength{\leftmargin}{\labelsep}%
- \addtolength{\leftmargin}{\parindent}%
- \else
- \FB at listHsettings
- \fi
-}
-\def\itemizeFB{%
- \ifnum \@itemdepth >\thr@@\@toodeep\else
- \advance\@itemdepth\@ne
- \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
- \expandafter
- \listORI
- \csname\@itemitem\endcsname
- \FB at 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 at listHsettings
- \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
- \fi
-}
-\let\endenumerateFB\endlistORI
-\def\descriptionFB{%
- \list{}{\FB at 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 at 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 at ufl{\relax}
-\def\bbl at frenchlistlayout{%
- \ifFBGlobalLayoutFrench
- \else
- \babel at save\list \babel at save\itemize
- \babel at save\enumerate \babel at save\description
- \babel at save\labelitemi \babel at save\labelitemii
- \babel at save\labelitemiii \babel at save\labelitemiv
- \FB at ufl
- \fi
-}
-\FB at addto{extras}{\bbl at frenchlistlayout}
-\def\bbl at frenchindent{%
- \ifFBGlobalLayoutFrench
- \else
- \babel at save\@afterindentfalse
- \fi
- \ifFBIndentFirst
- \let\@afterindentfalse\@afterindenttrue
- \@afterindenttrue
- \fi}
-\def\bbl at nonfrenchindent{%
- \ifFBGlobalLayoutFrench
- \ifFBIndentFirst
- \@afterindenttrue
- \fi
- \fi}
-\FB at addto{extras}{\bbl at frenchindent}
-\FB at addto{noextras}{\bbl at 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 at koma
- \let\@makefntextORI\@makefntext
- \let\@@makefnmarkORI\@@makefnmark
- \deffootnote[\FBfnindent]{0pt}{\parindentFFN}%
- {\thefootnotemark\dotFFN\kernFFN}
- \let\@makefntextFB\@makefntext
- \let\@@makefnmarkFB\@@makefnmark
- \deffootnote[\parindentFFN]{0pt}{\parindentFFN}%
- {\textsuperscript{\thefootnotemark}}
- \let\@makefntextTH\@makefntext
- \let\@@makefnmarkTH\@@makefnmark
- \let\@makefntext\@makefntextORI
- \let\@@makefnmark\@@makefnmarkORI
-\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 at koma
- \let\@@makefnmarkORI\@@makefnmark
- \long\def\@makefntext#1{%
- \ifFBFrenchFootnotes
- \ifx\footnote\thanks
- \let\@@makefnmark\@@makefnmarkTH
- \@makefntextTH{#1}%
- \else
- \let\@@makefnmark\@@makefnmarkFB
- \@makefntextFB{#1}%
- \fi
- \else
- \let\@@makefnmark\@@makefnmarkORI
- \@makefntextORI{#1}%
- \fi}%
- \else
- \@ifclassloaded{memoir}%
- {\ifFBFrenchFootnotes
- \setlength{\thanksmarkwidth}{\parindentFFN}%
- \setlength{\thanksmarksep}{-\thanksmarkwidth}%
- \fi
- }{}%
- \@ifclassloaded{beamer}%
- {\ifFBFrenchFootnotes
- \ifdim\parindentFFN=1.5em\else
- \FBWarning{%
- \protect\parindentFFN\space is ineffective%
- \MessageBreak within the beamer class.%
- \MessageBreak Reported}%
- \fi
- \fi
- }{}%
- \long\def\@makefntext#1{%
- \ifFBFrenchFootnotes
- \@makefntextFB{#1}%
- \else
- \@makefntextORI{#1}%
- \fi}%
- \fi
- }%
-}
-\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue}
-\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue}
-\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse}
-\FBclean at on@exit
-\let\FB at llc\loadlocalcfg
-\let\loadlocalcfg\@gobble
-\ldf at finish\CurrentOption
-\let\loadlocalcfg\FB at llc
+\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'.
Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua 2017-07-13 23:05:35 UTC (rev 44781)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua 2017-07-13 23:06:10 UTC (rev 44782)
@@ -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,
More information about the tex-live-commits
mailing list