From 04f93eb1202717fcb407f1271d28f4153aaa0ca0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 13 Jul 2017 23:06:10 +0000 Subject: babel-french (11jul17) git-svn-id: svn://tug.org/texlive/trunk@44782 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/babel-french/README | 8 +- .../doc/generic/babel-french/frenchb.pdf | Bin 235679 -> 278433 bytes .../source/generic/babel-french/frenchb.dtx | 314 ++-- .../source/generic/babel-french/frenchb.ins | 63 +- .../tex/generic/babel-french/acadian.ldf | 48 + .../tex/generic/babel-french/canadien.ldf | 54 + .../tex/generic/babel-french/francais.ldf | 54 + .../texmf-dist/tex/generic/babel-french/french.ldf | 1803 +++++++++++++++++++ .../tex/generic/babel-french/frenchb.ldf | 1850 +------------------- .../tex/generic/babel-french/frenchb.lua | 14 +- 10 files changed, 2226 insertions(+), 1982 deletions(-) create mode 100644 Master/texmf-dist/tex/generic/babel-french/acadian.ldf create mode 100644 Master/texmf-dist/tex/generic/babel-french/canadien.ldf create mode 100644 Master/texmf-dist/tex/generic/babel-french/francais.ldf create mode 100644 Master/texmf-dist/tex/generic/babel-french/french.ldf diff --git a/Master/texmf-dist/doc/generic/babel-french/README b/Master/texmf-dist/doc/generic/babel-french/README index 7d9a4c1f99e..90dc8d625ba 100644 --- a/Master/texmf-dist/doc/generic/babel-french/README +++ b/Master/texmf-dist/doc/generic/babel-french/README @@ -31,9 +31,11 @@ The bundle consists of the following files: If the latest version of this package is not included in your LaTeX distribution, do the following: -* issue "luatex frenchb.ins" to unpack the language definition files, -* copy the files frenchb.ldf and frenchb.lua to a location where TeX - can find them (default location: $TEXMF/tex/generic/babel-french/). +* issue "luatex frenchb.ins" to unpack the language definition files; +* copy the files frenchb.lua, french.ldf, frenchb.ldf, francais.ldf, + acadian.ldf and canadien.ldf to a location where TeX can find them + (default location: $TEXMF/tex/generic/babel-french/); +* rebuild the database (mktexlsr or so). == DOCUMENTATION == diff --git a/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf b/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf index 328aff00744..6399f445b3a 100644 Binary files a/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf and b/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf differ diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx index f4b263f49d0..bf8cba8ecbc 100644 --- a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx +++ b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx @@ -1,4 +1,4 @@ -%\CheckSum{3486} +%\CheckSum{3473} % %\iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -6,44 +6,36 @@ %<*dtx> \ProvidesFile{frenchb.dtx} % -% \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.} -%\ProvidesLanguage{frenchb} -%\ProvidesFile{frenchb.dtx} -%<*!lua> - [2017/04/30 v3.3a French support from the babel system] -% +%\ProvidesLanguage{acadian} +%\ProvidesLanguage{canadien} +%\ProvidesLanguage{francais} +%\ProvidesLanguage{french} +%\ProvidesLanguage{frenchb} +%--[[ +% File `frenchb.lua’ generated from frenchb.dtx + [2017/07/08 v3.3b French support from the babel system] %<*internal> \iffalse % %<*lua> --- --- File `frenchb.lua’ generated from frenchb.dtx [2017/04/30 v3.3a] --- --- Copyright © 2014-2017 Daniel Flipo --- --- License LPPL: see frenchb.ldf. --- + Copyright © 2014-2017 Daniel Flipo + + License LPPL: see french.ldf. +--]] % %<*internal> \fi % %<*dtx> -%% %% File `frenchb.dtx’ % -%<*ldf> +%<*dtx|french> %% -%% File `frenchb.ldf’ -% -%<*dtx|ldf> %% Babel package for LaTeX version 2e %% Copyright © 1996 - 2017 %% by Daniel Flipo %% -% +% %<*dtx> %% This file is part of the babel system, it provides the source %% code for the French language definition file. @@ -66,6 +58,7 @@ \hypersetup{colorlinks,urlcolor=blue,unicode} \newcommand*\babel{\textsf{babel}} \newcommand*\frenchb{\textsf{babel-french}} +\newcommand*\langvar{$\langle \it lang \rangle$} \newcommand*\Lopt[1]{\texttt{#1}} \newcommand*\opt[1]{\texttt{#1}} \newcommand*\file[1]{\texttt{#1}} @@ -150,6 +143,12 @@ % lists, footnotes, indentation of first paragraphs of sections) and % should apply to the whole document. % +% The French language can be loaded with \babel{} by a command like: +% \\ |\usepackage[german,spanish,french,british]{babel}|% +% \footnote{\emph{Always} use \Lopt{french} as option name for the +% French language, former aliases \Lopt{frenchb} or \Lopt{francais} +% are \emph{depreciated}; expect them to be removed sooner or later!} +% % \frenchb{} takes account of \babel’s \emph{main language} defined % as the \emph{last} option at \babel’s loading. When French is % not \babel’s main language, \frenchb{} does not alter the general @@ -561,7 +560,7 @@ % The older syntax |\addto\captionsfrench{\def\proofname{Preuve}}| % still works. Keep in mind that \emph{only} |french| can be used to % redefine captions, even if \babel{}’s option was entered as -% |francais| or |frenchb|. +% |frenchb|. % % When French is the main language, by default (see below) % \frenchb{} changes the separator (colon) used in figures’ and @@ -635,6 +634,13 @@ % % \subsubsection*{What’s new in version 3.3?} % +% According to current \babel's standards, every dialect should +% have it’s own \file{.ldf} file; the main support for French is +% now in \file{french.ldf}, portemanteau files \file{frenchb.ldf}, +% \file{francais.ldf}, \file{acadian.ldf} and \file{canadien.ldf} +% have been added. Recommended options are \Lopt{french} and +% \Lopt{acadian}, all other are deprecated. +% % Release 3.3a is compatible with LuaTeX v.~0.95 (TL2016) and up. % Former skips |\FBcolonskip|, |\FBthinskip| and |\FBguillskip| % controlling punctuation spacings in LuaTeX have been removed; @@ -754,40 +760,12 @@ % (french) as to be corrected before calling \cs{LdfInit}.} % % \iffalse -%<*ldf> +%<*french> % \fi % % \changes{v3.0a}{2014/02/28}{Support for options frenchb, francais, % canadien, acadian changed.} % -% If \file{frenchb.ldf} was loaded with \babel{}’s options -% \Lopt{francais} or \Lopt{frenchb}, we make it behave as if -% \Lopt{french} was specified. -% In Plain formats, \texttt{@} catcode is not `letter’. -% \begin{macrocode} -\chardef\atcatcode=\catcode`\@ -\catcode`\@=11\relax -\def\bbl@tempa{francais} -\ifx\CurrentOption\bbl@tempa - \let\l@francais\l@french - \def\captionsfrancais{\captionsfrench} - \def\datefrancais{\datefrench} - \def\extrasfrancais{\extrasfrench} - \def\noextrasfrancais{\extrasfrench} - \def\CurrentOption{french} -\fi -\def\bbl@tempa{frenchb} -\ifx\CurrentOption\bbl@tempa - \let\l@frenchb\l@french - \def\captionsfrenchb{\captionsfrench} - \def\datefrenchb{\datefrench} - \def\extrasfrenchb{\extrasfrench} - \def\noextrasfrenchb{\extrasfrench} - \def\CurrentOption{french} -\fi -\catcode`\@=\atcatcode \let\atcatcode\relax -% \end{macrocode} -% % \changes{v3.0a}{2014/02/19}{\cs{LdfInit} checks \cs{datefrench} % instead of \cs{captionsfrench} to avoid a conflict with % papertex.cls which loads datetime.sty.} @@ -832,7 +810,7 @@ \let\bbl@tempa\relax \ifx\magnification\@undefined \ifx\@compatibilitytrue\@undefined - \PackageError{frenchb.ldf} + \PackageError{french.ldf} {LaTeX-2.09 format is no longer supported.\MessageBreak Aborting here} {Please upgrade to LaTeX2e!} @@ -854,13 +832,13 @@ \def\fb@error#1#2{% \begingroup \newlinechar=`\^^J - \def\\{^^J(frenchb.ldf) }% + \def\\{^^J(french.ldf) }% \errhelp{#2}\errmessage{\\#1^^J}% \endgroup} \def\fb@warning#1{% \begingroup \newlinechar=`\^^J - \def\\{^^J(frenchb.ldf) }% + \def\\{^^J(french.ldf) }% \message{\\#1^^J}% \endgroup} \def\fb@info#1{% @@ -879,7 +857,7 @@ \ifx\babeltags\@undefined \let\bbl@tempa\endinput \ifLaTeXe - \PackageError{frenchb.ldf} + \PackageError{french.ldf} {frenchb requires babel v.3.9i.\MessageBreak Aborting here} {Please upgrade Babel!} @@ -892,33 +870,16 @@ \bbl@tempa % \end{macrocode} % -% \file{frenchb.ldf} can be loaded with options \Lopt{canadien} or -% \Lopt{acadian}, which both stand for Canadian French. Internally, -% \Lopt{acadian} will be the name of the corresponding \babel’s -% dialect, so we set |\CurrentOption| to \Lopt{acadian} in both -% cases. +% Babel’s French language can be loaded with option \Lopt{acadian} +% which stands for Canadian French. % If no specific hyphenation patterns are available, Canadian French % will use the French ones. -% -% TODO: Canadian French hyphenation doesn’t work with LuaTeX. % \begin{macrocode} -\ifx\l@acadian\@undefined - \ifx\l@canadien\@undefined - \adddialect\l@acadian\l@french - \adddialect\l@canadien\l@french - \else - \adddialect\l@acadian\l@canadien - \fi -\else - \adddialect\l@canadien\l@acadian -\fi -\def\bbl@tempa{canadien} +\def\bbl@tempa{acadian} \ifx\CurrentOption\bbl@tempa - \def\captionscanadien{\captionsacadian} - \def\datecanadien{\dateacadian} - \def\extrascanadien{\extrasacadian} - \def\noextrascanadien{\extrasacadian} - \def\CurrentOption{acadian} + \ifx\l@acadian\@undefined + \adddialect\l@acadian\l@french + \fi \fi % \end{macrocode} % @@ -930,7 +891,7 @@ \expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@} % \end{macrocode} % -% \begin{macro}{\ifFBunicode} +%\begin{macro}{\ifFBunicode} % \begin{macro}{\ifFBLuaTeX} % \begin{macro}{\ifFBXeTeX} % French hyphenation patterns are now coded in Unicode, see file @@ -972,6 +933,19 @@ % \end{macro} % \end{macro} % +% \changes{v3.3b}{2017/07/08}{New `if' \cs{ifFBfrench} to replace +% \cs{iflanguage} test which is based on patterns.} +% +% \begin{macro}{\ifFBfrench} +% True when the current language is French or any of its dialects; +% will be set to true by |\extras\CurrentOption| and to false by +% |\noextras\CurrentOption|. Used in |\DecimalMathComma| and +% |frenchsetup{og=«, fg=»}|. +% \begin{macrocode} +\newif\ifFBfrench +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\extrasfrench} % \changes{v3.0a}{2014/02/18}{Take advantage of babel’s % \cs{babel@savevariable} to handle apostrophe’s \cs{lccode}.} @@ -995,6 +969,7 @@ % % \begin{macrocode} \@namedef{extras\CurrentOption}{% + \FBfrenchtrue \babel@savevariable{\lccode`\'}% \ifFBunicode \babel@savevariable{\lccode"2019}% @@ -1003,7 +978,7 @@ \lccode`\'=`\' \fi } -\@namedef{noextras\CurrentOption}{} +\@namedef{noextras\CurrentOption}{\FBfrenchfalse} % \end{macrocode} % % Let’s define a handy command for adding stuff to @@ -1065,7 +1040,7 @@ frenchb will make high punctuation characters (;:!?) active\\% with LuaTeX < 0.95.}% \else - \PackageWarning{frenchb.ldf}{Please upgrade LuaTeX + \PackageWarning{french.ldf}{Please upgrade LuaTeX to version 0.95 or above!\MessageBreak frenchb will make high punctuation characters\MessageBreak (;:!?) active with LuaTeX < 0.95;\MessageBreak reported}% @@ -1237,7 +1212,7 @@ \newattribute\FB@addDPspace \FB@addDPspace=1 \relax \newattribute\FB@addGUILspace \FB@addGUILspace=0 \relax \ifLaTeXe - \PackageInfo{frenchb.ldf}{No need for active punctuation + \PackageInfo{french.ldf}{No need for active punctuation characters\MessageBreak with this version of LuaTeX!\MessageBreak reported} \else @@ -1248,8 +1223,7 @@ % \end{macrocode} % % \iffalse -% -%<*lua> +% % \fi % This is \file{frenchb.lua}. It holds Lua code to deal with `high % punctuation’ and quotes. This code is based on suggestions from @@ -1263,6 +1237,7 @@ % quotes in T1-encoding.} % % \begin{macrocode} +%<*lua> local FB_punct_thin = {[string.byte("!")] = true, [string.byte("?")] = true, @@ -1634,11 +1609,11 @@ local function french_punctuation (head) return head end return french_punctuation +% % \end{macrocode} % \end{macro} % \iffalse -% -%<*ldf> +%<*french> % \fi % % \begin{macro}{\FB@luatex@punct@french} @@ -1662,7 +1637,7 @@ return french_punctuation LuaTeX,\\ use \noexpand\NoAutoSpacing *inside a group* instead.}% \else - \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is + \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is helpless with LuaTeX,\MessageBreak use \protect\NoAutoSpacing \space *inside a group* instead;\MessageBreak reported}% \fi}% @@ -1747,7 +1722,7 @@ return french_punctuation % \begin{macrocode} \ifFB@xetex@punct \ifLaTeXe - \PackageInfo{frenchb.ldf}{No need for active punctuation characters% + \PackageInfo{french.ldf}{No need for active punctuation characters% \MessageBreak with this version of XeTeX!% \MessageBreak reported} \else @@ -1864,7 +1839,7 @@ return french_punctuation XeTeX,\\ use \noexpand\NoAutoSpacing *inside a group* instead.}% \else - \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is + \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing \space *inside a group* instead;\MessageBreak reported}% \fi}% @@ -2487,7 +2462,7 @@ return french_punctuation \fb@warning{\noexpand\frquote\space handles up to two levels.\\ Quotation not printed.}% \else - \PackageWarning{frenchb.ldf}{% + \PackageWarning{french.ldf}{% \protect\frquote\space handles up to two levels. \MessageBreak Quotation not printed. Reported} \fi @@ -2962,7 +2937,7 @@ return french_punctuation \newcommand*{\std@math@comma}{\mathcode`\,=\std@mcc} \fi \newcommand*{\DecimalMathComma}{% - \iflanguage{french}{\dec@math@comma}{}% + \ifFBfrench\dec@math@comma\fi \ifFB@icomma\else\FB@addto{extras}{\dec@math@comma}\fi } \newcommand*{\StandardMathComma}{% @@ -3037,7 +3012,7 @@ return french_punctuation \ifdefined\numprint \numprint{#1}% \else - \PackageWarning{frenchb.ldf}{% + \PackageWarning{french.ldf}{% \protect\nombre\space now relies on package numprint.sty,% \MessageBreak add \protect \usepackage[autolanguage]{numprint},\MessageBreak @@ -3188,8 +3163,8 @@ return french_punctuation % Up to v2.6h \frenchb{} used to merge |\captionsfrenchb| and % |\captionsfrancais| into |\captionsfrench| at |\begin{document}|. % This is deprecated in favor of the new (much simpler!) syntax -% introduced in \babel~3.9. No need to define |\captionscanadien| -% and |\captionsacadian| either. +% introduced in \babel~3.9. No need to define |\captionsacadian| +% either. % % \begin{macro}{\CaptionSeparator} % Let’s consider now captions in figures and tables. @@ -3261,7 +3236,7 @@ return french_punctuation % \begin{macrocode} \newif\if@FBwarning@capsep \@FBwarning@capseptrue -\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}} +\newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}} \newcommand*{\CaptionSeparator}{\space\textendash\space} \def\FBCaption@Separator{: } \long\def\FB@makecaption#1#2{% @@ -3715,13 +3690,13 @@ return french_punctuation \ifx\bbl@main@language\FB@french \FBGlobalLayoutFrenchtrue \@ifclassloaded{beamer}% - {\PackageInfo{frenchb.ldf}{% + {\PackageInfo{french.ldf}{% No list customisation for the beamer class,% \MessageBreak reported}}% {\@ifpackageloaded{beamerarticle}% {\FBStandardItemLabelsfalse \FBReduceListSpacingtrue - \PackageInfo{frenchb.ldf}{% + \PackageInfo{french.ldf}{% Minimal list customisation for the beamerarticle% \MessageBreak package; reported}}% % \end{macrocode} @@ -3741,7 +3716,7 @@ return french_punctuation \fi % \end{macrocode} % \frenchb{} being an option of \babel, it cannot load a package -% (\pkg{keyval}) while \file{frenchb.ldf} is read, so we defer the +% (\pkg{keyval}) while \file{french.ldf} is read, so we defer the % loading of \file{keyval} and the options setup at the end of % \babel’s loading. % \begin{macrocode} @@ -3781,7 +3756,7 @@ return french_punctuation \ifx\bbl@main@language\FB@french \else \FBGlobalLayoutFrenchfalse - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {Option `GlobalLayoutFrench' skipped:\MessageBreak French is *not* babel's last option.\MessageBreak Reported}% @@ -3864,7 +3839,7 @@ return french_punctuation {\csname FBOldFigTabCaptions#1\endcsname % \end{macrocode} % |\CurrentOption| no longer defined. It’s value has been saved -% in |\FB@CurOpt| while reading \file{frenchb.ldf}. +% in |\FB@CurOpt| while reading \file{french.ldf}. % \begin{macrocode} \ifFBOldFigTabCaptions \FB@addto{extras}{\babel@save\FBCaption@Separator @@ -3905,7 +3880,7 @@ return french_punctuation \else\ifx\FBeveryparguill\FBguillnone \else \let\FBeveryparguill\FBguillopen - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {Wrong value for `EveryParGuill': try `open',\MessageBreak `close' or `none'. Reported}% @@ -4001,7 +3976,7 @@ return french_punctuation % characters. % \begin{macrocode} \ifFB@active@punct - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {Option og=« not supported with this version of\MessageBreak LuaTeX/XeTeX; reported}% \fi @@ -4010,11 +3985,11 @@ return french_punctuation % This is for conventional TeX engines: % \begin{macrocode} \newcommand*{\FB@@og}{% - \iflanguage{french}% - {\ifFB@spacing\FB@og\ignorespaces - \else\guillemotleft - \fi}% - {\guillemotleft}}% + \ifFBfrench + \ifFB@spacing\FB@og\ignorespaces + \else\guillemotleft + \fi + \else\guillemotleft\fi}% \AtBeginDocument{% \ifdefined\DeclareInputText \ifdefined\uc@dclc @@ -4049,7 +4024,7 @@ return french_punctuation % \end{macrocode} % Package \pkg{inputenc} not loaded, no way\dots{} % \begin{macrocode} - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {Option `og' requires package inputenc;% \MessageBreak reported}% \fi @@ -4072,17 +4047,17 @@ return french_punctuation \XeTeXcharclass"202F = \FB@guilnul \fi \ifFB@active@punct - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {Option fg=» not supported with this version of\MessageBreak LuaTeX/XeTeX; reported}% \fi \else \newcommand*{\FB@@fg}{% - \iflanguage{french}% - {\ifFB@spacing\FB@fg - \else\guillemotright - \fi}% - {\guillemotright}}% + \ifFBfrench + \ifFB@spacing\FB@fg + \else\guillemotright + \fi + \else\guillemotright\fi}% \AtBeginDocument{% \ifdefined\DeclareInputText \ifdefined\uc@dclc @@ -4100,7 +4075,7 @@ return french_punctuation \fi \fi \else - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {Option `fg' requires package inputenc;% \MessageBreak reported}% \fi @@ -4132,7 +4107,7 @@ return french_punctuation \ifFBStandardItemizeEnv \else \FBStandardItemizeEnvtrue - \PackageInfo{frenchb.ldf}% + \PackageInfo{french.ldf}% {Setting StandardItemizeEnv=true for\MessageBreak compatibility with enumitem package,\MessageBreak reported}% @@ -4140,7 +4115,7 @@ return french_punctuation \ifFBStandardEnumerateEnv \else \FBStandardEnumerateEnvtrue - \PackageInfo{frenchb.ldf}% + \PackageInfo{french.ldf}% {Setting StandardEnumerateEnv=true for\MessageBreak compatibility with enumitem package,\MessageBreak reported}% @@ -4149,7 +4124,7 @@ return french_punctuation \ifFBStandardItemizeEnv \else \FBStandardItemizeEnvtrue - \PackageInfo{frenchb.ldf}% + \PackageInfo{french.ldf}% {Setting StandardItemizeEnv=true for\MessageBreak compatibility with paralist package,\MessageBreak reported}% @@ -4157,7 +4132,7 @@ return french_punctuation \ifFBStandardEnumerateEnv \else \FBStandardEnumerateEnvtrue - \PackageInfo{frenchb.ldf}% + \PackageInfo{french.ldf}% {Setting StandardEnumerateEnv=true for\MessageBreak compatibility with paralist package,\MessageBreak reported}% @@ -4166,7 +4141,7 @@ return french_punctuation \ifFBStandardEnumerateEnv \else \FBStandardEnumerateEnvtrue - \PackageInfo{frenchb.ldf}% + \PackageInfo{french.ldf}% {Setting StandardEnumerateEnv=true for\MessageBreak compatibility with enumerate package,\MessageBreak reported}% @@ -4458,7 +4433,7 @@ return french_punctuation \ifFBunicode \@ifpackageloaded{fontspec}{}% {\@ifpackageloaded{luainputenc}{}% - {\PackageWarning{frenchb.ldf}% + {\PackageWarning{french.ldf}% {Add \protect\usepackage{fontspec} to the\MessageBreak preamble of your document, reported}% }% @@ -4466,7 +4441,7 @@ return french_punctuation \else \begingroup \newcommand{\FBOTone}{OT1}% \ifx\encodingdefault\FBOTone - \PackageWarning{frenchb.ldf}% + \PackageWarning{french.ldf}% {OT1 encoding should not be used for French.% \MessageBreak Add \protect\usepackage[T1]{fontenc} to the @@ -4895,7 +4870,7 @@ return french_punctuation % % \begin{macrocode} \AtBeginDocument{\@ifpackageloaded{bigfoot}% - {\PackageInfo{frenchb.ldf}% + {\PackageInfo{french.ldf}% {bigfoot package in use.\MessageBreak frenchb will NOT customise footnotes;% \MessageBreak reported}}% @@ -5150,8 +5125,89 @@ return french_punctuation \let\loadlocalcfg\FB@llc % \end{macrocode} % \iffalse -% -%<*dtx> +% +% \fi +% +% \subsection{Files \file{frenchb.ldf}, \file{francais.ldf}, +% \file{canadien.ldf} and\\ \file{acadian.ldf}} +% +% \changes{v3.3b}{2017/06/28}{Generate portmanteau files +% \file{acadian.ldf}, \file{canadien.ldf}, \file{frenchb.ldf}, +% and \file{francais.ldf} and warn about deprecated options.} +% +% Babel now expects a \file{\langvar{}.ldf} file for each \langvar. +% So we create portmanteau \file{.ldf} files for options \texttt{canadien}, +% \texttt{francais}, \texttt{frenchb} and \texttt{acadian}. +% These files themselves only load \file{french.ldf} which does +% the real work. +% Warn users about options \Lopt{canadien}, \Lopt{frenchb} and +% \Lopt{francais} being deprecated and force recommended options +% \Lopt{acadian} or \Lopt{french}. +% \begin{macrocode} +%<*canadien> +\PackageWarning{canadien.ldf}% + {Option `canadien' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `acadian' instead; reported}% +\let\l@canadien\l@acadian +\def\CurrentOption{acadian} +% +%<*francais> +\PackageWarning{francais.ldf}% + {Option `francais' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `french' instead; reported}% +\let\l@francais\l@french +\def\CurrentOption{french} +% +% \end{macrocode} +% Compatibility code for \babel{} pre-3.13: \file{frenchb.ldf} +% could be loaded with options \Lopt{acadian}, \Lopt{canadien}, +% \Lopt{frenchb} or \Lopt{francais}. +% \begin{macrocode} +%<*frenchb> +\def\bbl@tempa{frenchb} +\ifx\CurrentOption\bbl@tempa + \let\l@frenchb\l@french + \def\CurrentOption{french} + \PackageWarning{babel-french}% + {Option `frenchb' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `french' instead; reported} +\else + \def\bbl@tempa{francais} + \ifx\CurrentOption\bbl@tempa + \let\l@francais\l@french + \def\CurrentOption{french} +% \end{macrocode} +% Plain formats: no warning when \file{francais.sty} loads +% \file{frenchb.ldf} (\babel{} pre-3.13). +% \begin{macrocode} + \ifx\magnification\@undefined + \PackageWarning{babel-french}% + {Option `francais' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `french' instead; reported}% + \fi + \else + \def\bbl@tempa{canadien} + \ifx\CurrentOption\bbl@tempa + \let\l@canadien\l@acadian + \def\CurrentOption{acadian} + \PackageWarning{babel-french}% + {Option `canadien' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `acadian' instead; reported} + \fi + \fi +\fi +% +%\input french.ldf\relax +% \end{macrocode} +% +% \Finale +% \iffalse +%<*!lua> % \fi %% %% \CharacterTable @@ -5171,8 +5227,6 @@ return french_punctuation %% Right brace \} Tilde \~} %% % \iffalse -% +% % \fi -% -% \Finale \endinput diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.ins b/Master/texmf-dist/source/generic/babel-french/frenchb.ins index 7ac0e63db5c..672caafa06c 100644 --- a/Master/texmf-dist/source/generic/babel-french/frenchb.ins +++ b/Master/texmf-dist/source/generic/babel-french/frenchb.ins @@ -1,12 +1,12 @@ %% -%% This file will generate fast loadable files and documentation -%% driver files from the doc files in this package when run through -%% LaTeX or TeX. +%% This file will generate fast loadable files and documentation driver +%% files from the doc files in this package when run through LuaTeX. %% %% Copyright 2001-2017 Daniel Flipo. All rights reserved. %% -%% This file is part of the Babel system, release 3.9. -%% --------------------------------------------------- +%% This is a generated file part of the the babel-french bundle +%% to be used with the Babel system. +%% ------------------------------------------------------------- %% %% It may be distributed under the terms of the LaTeX Project Public %% License, as described in lppl.txt in the base LaTeX distribution. @@ -14,7 +14,7 @@ %% %% --------------- start of docstrip commands ------------------ %% -\def\filedate{2017/01/09} +\def\filedate{2017/07/06} \def\batchfile{frenchb.ins} \input docstrip.tex @@ -34,8 +34,9 @@ \fi} \declarepreamble\mainpreamble -This is a generated file of the Babel system. ---------------------------------------------------------- +This is a generated file part of the the babel-french bundle +to be used with the Babel system. +------------------------------------------------------------- It may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -49,38 +50,7 @@ This work has the LPPL maintenance status "maintained". The Current Maintainer of this work is Daniel Flipo. -This file may only be distributed together with a copy of the Babel -system. You may however distribute the Babel system without -such generated files. - -The list of all files belonging to the Babel distribution is -given in the file `manifest.bbl'. See also `legal.bbl for additional -information. - -The list of derived (unpacked) files belonging to the distribution -and covered by LPPL is defined by the unpacking scripts (with -extension .ins) which are part of the distribution. - -\endpreamble - -\declarepreamble\fdpreamble - -This is a generated file. - -Copyright 2001-2017 Daniel Flipo. All rights reserved. - -This file is part of the Babel system, release 3.9. ---------------------------------------------------- - -It may be distributed under the terms of the LaTeX Project Public -License, as described in lppl.txt in the base LaTeX distribution. -Either version 1.3 or, at your option, any later version. - -In particular, permission is granted to customize the declarations in -this file to serve the needs of your installation. - -However, NO PERMISSION is granted to distribute a modified version -of this file under its original name. +Please report errors to: \endpreamble @@ -90,7 +60,12 @@ of this file under its original name. \usedir{tex/generic/babel-french} \usepreamble\mainpreamble -\generate{\file{frenchb.ldf}{\from{frenchb.dtx}{ldf}}} +\generate{\file{french.ldf}{\from{frenchb.dtx}{french}} + \file{acadian.ldf}{\from{frenchb.dtx}{acadian}} + \file{canadien.ldf}{\from{frenchb.dtx}{canadien}} + \file{frenchb.ldf}{\from{frenchb.dtx}{frenchb}} + \file{francais.ldf}{\from{frenchb.dtx}{francais}} + } \def\MetaPrefix{-- } @@ -109,7 +84,9 @@ of this file under its original name. \Msg{* To finish the installation you have to move the following} \Msg{* files into a directory searched by TeX:} \Msg{*} -\Msg{* \space\space frenchb.ldf\space\space frenchb.lua} +\Msg{* \space\space frenchb.lua\space\space french.ldf} +\Msg{* \space\space frenchb.ldf\space\space francais.ldf} +\Msg{* \space\space canadian.ldf\space\space and acadian.ldf} \Msg{*} \Msg{* To produce the documentation run the file frenchb.dtx} \Msg{* through pdfLaTeX.} @@ -118,4 +95,4 @@ of this file under its original name. \Msg{***********************************************************} } -\endinput +\endbatchfile diff --git a/Master/texmf-dist/tex/generic/babel-french/acadian.ldf b/Master/texmf-dist/tex/generic/babel-french/acadian.ldf new file mode 100644 index 00000000000..a3c517b808d --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel-french/acadian.ldf @@ -0,0 +1,48 @@ +%% +%% This is file `acadian.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% frenchb.dtx (with options: `acadian') +%% This is a generated file part of the the babel-french bundle +%% to be used with the Babel system. +%% ------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Daniel Flipo. +%% +%% Please report errors to: +%% +\ProvidesLanguage{acadian} + [2017/07/08 v3.3b French support from the babel system] +\input french.ldf\relax +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `acadian.ldf'. diff --git a/Master/texmf-dist/tex/generic/babel-french/canadien.ldf b/Master/texmf-dist/tex/generic/babel-french/canadien.ldf new file mode 100644 index 00000000000..45bb81d2581 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel-french/canadien.ldf @@ -0,0 +1,54 @@ +%% +%% This is file `canadien.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% frenchb.dtx (with options: `canadien') +%% This is a generated file part of the the babel-french bundle +%% to be used with the Babel system. +%% ------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Daniel Flipo. +%% +%% Please report errors to: +%% +\ProvidesLanguage{canadien} + [2017/07/08 v3.3b French support from the babel system] +\PackageWarning{canadien.ldf}% + {Option `canadien' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `acadian' instead; reported}% +\let\l@canadien\l@acadian +\def\CurrentOption{acadian} +\input french.ldf\relax +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `canadien.ldf'. diff --git a/Master/texmf-dist/tex/generic/babel-french/francais.ldf b/Master/texmf-dist/tex/generic/babel-french/francais.ldf new file mode 100644 index 00000000000..8bfe1ef23d7 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel-french/francais.ldf @@ -0,0 +1,54 @@ +%% +%% This is file `francais.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% frenchb.dtx (with options: `francais') +%% This is a generated file part of the the babel-french bundle +%% to be used with the Babel system. +%% ------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Daniel Flipo. +%% +%% Please report errors to: +%% +\ProvidesLanguage{francais} + [2017/07/08 v3.3b French support from the babel system] +\PackageWarning{francais.ldf}% + {Option `francais' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `french' instead; reported}% +\let\l@francais\l@french +\def\CurrentOption{french} +\input french.ldf\relax +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `francais.ldf'. diff --git a/Master/texmf-dist/tex/generic/babel-french/french.ldf b/Master/texmf-dist/tex/generic/babel-french/french.ldf new file mode 100644 index 00000000000..dd45998b7e2 --- /dev/null +++ b/Master/texmf-dist/tex/generic/babel-french/french.ldf @@ -0,0 +1,1803 @@ +%% +%% This is file `french.ldf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% frenchb.dtx (with options: `french') +%% This is a generated file part of the the babel-french bundle +%% to be used with the Babel system. +%% ------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Daniel Flipo. +%% +%% Please report errors to: +%% +\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 +%% +\LdfInit\CurrentOption\captionsfrench +\def\FB@nopatterns{% + \ifx\l@nohyphenation\@undefined + \edef\bbl@nulllanguage{\string\language=0}% + \adddialect\l@french0 + \else + \adddialect\l@french\l@nohyphenation + \edef\bbl@nulllanguage{\string\language=nohyphenation}% + \fi + \@nopatterns{French}} +\ifx\l@french\@undefined + \FB@nopatterns +\fi +\newif\ifLaTeXe +\let\bbl@tempa\relax +\ifx\magnification\@undefined + \ifx\@compatibilitytrue\@undefined + \PackageError{french.ldf} + {LaTeX-2.09 format is no longer supported.\MessageBreak + Aborting here} + {Please upgrade to LaTeX2e!} + \let\bbl@tempa\endinput + \else + \LaTeXetrue + \fi +\fi +\bbl@tempa +\def\fb@error#1#2{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J(french.ldf) }% + \errhelp{#2}\errmessage{\\#1^^J}% + \endgroup} +\def\fb@warning#1{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J(french.ldf) }% + \message{\\#1^^J}% + \endgroup} +\def\fb@info#1{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J}% + \wlog{#1}% + \endgroup} +\let\bbl@tempa\relax +\ifx\babeltags\@undefined + \let\bbl@tempa\endinput + \ifLaTeXe + \PackageError{french.ldf} + {frenchb requires babel v.3.9i.\MessageBreak + Aborting here} + {Please upgrade Babel!} + \else + \fb@error{frenchb requires babel v.3.9i.\\ + Aborting here} + {Please upgrade Babel!} + \fi +\fi +\bbl@tempa +\def\bbl@tempa{acadian} +\ifx\CurrentOption\bbl@tempa + \ifx\l@acadian\@undefined + \adddialect\l@acadian\l@french + \fi +\fi +\expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@} +\newif\ifFBunicode +\newif\ifFBLuaTeX +\newif\ifFBXeTeX +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname luatexversion\endcsname\relax +\else + \FBunicodetrue \FBLuaTeXtrue +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname XeTeXrevision\endcsname\relax +\else + \FBunicodetrue \FBXeTeXtrue +\fi +\newif\ifFBfrench +\@namedef{extras\CurrentOption}{% + \FBfrenchtrue + \babel@savevariable{\lccode`\'}% + \ifFBunicode + \babel@savevariable{\lccode"2019}% + \lccode`\'="2019\lccode"2019="2019 + \else + \lccode`\'=`\' + \fi +} +\@namedef{noextras\CurrentOption}{\FBfrenchfalse} +\let\FB@CurOpt\CurrentOption +\newcommand*{\FB@addto}[2]{% + \expandafter\addto\csname #1\FB@CurOpt\endcsname{#2}} +\FB@addto{extras}{\bbl@frenchspacing} +\FB@addto{noextras}{\bbl@nonfrenchspacing} +\newif\ifFB@active@punct \FB@active@puncttrue +\newif\ifFB@luatex@punct +\ifFBLuaTeX + \ifnum\luatexversion<95 + \ifx\PackageWarning\@undefined + \fb@warning{Please upgrade LuaTeX to version 0.95 or above!\\% + frenchb will make high punctuation characters (;:!?) active\\% + with LuaTeX < 0.95.}% + \else + \PackageWarning{french.ldf}{Please upgrade LuaTeX + to version 0.95 or above!\MessageBreak + frenchb will make high punctuation characters\MessageBreak + (;:!?) active with LuaTeX < 0.95;\MessageBreak reported}% + \fi + \else + \FB@luatex@puncttrue\FB@active@punctfalse + \fi +\fi +\newcount\FB@nonchar +\newif\ifFB@xetex@punct +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax +\else + \FB@xetex@puncttrue\FB@active@punctfalse + \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt + \FB@nonchar=255 \relax + \else + \FB@nonchar=4095 \relax + \fi +\fi +\newcommand*{\FBcolonspace}{\space} +\newcommand*{\FBthinspace}{\hskip.5\fontdimen2\font \relax} +\newtoks\FBcolonsp +\newtoks\FBthinsp +\newif\ifFB@spacing \FB@spacingtrue +\newcommand*{\FB@spacing@on}{% + \ifFB@luatex@punct + \FB@spacing=1 \relax + \else + \FB@spacingtrue + \fi} +\newcommand*{\FB@spacing@off}{% + \ifFB@luatex@punct + \FB@spacing=0 \relax + \else + \FB@spacingfalse + \fi} +\ifFB@luatex@punct + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname newluafunction\endcsname\relax + \input ltluatex.tex + \fi + \newattribute\FB@spacing \FB@spacing=1 \relax + \newattribute\FB@addDPspace \FB@addDPspace=1 \relax + \newattribute\FB@addGUILspace \FB@addGUILspace=0 \relax + \ifLaTeXe + \PackageInfo{french.ldf}{No need for active punctuation + characters\MessageBreak with this version + of LuaTeX!\MessageBreak reported} + \else + \fb@info{No need for active punctuation characters\\ + with this version of LuaTeX!} + \fi +\fi +\ifFB@luatex@punct + \newcommand*{\FB@luatex@punct@french}{% + \babel@save{\shorthandon}% + \babel@save{\shorthandoff}% + \def\shorthandoff##1{% + \ifx\PackageWarning\@undefined + \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with + LuaTeX,\\ use \noexpand\NoAutoSpacing + *inside a group* instead.}% + \else + \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is + helpless with LuaTeX,\MessageBreak use \protect\NoAutoSpacing + \space *inside a group* instead;\MessageBreak reported}% + \fi}% + \def\shorthandon##1{}% + } + \FB@addto{extras}{\FB@luatex@punct@french} + \def\activate@luatexpunct{% + \directlua{% + FR = \the\l@french + local path = kpse.find_file("frenchb.lua", "lua") + if path then + local f = dofile(path) + luatexbase.add_to_callback("kerning", + f, "frenchb.french_punctuation") + else + texio.write_nl('') + texio.write_nl('*****************************') + texio.write_nl('Error: frenchb.lua not found.') + texio.write_nl('*****************************') + texio.write_nl('') + end + }% + } +\fi +\ifFB@xetex@punct + \ifLaTeXe + \PackageInfo{french.ldf}{No need for active punctuation characters% + \MessageBreak with this version of XeTeX!% + \MessageBreak reported} + \else + \fb@info{No need for active punctuation characters\\ + with this version of XeTeX!} + \fi + \newXeTeXintercharclass\FB@punctthick + \newXeTeXintercharclass\FB@punctthin + \newXeTeXintercharclass\FB@punctnul + \newXeTeXintercharclass\FB@guilo + \newXeTeXintercharclass\FB@guilf + \newXeTeXintercharclass\FB@guilnul + \def\FBsavevariable@loop#1#2{\begingroup + \toks@\expandafter{\originalTeX #1}% + \edef\x{\endgroup + \def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}% + \x} + \def\FB@charlist{"21,"3A,"3B,"3F,"AB,"BB,"28,"5B,"A0,"202F,% + "29,"5D,"7B,"7D,"2C,"2D,"2E,"22,"25,"27,"60,"2019} + \newcommand*{\FB@xetex@punct@french}{% + \babel@savevariable{\XeTeXinterchartokenstate}% + \babel@save{\shorthandon}% + \babel@save{\shorthandoff}% + \bbl@for\FB@char\FB@charlist + {\FBsavevariable@loop{\XeTeXcharclass}{\FB@char}}% + \def\shorthandoff##1{% + \ifx\PackageWarning\@undefined + \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with + XeTeX,\\ use \noexpand\NoAutoSpacing + *inside a group* instead.}% + \else + \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?} is + helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing + \space *inside a group* instead;\MessageBreak reported}% + \fi}% + \def\shorthandon##1{}% + \XeTeXinterchartokenstate=1 + \XeTeXcharclass `\: = \FB@punctthick + \XeTeXinterchartoks \z@ \FB@punctthick = {% + \ifFB@spacing\ifhmode\FDP@colonspace\fi\fi}% + \XeTeXinterchartoks \FB@guilf \FB@punctthick = {% + \ifFB@spacing\FDP@colonspace\fi}% + \XeTeXinterchartoks \FB@nonchar \FB@punctthick = {% + \ifFB@spacing + \ifhmode + \ifdim\lastskip>1sp + \unskip\penalty\@M\FBcolonspace + \else + \FDP@colonspace + \fi + \fi + \fi}% + \bbl@for\FB@char + {`\;,`\!,`\?}% + {\XeTeXcharclass\FB@char=\FB@punctthin}% + \XeTeXinterchartoks \z@ \FB@punctthin = {% + \ifFB@spacing\ifhmode\FDP@thinspace\fi\fi}% + \XeTeXinterchartoks \FB@guilf \FB@punctthin = {% + \ifFB@spacing\FDP@thinspace\fi}% + \XeTeXinterchartoks \FB@nonchar \FB@punctthin = {% + \ifFB@spacing + \ifhmode + \ifdim\lastskip>1sp + \unskip\penalty\@M\FBthinspace + \else + \FDP@thinspace + \fi + \fi + \fi}% + \XeTeXinterchartoks \FB@guilo \z@ = {% + \ifFB@spacing\FB@guillspace\fi}% + \XeTeXinterchartoks \FB@guilo \FB@nonchar = {% + \ifFB@spacing\FB@guillspace\ignorespaces\fi}% + \XeTeXinterchartoks \z@ \FB@guilf = {% + \ifFB@spacing\FB@guillspace\fi}% + \XeTeXinterchartoks \FB@punctthin \FB@guilf = {% + \ifFB@spacing\FB@guillspace\fi}% + \XeTeXinterchartoks \FB@nonchar \FB@guilf = {% + \ifFB@spacing\unskip\FB@guillspace\fi}% + \bbl@for\FB@char + {`\[,`\(,"A0,"202F}% + {\XeTeXcharclass\FB@char=\FB@punctnul}% + \bbl@for\FB@char + {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}% + {\XeTeXcharclass\FB@char=\z@}% + } + \FB@addto{extras}{\FB@xetex@punct@french} +\fi +\ifFB@active@punct + \initiate@active@char{:}% + \initiate@active@char{;}% + \initiate@active@char{!}% + \initiate@active@char{?}% + \declare@shorthand{french}{;}{% + \ifFB@spacing + \ifhmode + \ifdim\lastskip>1sp + \unskip\penalty\@M\FBthinspace + \else + \FDP@thinspace + \fi + \fi + \fi + \string;} + \declare@shorthand{french}{!}{% + \ifFB@spacing + \ifhmode + \ifdim\lastskip>1sp + \unskip\penalty\@M\FBthinspace + \else + \FDP@thinspace + \fi + \fi + \fi + \string!} + \declare@shorthand{french}{?}{% + \ifFB@spacing + \ifhmode + \ifdim\lastskip>1sp + \unskip\penalty\@M\FBthinspace + \else + \FDP@thinspace + \fi + \fi + \fi + \string?} + \declare@shorthand{french}{:}{% + \ifFB@spacing + \ifhmode + \ifdim\lastskip>1sp + \unskip\penalty\@M\FBcolonspace + \else + \FDP@colonspace + \fi + \fi + \fi + \string:} + \declare@shorthand{system}{:}{\string:} + \declare@shorthand{system}{!}{\string!} + \declare@shorthand{system}{?}{\string?} + \declare@shorthand{system}{;}{\string;} + \FB@addto{extras}{\languageshorthands{french}% + \bbl@activate{:}\bbl@activate{;}% + \bbl@activate{!}\bbl@activate{?}% + } + \FB@addto{noextras}{% + \bbl@deactivate{:}\bbl@deactivate{;}% + \bbl@deactivate{!}\bbl@deactivate{?}% + } +\fi +\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue +\def\autospace@beforeFDP{% + \ifFB@luatex@punct\FB@addDPspace=1 \fi + \def\FDP@thinspace{\penalty\@M\FBthinspace}% + \def\FDP@colonspace{\penalty\@M\FBcolonspace}} +\def\noautospace@beforeFDP{% + \ifFB@luatex@punct\FB@addDPspace=0 \fi + \let\FDP@thinspace\@empty + \let\FDP@colonspace\@empty} +\ifLaTeXe + \def\AutoSpaceBeforeFDP{\autospace@beforeFDP + \FBAutoSpacePunctuationtrue} + \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP + \FBAutoSpacePunctuationfalse} + \AtEndOfPackage{\AutoSpaceBeforeFDP} +\else + \let\AutoSpaceBeforeFDP\autospace@beforeFDP + \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP + \AutoSpaceBeforeFDP +\fi +\ifLaTeXe + \DeclareRobustCommand\ttfamilyFB{\FB@spacing@off \ttfamilyORI} + \DeclareRobustCommand\rmfamilyFB{\FB@spacing@on \rmfamilyORI} + \DeclareRobustCommand\sffamilyFB{\FB@spacing@on \sffamilyORI} +\fi +\DeclareRobustCommand*{\NoAutoSpacing}{% + \FB@spacing@off + \ifFB@active@punct\shorthandoff{;:!?}\fi +} +\ifLaTeXe +\else + \ifFBunicode + \def\guillemotleft{{\char"00AB}} + \def\guillemotright{{\char"00BB}} + \def\textquotedblleft{{\char"201C}} + \def\textquotedblright{{\char"201D}} + \else + \def\guillemotleft{\leavevmode\raise0.25ex + \hbox{$\scriptscriptstyle\ll$}} + \def\guillemotright{\raise0.25ex + \hbox{$\scriptscriptstyle\gg$}} + \def\textquotedblleft{``} + \def\textquotedblright{''} + \fi + \let\xspace\relax +\fi +\newcommand*{\FBguillspace}{\hskip.8\fontdimen2\font + plus.3\fontdimen3\font + minus.8\fontdimen4\font \relax} +\newcommand*{\FB@guillspace}{\penalty\@M\FBguillspace} +\newtoks\FBguillsp +\ifFB@luatex@punct + \DeclareRobustCommand*{\FB@og}{\leavevmode + \bgroup\FB@spacing=0 \guillemotleft\egroup + \FB@guillspace} + \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi + \FB@guillspace + \bgroup\FB@spacing=0 \guillemotright\egroup} +\fi +\ifFB@xetex@punct + \DeclareRobustCommand*{\FB@og}{\leavevmode + \bgroup\FB@spacingfalse\guillemotleft\egroup + \FB@guillspace} + \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi + \FB@guillspace + \bgroup\FB@spacingfalse\guillemotright\egroup} +\fi +\ifFB@active@punct + \DeclareRobustCommand*{\FB@og}{\leavevmode + \guillemotleft + \FB@guillspace} + \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi + \FB@guillspace + \guillemotright} +\fi +\newcommand*{\og}{\@empty} +\newcommand*{\fg}{\@empty} +\ifLaTeXe + \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}% + \renewcommand*{\fg}{\FB@fg\xspace}} + \renewcommand*{\og}{\textquotedblleft} + \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi + \textquotedblright\xspace} +\else + \def\bbl@frenchguillemets{\let\og\FB@og + \let\fg\FB@fg} + \def\og{\textquotedblleft} + \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright} +\fi +\FB@addto{extras}{\babel@save\og \babel@save\fg \bbl@frenchguillemets} +\newcommand*{\ogi}{\FB@og} +\newcommand*{\fgi}{\FB@fg} +\newcommand*{\ogii}{\textquotedblleft} +\newcommand*{\fgii}{\textquotedblright} +\newcount\FBguill@level +\newtoks\FB@everypar +\newif\ifFBcloseguill \FBcloseguilltrue +\newif\ifFBInnerGuillSingle +\def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup} +\def\FBguillclose{\bgroup\NoAutoSpacing\guillemotright\egroup} +\let\FBguillnone\empty +\let\FBeveryparguill\FBguillopen +\let\FBeverylineguill\FBguillnone +\ifLaTeXe + \DeclareRobustCommand\frquote{% + \@ifstar{\FBcloseguillfalse\fr@quote}% + {\FBcloseguilltrue\fr@quote}} +\else + \newcommand\frquote[1]{\fr@quote{#1}} +\fi +\newcommand{\fr@quote}[1]{% + \leavevmode + \advance\FBguill@level by \@ne + \ifcase\FBguill@level + \or + \FB@everypar=\everypar + \ifx\FBeveryparguill\FBguillnone + \else + \def\FBeverypar@quote{\FBeveryparguill\FB@guillspace}% + \everypar=\expandafter{\the\everypar \FBeverypar@quote}% + \fi + \ogi #1\fgi + \or + \ifx\FBeverylineguill\FBguillopen + \localleftbox{\guillemotleft\FB@guillspace}% + \let\FBeverypar@quote\relax + \ogi #1\ifFBcloseguill\fgi\fi + \else + \ifx\FBeverylineguill\FBguillclose + \localleftbox{\guillemotright\FB@guillspace}% + \let\FBeverypar@quote\relax + \ogi #1\ifFBcloseguill\fgi\fi + \else + \let\FBeverypar@quote\relax + \ifFBInnerGuillSingle + \def\ogii{\leavevmode + \guilsinglleft\FB@guillspace}% + \def\fgii{\ifdim\lastskip>\z@\unskip\fi + \FB@guillspace\guilsinglright}% + \ifx\FBeveryparguill\FBguillopen + \def\FBeverypar@quote{\guilsinglleft\FB@guillspace}% + \fi + \ifx\FBeveryparguill\FBguillclose + \def\FBeverypar@quote{\guilsinglright\FB@guillspace}% + \fi + \fi + \ogii #1\ifFBcloseguill \fgii \fi + \fi + \fi + \else + \ifx\PackageWarning\@undefined + \fb@warning{\noexpand\frquote\space handles up to + two levels.\\ Quotation not printed.}% + \else + \PackageWarning{french.ldf}{% + \protect\frquote\space handles up to two levels. + \MessageBreak Quotation not printed. Reported} + \fi + \fi + \advance\FBguill@level by \m@ne + \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi + \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB@everypar\fi +} +\ifLaTeXe + \def\BabelLanguages{french,acadian} + \StartBabelCommands*{\BabelLanguages}{date} + [unicode, fontenc=EU1 EU2, charset=utf8] + \SetString\monthiiname{février} + \SetString\monthviiiname{août} + \SetString\monthxiiname{décembre} + \StartBabelCommands*{\BabelLanguages}{date} + \SetStringLoop{month#1name}{% + janvier,f\'evrier,mars,avril,mai,juin,juillet,% + ao\^ut,septembre,octobre,novembre,d\'ecembre} + \SetString\today{{\number\day}\ifnum1=\day {\ier}\fi\space + \csname month\romannumeral\month name\endcsname \space + \number\year + } + \EndBabelCommands +\else + \ifFBunicode + \@namedef{date\CurrentOption}{% + \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space + \ifcase\month + \or janvier\or février\or mars\or avril\or mai\or + juin\or juillet\or août\or septembre\or + octobre\or novembre\or décembre\fi + \space \number\year}} + \else + \@namedef{date\CurrentOption}{% + \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space + \ifcase\month + \or janvier\or f\'evrier\or mars\or avril\or mai\or + juin\or juillet\or ao\^ut\or septembre\or + octobre\or novembre\or d\'ecembre\fi + \space \number\year}} + \fi +\fi +\newif\ifFB@poorman +\newdimen\FB@Mht +\ifLaTeXe + \AtEndOfPackage{\RequirePackage{scalefnt}} + \newcommand*{\FBsupR}{-0.12} + \newcommand*{\FBsupS}{0.65} + \newcommand*{\FB@lc}[1]{\MakeLowercase{#1}} + \DeclareRobustCommand*{\FB@up@fake}[1]{% + \settoheight{\FB@Mht}{M}% + \addtolength{\FB@Mht}{\FBsupR \FB@Mht}% + \addtolength{\FB@Mht}{-\FBsupS ex}% + \raisebox{\FB@Mht}{\scalefont{\FBsupS}{\FB@lc{#1}}}% + } + \def\FB@split#1#2#3#4\@nil{\def\FB@firstthree{#1#2#3}% + \def\FB@suffix{#4}} + \def\FB@x{x} + \def\FB@j{j} + \DeclareRobustCommand*{\FB@up}[1]{% + \bgroup \FB@poormantrue + \expandafter\FB@split\f@family\@nil + \edef\reserved@a{\lowercase{% + \noexpand\IfFileExists{\f@encoding\FB@firstthree -sup.fd}}}% + \reserved@a + {\ifx\FB@suffix\FB@x \FB@poormanfalse\fi + \ifx\FB@suffix\FB@j \FB@poormanfalse\fi + \ifFB@poorman \FB@up@fake{#1}% + \else \FB@up@real{#1}% + \fi}% + {\FB@up@fake{#1}}% + \egroup} + \newcommand*{\FB@up@real}[1]{\bgroup + \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup} + \DeclareRobustCommand*{\fup}[1]{% + \ifx\realsuperscript\@undefined + \FB@up{#1}% + \else + \bgroup\let\fakesuperscript\FB@up@fake + \realsuperscript{\FB@lc{#1}}\egroup + \fi} + \providecommand*{\up}{\relax} +\else + \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}} +\fi +\def\ieme{\up{e}\xspace} +\def\iemes{\up{es}\xspace} +\def\ier{\up{er}\xspace} +\def\iers{\up{ers}\xspace} +\def\iere{\up{re}\xspace} +\def\ieres{\up{res}\xspace} +\newcommand*{\FrenchEnumerate}[1]{% + #1\up{o}\kern+.3em} +\newcommand*{\FrenchPopularEnumerate}[1]{% + #1\up{o})\kern+.3em} +\def\primo{\FrenchEnumerate1} +\def\secundo{\FrenchEnumerate2} +\def\tertio{\FrenchEnumerate3} +\def\quarto{\FrenchEnumerate4} +\def\fprimo){\FrenchPopularEnumerate1} +\def\fsecundo){\FrenchPopularEnumerate2} +\def\ftertio){\FrenchPopularEnumerate3} +\def\fquarto){\FrenchPopularEnumerate4} +\DeclareRobustCommand*{\No}{N\up{o}\kern+.2em} +\DeclareRobustCommand*{\no}{n\up{o}\kern+.2em} +\DeclareRobustCommand*{\Nos}{N\up{os}\kern+.2em} +\DeclareRobustCommand*{\nos}{n\up{os}\kern+.2em} +\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt + \scshape #1\endgroup} +\ifLaTeXe\else\let\scshape\relax\fi +\ifFBunicode + \newcommand*{\at}{{\char"0040}} + \newcommand*{\circonflexe}{{\char"005E}} + \newcommand*{\tild}{{\char"007E}} + \newcommand*{\boi}{{\char"005C}} + \newcommand*{\degre}{{\char"00B0}} +\else + \ifLaTeXe + \DeclareTextSymbol{\at}{T1}{64} + \DeclareTextSymbol{\circonflexe}{T1}{94} + \DeclareTextSymbol{\tild}{T1}{126} + \DeclareTextSymbolDefault{\at}{T1} + \DeclareTextSymbolDefault{\circonflexe}{T1} + \DeclareTextSymbolDefault{\tild}{T1} + \DeclareRobustCommand*{\boi}{\textbackslash} + \DeclareRobustCommand*{\degre}{\r{}} + \else + \def\T@one{T1} + \ifx\f@encoding\T@one + \newcommand*{\degre}{{\char6}} + \else + \newcommand*{\degre}{{\char23}} + \fi + \newcommand*{\at}{{\char64}} + \newcommand*{\circonflexe}{{\char94}} + \newcommand*{\tild}{{\char126}} + \newcommand*{\boi}{$\backslash$} + \fi +\fi +\ifLaTeXe + \newcommand*{\degres}{\degre} + \ifFBunicode + \DeclareRobustCommand*{\degres}{\degre} + \else + \def\Warning@degree@TSone{\FBWarning + {Degrees would look better in TS1-encoding:% + \MessageBreak add \protect + \usepackage{textcomp} to the preamble.% + \MessageBreak Degrees used}} + \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined + \DeclareRobustCommand*{\degres}{% + \leavevmode\hbox to 0.3em{\hss\degre\hss}% + \Warning@degree@TSone + \global\let\Warning@degree@TSone\relax}% + \else + \DeclareRobustCommand*{\degres}{% + \hbox{\UseTextSymbol{TS1}{\textdegree}}}% + \fi + } + \fi +\else + \newcommand*{\degres}{% + \leavevmode\hbox to 0.3em{\hss\degre\hss}} +\fi +\newif\ifFB@icomma +\newcount\mc@charclass +\newcount\mc@charfam +\newcount\mc@charslot +\newcount\std@mcc +\newcount\dec@mcc +\ifFBLuaTeX + \mc@charclass=\Umathcharclass`\, + \newcommand*{\dec@math@comma}{% + \mc@charfam=\Umathcharfam`\, + \mc@charslot=\Umathcharslot`\, + \Umathcode`\,= 0 \mc@charfam \mc@charslot + } + \newcommand*{\std@math@comma}{% + \mc@charfam=\Umathcharfam`\, + \mc@charslot=\Umathcharslot`\, + \Umathcode`\,= \mc@charclass \mc@charfam \mc@charslot + } +\else + \std@mcc=\mathcode`\, + \dec@mcc=\std@mcc + \@tempcnta=\std@mcc + \divide\@tempcnta by "1000 + \multiply\@tempcnta by "1000 + \advance\dec@mcc by -\@tempcnta + \newcommand*{\dec@math@comma}{\mathcode`\,=\dec@mcc} + \newcommand*{\std@math@comma}{\mathcode`\,=\std@mcc} +\fi +\newcommand*{\DecimalMathComma}{% + \ifFBfrench\dec@math@comma\fi + \ifFB@icomma\else\FB@addto{extras}{\dec@math@comma}\fi +} +\newcommand*{\StandardMathComma}{% + \std@math@comma + \ifFB@icomma\else\FB@addto{extras}{\std@math@comma}\fi +} +\ifLaTeXe + \AtBeginDocument{\@ifpackageloaded{icomma}% + {\FB@icommatrue}% + {\FB@addto{noextras}{\std@math@comma}}% + } +\else + \FB@addto{noextras}{\std@math@comma} +\fi +\newcommand*{\nombre}[1]{{#1}\fb@warning{*** \noexpand\nombre + no longer formats numbers\string! ***}} +\let\FBstop@here\relax +\def\FBclean@on@exit{\let\ifLaTeXe\undefined + \let\LaTeXetrue\undefined + \let\LaTeXefalse\undefined} +\ifx\magnification\@undefined +\else + \def\FBstop@here{\ifFB@luatex@punct + \activate@luatexpunct + \fi + \FBclean@on@exit + \ldf@quit\CurrentOption\endinput} +\fi +\FBstop@here +\renewcommand*{\nombre}[1]{\Warning@nombre{#1}} +\newcommand*{\Warning@nombre}[1]{% + \ifdefined\numprint + \numprint{#1}% + \else + \PackageWarning{french.ldf}{% + \protect\nombre\space now relies on package numprint.sty,% + \MessageBreak add \protect + \usepackage[autolanguage]{numprint},\MessageBreak + see file numprint.pdf for more options.\MessageBreak + \protect\nombre\space called}% + \global\let\Warning@nombre\relax + {#1}% + \fi +} +\ifx\FBfigtabshape\@undefined \let\FBfigtabshape\scshape \fi +\StartBabelCommands*{\BabelLanguages}{captions} + [unicode, fontenc=EU1 EU2 TU, charset=utf8] + \SetString{\refname}{Références} + \SetString{\abstractname}{Résumé} + \SetString{\prefacename}{Préface} + \SetString{\contentsname}{Table des matières} + \SetString{\ccname}{Copie à } + \SetString{\proofname}{Démonstration} + \SetString{\partfirst}{Première} + \SetString{\partsecond}{Deuxième} + \SetStringLoop{ordinal#1}{% + \frenchpartfirst,\frenchpartsecond,Troisième,Quatrième,% + Cinquième,Sixième,Septième,Huitième,Neuvième,Dixième,Onzième,% + Douzième,Treizième,Quatorzième,Quinzième,Seizième,% + Dix-septième,Dix-huitième,Dix-neuvième,Vingtième} +\StartBabelCommands*{\BabelLanguages}{captions} + \SetString{\refname}{R\'ef\'erences} + \SetString{\abstractname}{R\'esum\'e} + \SetString{\bibname}{Bibliographie} + \SetString{\prefacename}{Pr\'eface} + \SetString{\chaptername}{Chapitre} + \SetString{\appendixname}{Annexe} + \SetString{\contentsname}{Table des mati\`eres} + \SetString{\listfigurename}{Table des figures} + \SetString{\listtablename}{Liste des tableaux} + \SetString{\indexname}{Index} + \SetString{\figurename}{{\FBfigtabshape Figure}} + \SetString{\tablename}{{\FBfigtabshape Table}} + \SetString{\pagename}{page} + \SetString{\seename}{voir} + \SetString{\alsoname}{voir aussi} + \SetString{\enclname}{P.~J. } + \SetString{\ccname}{Copie \`a } + \SetString{\headtoname}{} + \SetString{\proofname}{D\'emonstration} + \SetString{\glossaryname}{Glossaire} + \SetString{\partfirst}{Premi\`ere} + \SetString{\partsecond}{Deuxi\`eme} + \SetString{\partnameord}{partie} + \SetStringLoop{ordinal#1}{% + \frenchpartfirst,\frenchpartsecond,Troisi\`eme,Quatri\`eme,% + Cinqui\`eme,Sixi\`eme,Septi\`eme,Huiti\`eme,Neuvi\`eme,Dixi\`eme,% + Onzi\`eme,Douzi\`eme,Treizi\`eme,Quatorzi\`eme,Quinzi\`eme,% + Seizi\`eme,Dix-septi\`eme,Dix-huiti\`eme,Dix-neuvi\`eme,% + Vingti\`eme} + \AfterBabelCommands{% + \DeclareRobustCommand*{\FB@emptypart}{\def\thepart{}}% + \DeclareRobustCommand*{\FB@partname}{% + \ifFBPartNameFull + \csname ordinal\romannumeral\value{part}\endcsname\space + \frenchpartnameord\FB@emptypart + \else + Partie% + \fi}% + } + \SetString{\partname}{\FB@partname} +\EndBabelCommands +\AtEndOfPackage{% + \ifFB@koma + \ifdefined\partformat + \FB@addto{captions}{% + \ifFBPartNameFull + \babel@save\partformat + \renewcommand*{\partformat}{\partname}% + \fi}% + \fi + \fi +} +\bgroup + \catcode`:=12 \catcode`>=12 \relax + \long\gdef\STD@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{#1: #2}% + \ifdim \wd\@tempboxa >\hsize + #1: #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\egroup +\newif\if@FBwarning@capsep +\@FBwarning@capseptrue +\newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}} +\newcommand*{\CaptionSeparator}{\space\textendash\space} +\def\FBCaption@Separator{: } +\long\def\FB@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{#1\FBCaption@Separator #2}% + \ifdim \wd\@tempboxa >\hsize + #1\FBCaption@Separator #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\@ifclassloaded{amsart}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{amsbook}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{amsdtx}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{amsldoc}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{amproc}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{smfart}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{smfbook}{\@FBwarning@capsepfalse}{} +\ifFB@active@punct\else\@FBwarning@capsepfalse\fi +\newif\ifFB@koma +\@ifclassloaded{memoir}{\@FBwarning@capsepfalse}{} +\@ifclassloaded{scrartcl}{\@FBwarning@capsepfalse\FB@komatrue}{} +\@ifclassloaded{scrbook}{\@FBwarning@capsepfalse\FB@komatrue}{} +\@ifclassloaded{scrreprt}{\@FBwarning@capsepfalse\FB@komatrue}{} +\@ifclassloaded{beamer}{\@FBwarning@capsepfalse}{} +\ifdefined\@makecaption\else\@FBwarning@capsepfalse\fi +\@ifpackageloaded{caption} + {\FBWarning{Please load the "caption" package\MessageBreak + AFTER babel/frenchb; reported}% + \@FBwarning@capsepfalse}% + {} +\@ifpackageloaded{subcaption} + {\FBWarning{Please load the "subcaption" package\MessageBreak + AFTER babel/frenchb; reported}% + \@FBwarning@capsepfalse}% + {} +\@ifpackageloaded{floatrow} + {\FBWarning{Please load the "floatrow" package\MessageBreak + AFTER babel/frenchb; reported}% + \@FBwarning@capsepfalse}% + {} +\AtBeginDocument{% + \ifx\@makecaption\STD@makecaption + \global\let\@makecaption\FB@makecaption + \ifFBOldFigTabCaptions + \else + \def\FBCaption@Separator{{\autospace@beforeFDP : }}% + \fi + \ifFBCustomiseFigTabCaptions + \ifx\bbl@main@language\FB@french + \def\FBCaption@Separator{\CaptionSeparator}% + \fi + \fi + \@FBwarning@capsepfalse + \fi + \if@FBwarning@capsep + \FBWarning + {Figures' and tables' captions might look like\MessageBreak + `Figure 1:' which is wrong in French.\MessageBreak + Check your class or packages to change this;\MessageBreak + reported}% + \fi + \let\FB@makecaption\relax + \let\STD@makecaption\relax +} +\ifFBunicode + \let\FBtextellipsis\textellipsis +\else + \DeclareTextSymbol{\FBtextellipsis}{LY1}{133} + \DeclareTextCommandDefault{\FBtextellipsis}{% + .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace} +\fi +\newcommand*{\Tdots@}{\@xp\textellipsis} +\newcommand*{\Mdots@}{\@xp\mdots@} +\AtBeginDocument{\DeclareRobustCommand*{\dots}{\relax + \csname\ifmmode M\else T\fi dots@\endcsname}% + \ifdefined\@xp\else\let\@xp\relax\fi + \ifdefined\mdots@\else\let\Mdots@\mathellipsis\fi + } +\def\bbl@frenchdots{\babel@save\Tdots@ \let\Tdots@\FBtextellipsis} +\FB@addto{extras}{\bbl@frenchdots} +\ifFB@active@punct + \@ifpackageloaded{listings} + {\FBWarning{Please load the "listings" package\MessageBreak + AFTER babel/frenchb; reported}% + }{} +\fi +\newif\if@FBwarning@natbib +\ifFB@active@punct + \@ifpackageloaded{natbib}{}{\@FBwarning@natbibtrue} +\fi +\AtBeginDocument{% + \if@FBwarning@natbib + \@ifpackageloaded{natbib}{}{\@FBwarning@natbibfalse}% + \fi + \if@FBwarning@natbib + \FBWarning{Please load the "natbib" package\MessageBreak + BEFORE babel/frenchb; reported}% + \fi +} +\newif\if@FBwarning@beamerarticle +\@ifpackageloaded{beamerarticle}{}{\@FBwarning@beamerarticletrue} +\AtBeginDocument{% + \if@FBwarning@beamerarticle + \@ifpackageloaded{beamerarticle}{}% + {\@FBwarning@beamerarticlefalse}% + \fi + \if@FBwarning@beamerarticle + \FBWarning{Please load the "beamerarticle" package\MessageBreak + BEFORE babel/frenchb; reported}% + \fi +} +\newcommand*{\frenchsetup}[1]{% + \setkeys{FB}{#1}% +}% +\@onlypreamble\frenchsetup +\let\frenchbsetup\frenchsetup +\@onlypreamble\frenchbsetup +\newif\ifFBShowOptions \FBShowOptionsfalse +\newif\ifFBStandardLayout \FBStandardLayouttrue +\newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchtrue +\newif\ifFBReduceListSpacing \FBReduceListSpacingfalse +\newif\ifFBListOldLayout \FBListOldLayoutfalse +\newif\ifFBCompactItemize \FBCompactItemizefalse +\newif\ifFBStandardItemizeEnv \FBStandardItemizeEnvtrue +\newif\ifFBStandardEnumerateEnv \FBStandardEnumerateEnvtrue +\newif\ifFBStandardItemLabels \FBStandardItemLabelstrue +\newif\ifFBStandardLists \FBStandardListstrue +\newif\ifFBIndentFirst \FBIndentFirstfalse +\newif\ifFBFrenchFootnotes \FBFrenchFootnotesfalse +\newif\ifFBAutoSpaceFootnotes \FBAutoSpaceFootnotesfalse +\newif\ifFBOriginalTypewriter \FBOriginalTypewriterfalse +\newif\ifFBThinColonSpace \FBThinColonSpacefalse +\newif\ifFBThinSpaceInFrenchNumbers \FBThinSpaceInFrenchNumbersfalse +\newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue +\newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue +\newif\ifFBPartNameFull \FBPartNameFulltrue +\newif\ifFBCustomiseFigTabCaptions \FBCustomiseFigTabCaptionsfalse +\newif\ifFBOldFigTabCaptions \FBOldFigTabCaptionsfalse +\newif\ifFBSmallCapsFigTabCaptions \FBSmallCapsFigTabCaptionstrue +\newif\ifFBSuppressWarning \FBSuppressWarningfalse +\newif\ifFBINGuillSpace \FBINGuillSpacefalse +\edef\FB@french{\CurrentOption} +\AtEndOfPackage{% + \ifx\bbl@main@language\FB@french + \FBGlobalLayoutFrenchtrue + \@ifclassloaded{beamer}% + {\PackageInfo{french.ldf}{% + No list customisation for the beamer class,% + \MessageBreak reported}}% + {\@ifpackageloaded{beamerarticle}% + {\FBStandardItemLabelsfalse + \FBReduceListSpacingtrue + \PackageInfo{french.ldf}{% + Minimal list customisation for the beamerarticle% + \MessageBreak package; reported}}% + {\FBReduceListSpacingtrue + \FBStandardItemizeEnvfalse + \FBStandardEnumerateEnvfalse + \FBStandardItemLabelsfalse}% + } + \FBIndentFirsttrue + \FBFrenchFootnotestrue + \FBAutoSpaceFootnotestrue + \FBCustomiseFigTabCaptionstrue + \else + \FBGlobalLayoutFrenchfalse + \fi + \RequirePackage{keyval}% + \define@key{FB}{ShowOptions}[true]% + {\csname FBShowOptions#1\endcsname}% + \define@key{FB}{StandardLayout}[true]% + {\csname FBStandardLayout#1\endcsname + \ifFBStandardLayout + \FBReduceListSpacingfalse + \FBStandardItemizeEnvtrue + \FBStandardItemLabelstrue + \FBStandardEnumerateEnvtrue + \FBIndentFirstfalse + \FBFrenchFootnotesfalse + \FBAutoSpaceFootnotesfalse + \FBGlobalLayoutFrenchfalse + \else + \FBReduceListSpacingtrue + \FBStandardItemizeEnvfalse + \FBStandardItemLabelsfalse + \FBStandardEnumerateEnvfalse + \FBIndentFirsttrue + \FBFrenchFootnotestrue + \FBAutoSpaceFootnotestrue + \fi}% + \define@key{FB}{GlobalLayoutFrench}[true]% + {\csname FBGlobalLayoutFrench#1\endcsname + \ifFBGlobalLayoutFrench + \ifx\bbl@main@language\FB@french + \else + \FBGlobalLayoutFrenchfalse + \PackageWarning{french.ldf}% + {Option `GlobalLayoutFrench' skipped:\MessageBreak + French is *not* babel's last option.\MessageBreak + Reported}% + \fi + \fi}% + \define@key{FB}{ReduceListSpacing}[true]% + {\csname FBReduceListSpacing#1\endcsname}% + \define@key{FB}{ListOldLayout}[true]% + {\csname FBListOldLayout#1\endcsname + \ifFBListOldLayout + \FBStandardEnumerateEnvtrue + \renewcommand*{\FrenchLabelItem}{\textendash}% + \fi}% + \define@key{FB}{CompactItemize}[true]% + {\csname FBCompactItemize#1\endcsname + \ifFBCompactItemize + \FBStandardItemizeEnvfalse + \FBStandardEnumerateEnvfalse + \else + \FBStandardItemizeEnvtrue + \FBStandardEnumerateEnvtrue + \fi}% + \define@key{FB}{StandardItemizeEnv}[true]% + {\csname FBStandardItemizeEnv#1\endcsname}% + \define@key{FB}{StandardEnumerateEnv}[true]% + {\csname FBStandardEnumerateEnv#1\endcsname}% + \define@key{FB}{StandardItemLabels}[true]% + {\csname FBStandardItemLabels#1\endcsname}% + \define@key{FB}{ItemLabels}% + {\renewcommand*{\FrenchLabelItem}{#1}}% + \define@key{FB}{ItemLabeli}% + {\renewcommand*{\Frlabelitemi}{#1}}% + \define@key{FB}{ItemLabelii}% + {\renewcommand*{\Frlabelitemii}{#1}}% + \define@key{FB}{ItemLabeliii}% + {\renewcommand*{\Frlabelitemiii}{#1}}% + \define@key{FB}{ItemLabeliv}% + {\renewcommand*{\Frlabelitemiv}{#1}}% + \define@key{FB}{StandardLists}[true]% + {\csname FBStandardLists#1\endcsname + \ifFBStandardLists + \FBReduceListSpacingfalse + \FBCompactItemizefalse + \FBStandardItemizeEnvtrue + \FBStandardEnumerateEnvtrue + \FBStandardItemLabelstrue + \else + \FBReduceListSpacingtrue + \FBCompactItemizetrue + \FBStandardItemizeEnvfalse + \FBStandardEnumerateEnvfalse + \FBStandardItemLabelsfalse + \fi}% + \define@key{FB}{IndentFirst}[true]% + {\csname FBIndentFirst#1\endcsname}% + \define@key{FB}{FrenchFootnotes}[true]% + {\csname FBFrenchFootnotes#1\endcsname}% + \define@key{FB}{AutoSpaceFootnotes}[true]% + {\csname FBAutoSpaceFootnotes#1\endcsname}% + \define@key{FB}{AutoSpacePunctuation}[true]% + {\csname FBAutoSpacePunctuation#1\endcsname}% + \define@key{FB}{OriginalTypewriter}[true]% + {\csname FBOriginalTypewriter#1\endcsname}% + \define@key{FB}{ThinColonSpace}[true]% + {\csname FBThinColonSpace#1\endcsname + \ifFBThinColonSpace + \renewcommand*{\FBcolonspace}{\FBthinspace}% + \fi}% + \define@key{FB}{ThinSpaceInFrenchNumbers}[true]% + {\csname FBThinSpaceInFrenchNumbers#1\endcsname}% + \define@key{FB}{FrenchSuperscripts}[true]% + {\csname FBFrenchSuperscripts#1\endcsname} + \define@key{FB}{LowercaseSuperscripts}[true]% + {\csname FBLowercaseSuperscripts#1\endcsname} + \define@key{FB}{PartNameFull}[true]% + {\csname FBPartNameFull#1\endcsname}% + \define@key{FB}{CustomiseFigTabCaptions}[true]% + {\csname FBCustomiseFigTabCaptions#1\endcsname}% + \define@key{FB}{OldFigTabCaptions}[true]% + {\csname FBOldFigTabCaptions#1\endcsname + \ifFBOldFigTabCaptions + \FB@addto{extras}{\babel@save\FBCaption@Separator + \def\FBCaption@Separator{\CaptionSeparator}}% + \fi}% + \define@key{FB}{SmallCapsFigTabCaptions}[true]% + {\csname FBSmallCapsFigTabCaptions#1\endcsname + \ifFBSmallCapsFigTabCaptions + \let\FBfigtabshape\scshape + \else + \let\FBfigtabshape\relax + \fi}% + \define@key{FB}{SuppressWarning}[true]% + {\csname FBSuppressWarning#1\endcsname + \ifFBSuppressWarning + \renewcommand{\FBWarning}[1]{}% + \fi}% + \define@key{FB}{INGuillSpace}[true]% + {\csname FBINGuillSpace#1\endcsname + \ifFBINGuillSpace + \renewcommand*{\FBguillspace}{\space}% + \fi}% + \define@key{FB}{InnerGuillSingle}[true]% + {\csname FBInnerGuillSingle#1\endcsname}% + \define@key{FB}{EveryParGuill}[open]% + {\expandafter\let\expandafter + \FBeveryparguill\csname FBguill#1\endcsname + \ifx\FBeveryparguill\FBguillopen + \else\ifx\FBeveryparguill\FBguillclose + \else\ifx\FBeveryparguill\FBguillnone + \else + \let\FBeveryparguill\FBguillopen + \PackageWarning{french.ldf}% + {Wrong value for `EveryParGuill': + try `open',\MessageBreak + `close' or `none'. Reported}% + \fi + \fi + \fi}% + \define@key{FB}{EveryLineGuill}[open]% + {\ifFB@luatex@punct + \expandafter\let\expandafter + \FBeverylineguill\csname FBguill#1\endcsname + \ifx\FBeverylineguill\FBguillopen + \else\ifx\FBeverylineguill\FBguillclose + \else\ifx\FBeverylineguill\FBguillnone + \else + \let\FBeverylineguill\FBguillnone + \FBWarning{Wrong value for `EveryLineGuill': + try `open',\MessageBreak + `close' or `none'. Reported}% + \fi + \fi + \fi + \else + \FBWarning{Option `EveryLineGuill' skipped:% + \MessageBreak this option is for + LuaTeX *only*.\MessageBreak Reported}% + \fi}% + \define@key{FB}{og}% + {\ifFBunicode + \ifFB@luatex@punct + \FB@addGUILspace=1 \relax + \fi + \ifFB@xetex@punct + \XeTeXcharclass"13 = \FB@guilo + \XeTeXcharclass"AB = \FB@guilo + \XeTeXcharclass"A0 = \FB@guilnul + \XeTeXcharclass"202F = \FB@guilnul + \fi + \ifFB@active@punct + \PackageWarning{french.ldf}% + {Option og=« not supported with this version + of\MessageBreak LuaTeX/XeTeX; reported}% + \fi + \else + \newcommand*{\FB@@og}{% + \ifFBfrench + \ifFB@spacing\FB@og\ignorespaces + \else\guillemotleft + \fi + \else\guillemotleft\fi}% + \AtBeginDocument{% + \ifdefined\DeclareInputText + \ifdefined\uc@dclc + \uc@dclc{171}{default}{\FB@@og}% + \else + \ifdefined\DeclareUnicodeCharacter + \DeclareUnicodeCharacter{00AB}{\FB@@og}% + \else + \@tempcnta`#1\relax + \ifdefined\mule@def + \mule@def{11}{\FB@@og}% + \else + \DeclareInputText{\the\@tempcnta}{\FB@@og}% + \fi + \fi + \fi + \else + \PackageWarning{french.ldf}% + {Option `og' requires package inputenc;% + \MessageBreak reported}% + \fi + }% + \fi + }% + \define@key{FB}{fg}% + {\ifFBunicode + \ifFB@luatex@punct + \FB@addGUILspace=1 \relax + \fi + \ifFB@xetex@punct + \XeTeXcharclass"14 = \FB@guilf + \XeTeXcharclass"BB = \FB@guilf + \XeTeXcharclass"A0 = \FB@guilnul + \XeTeXcharclass"202F = \FB@guilnul + \fi + \ifFB@active@punct + \PackageWarning{french.ldf}% + {Option fg=» not supported with this version + of\MessageBreak LuaTeX/XeTeX; reported}% + \fi + \else + \newcommand*{\FB@@fg}{% + \ifFBfrench + \ifFB@spacing\FB@fg + \else\guillemotright + \fi + \else\guillemotright\fi}% + \AtBeginDocument{% + \ifdefined\DeclareInputText + \ifdefined\uc@dclc + \uc@dclc{187}{default}{\FB@@fg}% + \else + \ifdefined\DeclareUnicodeCharacter + \DeclareUnicodeCharacter{00BB}{\FB@@fg}% + \else + \@tempcnta`#1\relax + \ifdefined\mule@def + \mule@def{27}{{\FB@@fg}}% + \else + \DeclareInputText{\the\@tempcnta}{\FB@@fg}% + \fi + \fi + \fi + \else + \PackageWarning{french.ldf}% + {Option `fg' requires package inputenc;% + \MessageBreak reported}% + \fi + }% + \fi + }% +} +\newcommand*{\FBprocess@options}{% + \@ifpackageloaded{enumitem}{% + \ifFBStandardItemizeEnv + \else + \FBStandardItemizeEnvtrue + \PackageInfo{french.ldf}% + {Setting StandardItemizeEnv=true for\MessageBreak + compatibility with enumitem package,\MessageBreak + reported}% + \fi + \ifFBStandardEnumerateEnv + \else + \FBStandardEnumerateEnvtrue + \PackageInfo{french.ldf}% + {Setting StandardEnumerateEnv=true for\MessageBreak + compatibility with enumitem package,\MessageBreak + reported}% + \fi}{}% + \@ifpackageloaded{paralist}{% + \ifFBStandardItemizeEnv + \else + \FBStandardItemizeEnvtrue + \PackageInfo{french.ldf}% + {Setting StandardItemizeEnv=true for\MessageBreak + compatibility with paralist package,\MessageBreak + reported}% + \fi + \ifFBStandardEnumerateEnv + \else + \FBStandardEnumerateEnvtrue + \PackageInfo{french.ldf}% + {Setting StandardEnumerateEnv=true for\MessageBreak + compatibility with paralist package,\MessageBreak + reported}% + \fi}{}% + \@ifpackageloaded{enumerate}{% + \ifFBStandardEnumerateEnv + \else + \FBStandardEnumerateEnvtrue + \PackageInfo{french.ldf}% + {Setting StandardEnumerateEnv=true for\MessageBreak + compatibility with enumerate package,\MessageBreak + reported}% + \fi}{}% + \def\FB@ufl{\update@frenchlists} + \ifx\bbl@main@language\FB@french + \update@frenchlists + \fi + \ifFBAutoSpacePunctuation + \autospace@beforeFDP + \else + \noautospace@beforeFDP + \fi + \ifFBOriginalTypewriter + \else + \let\ttfamilyORI\ttfamily + \let\rmfamilyORI\rmfamily + \let\sffamilyORI\sffamily + \let\ttfamily\ttfamilyFB + \let\rmfamily\rmfamilyFB + \let\sffamily\sffamilyFB + \fi + \@ifpackageloaded{numprint}% + {\ifnprt@autolanguage + \providecommand*{\npstylefrench}{}% + \ifFBThinSpaceInFrenchNumbers + \renewcommand*\npstylefrench{% + \npthousandsep{\,}% + \npdecimalsign{,}% + \npproductsign{\cdot}% + \npunitseparator{\,}% + \npdegreeseparator{}% + \nppercentseparator{\nprt@unitsep}% + }% + \else + \renewcommand*\npstylefrench{% + \npthousandsep{~}% + \npdecimalsign{,}% + \npproductsign{\cdot}% + \npunitseparator{\,}% + \npdegreeseparator{}% + \nppercentseparator{\nprt@unitsep}% + }% + \fi + \npaddtolanguage{french}{french}% + \fi}{}% + \ifFBFrenchSuperscripts + \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}{\fup}}% + \else + \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}% + {\textsuperscript}}% + \fi + \ifFBLowercaseSuperscripts + \else + \renewcommand*{\FB@lc}[1]{##1}% + \fi + \ifFBCustomiseFigTabCaptions + \ifFB@koma + \renewcommand*{\captionformat}{\CaptionSeparator}% + \fi + \@ifclassloaded{memoir}% + {\captiondelim{\CaptionSeparator}}{}% + \@ifclassloaded{beamer}% + {\defbeamertemplate{caption label separator}{FBcustom}{% + \CaptionSeparator}% + \setbeamertemplate{caption label separator}[FBcustom]}{}% + \else + \ifFB@koma + \renewcommand*{\captionformat}{{\autospace@beforeFDP : }}% + \fi + \@ifclassloaded{memoir}% + {\captiondelim{{\autospace@beforeFDP : }}% + }{}% + \@ifclassloaded{beamer}% + {\defbeamertemplate{caption label separator}{FBcolon}{% + {\autospace@beforeFDP : }}% + \setbeamertemplate{caption label separator}[FBcolon]% + }{}% + \fi + \ifFBShowOptions + \GenericWarning{* }{% + * **** List of possible options for frenchb ****\MessageBreak + [Default values between brackets when frenchb is loaded *LAST*]% + \MessageBreak + ShowOptions=true [false]\MessageBreak + StandardLayout=true [false]\MessageBreak + GlobalLayoutFrench=false [true]\MessageBreak + StandardLists=true [false]\MessageBreak + IndentFirst=false [true]\MessageBreak + ReduceListSpacing=false [true]\MessageBreak + ListOldLayout=true [false]\MessageBreak + StandardItemizeEnv=true [false]\MessageBreak + StandardEnumerateEnv=true [false]\MessageBreak + StandardItemLabels=true [false]\MessageBreak + ItemLabels=\textemdash, \textbullet, + \protect\ding{43},... [\textendash]\MessageBreak + ItemLabeli=\textemdash, \textbullet, + \protect\ding{43},... [\textendash]\MessageBreak + ItemLabelii=\textemdash, \textbullet, + \protect\ding{43},... [\textendash]\MessageBreak + ItemLabeliii=\textemdash, \textbullet, + \protect\ding{43},... [\textendash]\MessageBreak + ItemLabeliv=\textemdash, \textbullet, + \protect\ding{43},... [\textendash]\MessageBreak + FrenchFootnotes=false [true]\MessageBreak + AutoSpaceFootnotes=false [true]\MessageBreak + AutoSpacePunctuation=false [true]\MessageBreak + OriginalTypewriter=true [false]\MessageBreak + ThinColonSpace=true [false]\MessageBreak + ThinSpaceInFrenchNumbers=true [false]\MessageBreak + FrenchSuperscripts=false [true]\MessageBreak + LowercaseSuperscripts=false [true]\MessageBreak + PartNameFull=false [true]\MessageBreak + SuppressWarning=true [false]\MessageBreak + CustomiseFigTabCaptions=false [true]\MessageBreak + OldFigTabCaptions=true [false]\MessageBreak + SmallCapsFigTabCaptions=false [true]\MessageBreak + INGuillSpace=true [false]\MessageBreak + InnerGuillSingle=true [false]\MessageBreak + EveryParGuill=open, close, none [open]\MessageBreak + EveryLineGuill=open, close, none + [open in LuaTeX, none otherwise]\MessageBreak + og= , fg= % + \MessageBreak + *********************************************% + \MessageBreak\protect\frenchsetup{ShowOptions}} + \fi +} +\AtBeginDocument{% + \providecommand*{\xspace}{\relax}% + \ifdefined\pdfstringdefDisableCommands + \pdfstringdefDisableCommands{% + \let\up\relax + \let\fup\relax + \let\degre\textdegree + \let\degres\textdegree + \def\ieme{e\xspace}% + \def\iemes{es\xspace}% + \def\ier{er\xspace}% + \def\iers{ers\xspace}% + \def\iere{re\xspace}% + \def\ieres{res\xspace}% + \def\FrenchEnumerate#1{#1\degre\space}% + \def\FrenchPopularEnumerate#1{#1\degre)\space}% + \def\No{N\degre\space}% + \def\no{n\degre\space}% + \def\Nos{N\degre\space}% + \def\nos{n\degre\space}% + \def\FB@og{\guillemotleft\space}% + \def\FB@fg{\space\guillemotright}% + \def\at{@}% + \def\circonflexe{\string^}% + \def\tild{\string~}% + \def\boi{\textbackslash}% + \let\bsc\textsc + }% + \fi + \FBprocess@options + \ifFB@luatex@punct + \FBcolonsp=\expandafter{\meaning\FBcolonspace} + \FBthinsp= \expandafter{\meaning\FBthinspace} + \FBguillsp=\expandafter{\meaning\FBguillspace} + \activate@luatexpunct + \fi + \ifFBunicode + \@ifpackageloaded{fontspec}{}% + {\@ifpackageloaded{luainputenc}{}% + {\PackageWarning{french.ldf}% + {Add \protect\usepackage{fontspec} to the\MessageBreak + preamble of your document, reported}% + }% + } + \else + \begingroup \newcommand{\FBOTone}{OT1}% + \ifx\encodingdefault\FBOTone + \PackageWarning{french.ldf}% + {OT1 encoding should not be used for French.% + \MessageBreak + Add \protect\usepackage[T1]{fontenc} to the + preamble\MessageBreak of your document; reported}% + \fi + \endgroup + \fi +} +\let\listORI\list +\let\endlistORI\endlist +\def\FB@listVsettings{% + \setlength{\itemsep}{0.4ex plus 0.2ex minus 0.2ex}% + \setlength{\parsep}{0.4ex plus 0.2ex minus 0.2ex}% + \setlength{\topsep}{0.8ex plus 0.4ex minus 0.4ex}% + \setlength{\partopsep}{0.4ex plus 0.2ex minus 0.2ex}% + \@tempdima=\parskip + \addtolength{\topsep}{-\@tempdima}% + \addtolength{\partopsep}{\@tempdima}% +} +\def\listFB#1#2{\listORI{#1}{\FB@listVsettings #2}} +\let\endlistFB\endlist +\newcommand*{\FrenchLabelItem}{\textemdash} +\newcommand*{\Frlabelitemi}{\FrenchLabelItem} +\newcommand*{\Frlabelitemii}{\FrenchLabelItem} +\newcommand*{\Frlabelitemiii}{\FrenchLabelItem} +\newcommand*{\Frlabelitemiv}{\FrenchLabelItem} +\newlength\listindentFB +\setlength{\listindentFB}{-1pt} +\newlength\descindentFB +\setlength{\descindentFB}{-1pt} +\newlength\labelwidthFB +\setlength{\labelwidthFB}{-1pt} +\newlength\leftmarginFB +\def\FB@listHsettings{% + \leftmarginFB\labelwidthFB + \advance\leftmarginFB \labelsep + \bbl@for\FB@dp {1, 2, 3, 4, 5, 6}% + {\csname leftmargin\romannumeral\FB@dp\endcsname \leftmarginFB}% + \advance\leftmargini \listindentFB + \leftmargin\csname leftmargin\ifnum\@listdepth=\@ne i\else + ii\fi\endcsname +} +\def\FB@itemizesettings{% + \ifFBReduceListSpacing + \setlength{\itemsep}{\z@}% + \setlength{\parsep}{\z@}% + \setlength{\topsep}{\z@}% + \setlength{\partopsep}{\z@}% + \@tempdima=\parskip + \addtolength{\topsep}{-\@tempdima}% + \addtolength{\partopsep}{\@tempdima}% + \fi + \settowidth{\labelwidth}{\csname\@itemitem\endcsname}% + \ifFBListOldLayout + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \addtolength{\leftmargin}{\parindent}% + \else + \FB@listHsettings + \fi +} +\def\itemizeFB{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \listORI + \csname\@itemitem\endcsname + \FB@itemizesettings + \fi +} +\let\enditemizeFB\endlistORI +\def\labelitemsFB{% + \let\labelitemi\Frlabelitemi + \let\labelitemii\Frlabelitemii + \let\labelitemiii\Frlabelitemiii + \let\labelitemiv\Frlabelitemiv + \ifdim\labelwidthFB<\z@ + \settowidth{\labelwidthFB}{\FrenchLabelItem}% + \fi + \ifdim\listindentFB<\z@ + \ifdim\parindent=\z@ + \setlength{\listindentFB}{1.5em}% + \else + \setlength{\listindentFB}{\parindent}% + \fi + \fi + \ifdim\descindentFB<\z@ + \setlength{\descindentFB}{\listindentFB}% + \fi +} +\def\enumerateFB{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\FB@listHsettings + \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% + \fi +} +\let\endenumerateFB\endlistORI +\def\descriptionFB{% + \list{}{\FB@listHsettings + \labelwidth\z@ + \itemindent-\leftmargin + \ifnum\@listdepth=1 + \ifdim\descindentFB=\z@ + \ifdim\listindentFB>\z@ + \leftmargini\listindentFB + \leftmargin\leftmargini + \itemindent-\leftmargin + \fi + \else + \advance\itemindent by \descindentFB + \fi + \fi + \let\makelabel\descriptionlabel}% +} +\let\enddescriptionFB\endlistORI +\def\update@frenchlists{% + \ifFBReduceListSpacing \let\list\listFB \fi + \ifFBStandardItemizeEnv + \else \let\itemize\itemizeFB \fi + \ifFBStandardItemLabels + \else \labelitemsFB \fi + \ifFBStandardEnumerateEnv + \else \let\enumerate\enumerateFB \let\description\descriptionFB \fi +} +\def\FB@ufl{\relax} +\def\bbl@frenchlistlayout{% + \ifFBGlobalLayoutFrench + \else + \babel@save\list \babel@save\itemize + \babel@save\enumerate \babel@save\description + \babel@save\labelitemi \babel@save\labelitemii + \babel@save\labelitemiii \babel@save\labelitemiv + \FB@ufl + \fi +} +\FB@addto{extras}{\bbl@frenchlistlayout} +\def\bbl@frenchindent{% + \ifFBGlobalLayoutFrench + \else + \babel@save\@afterindentfalse + \fi + \ifFBIndentFirst + \let\@afterindentfalse\@afterindenttrue + \@afterindenttrue + \fi} +\def\bbl@nonfrenchindent{% + \ifFBGlobalLayoutFrench + \ifFBIndentFirst + \@afterindenttrue + \fi + \fi} +\FB@addto{extras}{\bbl@frenchindent} +\FB@addto{noextras}{\bbl@nonfrenchindent} +\AtBeginDocument{\@ifpackageloaded{bigfoot}% + {\PackageInfo{french.ldf}% + {bigfoot package in use.\MessageBreak + frenchb will NOT customise footnotes;% + \MessageBreak reported}}% + {\let\@footnotemarkORI\@footnotemark + \def\@footnotemarkFB{\leavevmode\unskip\unkern + \,\@footnotemarkORI}% + \ifFBAutoSpaceFootnotes + \let\@footnotemark\@footnotemarkFB + \fi}% + } +\newdimen\parindentFFN +\parindentFFN=10in +\newcommand*{\dotFFN}{.} +\newcommand*{\kernFFN}{\kern .5em} +\newlength\FBfnindent +\ifFB@koma + \let\@makefntextORI\@makefntext + \let\@@makefnmarkORI\@@makefnmark + \deffootnote[\FBfnindent]{0pt}{\parindentFFN}% + {\thefootnotemark\dotFFN\kernFFN} + \let\@makefntextFB\@makefntext + \let\@@makefnmarkFB\@@makefnmark + \deffootnote[\parindentFFN]{0pt}{\parindentFFN}% + {\textsuperscript{\thefootnotemark}} + \let\@makefntextTH\@makefntext + \let\@@makefnmarkTH\@@makefnmark + \let\@makefntext\@makefntextORI + \let\@@makefnmark\@@makefnmarkORI +\fi +\@ifclassloaded{memoir} + {\newcommand{\@makefntextFB}[1]{% + \def\footscript##1{##1\dotFFN\kernFFN}% + \setlength{\footmarkwidth}{\FBfnindent}% + \setlength{\footmarksep}{-\footmarkwidth}% + \setlength{\footparindent}{\parindentFFN}% + \makefootmark #1}% + }{} +\@ifclassloaded{beamer} + {\def\@makefntextFB#1{% + \def\insertfootnotetext{#1}% + \def\insertfootnotemark{\insertfootnotemarkFB}% + \usebeamertemplate***{footnote}}% + \def\insertfootnotemarkFB{% + \usebeamercolor[fg]{footnote mark}% + \usebeamerfont*{footnote mark}% + \llap{\@thefnmark}\dotFFN\kernFFN}% + }{} +\providecommand*{\insertfootnotemarkFB}{% + \parindent=\parindentFFN + \rule\z@\footnotesep + \setbox\@tempboxa\hbox{\@thefnmark}% + \ifdim\wd\@tempboxa>\z@ + \llap{\@thefnmark}\dotFFN\kernFFN + \fi} +\providecommand\@makefntextFB[1]{\insertfootnotemarkFB #1} +\AtBeginDocument{% + \@ifpackageloaded{bigfoot}{}% + {\ifdim\parindentFFN<10in + \else + \parindentFFN=\parindent + \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi + \fi + \settowidth{\FBfnindent}{\dotFFN\kernFFN}% + \addtolength{\FBfnindent}{\parindentFFN}% + \let\@makefntextORI\@makefntext + \ifFB@koma + \let\@@makefnmarkORI\@@makefnmark + \long\def\@makefntext#1{% + \ifFBFrenchFootnotes + \ifx\footnote\thanks + \let\@@makefnmark\@@makefnmarkTH + \@makefntextTH{#1}% + \else + \let\@@makefnmark\@@makefnmarkFB + \@makefntextFB{#1}% + \fi + \else + \let\@@makefnmark\@@makefnmarkORI + \@makefntextORI{#1}% + \fi}% + \else + \@ifclassloaded{memoir}% + {\ifFBFrenchFootnotes + \setlength{\thanksmarkwidth}{\parindentFFN}% + \setlength{\thanksmarksep}{-\thanksmarkwidth}% + \fi + }{}% + \@ifclassloaded{beamer}% + {\ifFBFrenchFootnotes + \ifdim\parindentFFN=1.5em\else + \FBWarning{% + \protect\parindentFFN\space is ineffective% + \MessageBreak within the beamer class.% + \MessageBreak Reported}% + \fi + \fi + }{}% + \long\def\@makefntext#1{% + \ifFBFrenchFootnotes + \@makefntextFB{#1}% + \else + \@makefntextORI{#1}% + \fi}% + \fi + }% +} +\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue} +\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue} +\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse} +\FBclean@on@exit +\let\FB@llc\loadlocalcfg +\let\loadlocalcfg\@gobble +\ldf@finish\CurrentOption +\let\loadlocalcfg\FB@llc +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `french.ldf'. diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf index b1f5be0de66..d3de9a86b00 100644 --- a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf +++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf @@ -4,9 +4,10 @@ %% %% The original source files were: %% -%% frenchb.dtx (with options: `ldf') -%% This is a generated file of the Babel system. -%% --------------------------------------------------------- +%% frenchb.dtx (with options: `frenchb') +%% This is a generated file part of the the babel-french bundle +%% to be used with the Babel system. +%% ------------------------------------------------------------- %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -20,1808 +21,59 @@ %% %% The Current Maintainer of this work is Daniel Flipo. %% -%% This file may only be distributed together with a copy of the Babel -%% system. You may however distribute the Babel system without -%% such generated files. -%% -%% The list of all files belonging to the Babel distribution is -%% given in the file `manifest.bbl'. See also `legal.bbl for additional -%% information. -%% -%% The list of derived (unpacked) files belonging to the distribution -%% and covered by LPPL is defined by the unpacking scripts (with -%% extension .ins) which are part of the distribution. +%% Please report errors to: %% \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 -%% -\chardef\atcatcode=\catcode`\@ -\catcode`\@=11\relax -\def\bbl@tempa{francais} -\ifx\CurrentOption\bbl@tempa - \let\l@francais\l@french - \def\captionsfrancais{\captionsfrench} - \def\datefrancais{\datefrench} - \def\extrasfrancais{\extrasfrench} - \def\noextrasfrancais{\extrasfrench} - \def\CurrentOption{french} -\fi + [2017/07/08 v3.3b French support from the babel system] \def\bbl@tempa{frenchb} \ifx\CurrentOption\bbl@tempa \let\l@frenchb\l@french - \def\captionsfrenchb{\captionsfrench} - \def\datefrenchb{\datefrench} - \def\extrasfrenchb{\extrasfrench} - \def\noextrasfrenchb{\extrasfrench} \def\CurrentOption{french} -\fi -\catcode`\@=\atcatcode \let\atcatcode\relax -\LdfInit\CurrentOption\captionsfrench -\def\FB@nopatterns{% - \ifx\l@nohyphenation\@undefined - \edef\bbl@nulllanguage{\string\language=0}% - \adddialect\l@french0 - \else - \adddialect\l@french\l@nohyphenation - \edef\bbl@nulllanguage{\string\language=nohyphenation}% - \fi - \@nopatterns{French}} -\ifx\l@french\@undefined - \FB@nopatterns -\fi -\newif\ifLaTeXe -\let\bbl@tempa\relax -\ifx\magnification\@undefined - \ifx\@compatibilitytrue\@undefined - \PackageError{frenchb.ldf} - {LaTeX-2.09 format is no longer supported.\MessageBreak - Aborting here} - {Please upgrade to LaTeX2e!} - \let\bbl@tempa\endinput - \else - \LaTeXetrue - \fi -\fi -\bbl@tempa -\def\fb@error#1#2{% - \begingroup - \newlinechar=`\^^J - \def\\{^^J(frenchb.ldf) }% - \errhelp{#2}\errmessage{\\#1^^J}% - \endgroup} -\def\fb@warning#1{% - \begingroup - \newlinechar=`\^^J - \def\\{^^J(frenchb.ldf) }% - \message{\\#1^^J}% - \endgroup} -\def\fb@info#1{% - \begingroup - \newlinechar=`\^^J - \def\\{^^J}% - \wlog{#1}% - \endgroup} -\let\bbl@tempa\relax -\ifx\babeltags\@undefined - \let\bbl@tempa\endinput - \ifLaTeXe - \PackageError{frenchb.ldf} - {frenchb requires babel v.3.9i.\MessageBreak - Aborting here} - {Please upgrade Babel!} - \else - \fb@error{frenchb requires babel v.3.9i.\\ - Aborting here} - {Please upgrade Babel!} - \fi -\fi -\bbl@tempa -\ifx\l@acadian\@undefined - \ifx\l@canadien\@undefined - \adddialect\l@acadian\l@french - \adddialect\l@canadien\l@french - \else - \adddialect\l@acadian\l@canadien - \fi -\else - \adddialect\l@canadien\l@acadian -\fi -\def\bbl@tempa{canadien} -\ifx\CurrentOption\bbl@tempa - \def\captionscanadien{\captionsacadian} - \def\datecanadien{\dateacadian} - \def\extrascanadien{\extrasacadian} - \def\noextrascanadien{\extrasacadian} - \def\CurrentOption{acadian} -\fi -\expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@} -\newif\ifFBunicode -\newif\ifFBLuaTeX -\newif\ifFBXeTeX -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname luatexversion\endcsname\relax -\else - \FBunicodetrue \FBLuaTeXtrue -\fi -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname XeTeXrevision\endcsname\relax -\else - \FBunicodetrue \FBXeTeXtrue -\fi -\@namedef{extras\CurrentOption}{% - \babel@savevariable{\lccode`\'}% - \ifFBunicode - \babel@savevariable{\lccode"2019}% - \lccode`\'="2019\lccode"2019="2019 - \else - \lccode`\'=`\' - \fi -} -\@namedef{noextras\CurrentOption}{} -\let\FB@CurOpt\CurrentOption -\newcommand*{\FB@addto}[2]{% - \expandafter\addto\csname #1\FB@CurOpt\endcsname{#2}} -\FB@addto{extras}{\bbl@frenchspacing} -\FB@addto{noextras}{\bbl@nonfrenchspacing} -\newif\ifFB@active@punct \FB@active@puncttrue -\newif\ifFB@luatex@punct -\ifFBLuaTeX - \ifnum\luatexversion<95 - \ifx\PackageWarning\@undefined - \fb@warning{Please upgrade LuaTeX to version 0.95 or above!\\% - frenchb will make high punctuation characters (;:!?) active\\% - with LuaTeX < 0.95.}% - \else - \PackageWarning{frenchb.ldf}{Please upgrade LuaTeX - to version 0.95 or above!\MessageBreak - frenchb will make high punctuation characters\MessageBreak - (;:!?) active with LuaTeX < 0.95;\MessageBreak reported}% - \fi - \else - \FB@luatex@puncttrue\FB@active@punctfalse - \fi -\fi -\newcount\FB@nonchar -\newif\ifFB@xetex@punct -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax -\else - \FB@xetex@puncttrue\FB@active@punctfalse - \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt - \FB@nonchar=255 \relax - \else - \FB@nonchar=4095 \relax - \fi -\fi -\newcommand*{\FBcolonspace}{\space} -\newcommand*{\FBthinspace}{\hskip.5\fontdimen2\font \relax} -\newtoks\FBcolonsp -\newtoks\FBthinsp -\newif\ifFB@spacing \FB@spacingtrue -\newcommand*{\FB@spacing@on}{% - \ifFB@luatex@punct - \FB@spacing=1 \relax - \else - \FB@spacingtrue - \fi} -\newcommand*{\FB@spacing@off}{% - \ifFB@luatex@punct - \FB@spacing=0 \relax - \else - \FB@spacingfalse - \fi} -\ifFB@luatex@punct - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname newluafunction\endcsname\relax - \input ltluatex.tex - \fi - \newattribute\FB@spacing \FB@spacing=1 \relax - \newattribute\FB@addDPspace \FB@addDPspace=1 \relax - \newattribute\FB@addGUILspace \FB@addGUILspace=0 \relax - \ifLaTeXe - \PackageInfo{frenchb.ldf}{No need for active punctuation - characters\MessageBreak with this version - of LuaTeX!\MessageBreak reported} - \else - \fb@info{No need for active punctuation characters\\ - with this version of LuaTeX!} - \fi -\fi -\ifFB@luatex@punct - \newcommand*{\FB@luatex@punct@french}{% - \babel@save{\shorthandon}% - \babel@save{\shorthandoff}% - \def\shorthandoff##1{% - \ifx\PackageWarning\@undefined - \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with - LuaTeX,\\ use \noexpand\NoAutoSpacing - *inside a group* instead.}% - \else - \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is - helpless with LuaTeX,\MessageBreak use \protect\NoAutoSpacing - \space *inside a group* instead;\MessageBreak reported}% - \fi}% - \def\shorthandon##1{}% - } - \FB@addto{extras}{\FB@luatex@punct@french} - \def\activate@luatexpunct{% - \directlua{% - FR = \the\l@french - local path = kpse.find_file("frenchb.lua", "lua") - if path then - local f = dofile(path) - luatexbase.add_to_callback("kerning", - f, "frenchb.french_punctuation") - else - texio.write_nl('') - texio.write_nl('*****************************') - texio.write_nl('Error: frenchb.lua not found.') - texio.write_nl('*****************************') - texio.write_nl('') - end - }% - } -\fi -\ifFB@xetex@punct - \ifLaTeXe - \PackageInfo{frenchb.ldf}{No need for active punctuation characters% - \MessageBreak with this version of XeTeX!% - \MessageBreak reported} - \else - \fb@info{No need for active punctuation characters\\ - with this version of XeTeX!} - \fi - \newXeTeXintercharclass\FB@punctthick - \newXeTeXintercharclass\FB@punctthin - \newXeTeXintercharclass\FB@punctnul - \newXeTeXintercharclass\FB@guilo - \newXeTeXintercharclass\FB@guilf - \newXeTeXintercharclass\FB@guilnul - \def\FBsavevariable@loop#1#2{\begingroup - \toks@\expandafter{\originalTeX #1}% - \edef\x{\endgroup - \def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}% - \x} - \def\FB@charlist{"21,"3A,"3B,"3F,"AB,"BB,"28,"5B,"A0,"202F,% - "29,"5D,"7B,"7D,"2C,"2D,"2E,"22,"25,"27,"60,"2019} - \newcommand*{\FB@xetex@punct@french}{% - \babel@savevariable{\XeTeXinterchartokenstate}% - \babel@save{\shorthandon}% - \babel@save{\shorthandoff}% - \bbl@for\FB@char\FB@charlist - {\FBsavevariable@loop{\XeTeXcharclass}{\FB@char}}% - \def\shorthandoff##1{% - \ifx\PackageWarning\@undefined - \fb@warning{\noexpand\shorthandoff{;:!?} is helpless with - XeTeX,\\ use \noexpand\NoAutoSpacing - *inside a group* instead.}% - \else - \PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is - helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing - \space *inside a group* instead;\MessageBreak reported}% - \fi}% - \def\shorthandon##1{}% - \XeTeXinterchartokenstate=1 - \XeTeXcharclass `\: = \FB@punctthick - \XeTeXinterchartoks \z@ \FB@punctthick = {% - \ifFB@spacing\ifhmode\FDP@colonspace\fi\fi}% - \XeTeXinterchartoks \FB@guilf \FB@punctthick = {% - \ifFB@spacing\FDP@colonspace\fi}% - \XeTeXinterchartoks \FB@nonchar \FB@punctthick = {% - \ifFB@spacing - \ifhmode - \ifdim\lastskip>1sp - \unskip\penalty\@M\FBcolonspace - \else - \FDP@colonspace - \fi - \fi - \fi}% - \bbl@for\FB@char - {`\;,`\!,`\?}% - {\XeTeXcharclass\FB@char=\FB@punctthin}% - \XeTeXinterchartoks \z@ \FB@punctthin = {% - \ifFB@spacing\ifhmode\FDP@thinspace\fi\fi}% - \XeTeXinterchartoks \FB@guilf \FB@punctthin = {% - \ifFB@spacing\FDP@thinspace\fi}% - \XeTeXinterchartoks \FB@nonchar \FB@punctthin = {% - \ifFB@spacing - \ifhmode - \ifdim\lastskip>1sp - \unskip\penalty\@M\FBthinspace - \else - \FDP@thinspace - \fi - \fi - \fi}% - \XeTeXinterchartoks \FB@guilo \z@ = {% - \ifFB@spacing\FB@guillspace\fi}% - \XeTeXinterchartoks \FB@guilo \FB@nonchar = {% - \ifFB@spacing\FB@guillspace\ignorespaces\fi}% - \XeTeXinterchartoks \z@ \FB@guilf = {% - \ifFB@spacing\FB@guillspace\fi}% - \XeTeXinterchartoks \FB@punctthin \FB@guilf = {% - \ifFB@spacing\FB@guillspace\fi}% - \XeTeXinterchartoks \FB@nonchar \FB@guilf = {% - \ifFB@spacing\unskip\FB@guillspace\fi}% - \bbl@for\FB@char - {`\[,`\(,"A0,"202F}% - {\XeTeXcharclass\FB@char=\FB@punctnul}% - \bbl@for\FB@char - {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}% - {\XeTeXcharclass\FB@char=\z@}% - } - \FB@addto{extras}{\FB@xetex@punct@french} -\fi -\ifFB@active@punct - \initiate@active@char{:}% - \initiate@active@char{;}% - \initiate@active@char{!}% - \initiate@active@char{?}% - \declare@shorthand{french}{;}{% - \ifFB@spacing - \ifhmode - \ifdim\lastskip>1sp - \unskip\penalty\@M\FBthinspace - \else - \FDP@thinspace - \fi - \fi - \fi - \string;} - \declare@shorthand{french}{!}{% - \ifFB@spacing - \ifhmode - \ifdim\lastskip>1sp - \unskip\penalty\@M\FBthinspace - \else - \FDP@thinspace - \fi - \fi - \fi - \string!} - \declare@shorthand{french}{?}{% - \ifFB@spacing - \ifhmode - \ifdim\lastskip>1sp - \unskip\penalty\@M\FBthinspace - \else - \FDP@thinspace - \fi - \fi - \fi - \string?} - \declare@shorthand{french}{:}{% - \ifFB@spacing - \ifhmode - \ifdim\lastskip>1sp - \unskip\penalty\@M\FBcolonspace - \else - \FDP@colonspace - \fi - \fi - \fi - \string:} - \declare@shorthand{system}{:}{\string:} - \declare@shorthand{system}{!}{\string!} - \declare@shorthand{system}{?}{\string?} - \declare@shorthand{system}{;}{\string;} - \FB@addto{extras}{\languageshorthands{french}% - \bbl@activate{:}\bbl@activate{;}% - \bbl@activate{!}\bbl@activate{?}% - } - \FB@addto{noextras}{% - \bbl@deactivate{:}\bbl@deactivate{;}% - \bbl@deactivate{!}\bbl@deactivate{?}% - } -\fi -\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue -\def\autospace@beforeFDP{% - \ifFB@luatex@punct\FB@addDPspace=1 \fi - \def\FDP@thinspace{\penalty\@M\FBthinspace}% - \def\FDP@colonspace{\penalty\@M\FBcolonspace}} -\def\noautospace@beforeFDP{% - \ifFB@luatex@punct\FB@addDPspace=0 \fi - \let\FDP@thinspace\@empty - \let\FDP@colonspace\@empty} -\ifLaTeXe - \def\AutoSpaceBeforeFDP{\autospace@beforeFDP - \FBAutoSpacePunctuationtrue} - \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP - \FBAutoSpacePunctuationfalse} - \AtEndOfPackage{\AutoSpaceBeforeFDP} -\else - \let\AutoSpaceBeforeFDP\autospace@beforeFDP - \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP - \AutoSpaceBeforeFDP -\fi -\ifLaTeXe - \DeclareRobustCommand\ttfamilyFB{\FB@spacing@off \ttfamilyORI} - \DeclareRobustCommand\rmfamilyFB{\FB@spacing@on \rmfamilyORI} - \DeclareRobustCommand\sffamilyFB{\FB@spacing@on \sffamilyORI} -\fi -\DeclareRobustCommand*{\NoAutoSpacing}{% - \FB@spacing@off - \ifFB@active@punct\shorthandoff{;:!?}\fi -} -\ifLaTeXe -\else - \ifFBunicode - \def\guillemotleft{{\char"00AB}} - \def\guillemotright{{\char"00BB}} - \def\textquotedblleft{{\char"201C}} - \def\textquotedblright{{\char"201D}} - \else - \def\guillemotleft{\leavevmode\raise0.25ex - \hbox{$\scriptscriptstyle\ll$}} - \def\guillemotright{\raise0.25ex - \hbox{$\scriptscriptstyle\gg$}} - \def\textquotedblleft{``} - \def\textquotedblright{''} - \fi - \let\xspace\relax -\fi -\newcommand*{\FBguillspace}{\hskip.8\fontdimen2\font - plus.3\fontdimen3\font - minus.8\fontdimen4\font \relax} -\newcommand*{\FB@guillspace}{\penalty\@M\FBguillspace} -\newtoks\FBguillsp -\ifFB@luatex@punct - \DeclareRobustCommand*{\FB@og}{\leavevmode - \bgroup\FB@spacing=0 \guillemotleft\egroup - \FB@guillspace} - \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi - \FB@guillspace - \bgroup\FB@spacing=0 \guillemotright\egroup} -\fi -\ifFB@xetex@punct - \DeclareRobustCommand*{\FB@og}{\leavevmode - \bgroup\FB@spacingfalse\guillemotleft\egroup - \FB@guillspace} - \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi - \FB@guillspace - \bgroup\FB@spacingfalse\guillemotright\egroup} -\fi -\ifFB@active@punct - \DeclareRobustCommand*{\FB@og}{\leavevmode - \guillemotleft - \FB@guillspace} - \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi - \FB@guillspace - \guillemotright} -\fi -\newcommand*{\og}{\@empty} -\newcommand*{\fg}{\@empty} -\ifLaTeXe - \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}% - \renewcommand*{\fg}{\FB@fg\xspace}} - \renewcommand*{\og}{\textquotedblleft} - \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi - \textquotedblright\xspace} -\else - \def\bbl@frenchguillemets{\let\og\FB@og - \let\fg\FB@fg} - \def\og{\textquotedblleft} - \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright} -\fi -\FB@addto{extras}{\babel@save\og \babel@save\fg \bbl@frenchguillemets} -\newcommand*{\ogi}{\FB@og} -\newcommand*{\fgi}{\FB@fg} -\newcommand*{\ogii}{\textquotedblleft} -\newcommand*{\fgii}{\textquotedblright} -\newcount\FBguill@level -\newtoks\FB@everypar -\newif\ifFBcloseguill \FBcloseguilltrue -\newif\ifFBInnerGuillSingle -\def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup} -\def\FBguillclose{\bgroup\NoAutoSpacing\guillemotright\egroup} -\let\FBguillnone\empty -\let\FBeveryparguill\FBguillopen -\let\FBeverylineguill\FBguillnone -\ifLaTeXe - \DeclareRobustCommand\frquote{% - \@ifstar{\FBcloseguillfalse\fr@quote}% - {\FBcloseguilltrue\fr@quote}} -\else - \newcommand\frquote[1]{\fr@quote{#1}} -\fi -\newcommand{\fr@quote}[1]{% - \leavevmode - \advance\FBguill@level by \@ne - \ifcase\FBguill@level - \or - \FB@everypar=\everypar - \ifx\FBeveryparguill\FBguillnone - \else - \def\FBeverypar@quote{\FBeveryparguill\FB@guillspace}% - \everypar=\expandafter{\the\everypar \FBeverypar@quote}% - \fi - \ogi #1\fgi - \or - \ifx\FBeverylineguill\FBguillopen - \localleftbox{\guillemotleft\FB@guillspace}% - \let\FBeverypar@quote\relax - \ogi #1\ifFBcloseguill\fgi\fi - \else - \ifx\FBeverylineguill\FBguillclose - \localleftbox{\guillemotright\FB@guillspace}% - \let\FBeverypar@quote\relax - \ogi #1\ifFBcloseguill\fgi\fi - \else - \let\FBeverypar@quote\relax - \ifFBInnerGuillSingle - \def\ogii{\leavevmode - \guilsinglleft\FB@guillspace}% - \def\fgii{\ifdim\lastskip>\z@\unskip\fi - \FB@guillspace\guilsinglright}% - \ifx\FBeveryparguill\FBguillopen - \def\FBeverypar@quote{\guilsinglleft\FB@guillspace}% - \fi - \ifx\FBeveryparguill\FBguillclose - \def\FBeverypar@quote{\guilsinglright\FB@guillspace}% - \fi - \fi - \ogii #1\ifFBcloseguill \fgii \fi - \fi - \fi - \else - \ifx\PackageWarning\@undefined - \fb@warning{\noexpand\frquote\space handles up to - two levels.\\ Quotation not printed.}% - \else - \PackageWarning{frenchb.ldf}{% - \protect\frquote\space handles up to two levels. - \MessageBreak Quotation not printed. Reported} - \fi - \fi - \advance\FBguill@level by \m@ne - \ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi - \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB@everypar\fi -} -\ifLaTeXe - \def\BabelLanguages{french,acadian} - \StartBabelCommands*{\BabelLanguages}{date} - [unicode, fontenc=EU1 EU2, charset=utf8] - \SetString\monthiiname{février} - \SetString\monthviiiname{août} - \SetString\monthxiiname{décembre} - \StartBabelCommands*{\BabelLanguages}{date} - \SetStringLoop{month#1name}{% - janvier,f\'evrier,mars,avril,mai,juin,juillet,% - ao\^ut,septembre,octobre,novembre,d\'ecembre} - \SetString\today{{\number\day}\ifnum1=\day {\ier}\fi\space - \csname month\romannumeral\month name\endcsname \space - \number\year - } - \EndBabelCommands -\else - \ifFBunicode - \@namedef{date\CurrentOption}{% - \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space - \ifcase\month - \or janvier\or février\or mars\or avril\or mai\or - juin\or juillet\or août\or septembre\or - octobre\or novembre\or décembre\fi - \space \number\year}} - \else - \@namedef{date\CurrentOption}{% - \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space - \ifcase\month - \or janvier\or f\'evrier\or mars\or avril\or mai\or - juin\or juillet\or ao\^ut\or septembre\or - octobre\or novembre\or d\'ecembre\fi - \space \number\year}} - \fi -\fi -\newif\ifFB@poorman -\newdimen\FB@Mht -\ifLaTeXe - \AtEndOfPackage{\RequirePackage{scalefnt}} - \newcommand*{\FBsupR}{-0.12} - \newcommand*{\FBsupS}{0.65} - \newcommand*{\FB@lc}[1]{\MakeLowercase{#1}} - \DeclareRobustCommand*{\FB@up@fake}[1]{% - \settoheight{\FB@Mht}{M}% - \addtolength{\FB@Mht}{\FBsupR \FB@Mht}% - \addtolength{\FB@Mht}{-\FBsupS ex}% - \raisebox{\FB@Mht}{\scalefont{\FBsupS}{\FB@lc{#1}}}% - } - \def\FB@split#1#2#3#4\@nil{\def\FB@firstthree{#1#2#3}% - \def\FB@suffix{#4}} - \def\FB@x{x} - \def\FB@j{j} - \DeclareRobustCommand*{\FB@up}[1]{% - \bgroup \FB@poormantrue - \expandafter\FB@split\f@family\@nil - \edef\reserved@a{\lowercase{% - \noexpand\IfFileExists{\f@encoding\FB@firstthree -sup.fd}}}% - \reserved@a - {\ifx\FB@suffix\FB@x \FB@poormanfalse\fi - \ifx\FB@suffix\FB@j \FB@poormanfalse\fi - \ifFB@poorman \FB@up@fake{#1}% - \else \FB@up@real{#1}% - \fi}% - {\FB@up@fake{#1}}% - \egroup} - \newcommand*{\FB@up@real}[1]{\bgroup - \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup} - \DeclareRobustCommand*{\fup}[1]{% - \ifx\realsuperscript\@undefined - \FB@up{#1}% - \else - \bgroup\let\fakesuperscript\FB@up@fake - \realsuperscript{\FB@lc{#1}}\egroup - \fi} - \providecommand*{\up}{\relax} -\else - \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}} -\fi -\def\ieme{\up{e}\xspace} -\def\iemes{\up{es}\xspace} -\def\ier{\up{er}\xspace} -\def\iers{\up{ers}\xspace} -\def\iere{\up{re}\xspace} -\def\ieres{\up{res}\xspace} -\newcommand*{\FrenchEnumerate}[1]{% - #1\up{o}\kern+.3em} -\newcommand*{\FrenchPopularEnumerate}[1]{% - #1\up{o})\kern+.3em} -\def\primo{\FrenchEnumerate1} -\def\secundo{\FrenchEnumerate2} -\def\tertio{\FrenchEnumerate3} -\def\quarto{\FrenchEnumerate4} -\def\fprimo){\FrenchPopularEnumerate1} -\def\fsecundo){\FrenchPopularEnumerate2} -\def\ftertio){\FrenchPopularEnumerate3} -\def\fquarto){\FrenchPopularEnumerate4} -\DeclareRobustCommand*{\No}{N\up{o}\kern+.2em} -\DeclareRobustCommand*{\no}{n\up{o}\kern+.2em} -\DeclareRobustCommand*{\Nos}{N\up{os}\kern+.2em} -\DeclareRobustCommand*{\nos}{n\up{os}\kern+.2em} -\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt - \scshape #1\endgroup} -\ifLaTeXe\else\let\scshape\relax\fi -\ifFBunicode - \newcommand*{\at}{{\char"0040}} - \newcommand*{\circonflexe}{{\char"005E}} - \newcommand*{\tild}{{\char"007E}} - \newcommand*{\boi}{{\char"005C}} - \newcommand*{\degre}{{\char"00B0}} -\else - \ifLaTeXe - \DeclareTextSymbol{\at}{T1}{64} - \DeclareTextSymbol{\circonflexe}{T1}{94} - \DeclareTextSymbol{\tild}{T1}{126} - \DeclareTextSymbolDefault{\at}{T1} - \DeclareTextSymbolDefault{\circonflexe}{T1} - \DeclareTextSymbolDefault{\tild}{T1} - \DeclareRobustCommand*{\boi}{\textbackslash} - \DeclareRobustCommand*{\degre}{\r{}} - \else - \def\T@one{T1} - \ifx\f@encoding\T@one - \newcommand*{\degre}{{\char6}} - \else - \newcommand*{\degre}{{\char23}} - \fi - \newcommand*{\at}{{\char64}} - \newcommand*{\circonflexe}{{\char94}} - \newcommand*{\tild}{{\char126}} - \newcommand*{\boi}{$\backslash$} - \fi -\fi -\ifLaTeXe - \newcommand*{\degres}{\degre} - \ifFBunicode - \DeclareRobustCommand*{\degres}{\degre} - \else - \def\Warning@degree@TSone{\FBWarning - {Degrees would look better in TS1-encoding:% - \MessageBreak add \protect - \usepackage{textcomp} to the preamble.% - \MessageBreak Degrees used}} - \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined - \DeclareRobustCommand*{\degres}{% - \leavevmode\hbox to 0.3em{\hss\degre\hss}% - \Warning@degree@TSone - \global\let\Warning@degree@TSone\relax}% - \else - \DeclareRobustCommand*{\degres}{% - \hbox{\UseTextSymbol{TS1}{\textdegree}}}% - \fi - } - \fi -\else - \newcommand*{\degres}{% - \leavevmode\hbox to 0.3em{\hss\degre\hss}} -\fi -\newif\ifFB@icomma -\newcount\mc@charclass -\newcount\mc@charfam -\newcount\mc@charslot -\newcount\std@mcc -\newcount\dec@mcc -\ifFBLuaTeX - \mc@charclass=\Umathcharclass`\, - \newcommand*{\dec@math@comma}{% - \mc@charfam=\Umathcharfam`\, - \mc@charslot=\Umathcharslot`\, - \Umathcode`\,= 0 \mc@charfam \mc@charslot - } - \newcommand*{\std@math@comma}{% - \mc@charfam=\Umathcharfam`\, - \mc@charslot=\Umathcharslot`\, - \Umathcode`\,= \mc@charclass \mc@charfam \mc@charslot - } -\else - \std@mcc=\mathcode`\, - \dec@mcc=\std@mcc - \@tempcnta=\std@mcc - \divide\@tempcnta by "1000 - \multiply\@tempcnta by "1000 - \advance\dec@mcc by -\@tempcnta - \newcommand*{\dec@math@comma}{\mathcode`\,=\dec@mcc} - \newcommand*{\std@math@comma}{\mathcode`\,=\std@mcc} -\fi -\newcommand*{\DecimalMathComma}{% - \iflanguage{french}{\dec@math@comma}{}% - \ifFB@icomma\else\FB@addto{extras}{\dec@math@comma}\fi -} -\newcommand*{\StandardMathComma}{% - \std@math@comma - \ifFB@icomma\else\FB@addto{extras}{\std@math@comma}\fi -} -\ifLaTeXe - \AtBeginDocument{\@ifpackageloaded{icomma}% - {\FB@icommatrue}% - {\FB@addto{noextras}{\std@math@comma}}% - } -\else - \FB@addto{noextras}{\std@math@comma} -\fi -\newcommand*{\nombre}[1]{{#1}\fb@warning{*** \noexpand\nombre - no longer formats numbers\string! ***}} -\let\FBstop@here\relax -\def\FBclean@on@exit{\let\ifLaTeXe\undefined - \let\LaTeXetrue\undefined - \let\LaTeXefalse\undefined} -\ifx\magnification\@undefined -\else - \def\FBstop@here{\ifFB@luatex@punct - \activate@luatexpunct - \fi - \FBclean@on@exit - \ldf@quit\CurrentOption\endinput} -\fi -\FBstop@here -\renewcommand*{\nombre}[1]{\Warning@nombre{#1}} -\newcommand*{\Warning@nombre}[1]{% - \ifdefined\numprint - \numprint{#1}% - \else - \PackageWarning{frenchb.ldf}{% - \protect\nombre\space now relies on package numprint.sty,% - \MessageBreak add \protect - \usepackage[autolanguage]{numprint},\MessageBreak - see file numprint.pdf for more options.\MessageBreak - \protect\nombre\space called}% - \global\let\Warning@nombre\relax - {#1}% - \fi -} -\ifx\FBfigtabshape\@undefined \let\FBfigtabshape\scshape \fi -\StartBabelCommands*{\BabelLanguages}{captions} - [unicode, fontenc=EU1 EU2 TU, charset=utf8] - \SetString{\refname}{Références} - \SetString{\abstractname}{Résumé} - \SetString{\prefacename}{Préface} - \SetString{\contentsname}{Table des matières} - \SetString{\ccname}{Copie à } - \SetString{\proofname}{Démonstration} - \SetString{\partfirst}{Première} - \SetString{\partsecond}{Deuxième} - \SetStringLoop{ordinal#1}{% - \frenchpartfirst,\frenchpartsecond,Troisième,Quatrième,% - Cinquième,Sixième,Septième,Huitième,Neuvième,Dixième,Onzième,% - Douzième,Treizième,Quatorzième,Quinzième,Seizième,% - Dix-septième,Dix-huitième,Dix-neuvième,Vingtième} -\StartBabelCommands*{\BabelLanguages}{captions} - \SetString{\refname}{R\'ef\'erences} - \SetString{\abstractname}{R\'esum\'e} - \SetString{\bibname}{Bibliographie} - \SetString{\prefacename}{Pr\'eface} - \SetString{\chaptername}{Chapitre} - \SetString{\appendixname}{Annexe} - \SetString{\contentsname}{Table des mati\`eres} - \SetString{\listfigurename}{Table des figures} - \SetString{\listtablename}{Liste des tableaux} - \SetString{\indexname}{Index} - \SetString{\figurename}{{\FBfigtabshape Figure}} - \SetString{\tablename}{{\FBfigtabshape Table}} - \SetString{\pagename}{page} - \SetString{\seename}{voir} - \SetString{\alsoname}{voir aussi} - \SetString{\enclname}{P.~J. } - \SetString{\ccname}{Copie \`a } - \SetString{\headtoname}{} - \SetString{\proofname}{D\'emonstration} - \SetString{\glossaryname}{Glossaire} - \SetString{\partfirst}{Premi\`ere} - \SetString{\partsecond}{Deuxi\`eme} - \SetString{\partnameord}{partie} - \SetStringLoop{ordinal#1}{% - \frenchpartfirst,\frenchpartsecond,Troisi\`eme,Quatri\`eme,% - Cinqui\`eme,Sixi\`eme,Septi\`eme,Huiti\`eme,Neuvi\`eme,Dixi\`eme,% - Onzi\`eme,Douzi\`eme,Treizi\`eme,Quatorzi\`eme,Quinzi\`eme,% - Seizi\`eme,Dix-septi\`eme,Dix-huiti\`eme,Dix-neuvi\`eme,% - Vingti\`eme} - \AfterBabelCommands{% - \DeclareRobustCommand*{\FB@emptypart}{\def\thepart{}}% - \DeclareRobustCommand*{\FB@partname}{% - \ifFBPartNameFull - \csname ordinal\romannumeral\value{part}\endcsname\space - \frenchpartnameord\FB@emptypart - \else - Partie% - \fi}% - } - \SetString{\partname}{\FB@partname} -\EndBabelCommands -\AtEndOfPackage{% - \ifFB@koma - \ifdefined\partformat - \FB@addto{captions}{% - \ifFBPartNameFull - \babel@save\partformat - \renewcommand*{\partformat}{\partname}% - \fi}% - \fi - \fi -} -\bgroup - \catcode`:=12 \catcode`>=12 \relax - \long\gdef\STD@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1: #2}% - \ifdim \wd\@tempboxa >\hsize - #1: #2\par - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip} -\egroup -\newif\if@FBwarning@capsep -\@FBwarning@capseptrue -\newcommand{\FBWarning}[1]{\PackageWarning{frenchb.ldf}{#1}} -\newcommand*{\CaptionSeparator}{\space\textendash\space} -\def\FBCaption@Separator{: } -\long\def\FB@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1\FBCaption@Separator #2}% - \ifdim \wd\@tempboxa >\hsize - #1\FBCaption@Separator #2\par - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip} -\@ifclassloaded{amsart}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{amsbook}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{amsdtx}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{amsldoc}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{amproc}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{smfart}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{smfbook}{\@FBwarning@capsepfalse}{} -\ifFB@active@punct\else\@FBwarning@capsepfalse\fi -\newif\ifFB@koma -\@ifclassloaded{memoir}{\@FBwarning@capsepfalse}{} -\@ifclassloaded{scrartcl}{\@FBwarning@capsepfalse\FB@komatrue}{} -\@ifclassloaded{scrbook}{\@FBwarning@capsepfalse\FB@komatrue}{} -\@ifclassloaded{scrreprt}{\@FBwarning@capsepfalse\FB@komatrue}{} -\@ifclassloaded{beamer}{\@FBwarning@capsepfalse}{} -\ifdefined\@makecaption\else\@FBwarning@capsepfalse\fi -\@ifpackageloaded{caption} - {\FBWarning{Please load the "caption" package\MessageBreak - AFTER babel/frenchb; reported}% - \@FBwarning@capsepfalse}% - {} -\@ifpackageloaded{subcaption} - {\FBWarning{Please load the "subcaption" package\MessageBreak - AFTER babel/frenchb; reported}% - \@FBwarning@capsepfalse}% - {} -\@ifpackageloaded{floatrow} - {\FBWarning{Please load the "floatrow" package\MessageBreak - AFTER babel/frenchb; reported}% - \@FBwarning@capsepfalse}% - {} -\AtBeginDocument{% - \ifx\@makecaption\STD@makecaption - \global\let\@makecaption\FB@makecaption - \ifFBOldFigTabCaptions - \else - \def\FBCaption@Separator{{\autospace@beforeFDP : }}% - \fi - \ifFBCustomiseFigTabCaptions - \ifx\bbl@main@language\FB@french - \def\FBCaption@Separator{\CaptionSeparator}% - \fi - \fi - \@FBwarning@capsepfalse - \fi - \if@FBwarning@capsep - \FBWarning - {Figures' and tables' captions might look like\MessageBreak - `Figure 1:' which is wrong in French.\MessageBreak - Check your class or packages to change this;\MessageBreak - reported}% - \fi - \let\FB@makecaption\relax - \let\STD@makecaption\relax -} -\ifFBunicode - \let\FBtextellipsis\textellipsis -\else - \DeclareTextSymbol{\FBtextellipsis}{LY1}{133} - \DeclareTextCommandDefault{\FBtextellipsis}{% - .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace} -\fi -\newcommand*{\Tdots@}{\@xp\textellipsis} -\newcommand*{\Mdots@}{\@xp\mdots@} -\AtBeginDocument{\DeclareRobustCommand*{\dots}{\relax - \csname\ifmmode M\else T\fi dots@\endcsname}% - \ifdefined\@xp\else\let\@xp\relax\fi - \ifdefined\mdots@\else\let\Mdots@\mathellipsis\fi - } -\def\bbl@frenchdots{\babel@save\Tdots@ \let\Tdots@\FBtextellipsis} -\FB@addto{extras}{\bbl@frenchdots} -\ifFB@active@punct - \@ifpackageloaded{listings} - {\FBWarning{Please load the "listings" package\MessageBreak - AFTER babel/frenchb; reported}% - }{} -\fi -\newif\if@FBwarning@natbib -\ifFB@active@punct - \@ifpackageloaded{natbib}{}{\@FBwarning@natbibtrue} -\fi -\AtBeginDocument{% - \if@FBwarning@natbib - \@ifpackageloaded{natbib}{}{\@FBwarning@natbibfalse}% - \fi - \if@FBwarning@natbib - \FBWarning{Please load the "natbib" package\MessageBreak - BEFORE babel/frenchb; reported}% - \fi -} -\newif\if@FBwarning@beamerarticle -\@ifpackageloaded{beamerarticle}{}{\@FBwarning@beamerarticletrue} -\AtBeginDocument{% - \if@FBwarning@beamerarticle - \@ifpackageloaded{beamerarticle}{}% - {\@FBwarning@beamerarticlefalse}% - \fi - \if@FBwarning@beamerarticle - \FBWarning{Please load the "beamerarticle" package\MessageBreak - BEFORE babel/frenchb; reported}% - \fi -} -\newcommand*{\frenchsetup}[1]{% - \setkeys{FB}{#1}% -}% -\@onlypreamble\frenchsetup -\let\frenchbsetup\frenchsetup -\@onlypreamble\frenchbsetup -\newif\ifFBShowOptions \FBShowOptionsfalse -\newif\ifFBStandardLayout \FBStandardLayouttrue -\newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchtrue -\newif\ifFBReduceListSpacing \FBReduceListSpacingfalse -\newif\ifFBListOldLayout \FBListOldLayoutfalse -\newif\ifFBCompactItemize \FBCompactItemizefalse -\newif\ifFBStandardItemizeEnv \FBStandardItemizeEnvtrue -\newif\ifFBStandardEnumerateEnv \FBStandardEnumerateEnvtrue -\newif\ifFBStandardItemLabels \FBStandardItemLabelstrue -\newif\ifFBStandardLists \FBStandardListstrue -\newif\ifFBIndentFirst \FBIndentFirstfalse -\newif\ifFBFrenchFootnotes \FBFrenchFootnotesfalse -\newif\ifFBAutoSpaceFootnotes \FBAutoSpaceFootnotesfalse -\newif\ifFBOriginalTypewriter \FBOriginalTypewriterfalse -\newif\ifFBThinColonSpace \FBThinColonSpacefalse -\newif\ifFBThinSpaceInFrenchNumbers \FBThinSpaceInFrenchNumbersfalse -\newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue -\newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue -\newif\ifFBPartNameFull \FBPartNameFulltrue -\newif\ifFBCustomiseFigTabCaptions \FBCustomiseFigTabCaptionsfalse -\newif\ifFBOldFigTabCaptions \FBOldFigTabCaptionsfalse -\newif\ifFBSmallCapsFigTabCaptions \FBSmallCapsFigTabCaptionstrue -\newif\ifFBSuppressWarning \FBSuppressWarningfalse -\newif\ifFBINGuillSpace \FBINGuillSpacefalse -\edef\FB@french{\CurrentOption} -\AtEndOfPackage{% - \ifx\bbl@main@language\FB@french - \FBGlobalLayoutFrenchtrue - \@ifclassloaded{beamer}% - {\PackageInfo{frenchb.ldf}{% - No list customisation for the beamer class,% - \MessageBreak reported}}% - {\@ifpackageloaded{beamerarticle}% - {\FBStandardItemLabelsfalse - \FBReduceListSpacingtrue - \PackageInfo{frenchb.ldf}{% - Minimal list customisation for the beamerarticle% - \MessageBreak package; reported}}% - {\FBReduceListSpacingtrue - \FBStandardItemizeEnvfalse - \FBStandardEnumerateEnvfalse - \FBStandardItemLabelsfalse}% - } - \FBIndentFirsttrue - \FBFrenchFootnotestrue - \FBAutoSpaceFootnotestrue - \FBCustomiseFigTabCaptionstrue - \else - \FBGlobalLayoutFrenchfalse - \fi - \RequirePackage{keyval}% - \define@key{FB}{ShowOptions}[true]% - {\csname FBShowOptions#1\endcsname}% - \define@key{FB}{StandardLayout}[true]% - {\csname FBStandardLayout#1\endcsname - \ifFBStandardLayout - \FBReduceListSpacingfalse - \FBStandardItemizeEnvtrue - \FBStandardItemLabelstrue - \FBStandardEnumerateEnvtrue - \FBIndentFirstfalse - \FBFrenchFootnotesfalse - \FBAutoSpaceFootnotesfalse - \FBGlobalLayoutFrenchfalse - \else - \FBReduceListSpacingtrue - \FBStandardItemizeEnvfalse - \FBStandardItemLabelsfalse - \FBStandardEnumerateEnvfalse - \FBIndentFirsttrue - \FBFrenchFootnotestrue - \FBAutoSpaceFootnotestrue - \fi}% - \define@key{FB}{GlobalLayoutFrench}[true]% - {\csname FBGlobalLayoutFrench#1\endcsname - \ifFBGlobalLayoutFrench - \ifx\bbl@main@language\FB@french - \else - \FBGlobalLayoutFrenchfalse - \PackageWarning{frenchb.ldf}% - {Option `GlobalLayoutFrench' skipped:\MessageBreak - French is *not* babel's last option.\MessageBreak - Reported}% - \fi - \fi}% - \define@key{FB}{ReduceListSpacing}[true]% - {\csname FBReduceListSpacing#1\endcsname}% - \define@key{FB}{ListOldLayout}[true]% - {\csname FBListOldLayout#1\endcsname - \ifFBListOldLayout - \FBStandardEnumerateEnvtrue - \renewcommand*{\FrenchLabelItem}{\textendash}% - \fi}% - \define@key{FB}{CompactItemize}[true]% - {\csname FBCompactItemize#1\endcsname - \ifFBCompactItemize - \FBStandardItemizeEnvfalse - \FBStandardEnumerateEnvfalse - \else - \FBStandardItemizeEnvtrue - \FBStandardEnumerateEnvtrue - \fi}% - \define@key{FB}{StandardItemizeEnv}[true]% - {\csname FBStandardItemizeEnv#1\endcsname}% - \define@key{FB}{StandardEnumerateEnv}[true]% - {\csname FBStandardEnumerateEnv#1\endcsname}% - \define@key{FB}{StandardItemLabels}[true]% - {\csname FBStandardItemLabels#1\endcsname}% - \define@key{FB}{ItemLabels}% - {\renewcommand*{\FrenchLabelItem}{#1}}% - \define@key{FB}{ItemLabeli}% - {\renewcommand*{\Frlabelitemi}{#1}}% - \define@key{FB}{ItemLabelii}% - {\renewcommand*{\Frlabelitemii}{#1}}% - \define@key{FB}{ItemLabeliii}% - {\renewcommand*{\Frlabelitemiii}{#1}}% - \define@key{FB}{ItemLabeliv}% - {\renewcommand*{\Frlabelitemiv}{#1}}% - \define@key{FB}{StandardLists}[true]% - {\csname FBStandardLists#1\endcsname - \ifFBStandardLists - \FBReduceListSpacingfalse - \FBCompactItemizefalse - \FBStandardItemizeEnvtrue - \FBStandardEnumerateEnvtrue - \FBStandardItemLabelstrue - \else - \FBReduceListSpacingtrue - \FBCompactItemizetrue - \FBStandardItemizeEnvfalse - \FBStandardEnumerateEnvfalse - \FBStandardItemLabelsfalse - \fi}% - \define@key{FB}{IndentFirst}[true]% - {\csname FBIndentFirst#1\endcsname}% - \define@key{FB}{FrenchFootnotes}[true]% - {\csname FBFrenchFootnotes#1\endcsname}% - \define@key{FB}{AutoSpaceFootnotes}[true]% - {\csname FBAutoSpaceFootnotes#1\endcsname}% - \define@key{FB}{AutoSpacePunctuation}[true]% - {\csname FBAutoSpacePunctuation#1\endcsname}% - \define@key{FB}{OriginalTypewriter}[true]% - {\csname FBOriginalTypewriter#1\endcsname}% - \define@key{FB}{ThinColonSpace}[true]% - {\csname FBThinColonSpace#1\endcsname - \ifFBThinColonSpace - \renewcommand*{\FBcolonspace}{\FBthinspace}% - \fi}% - \define@key{FB}{ThinSpaceInFrenchNumbers}[true]% - {\csname FBThinSpaceInFrenchNumbers#1\endcsname}% - \define@key{FB}{FrenchSuperscripts}[true]% - {\csname FBFrenchSuperscripts#1\endcsname} - \define@key{FB}{LowercaseSuperscripts}[true]% - {\csname FBLowercaseSuperscripts#1\endcsname} - \define@key{FB}{PartNameFull}[true]% - {\csname FBPartNameFull#1\endcsname}% - \define@key{FB}{CustomiseFigTabCaptions}[true]% - {\csname FBCustomiseFigTabCaptions#1\endcsname}% - \define@key{FB}{OldFigTabCaptions}[true]% - {\csname FBOldFigTabCaptions#1\endcsname - \ifFBOldFigTabCaptions - \FB@addto{extras}{\babel@save\FBCaption@Separator - \def\FBCaption@Separator{\CaptionSeparator}}% - \fi}% - \define@key{FB}{SmallCapsFigTabCaptions}[true]% - {\csname FBSmallCapsFigTabCaptions#1\endcsname - \ifFBSmallCapsFigTabCaptions - \let\FBfigtabshape\scshape - \else - \let\FBfigtabshape\relax - \fi}% - \define@key{FB}{SuppressWarning}[true]% - {\csname FBSuppressWarning#1\endcsname - \ifFBSuppressWarning - \renewcommand{\FBWarning}[1]{}% - \fi}% - \define@key{FB}{INGuillSpace}[true]% - {\csname FBINGuillSpace#1\endcsname - \ifFBINGuillSpace - \renewcommand*{\FBguillspace}{\space}% - \fi}% - \define@key{FB}{InnerGuillSingle}[true]% - {\csname FBInnerGuillSingle#1\endcsname}% - \define@key{FB}{EveryParGuill}[open]% - {\expandafter\let\expandafter - \FBeveryparguill\csname FBguill#1\endcsname - \ifx\FBeveryparguill\FBguillopen - \else\ifx\FBeveryparguill\FBguillclose - \else\ifx\FBeveryparguill\FBguillnone - \else - \let\FBeveryparguill\FBguillopen - \PackageWarning{frenchb.ldf}% - {Wrong value for `EveryParGuill': - try `open',\MessageBreak - `close' or `none'. Reported}% - \fi - \fi - \fi}% - \define@key{FB}{EveryLineGuill}[open]% - {\ifFB@luatex@punct - \expandafter\let\expandafter - \FBeverylineguill\csname FBguill#1\endcsname - \ifx\FBeverylineguill\FBguillopen - \else\ifx\FBeverylineguill\FBguillclose - \else\ifx\FBeverylineguill\FBguillnone - \else - \let\FBeverylineguill\FBguillnone - \FBWarning{Wrong value for `EveryLineGuill': - try `open',\MessageBreak - `close' or `none'. Reported}% - \fi - \fi - \fi - \else - \FBWarning{Option `EveryLineGuill' skipped:% - \MessageBreak this option is for - LuaTeX *only*.\MessageBreak Reported}% - \fi}% - \define@key{FB}{og}% - {\ifFBunicode - \ifFB@luatex@punct - \FB@addGUILspace=1 \relax - \fi - \ifFB@xetex@punct - \XeTeXcharclass"13 = \FB@guilo - \XeTeXcharclass"AB = \FB@guilo - \XeTeXcharclass"A0 = \FB@guilnul - \XeTeXcharclass"202F = \FB@guilnul - \fi - \ifFB@active@punct - \PackageWarning{frenchb.ldf}% - {Option og=« not supported with this version - of\MessageBreak LuaTeX/XeTeX; reported}% - \fi - \else - \newcommand*{\FB@@og}{% - \iflanguage{french}% - {\ifFB@spacing\FB@og\ignorespaces - \else\guillemotleft - \fi}% - {\guillemotleft}}% - \AtBeginDocument{% - \ifdefined\DeclareInputText - \ifdefined\uc@dclc - \uc@dclc{171}{default}{\FB@@og}% - \else - \ifdefined\DeclareUnicodeCharacter - \DeclareUnicodeCharacter{00AB}{\FB@@og}% - \else - \@tempcnta`#1\relax - \ifdefined\mule@def - \mule@def{11}{\FB@@og}% - \else - \DeclareInputText{\the\@tempcnta}{\FB@@og}% - \fi - \fi - \fi - \else - \PackageWarning{frenchb.ldf}% - {Option `og' requires package inputenc;% - \MessageBreak reported}% - \fi - }% - \fi - }% - \define@key{FB}{fg}% - {\ifFBunicode - \ifFB@luatex@punct - \FB@addGUILspace=1 \relax - \fi - \ifFB@xetex@punct - \XeTeXcharclass"14 = \FB@guilf - \XeTeXcharclass"BB = \FB@guilf - \XeTeXcharclass"A0 = \FB@guilnul - \XeTeXcharclass"202F = \FB@guilnul - \fi - \ifFB@active@punct - \PackageWarning{frenchb.ldf}% - {Option fg=» not supported with this version - of\MessageBreak LuaTeX/XeTeX; reported}% - \fi - \else - \newcommand*{\FB@@fg}{% - \iflanguage{french}% - {\ifFB@spacing\FB@fg - \else\guillemotright - \fi}% - {\guillemotright}}% - \AtBeginDocument{% - \ifdefined\DeclareInputText - \ifdefined\uc@dclc - \uc@dclc{187}{default}{\FB@@fg}% - \else - \ifdefined\DeclareUnicodeCharacter - \DeclareUnicodeCharacter{00BB}{\FB@@fg}% - \else - \@tempcnta`#1\relax - \ifdefined\mule@def - \mule@def{27}{{\FB@@fg}}% - \else - \DeclareInputText{\the\@tempcnta}{\FB@@fg}% - \fi - \fi - \fi - \else - \PackageWarning{frenchb.ldf}% - {Option `fg' requires package inputenc;% - \MessageBreak reported}% - \fi - }% - \fi - }% -} -\newcommand*{\FBprocess@options}{% - \@ifpackageloaded{enumitem}{% - \ifFBStandardItemizeEnv - \else - \FBStandardItemizeEnvtrue - \PackageInfo{frenchb.ldf}% - {Setting StandardItemizeEnv=true for\MessageBreak - compatibility with enumitem package,\MessageBreak - reported}% - \fi - \ifFBStandardEnumerateEnv - \else - \FBStandardEnumerateEnvtrue - \PackageInfo{frenchb.ldf}% - {Setting StandardEnumerateEnv=true for\MessageBreak - compatibility with enumitem package,\MessageBreak - reported}% - \fi}{}% - \@ifpackageloaded{paralist}{% - \ifFBStandardItemizeEnv - \else - \FBStandardItemizeEnvtrue - \PackageInfo{frenchb.ldf}% - {Setting StandardItemizeEnv=true for\MessageBreak - compatibility with paralist package,\MessageBreak - reported}% - \fi - \ifFBStandardEnumerateEnv - \else - \FBStandardEnumerateEnvtrue - \PackageInfo{frenchb.ldf}% - {Setting StandardEnumerateEnv=true for\MessageBreak - compatibility with paralist package,\MessageBreak - reported}% - \fi}{}% - \@ifpackageloaded{enumerate}{% - \ifFBStandardEnumerateEnv - \else - \FBStandardEnumerateEnvtrue - \PackageInfo{frenchb.ldf}% - {Setting StandardEnumerateEnv=true for\MessageBreak - compatibility with enumerate package,\MessageBreak - reported}% - \fi}{}% - \def\FB@ufl{\update@frenchlists} - \ifx\bbl@main@language\FB@french - \update@frenchlists - \fi - \ifFBAutoSpacePunctuation - \autospace@beforeFDP - \else - \noautospace@beforeFDP - \fi - \ifFBOriginalTypewriter - \else - \let\ttfamilyORI\ttfamily - \let\rmfamilyORI\rmfamily - \let\sffamilyORI\sffamily - \let\ttfamily\ttfamilyFB - \let\rmfamily\rmfamilyFB - \let\sffamily\sffamilyFB - \fi - \@ifpackageloaded{numprint}% - {\ifnprt@autolanguage - \providecommand*{\npstylefrench}{}% - \ifFBThinSpaceInFrenchNumbers - \renewcommand*\npstylefrench{% - \npthousandsep{\,}% - \npdecimalsign{,}% - \npproductsign{\cdot}% - \npunitseparator{\,}% - \npdegreeseparator{}% - \nppercentseparator{\nprt@unitsep}% - }% - \else - \renewcommand*\npstylefrench{% - \npthousandsep{~}% - \npdecimalsign{,}% - \npproductsign{\cdot}% - \npunitseparator{\,}% - \npdegreeseparator{}% - \nppercentseparator{\nprt@unitsep}% - }% - \fi - \npaddtolanguage{french}{french}% - \fi}{}% - \ifFBFrenchSuperscripts - \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}{\fup}}% - \else - \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}% - {\textsuperscript}}% - \fi - \ifFBLowercaseSuperscripts - \else - \renewcommand*{\FB@lc}[1]{##1}% - \fi - \ifFBCustomiseFigTabCaptions - \ifFB@koma - \renewcommand*{\captionformat}{\CaptionSeparator}% - \fi - \@ifclassloaded{memoir}% - {\captiondelim{\CaptionSeparator}}{}% - \@ifclassloaded{beamer}% - {\defbeamertemplate{caption label separator}{FBcustom}{% - \CaptionSeparator}% - \setbeamertemplate{caption label separator}[FBcustom]}{}% - \else - \ifFB@koma - \renewcommand*{\captionformat}{{\autospace@beforeFDP : }}% - \fi - \@ifclassloaded{memoir}% - {\captiondelim{{\autospace@beforeFDP : }}% - }{}% - \@ifclassloaded{beamer}% - {\defbeamertemplate{caption label separator}{FBcolon}{% - {\autospace@beforeFDP : }}% - \setbeamertemplate{caption label separator}[FBcolon]% - }{}% - \fi - \ifFBShowOptions - \GenericWarning{* }{% - * **** List of possible options for frenchb ****\MessageBreak - [Default values between brackets when frenchb is loaded *LAST*]% - \MessageBreak - ShowOptions=true [false]\MessageBreak - StandardLayout=true [false]\MessageBreak - GlobalLayoutFrench=false [true]\MessageBreak - StandardLists=true [false]\MessageBreak - IndentFirst=false [true]\MessageBreak - ReduceListSpacing=false [true]\MessageBreak - ListOldLayout=true [false]\MessageBreak - StandardItemizeEnv=true [false]\MessageBreak - StandardEnumerateEnv=true [false]\MessageBreak - StandardItemLabels=true [false]\MessageBreak - ItemLabels=\textemdash, \textbullet, - \protect\ding{43},... [\textendash]\MessageBreak - ItemLabeli=\textemdash, \textbullet, - \protect\ding{43},... [\textendash]\MessageBreak - ItemLabelii=\textemdash, \textbullet, - \protect\ding{43},... [\textendash]\MessageBreak - ItemLabeliii=\textemdash, \textbullet, - \protect\ding{43},... [\textendash]\MessageBreak - ItemLabeliv=\textemdash, \textbullet, - \protect\ding{43},... [\textendash]\MessageBreak - FrenchFootnotes=false [true]\MessageBreak - AutoSpaceFootnotes=false [true]\MessageBreak - AutoSpacePunctuation=false [true]\MessageBreak - OriginalTypewriter=true [false]\MessageBreak - ThinColonSpace=true [false]\MessageBreak - ThinSpaceInFrenchNumbers=true [false]\MessageBreak - FrenchSuperscripts=false [true]\MessageBreak - LowercaseSuperscripts=false [true]\MessageBreak - PartNameFull=false [true]\MessageBreak - SuppressWarning=true [false]\MessageBreak - CustomiseFigTabCaptions=false [true]\MessageBreak - OldFigTabCaptions=true [false]\MessageBreak - SmallCapsFigTabCaptions=false [true]\MessageBreak - INGuillSpace=true [false]\MessageBreak - InnerGuillSingle=true [false]\MessageBreak - EveryParGuill=open, close, none [open]\MessageBreak - EveryLineGuill=open, close, none - [open in LuaTeX, none otherwise]\MessageBreak - og= , fg= % - \MessageBreak - *********************************************% - \MessageBreak\protect\frenchsetup{ShowOptions}} - \fi -} -\AtBeginDocument{% - \providecommand*{\xspace}{\relax}% - \ifdefined\pdfstringdefDisableCommands - \pdfstringdefDisableCommands{% - \let\up\relax - \let\fup\relax - \let\degre\textdegree - \let\degres\textdegree - \def\ieme{e\xspace}% - \def\iemes{es\xspace}% - \def\ier{er\xspace}% - \def\iers{ers\xspace}% - \def\iere{re\xspace}% - \def\ieres{res\xspace}% - \def\FrenchEnumerate#1{#1\degre\space}% - \def\FrenchPopularEnumerate#1{#1\degre)\space}% - \def\No{N\degre\space}% - \def\no{n\degre\space}% - \def\Nos{N\degre\space}% - \def\nos{n\degre\space}% - \def\FB@og{\guillemotleft\space}% - \def\FB@fg{\space\guillemotright}% - \def\at{@}% - \def\circonflexe{\string^}% - \def\tild{\string~}% - \def\boi{\textbackslash}% - \let\bsc\textsc - }% - \fi - \FBprocess@options - \ifFB@luatex@punct - \FBcolonsp=\expandafter{\meaning\FBcolonspace} - \FBthinsp= \expandafter{\meaning\FBthinspace} - \FBguillsp=\expandafter{\meaning\FBguillspace} - \activate@luatexpunct - \fi - \ifFBunicode - \@ifpackageloaded{fontspec}{}% - {\@ifpackageloaded{luainputenc}{}% - {\PackageWarning{frenchb.ldf}% - {Add \protect\usepackage{fontspec} to the\MessageBreak - preamble of your document, reported}% - }% - } - \else - \begingroup \newcommand{\FBOTone}{OT1}% - \ifx\encodingdefault\FBOTone - \PackageWarning{frenchb.ldf}% - {OT1 encoding should not be used for French.% - \MessageBreak - Add \protect\usepackage[T1]{fontenc} to the - preamble\MessageBreak of your document; reported}% - \fi - \endgroup - \fi -} -\let\listORI\list -\let\endlistORI\endlist -\def\FB@listVsettings{% - \setlength{\itemsep}{0.4ex plus 0.2ex minus 0.2ex}% - \setlength{\parsep}{0.4ex plus 0.2ex minus 0.2ex}% - \setlength{\topsep}{0.8ex plus 0.4ex minus 0.4ex}% - \setlength{\partopsep}{0.4ex plus 0.2ex minus 0.2ex}% - \@tempdima=\parskip - \addtolength{\topsep}{-\@tempdima}% - \addtolength{\partopsep}{\@tempdima}% -} -\def\listFB#1#2{\listORI{#1}{\FB@listVsettings #2}} -\let\endlistFB\endlist -\newcommand*{\FrenchLabelItem}{\textemdash} -\newcommand*{\Frlabelitemi}{\FrenchLabelItem} -\newcommand*{\Frlabelitemii}{\FrenchLabelItem} -\newcommand*{\Frlabelitemiii}{\FrenchLabelItem} -\newcommand*{\Frlabelitemiv}{\FrenchLabelItem} -\newlength\listindentFB -\setlength{\listindentFB}{-1pt} -\newlength\descindentFB -\setlength{\descindentFB}{-1pt} -\newlength\labelwidthFB -\setlength{\labelwidthFB}{-1pt} -\newlength\leftmarginFB -\def\FB@listHsettings{% - \leftmarginFB\labelwidthFB - \advance\leftmarginFB \labelsep - \bbl@for\FB@dp {1, 2, 3, 4, 5, 6}% - {\csname leftmargin\romannumeral\FB@dp\endcsname \leftmarginFB}% - \advance\leftmargini \listindentFB - \leftmargin\csname leftmargin\ifnum\@listdepth=\@ne i\else - ii\fi\endcsname -} -\def\FB@itemizesettings{% - \ifFBReduceListSpacing - \setlength{\itemsep}{\z@}% - \setlength{\parsep}{\z@}% - \setlength{\topsep}{\z@}% - \setlength{\partopsep}{\z@}% - \@tempdima=\parskip - \addtolength{\topsep}{-\@tempdima}% - \addtolength{\partopsep}{\@tempdima}% - \fi - \settowidth{\labelwidth}{\csname\@itemitem\endcsname}% - \ifFBListOldLayout - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \addtolength{\leftmargin}{\parindent}% - \else - \FB@listHsettings - \fi -} -\def\itemizeFB{% - \ifnum \@itemdepth >\thr@@\@toodeep\else - \advance\@itemdepth\@ne - \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% - \expandafter - \listORI - \csname\@itemitem\endcsname - \FB@itemizesettings - \fi -} -\let\enditemizeFB\endlistORI -\def\labelitemsFB{% - \let\labelitemi\Frlabelitemi - \let\labelitemii\Frlabelitemii - \let\labelitemiii\Frlabelitemiii - \let\labelitemiv\Frlabelitemiv - \ifdim\labelwidthFB<\z@ - \settowidth{\labelwidthFB}{\FrenchLabelItem}% - \fi - \ifdim\listindentFB<\z@ - \ifdim\parindent=\z@ - \setlength{\listindentFB}{1.5em}% - \else - \setlength{\listindentFB}{\parindent}% - \fi - \fi - \ifdim\descindentFB<\z@ - \setlength{\descindentFB}{\listindentFB}% - \fi -} -\def\enumerateFB{% - \ifnum \@enumdepth >\thr@@\@toodeep\else - \advance\@enumdepth\@ne - \edef\@enumctr{enum\romannumeral\the\@enumdepth}% - \expandafter - \list - \csname label\@enumctr\endcsname - {\FB@listHsettings - \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% - \fi -} -\let\endenumerateFB\endlistORI -\def\descriptionFB{% - \list{}{\FB@listHsettings - \labelwidth\z@ - \itemindent-\leftmargin - \ifnum\@listdepth=1 - \ifdim\descindentFB=\z@ - \ifdim\listindentFB>\z@ - \leftmargini\listindentFB - \leftmargin\leftmargini - \itemindent-\leftmargin - \fi - \else - \advance\itemindent by \descindentFB - \fi - \fi - \let\makelabel\descriptionlabel}% -} -\let\enddescriptionFB\endlistORI -\def\update@frenchlists{% - \ifFBReduceListSpacing \let\list\listFB \fi - \ifFBStandardItemizeEnv - \else \let\itemize\itemizeFB \fi - \ifFBStandardItemLabels - \else \labelitemsFB \fi - \ifFBStandardEnumerateEnv - \else \let\enumerate\enumerateFB \let\description\descriptionFB \fi -} -\def\FB@ufl{\relax} -\def\bbl@frenchlistlayout{% - \ifFBGlobalLayoutFrench - \else - \babel@save\list \babel@save\itemize - \babel@save\enumerate \babel@save\description - \babel@save\labelitemi \babel@save\labelitemii - \babel@save\labelitemiii \babel@save\labelitemiv - \FB@ufl - \fi -} -\FB@addto{extras}{\bbl@frenchlistlayout} -\def\bbl@frenchindent{% - \ifFBGlobalLayoutFrench - \else - \babel@save\@afterindentfalse - \fi - \ifFBIndentFirst - \let\@afterindentfalse\@afterindenttrue - \@afterindenttrue - \fi} -\def\bbl@nonfrenchindent{% - \ifFBGlobalLayoutFrench - \ifFBIndentFirst - \@afterindenttrue - \fi - \fi} -\FB@addto{extras}{\bbl@frenchindent} -\FB@addto{noextras}{\bbl@nonfrenchindent} -\AtBeginDocument{\@ifpackageloaded{bigfoot}% - {\PackageInfo{frenchb.ldf}% - {bigfoot package in use.\MessageBreak - frenchb will NOT customise footnotes;% - \MessageBreak reported}}% - {\let\@footnotemarkORI\@footnotemark - \def\@footnotemarkFB{\leavevmode\unskip\unkern - \,\@footnotemarkORI}% - \ifFBAutoSpaceFootnotes - \let\@footnotemark\@footnotemarkFB - \fi}% - } -\newdimen\parindentFFN -\parindentFFN=10in -\newcommand*{\dotFFN}{.} -\newcommand*{\kernFFN}{\kern .5em} -\newlength\FBfnindent -\ifFB@koma - \let\@makefntextORI\@makefntext - \let\@@makefnmarkORI\@@makefnmark - \deffootnote[\FBfnindent]{0pt}{\parindentFFN}% - {\thefootnotemark\dotFFN\kernFFN} - \let\@makefntextFB\@makefntext - \let\@@makefnmarkFB\@@makefnmark - \deffootnote[\parindentFFN]{0pt}{\parindentFFN}% - {\textsuperscript{\thefootnotemark}} - \let\@makefntextTH\@makefntext - \let\@@makefnmarkTH\@@makefnmark - \let\@makefntext\@makefntextORI - \let\@@makefnmark\@@makefnmarkORI -\fi -\@ifclassloaded{memoir} - {\newcommand{\@makefntextFB}[1]{% - \def\footscript##1{##1\dotFFN\kernFFN}% - \setlength{\footmarkwidth}{\FBfnindent}% - \setlength{\footmarksep}{-\footmarkwidth}% - \setlength{\footparindent}{\parindentFFN}% - \makefootmark #1}% - }{} -\@ifclassloaded{beamer} - {\def\@makefntextFB#1{% - \def\insertfootnotetext{#1}% - \def\insertfootnotemark{\insertfootnotemarkFB}% - \usebeamertemplate***{footnote}}% - \def\insertfootnotemarkFB{% - \usebeamercolor[fg]{footnote mark}% - \usebeamerfont*{footnote mark}% - \llap{\@thefnmark}\dotFFN\kernFFN}% - }{} -\providecommand*{\insertfootnotemarkFB}{% - \parindent=\parindentFFN - \rule\z@\footnotesep - \setbox\@tempboxa\hbox{\@thefnmark}% - \ifdim\wd\@tempboxa>\z@ - \llap{\@thefnmark}\dotFFN\kernFFN - \fi} -\providecommand\@makefntextFB[1]{\insertfootnotemarkFB #1} -\AtBeginDocument{% - \@ifpackageloaded{bigfoot}{}% - {\ifdim\parindentFFN<10in - \else - \parindentFFN=\parindent - \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi - \fi - \settowidth{\FBfnindent}{\dotFFN\kernFFN}% - \addtolength{\FBfnindent}{\parindentFFN}% - \let\@makefntextORI\@makefntext - \ifFB@koma - \let\@@makefnmarkORI\@@makefnmark - \long\def\@makefntext#1{% - \ifFBFrenchFootnotes - \ifx\footnote\thanks - \let\@@makefnmark\@@makefnmarkTH - \@makefntextTH{#1}% - \else - \let\@@makefnmark\@@makefnmarkFB - \@makefntextFB{#1}% - \fi - \else - \let\@@makefnmark\@@makefnmarkORI - \@makefntextORI{#1}% - \fi}% - \else - \@ifclassloaded{memoir}% - {\ifFBFrenchFootnotes - \setlength{\thanksmarkwidth}{\parindentFFN}% - \setlength{\thanksmarksep}{-\thanksmarkwidth}% - \fi - }{}% - \@ifclassloaded{beamer}% - {\ifFBFrenchFootnotes - \ifdim\parindentFFN=1.5em\else - \FBWarning{% - \protect\parindentFFN\space is ineffective% - \MessageBreak within the beamer class.% - \MessageBreak Reported}% - \fi - \fi - }{}% - \long\def\@makefntext#1{% - \ifFBFrenchFootnotes - \@makefntextFB{#1}% - \else - \@makefntextORI{#1}% - \fi}% - \fi - }% -} -\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue} -\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue} -\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse} -\FBclean@on@exit -\let\FB@llc\loadlocalcfg -\let\loadlocalcfg\@gobble -\ldf@finish\CurrentOption -\let\loadlocalcfg\FB@llc + \PackageWarning{babel-french}% + {Option `frenchb' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `french' instead; reported} +\else + \def\bbl@tempa{francais} + \ifx\CurrentOption\bbl@tempa + \let\l@francais\l@french + \def\CurrentOption{french} + \ifx\magnification\@undefined + \PackageWarning{babel-french}% + {Option `francais' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `french' instead; reported}% + \fi + \else + \def\bbl@tempa{canadien} + \ifx\CurrentOption\bbl@tempa + \let\l@canadien\l@acadian + \def\CurrentOption{acadian} + \PackageWarning{babel-french}% + {Option `canadien' for Babel is *deprecated*,\MessageBreak + it might be removed sooner or later. Please\MessageBreak + use `acadian' instead; reported} + \fi + \fi +\fi +\input french.ldf\relax +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% \endinput %% %% End of file `frenchb.ldf'. diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.lua b/Master/texmf-dist/tex/generic/babel-french/frenchb.lua index f8e10ef8ceb..3a4ba453dde 100644 --- a/Master/texmf-dist/tex/generic/babel-french/frenchb.lua +++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.lua @@ -1,10 +1,10 @@ --- --- File `frenchb.lua’ generated from frenchb.dtx [2017/04/30 v3.3a] --- --- Copyright © 2014-2017 Daniel Flipo --- --- 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 + + License LPPL: see french.ldf. +--]] local FB_punct_thin = {[string.byte("!")] = true, [string.byte("?")] = true, -- cgit v1.2.3