diff options
author | Karl Berry <karl@freefriends.org> | 2014-03-09 21:30:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-03-09 21:30:03 +0000 |
commit | 0bfe05edb117d45b0720bc4f31d89be020b9c521 (patch) | |
tree | fd9bf569935867c88e87fe5f04464d91309ed5b0 /Master/texmf-dist/tex/generic | |
parent | 65fff2c077cb5a94b0e949b80902cf73adb4abfd (diff) |
babel-french (9mar14)
git-svn-id: svn://tug.org/texlive/trunk@33133 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/babel-french/frenchb.ldf | 1511 |
1 files changed, 802 insertions, 709 deletions
diff --git a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf index ce2fc8d947f..910bab413da 100644 --- a/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf +++ b/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% frenchb.dtx (with options: `code') +%% frenchb.dtx (with options: `ldf') %% This is a generated file of the Babel system. %% --------------------------------------------------------- %% @@ -33,15 +33,64 @@ %% extension .ins) which are part of the distribution. %% \ProvidesLanguage{frenchb} - [2013/12/30 v2.6g French support from the babel system] + [2014/02/28 v3.0a French support from the babel system] %% -%% File `frenchb.ldf' -%% Babel package for LaTeX version 2e -%% Copyright (C) 1989 - 2013 -%% by Daniel Flipo <daniel.flipo at free.fr> +%% File `frenchb.ldf' +%% Babel package for LaTeX version 2e +%% Copyright (C) 1996 - 2014 +%% by Daniel Flipo <daniel.flipo at free.fr> %% -\def\CurrentOption{french} -\LdfInit\CurrentOption\datefrench +\chardef\atcatcode=\catcode`\@ +\catcode`\@=11\relax +\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 + \ifx\lang@french\@undefined + \FB@nopatterns + \else + \ifnum\lang@french>0 + \let\l@french\lang@french + \else + \FB@nopatterns{French} + \fi + \fi +\fi +\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 +\LdfInit\CurrentOption\captionsfrench +\let\bbl@tempa\relax +\ifx\StartBabelCommands\@undefined + \let\bbl@tempa\endinput + \PackageError{frenchb.ldf} + {frenchb requires babel v.3.9.\MessageBreak + Aborting here} + {Please upgrade Babel!} +\fi +\bbl@tempa \newif\ifLaTeXe \let\bbl@tempa\relax \ifx\magnification\@undefined @@ -56,40 +105,37 @@ \fi \fi \bbl@tempa -\ifx\l@french\@undefined - \ifx\l@francais\@undefined - \ifx\l@canadien\@undefined - \ifx\l@acadian\@undefined - \@nopatterns{French} - \adddialect\l@french0 - \else - \let\l@french\l@acadian - \fi - \else - \let\l@french\l@canadien - \fi - \else - \let\l@french\l@francais - \fi -\fi -\ifx\l@francais\@undefined - \let\l@francais\l@french -\fi -\ifx\l@frenchb\@undefined - \let\l@frenchb\l@french -\fi -\ifx\l@canadien\@undefined - \let\l@canadien\l@french -\fi \ifx\l@acadian\@undefined - \let\l@acadian\l@french + \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\datefrancais{\datefrench} -\def\datefrenchb{\datefrench} -\def\extrasfrancais{\extrasfrench} -\def\extrasfrenchb{\extrasfrench} -\def\noextrasfrancais{\noextrasfrench} -\def\noextrasfrenchb{\noextrasfrench} +\def\bbl@tempa{canadien} +\ifx\CurrentOption\bbl@tempa + \def\captionscanadien{\captionsacadian} + \def\datecanadien{\dateacadian} + \def\extrascanadien{\extrasacadian} + \def\noextrascanadien{\extrasacadian} + \def\CurrentOption{acadian} +\fi +\def\fb@warning#1{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J(frenchb.ldf) }% + \message{\\#1}% + \endgroup} +\def\fb@info#1{% + \begingroup + \newlinechar=`\^^J + \def\\{^^J}% + \wlog{#1}% + \endgroup} +\expandafter\providehyphenmins\expandafter{\CurrentOption}{\tw@\thr@@} \newif\ifFBunicode \newif\ifFBLuaTeX \newif\ifFBXeTeX @@ -104,45 +150,103 @@ \FBunicodetrue \FBXeTeXtrue \fi \@namedef{extras\CurrentOption}{% - \ifFBunicode \lccode`\'="2019 \lccode"2019="2019 - \else \lccode`\'=`\' - \fi} -\@namedef{noextras\CurrentOption}{% - \ifFBunicode \lccode"2019=\z@\fi - \lccode`\'=\z@} -\addto\extrasfrench{\bbl@frenchspacing} -\addto\noextrasfrench{\bbl@nonfrenchspacing} -\long\def\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} -\newcommand*{\FBcolonspace}{\space} -\newcommand*{\FBthinspace}{\thinspace} + \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\ifFBAutoSpaceGuill \FBAutoSpaceGuilltrue \newif\ifFB@active@punct \FB@active@puncttrue +\newif\ifFB@luatex@punct +\ifFBLuaTeX + \ifnum\luatexversion>75 + \FB@luatex@puncttrue\FB@active@punctfalse + \fi +\fi \newif\ifFB@xetex@punct \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax \else \FB@xetex@puncttrue\FB@active@punctfalse \fi -\newif\ifFBAutoSpaceGuill \FBAutoSpaceGuilltrue -\newif\ifFBguillo@addspace -\newif\ifFBguillf@addspace -\newif\ifFBog@addspace \FBog@addspacetrue -\newif\ifFBfg@addspace \FBfg@addspacetrue +\newcommand*{\FBcolonspace}{\space} +\newcommand*{\FBthinspace}{\thinspace} +\newskip\FBcolonskip +\FBcolonskip=3.33pt plus 1.665pt minus 1.11pt \relax +\newskip\FBthinskip +\FBthinskip=1.66672pt \relax +\ifFB@luatex@punct + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname newluatexattribute\endcsname\relax + \input luaotfload.sty + \fi + \newluatexattribute\FB@addDPspace \FB@addDPspace=1 \relax + \newluatexattribute\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 + \newcommand*{\FB@luatex@punct@french}{% + \ifx\shorthandoffORI\@undefined + \let\shorthandonORI\shorthandon + \let\shorthandoffORI\shorthandoff + \fi + \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{}% + } + \newcommand*{\FB@luatex@punct@nonfrench}{% + \ifx\shorthandoffORI\@undefined + \else + \let\shorthandon\shorthandonORI + \let\shorthandoff\shorthandoffORI + \fi + } + \FB@addto{extras}{\FB@luatex@punct@french} + \FB@addto{noextras}{\FB@luatex@punct@nonfrench} + \def\activate@luatexpunct{% + \directlua{% + FR = \the\l@french + local f = dofile("frenchb.lua") + luatexbase.add_to_callback("pre_linebreak_filter", + f, "frenchb.french_punctuation",1) + luatexbase.add_to_callback("hpack_filter", + f, "frenchb.french_punctuation",1) + }% + } +\fi \newcount\FB@interchartokenstateORI \ifFB@xetex@punct \ifLaTeXe - \PackageInfo{frenchb.ldf}{No need for active punctuation characters - \MessageBreak with this version of XeTeX! reported} + \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 - \@ifundefined{@for}{% + \ifx\@for\@undefined \def\@nnil{\@nil}% \def\@empty{}% \def\@fornoop#1\@@#2#3{}% @@ -161,12 +265,13 @@ \long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil \expandafter\@fornoop \else #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}% - }{}% + \fi \newXeTeXintercharclass\FB@punctthick \newXeTeXintercharclass\FB@punctthin \newXeTeXintercharclass\FB@punctnul - \newXeTeXintercharclass\FB@punctguilo - \newXeTeXintercharclass\FB@punctguilf + \newXeTeXintercharclass\FB@guilo + \newXeTeXintercharclass\FB@guilf + \newXeTeXintercharclass\FB@guilnul \def\FB@charclassesORI{} \def\empty{} \def\FB@parse#1,#2\endparse{\def\FB@class{#1}% @@ -186,7 +291,7 @@ \XeTeXcharclass `\: = \FB@punctthick \XeTeXinterchartoks \z@ \FB@punctthick = {% \ifhmode\FDP@colonspace\fi}% - \XeTeXinterchartoks \FB@punctguilf \FB@punctthick = {% + \XeTeXinterchartoks \FB@guilf \FB@punctthick = {% \FDP@colonspace}% \XeTeXinterchartoks 255 \FB@punctthick = {% \ifhmode\unskip\penalty\@M\FBcolonspace\fi}% @@ -194,19 +299,19 @@ {\XeTeXcharclass\FB@char=\FB@punctthin}% \XeTeXinterchartoks \z@ \FB@punctthin = {% \ifhmode\FDP@thinspace\fi}% - \XeTeXinterchartoks \FB@punctguilf \FB@punctthin = {% + \XeTeXinterchartoks \FB@guilf \FB@punctthin = {% \FDP@thinspace}% \XeTeXinterchartoks 255 \FB@punctthin = {% \ifhmode\unskip\penalty\@M\FBthinspace\fi}% - \XeTeXinterchartoks \FB@punctguilo \z@ = {% + \XeTeXinterchartoks \FB@guilo \z@ = {% \ifFBAutoSpaceGuill\FBguill@spacing\fi}% - \XeTeXinterchartoks \FB@punctguilo 255 = {% + \XeTeXinterchartoks \FB@guilo 255 = {% \ifFBAutoSpaceGuill\FBguill@spacing\ignorespaces\fi}% - \XeTeXinterchartoks \z@ \FB@punctguilf = {% + \XeTeXinterchartoks \z@ \FB@guilf = {% \ifFBAutoSpaceGuill\FBguill@spacing\fi}% - \XeTeXinterchartoks \FB@punctthin \FB@punctguilf = {% + \XeTeXinterchartoks \FB@punctthin \FB@guilf = {% \ifFBAutoSpaceGuill\FBguill@spacing\fi}% - \XeTeXinterchartoks 255 \FB@punctguilf = {% + \XeTeXinterchartoks 255 \FB@guilf = {% \ifFBAutoSpaceGuill\unskip\FBguill@spacing\fi}% \@for\FB@char:={`\[,`\(,"A0,"202F}\do {\XeTeXcharclass\FB@char=\FB@punctnul}% @@ -214,13 +319,15 @@ "22,"27,"60,"2019}\do {\XeTeXcharclass\FB@char=\z@}% \def\shorthandoff##1{% - \@ifundefined{PackageWarning}% - {\let\PackageWarning\undefined}% - {\PackageWarning{frenchb.ldf}{\protect\shorthandoff{;:!?} is - helpless with XeTeX,\MessageBreak use \protect\NoAutoSpacing - \space *inside a group* instead;\MessageBreak reported}% - }% - }% + \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{}% } \newcommand*{\FB@xetex@punct@nonfrench}{% @@ -237,8 +344,8 @@ \let\shorthandoff\shorthandoffORI \fi } - \addto\extrasfrench{\FB@xetex@punct@french} - \addto\noextrasfrench{\FB@xetex@punct@nonfrench} + \FB@addto{extras}{\FB@xetex@punct@french} + \FB@addto{noextras}{\FB@xetex@punct@nonfrench} \fi \ifFB@active@punct \initiate@active@char{:}% @@ -285,21 +392,24 @@ \declare@shorthand{system}{!}{\string!} \declare@shorthand{system}{?}{\string?} \declare@shorthand{system}{;}{\string;} - \addto\extrasfrench{% - \languageshorthands{french}% + \FB@addto{extras}{\languageshorthands{french}% \bbl@activate{:}\bbl@activate{;}% \bbl@activate{!}\bbl@activate{?}% } - \addto\noextrasfrench{% + \FB@addto{noextras}{% \bbl@deactivate{:}\bbl@deactivate{;}% - \bbl@deactivate{!}\bbl@deactivate{?}} + \bbl@deactivate{!}\bbl@deactivate{?}% + } \fi \newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue \def\autospace@beforeFDP{% - \def\FDP@thinspace{\penalty\@M\FBthinspace}% - \def\FDP@colonspace{\penalty\@M\FBcolonspace}} -\def\noautospace@beforeFDP{\let\FDP@thinspace\@empty - \let\FDP@colonspace\@empty} + \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} @@ -311,17 +421,16 @@ \fi \AutoSpaceBeforeFDP \ifLaTeXe - \let\ttfamilyORI\ttfamily - \let\rmfamilyORI\rmfamily - \let\sffamilyORI\sffamily + %\let\ttfamilyORI\ttfamily + %\let\rmfamilyORI\rmfamily + %\let\sffamilyORI\sffamily \DeclareRobustCommand\ttfamilyFB{% \FBAutoSpaceGuillfalse - \FBog@addspacetrue \FBfg@addspacetrue + \ifFB@luatex@punct\FB@addGUILspace=0 \fi \noautospace@beforeFDP\ttfamilyORI}% \DeclareRobustCommand\rmfamilyFB{% \FBAutoSpaceGuilltrue - \ifFBguillo@addspace\FBog@addspacefalse\fi - \ifFBguillf@addspace\FBfg@addspacefalse\fi + \ifFB@luatex@punct\FB@addGUILspace=1 \fi \ifFBAutoSpacePunctuation \autospace@beforeFDP \else @@ -330,8 +439,7 @@ \rmfamilyORI}% \DeclareRobustCommand\sffamilyFB{% \FBAutoSpaceGuilltrue - \ifFBguillo@addspace\FBog@addspacefalse\fi - \ifFBguillf@addspace\FBfg@addspacefalse\fi + \ifFB@luatex@punct\FB@addGUILspace=1 \fi \ifFBAutoSpacePunctuation \autospace@beforeFDP \else @@ -340,9 +448,9 @@ \sffamilyORI}% \fi \newcommand*{\NoAutoSpacing}{\FBAutoSpaceGuillfalse - \FBog@addspacetrue \FBfg@addspacetrue \ifFB@active@punct\shorthandoff{;:!?}\fi - \ifFB@xetex@punct\XeTeXinterchartokenstate=0\fi + \ifFB@xetex@punct\XeTeXinterchartokenstate=0 \fi + \ifFB@luatex@punct\FB@addDPspace=0 \FB@addGUILspace=0 \fi } \newcommand*{\og}{\@empty} \newcommand*{\fg}{\@empty} @@ -363,35 +471,80 @@ \fi \let\xspace\relax \fi +\newskip\FBguillskip +\FBguillskip=2.664pt plus 0.500pt minus 0.888pt \relax \newcommand*{\FBguill@spacing}{\penalty\@M\hskip.8\fontdimen2\font plus.3\fontdimen3\font minus.8\fontdimen4\font} -\DeclareRobustCommand*{\FB@og}{\leavevmode\guillemotleft - \ifFBog@addspace\FBguill@spacing\fi} -\DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi - \ifFBfg@addspace\FBguill@spacing\fi - \guillemotright\xspace} +\ifFB@luatex@punct + \DeclareRobustCommand*{\FB@og}{\leavevmode + \bgroup\FB@addGUILspace=1 \guillemotleft\egroup} + \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi + \bgroup\FB@addGUILspace=1 \guillemotright\egroup\xspace} +\fi +\ifFB@xetex@punct + \DeclareRobustCommand*{\FB@og}{\leavevmode + \bgroup\FBAutoSpaceGuillfalse\guillemotleft\egroup + \FBguill@spacing} + \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi + \FBguill@spacing + \bgroup\FBAutoSpaceGuillfalse\guillemotright\egroup\xspace} +\fi +\ifFB@active@punct + \DeclareRobustCommand*{\FB@og}{\leavevmode + \guillemotleft + \FBguill@spacing} + \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi + \FBguill@spacing + \guillemotright\xspace} +\fi \ifLaTeXe \def\bbl@frenchguillemets{\renewcommand*{\og}{\FB@og}% \renewcommand*{\fg}{\FB@fg}} - \def\bbl@nonfrenchguillemets{\renewcommand*{\og}{\textquotedblleft}% - \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi - \textquotedblright}} + \renewcommand*{\og}{\textquotedblleft} + \renewcommand*{\fg}{\ifdim\lastskip>\z@\unskip\fi \textquotedblright} \else \def\bbl@frenchguillemets{\let\og\FB@og \let\fg\FB@fg} - \def\bbl@nonfrenchguillemets{\def\og{\textquotedblleft}% - \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}} + \def\og{\textquotedblleft} + \def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright} +\fi +\FB@addto{extras}{\babel@save\og \babel@save\fg \bbl@frenchguillemets} +\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 -\addto\extrasfrench{\bbl@frenchguillemets} -\addto\noextrasfrench{\bbl@nonfrenchguillemets} -\@namedef{date\CurrentOption}{% - \def\today{{\number\day}\ifnum1=\day {\ier}\fi \space - \ifcase\month - \or janvier\or f{\FBeacute}vrier\or mars\or avril\or mai\or - juin\or juillet\or ao{\FBucirconflexe}t\or septembre\or - octobre\or novembre\or d{\FBeacute}cembre\fi - \space \number\year}} \newif\ifFB@poorman \newdimen\FB@Mht \ifLaTeXe @@ -425,10 +578,12 @@ \newcommand*{\FB@up@real}[1]{\bgroup \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup} \DeclareRobustCommand*{\fup}[1]{% - \@ifundefined{realsuperscript}% - {\FB@up{#1}\let\realsuperscript\undefined}% - {\bgroup\let\fakesuperscript\FB@up@fake - \realsuperscript{\FB@lc{#1}}\egroup}} + \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}} @@ -487,19 +642,6 @@ \newcommand*{\boi}{$\backslash$} \fi \fi -\newcommand*{\FBagrave}{\`a} -\newcommand*{\FBegrave}{\`e} -\newcommand*{\FBeacute}{\'e} -\newcommand*{\FBucirconflexe}{\^u} -\ifFBunicode - \ifLaTeXe - \else - \def\FBagrave{{\char"00E0}} - \def\FBegrave{{\char"00E8}} - \def\FBeacute{{\char"00E9}} - \def\FBucirconflexe{{\char"00FB}} - \fi -\fi \ifLaTeXe \newcommand*{\degres}{\degre} \ifFBunicode @@ -507,17 +649,19 @@ \else \def\Warning@degree@TSone{% \PackageWarning{frenchb.ldf}{% - Degrees would look better in TS1-encoding: + Degrees would look better in TS1-encoding:% \MessageBreak add \protect - \usepackage{textcomp} to the preamble. + \usepackage{textcomp} to the preamble.% \MessageBreak Degrees used}} - \AtBeginDocument{\@ifundefined{DeclareEncodingSubset}% - {\DeclareRobustCommand*{\degres}{% - \leavevmode\hbox to 0.3em{\hss\degre\hss}% - \Warning@degree@TSone - \global\let\Warning@degree@TSone\relax}}% - {\DeclareRobustCommand*{\degres}{% - \hbox{\UseTextSymbol{TS1}{\textdegree}}}}% + \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 @@ -534,105 +678,106 @@ \advance\dec@mcc by -\@tempcnta \newcommand*{\DecimalMathComma}{\iflanguage{french}% {\mathcode`\,=\dec@mcc}{}% - \addto\extrasfrench{\mathcode`\,=\dec@mcc}} + \FB@addto{extras}{\mathcode`\,=\dec@mcc}% +} \newcommand*{\StandardMathComma}{\mathcode`\,=\std@mcc - \addto\extrasfrench{\mathcode`\,=\std@mcc}} -\addto\noextrasfrench{\mathcode`\,=\std@mcc} -\newcommand*{\nombre}[1]{{#1}\message{% - *** \noexpand\nombre no longer formats numbers\string! ***}}% + \FB@addto{extras}{\mathcode`\,=\std@mcc}% +} +\FB@addto{noextras}{\mathcode`\,=\std@mcc} +\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{\let\STD@makecaption\relax + \def\FBstop@here{\ifFB@luatex@punct + \activate@luatexpunct + \fi \FBclean@on@exit \ldf@quit\CurrentOption\endinput} \fi \FBstop@here \renewcommand*{\nombre}[1]{\Warning@nombre\numprint{#1}} \newcommand*{\Warning@nombre}{% - \@ifundefined{numprint}% - {\PackageWarning{frenchb.ldf}{% - \protect\nombre\space now relies on package numprint.sty, + \ifdefined\numprint + \else + \PackageWarning{frenchb.ldf}{% + \protect\nombre\space now relies on package numprint.sty,% \MessageBreak add \protect \usepackage[autolanguage]{numprint}\MessageBreak - to your preamble *after* loading babel, \MessageBreak + to your preamble *after* loading babel,\MessageBreak see file numprint.pdf for more options.\MessageBreak \protect\nombre\space called}% - \global\let\Warning@nombre\relax - \global\let\numprint\undefined - }{}% + \global\let\Warning@nombre\relax + \fi } -\newcommand*{\ThinSpaceInFrenchNumbers}{% - \PackageWarning{frenchb.ldf}{% - Type \protect\frenchbsetup{ThinSpaceInFrenchNumbers} - \MessageBreak Command \protect\ThinSpaceInFrenchNumbers\space - is no longer\MessageBreak defined in frenchb v.~2,}} -\@namedef{captions\CurrentOption}{% - \def\refname{R{\FBeacute}f{\FBeacute}rences}% - \def\abstractname{R{\FBeacute}sum{\FBeacute}}% - \def\bibname{Bibliographie}% - \def\prefacename{Pr{\FBeacute}face}% - \def\chaptername{Chapitre}% - \def\appendixname{Annexe}% - \def\contentsname{Table des mati{\FBegrave}res}% - \def\listfigurename{Table des figures}% - \def\listtablename{Liste des tableaux}% - \def\indexname{Index}% - \def\figurename{{\scshape Figure}}% - \def\tablename{{\scshape Table}}% - \def\partname{\protect\@Fpt partie}% - \def\@Fpt{{\ifcase\value{part}\or Premi{\FBegrave}re\or - Deuxi{\FBegrave}me\or Troisi{\FBegrave}me\or - Quatri{\FBegrave}me\or Cinqui{\FBegrave}me\or - Sixi{\FBegrave}me\or Septi{\FBegrave}me\or Huiti{\FBegrave}me\or - Neuvi{\FBegrave}me\or Dixi{\FBegrave}me\or Onzi{\FBegrave}me\or - Douzi{\FBegrave}me\or Treizi{\FBegrave}me\or - Quatorzi{\FBegrave}me\or Quinzi{\FBegrave}me\or - Seizi{\FBegrave}me\or Dix-septi{\FBegrave}me\or - Dix-huiti{\FBegrave}me\or Dix-neuvi{\FBegrave}me\or - Vingti{\FBegrave}me\fi}\space\def\thepart{}}% - \def\pagename{page}% - \def\seename{voir}% - \def\alsoname{voir aussi}% - \def\enclname{P.~J. }% - \def\ccname{Copie {\FBagrave} }% - \def\headtoname{}% - \def\proofname{D{\FBeacute}monstration}% - \def\glossaryname{Glossaire}% - } -\AtBeginDocument{\let\captions@French\captionsfrench - \@ifundefined{captionsfrenchb}% - {\let\captions@Frenchb\relax}% - {\let\captions@Frenchb\captionsfrenchb}% - \@ifundefined{captionsfrancais}% - {\let\captions@Francais\relax}% - {\let\captions@Francais\captionsfrancais}% - \def\captionsfrench{\captions@French - \captions@Francais\captions@Frenchb}% - \def\captionsfrancais{\captionsfrench}% - \def\captionsfrenchb{\captionsfrench}% - } -\@ifpackagewith{babel}{canadien}{% - \def\captionscanadien{\captionsfrench}% - \def\datecanadien{\datefrench}% - \def\extrascanadien{\extrasfrench}% - \def\noextrascanadien{\noextrasfrench}% - }{} -\@ifpackagewith{babel}{acadian}{% - \def\captionsacadian{\captionsfrench}% - \def\dateacadian{\datefrench}% - \def\extrasacadian{\extrasfrench}% - \def\noextrasacadian{\noextrasfrench}% - }{} +\StartBabelCommands*{\BabelLanguages}{captions} + [unicode, fontenc=EU1 EU2, 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} + \SetStringLoop{ordinal#1}{% + Première,Deuxième,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}{{\scshape Figure}} + \SetString{\tablename}{{\scshape 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} + \SetStringLoop{ordinal#1}{% + Premi\`ere,Deuxi\`eme,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@Rpart}{\def\thepart{\Roman{part}}}% + } + \SetString{\partname}{% + \csname ordinal\romannumeral\value{part}\endcsname\space + partie\FB@emptypart} +\EndBabelCommands +\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}[2]{\PackageWarning{#1}{#2}} -\newcommand*{\CaptionSeparatorORI}{\string:\space} \newcommand*{\CaptionSeparator}{\space\textendash\space} -\def\FBCaption@Separator{\CaptionSeparatorORI} +\def\FBCaption@Separator{:\space} \long\def\FB@makecaption#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{#1\FBCaption@Separator #2}% @@ -648,11 +793,15 @@ \@ifclassloaded{amsdtx}{\@FBwarning@capsepfalse}{} \@ifclassloaded{amsldoc}{\@FBwarning@capsepfalse}{} \@ifclassloaded{amproc}{\@FBwarning@capsepfalse}{} -\AtBeginDocument{% - \@ifundefined{captionformat}% - {\let\captionformat\undefined}% - {\@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}{} +\ifdefined\@makecaption\else\@FBwarning@capsepfalse\fi \@ifpackageloaded{caption} {\FBWarning{frenchb.ldf}% {Please load the "caption" package\MessageBreak @@ -668,200 +817,27 @@ \AtBeginDocument{% \ifx\@makecaption\STD@makecaption \global\let\@makecaption\FB@makecaption + \ifFBOldFigTabCaptions + \else + \def\FBCaption@Separator{\iflanguage{french}{ : }{: }}% + \fi + \ifFBCustomiseFigTabCaptions + \ifx\bbl@main@language\FB@french + \def\FBCaption@Separator{\CaptionSeparator}% + \fi + \fi \@FBwarning@capsepfalse \fi \if@FBwarning@capsep \FBWarning{frenchb.ldf}% - {The definition of \protect\@makecaption\space - has been changed,\MessageBreak - frenchb will NOT customise it;\MessageBreak reported}% + {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 } -\addto\extrasfrench{% - \def\FBCaption@Separator{\CaptionSeparator}} -\addto\noextrasfrench{% - \def\FBCaption@Separator{\CaptionSeparatorORI}} -\let\listORI\list -\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}} -\newcommand*{\FrenchLabelItem}{\textemdash} -\newcommand*{\Frlabelitemi}{\FrenchLabelItem} -\newcommand*{\Frlabelitemii}{\FrenchLabelItem} -\newcommand*{\Frlabelitemiii}{\FrenchLabelItem} -\newcommand*{\Frlabelitemiv}{\FrenchLabelItem} -\newif\ifFB@enterFrench \FB@enterFrenchtrue -\def\bbl@frenchlabelitems{% - \ifFB@enterFrench - \let\@ltiORI\labelitemi - \let\@ltiiORI\labelitemii - \let\@ltiiiORI\labelitemiii - \let\@ltivORI\labelitemiv - \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 - \FB@enterFrenchfalse - \fi -} -\def\bbl@nonfrenchlabelitems{% - \ifFB@enterFrench - \else - \let\Frlabelitemi\labelitemi - \let\Frlabelitemii\labelitemii - \let\Frlabelitemiii\labelitemiii - \let\Frlabelitemiv\labelitemiv - \let\labelitemi\@ltiORI - \let\labelitemii\@ltiiORI - \let\labelitemiii\@ltiiiORI - \let\labelitemiv\@ltivORI - \FB@enterFrenchtrue - \fi -} -\newlength\listindentFB -\setlength{\listindentFB}{-1pt} -\newlength\labelwidthFB -\setlength{\labelwidthFB}{-1pt} -\newlength\leftmarginFB -\def\FB@listHsettings{% - \leftmarginFB\labelwidthFB - \advance\leftmarginFB \labelsep - \leftmargini\leftmarginFB - \advance\leftmargini \listindentFB - \leftmarginii\leftmarginFB - \leftmarginiii\leftmarginFB - \leftmarginiv\leftmarginFB - \leftmargin\csname leftmargin\romannumeral\the\@listdepth\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} -\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} -\def\descriptionFB{% - \list{}{\FB@listHsettings - \labelwidth\z@ \itemindent-\leftmargin - \let\makelabel\descriptionlabel}} -\def\bbl@frenchindent{\let\@afterindentfalse\@afterindenttrue - \@afterindenttrue} -\def\bbl@nonfrenchindent{\let\@afterindentfalse\@aifORI - \@afterindentfalse} -\AtBeginDocument{\@ifpackageloaded{bigfoot}% - {\FBWarning{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}% - } -\newcommand*{\dotFFN}{.} -\newcommand*{\kernFFN}{\kern .5em} -\newdimen\parindentFFN -\parindentFFN=10in -\def\ftnISsymbol{\@fnsymbol\c@footnote} -\long\def\@makefntextFB#1{\ifx\thefootnote\ftnISsymbol - \@makefntextORI{#1}% - \else - \parindent=\parindentFFN - \rule\z@\footnotesep - \setbox\@tempboxa\hbox{\@thefnmark}% - \ifdim\wd\@tempboxa>\z@ - \llap{\@thefnmark}\dotFFN\kernFFN - \fi #1 - \fi}% -\AtBeginDocument{\@ifpackageloaded{bigfoot}{}% - {\ifdim\parindentFFN<10in - \else - \parindentFFN=\parindent - \ifdim\parindentFFN<1.5em\parindentFFN=1.5em\fi - \fi - \let\@makefntextORI\@makefntext - \long\def\@makefntext#1{% - \ifFBFrenchFootnotes - \@makefntextFB{#1}% - \else - \@makefntextORI{#1}% - \fi}% - }% - } -\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue} -\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue} -\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse} -\newcommand*{\FrenchLayout}{% - \FBGlobalLayoutFrenchtrue - \PackageWarning{frenchb.ldf}% - {\protect\FrenchLayout\space is obsolete. Please use\MessageBreak - \protect\frenchbsetup{GlobalLayoutFrench} instead.}% -} -\newcommand*{\StandardLayout}{% - \FBReduceListSpacingfalse - \FBCompactItemizefalse - \FBStandardItemLabelstrue - \FBIndentFirstfalse - \FBFrenchFootnotesfalse - \FBAutoSpaceFootnotesfalse - \PackageWarning{frenchb.ldf}% - {\protect\StandardLayout\space is obsolete. Please use\MessageBreak - \protect\frenchbsetup{StandardLayout} instead.}% -} -\@onlypreamble\FrenchLayout -\@onlypreamble\StandardLayout \ifFBunicode \let\FBtextellipsis\textellipsis \else @@ -869,23 +845,23 @@ \DeclareTextCommandDefault{\FBtextellipsis}{% .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace} \fi -\newcommand*{\Tdots@ORI}{\@xp\textellipsis} -\newcommand*{\Tdots@}{\Tdots@ORI} +\newcommand*{\Tdots@}{\@xp\textellipsis} \newcommand*{\Mdots@}{\@xp\mdots@} \AtBeginDocument{\DeclareRobustCommand*{\dots}{\relax \csname\ifmmode M\else T\fi dots@\endcsname}% - \@ifundefined{@xp}{\let\@xp\relax}{}% - \@ifundefined{mdots@}{\let\Tdots@ORI\textellipsis - \let\Mdots@\mathellipsis - \let\mdots@\undefined}{}} -\def\bbl@frenchdots{\let\Tdots@\FBtextellipsis} -\def\bbl@nonfrenchdots{\let\Tdots@\Tdots@ORI} -\addto\extrasfrench{\bbl@frenchdots} -\addto\noextrasfrench{\bbl@nonfrenchdots} + \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} +\newcommand*{\frenchbsetup}[1]{% + \setkeys{FB}{#1}% +}% +\@onlypreamble\frenchbsetup \newif\ifFBStandardLayout \FBStandardLayouttrue -\newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchfalse +\newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchtrue \newif\ifFBReduceListSpacing \FBReduceListSpacingfalse -\newif\ifFBListOldLayout \FBListOldLayouttrue +\newif\ifFBListOldLayout \FBListOldLayoutfalse \newif\ifFBCompactItemize \FBCompactItemizefalse \newif\ifFBStandardItemizeEnv \FBStandardItemizeEnvtrue \newif\ifFBStandardEnumerateEnv \FBStandardEnumerateEnvtrue @@ -900,36 +876,33 @@ \newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue \newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue \newif\ifFBPartNameFull \FBPartNameFulltrue +\newif\ifFBCustomiseFigTabCaptions \FBCustomiseFigTabCaptionsfalse +\newif\ifFBOldFigTabCaptions \FBOldFigTabCaptionsfalse \newif\ifFBSuppressWarning \FBSuppressWarningfalse \newif\ifFBShowOptions \FBShowOptionsfalse -\def\FB@french{french} +\edef\FB@french{\CurrentOption} \AtEndOfPackage{% \ifx\bbl@main@language\FB@french + \FBGlobalLayoutFrenchtrue \FBReduceListSpacingtrue - \FBListOldLayoutfalse - \FBCompactItemizetrue \FBStandardItemizeEnvfalse \FBStandardEnumerateEnvfalse \FBStandardItemLabelsfalse \FBIndentFirsttrue \FBFrenchFootnotestrue \FBAutoSpaceFootnotestrue - \FBGlobalLayoutFrenchtrue + \FBCustomiseFigTabCaptionstrue + \else + \FBGlobalLayoutFrenchfalse \fi -} -\newcommand*{\frenchbsetup}[1]{% - \setkeys{FB}{#1}% -}% -\@onlypreamble\frenchbsetup -\AtEndOfPackage{% - \RequirePackage{keyval}% - \define@key{FB}{StandardLayout}[true]% + \RequirePackage{keyval}% + \define@key{FB}{StandardLayout}[true]% {\csname FBStandardLayout#1\endcsname \ifFBStandardLayout \FBReduceListSpacingfalse \FBStandardItemizeEnvtrue - \FBStandardEnumerateEnvtrue \FBStandardItemLabelstrue + \FBStandardEnumerateEnvtrue \FBIndentFirstfalse \FBFrenchFootnotesfalse \FBAutoSpaceFootnotesfalse @@ -937,38 +910,32 @@ \else \FBReduceListSpacingtrue \FBStandardItemizeEnvfalse - \FBStandardEnumerateEnvfalse \FBStandardItemLabelsfalse + \FBStandardEnumerateEnvfalse \FBIndentFirsttrue \FBFrenchFootnotestrue \FBAutoSpaceFootnotestrue \fi}% - \define@key{FB}{GlobalLayoutFrench}[true]% + \define@key{FB}{GlobalLayoutFrench}[true]% {\csname FBGlobalLayoutFrench#1\endcsname - \ifFBGlobalLayoutFrench + \ifFBGlobalLayoutFrench \ifx\bbl@main@language\FB@french - \FBReduceListSpacingtrue - \FBStandardItemizeEnvfalse - \FBStandardEnumerateEnvfalse - \FBStandardItemLabelsfalse - \FBIndentFirsttrue - \FBFrenchFootnotestrue - \FBAutoSpaceFootnotestrue \else \PackageWarning{frenchb.ldf}% - {Option `GlobalLayoutFrench' skipped: + {Option `GlobalLayoutFrench' skipped:% \MessageBreak French is *not* babel's last option.\MessageBreak}% \fi \fi}% - \define@key{FB}{ReduceListSpacing}[true]% + \define@key{FB}{ReduceListSpacing}[true]% {\csname FBReduceListSpacing#1\endcsname}% - \define@key{FB}{ListOldLayout}[true]% + \define@key{FB}{ListOldLayout}[true]% {\csname FBListOldLayout#1\endcsname \ifFBListOldLayout + \FBStandardEnumerateEnvtrue \renewcommand*{\FrenchLabelItem}{\textendash}% \fi}% - \define@key{FB}{CompactItemize}[true]% + \define@key{FB}{CompactItemize}[true]% {\csname FBCompactItemize#1\endcsname \ifFBCompactItemize \FBStandardItemizeEnvfalse @@ -977,23 +944,23 @@ \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]% + \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}{% + \define@key{FB}{ItemLabels}{% \renewcommand*{\FrenchLabelItem}{#1}}% - \define@key{FB}{ItemLabeli}{% + \define@key{FB}{ItemLabeli}{% \renewcommand*{\Frlabelitemi}{#1}}% - \define@key{FB}{ItemLabelii}{% - \renewcommand*{\Frlabelitemii}{#1}}% - \define@key{FB}{ItemLabeliii}{% + \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]% + \define@key{FB}{ItemLabeliv}{% + \renewcommand*{\Frlabelitemiv}{#1}}% + \define@key{FB}{StandardLists}[true]% {\csname FBStandardLists#1\endcsname \ifFBStandardLists \FBReduceListSpacingfalse @@ -1008,251 +975,213 @@ \FBStandardEnumerateEnvfalse \FBStandardItemLabelsfalse \fi}% - \define@key{FB}{IndentFirst}[true]% + \define@key{FB}{IndentFirst}[true]% {\csname FBIndentFirst#1\endcsname}% - \define@key{FB}{FrenchFootnotes}[true]% + \define@key{FB}{FrenchFootnotes}[true]% {\csname FBFrenchFootnotes#1\endcsname}% - \define@key{FB}{AutoSpaceFootnotes}[true]% + \define@key{FB}{AutoSpaceFootnotes}[true]% {\csname FBAutoSpaceFootnotes#1\endcsname}% - \define@key{FB}{AutoSpacePunctuation}[true]% + \define@key{FB}{AutoSpacePunctuation}[true]% {\csname FBAutoSpacePunctuation#1\endcsname}% - \define@key{FB}{OriginalTypewriter}[true]% + \define@key{FB}{OriginalTypewriter}[true]% {\csname FBOriginalTypewriter#1\endcsname}% - \define@key{FB}{ThinColonSpace}[true]% + \define@key{FB}{ThinColonSpace}[true]% {\csname FBThinColonSpace#1\endcsname}% - \define@key{FB}{ThinSpaceInFrenchNumbers}[true]% + \define@key{FB}{ThinSpaceInFrenchNumbers}[true]% {\csname FBThinSpaceInFrenchNumbers#1\endcsname}% - \define@key{FB}{FrenchSuperscripts}[true]% + \define@key{FB}{FrenchSuperscripts}[true]% {\csname FBFrenchSuperscripts#1\endcsname} - \define@key{FB}{LowercaseSuperscripts}[true]% + \define@key{FB}{LowercaseSuperscripts}[true]% {\csname FBLowercaseSuperscripts#1\endcsname} - \define@key{FB}{PartNameFull}[true]% - {\csname FBPartNameFull#1\endcsname}% - \define@key{FB}{SuppressWarning}[true]% + \define@key{FB}{PartNameFull}[true]% + {\csname FBPartNameFull#1\endcsname + \ifFBPartNameFull + \else + \FB@addto{captions}{% + \def\partname{Partie\protect\FB@Rpart}}% + \fi}% + \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}{SuppressWarning}[true]% {\csname FBSuppressWarning#1\endcsname \ifFBSuppressWarning \renewcommand{\FBWarning}[2]{\relax}% - \else - \renewcommand{\FBWarning}[2]{% - \PackageWarning{##1}{##2}}% - \fi} - \define@key{FB}{ShowOptions}[true]% + \fi}% + \define@key{FB}{ShowOptions}[true]% {\csname FBShowOptions#1\endcsname}% - \define@key{FB}{og}{% - \newcommand*{\FB@@og}{% - \iflanguage{french}% - {\ifFBAutoSpaceGuill\FB@og\ignorespaces - \else\guillemotleft - \fi}% - {\guillemotleft}}% + \define@key{FB}{og}{% + \ifFB@active@punct + \newcommand*{\FB@@og}{% + \iflanguage{french}% + {\ifFBAutoSpaceGuill\FB@og\ignorespaces + \else\guillemotleft + \fi}% + {\guillemotleft}}% + \fi \ifFBunicode - \ifFB@xetex@punct - \XeTeXcharclass"00AB = \FB@punctguilo - \FBguillo@addspacetrue \FBog@addspacefalse + \ifFB@luatex@punct + \FB@addGUILspace=1 \relax \else - \catcode`#1=\active - \bgroup - \uccode`\~`#1% - \uppercase{% - \egroup - \def~% - }{\FB@@og}% + \ifFB@xetex@punct + \XeTeXcharclass"AB = \FB@guilo + \XeTeXcharclass"A0 = \FB@guilnul + \XeTeXcharclass"202F = \FB@guilnul + \else + \catcode`#1=\active + \bgroup + \uccode`\~`#1% + \uppercase{% + \egroup + \def~% + }{\FB@@og}% + \fi \fi \else - \AtBeginDocument - {\@ifundefined{DeclareInputText}% - {\PackageWarning{frenchb.ldf}% - {Option `og' requires package inputenc.\MessageBreak}% - \let\DeclareInputText\undefined - }% - {\@ifundefined{uc@dclc}% - {\@ifundefined{DeclareUnicodeCharacter}% - {\@tempcnta`#1\relax - \@ifundefined{mule@def}% - {\DeclareInputText{\the\@tempcnta}{\FB@@og}% - \let\mule@def\undefined}% - {\mule@def{11}{{\FB@@og}}}% - \let\DeclareUnicodeCharacter\undefined - }% - {\DeclareUnicodeCharacter{00AB}{\FB@@og}}% - \let\uc@dclc\undefined - }% - {\uc@dclc{171}{default}{\FB@@og}}% - }% - }% + \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}% + \fi + }% + \fi + }% + \define@key{FB}{fg}{% + \ifFB@active@punct + \newcommand*{\FB@@fg}{% + \iflanguage{french}% + {\ifFBAutoSpaceGuill\FB@fg + \else\guillemotright + \fi}% + {\guillemotright}}% \fi - }% - \define@key{FB}{fg}{% - \newcommand*{\FB@@fg}{% - \iflanguage{french}% - {\ifFBAutoSpaceGuill\FB@fg - \else\guillemotright - \fi}% - {\guillemotright}}% \ifFBunicode - \ifFB@xetex@punct - \XeTeXcharclass"00BB = \FB@punctguilf - \FBguillf@addspacetrue \FBfg@addspacefalse + \ifFB@luatex@punct + \FB@addGUILspace=1 \relax \else - \catcode`#1=\active - \bgroup - \uccode`\~`#1% - \uppercase{% - \egroup - \def~% - }{{\FB@@fg}}% + \ifFB@xetex@punct + \XeTeXcharclass"BB = \FB@guilf + \XeTeXcharclass"A0 = \FB@guilnul + \XeTeXcharclass"202F = \FB@guilnul + \else + \catcode`#1=\active + \bgroup + \uccode`\~`#1% + \uppercase{% + \egroup + \def~% + }{{\FB@@fg}}% + \fi \fi \else - \AtBeginDocument - {\@ifundefined{DeclareInputText}% - {\PackageWarning{frenchb.ldf}% + \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}% - \let\DeclareInputText\undefined - }% - {\@ifundefined{uc@dclc}% - {\@ifundefined{DeclareUnicodeCharacter}% - {\@tempcnta`#1\relax - \@ifundefined{mule@def}% - {\DeclareInputText{\the\@tempcnta}{{\FB@@fg}}% - \let\mule@def\undefined - }% - {\mule@def{27}{{\FB@@fg}}}% - \let\DeclareUnicodeCharacter\undefined - }% - {\DeclareUnicodeCharacter{00BB}{{\FB@@fg}}% - }% - \let\uc@dclc\undefined - }% - {\uc@dclc{187}{default}{{\FB@@fg}}}% - }% - }% + \fi + }% \fi - }% + }% } \newcommand*{\FBprocess@options}{% - \ifFBReduceListSpacing - \addto\extrasfrench{\let\list\listFB - \let\endlist\endlistFB}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \let\list\listFB - \let\endlist\endlistFB - \else - \let\list\listORI - \let\endlist\endlistORI - \fi}% - \else - \addto\extrasfrench{\let\list\listORI - \let\endlist\endlistORI - }% - \addto\noextrasfrench{\let\list\listORI - \let\endlist\endlistORI - }% - \fi - \ifFBListOldLayout - \FBStandardEnumerateEnvtrue - \fi \@ifpackageloaded{enumitem}{% \ifFBStandardItemizeEnv \else - \FBWarning{frenchb.ldf}% + \FBStandardItemizeEnvtrue + \PackageInfo{frenchb.ldf}% {Setting StandardItemizeEnv=true for\MessageBreak compatibility with enumitem package,\MessageBreak}% - \FBStandardItemizeEnvtrue \fi \ifFBStandardEnumerateEnv \else - \FBWarning{frenchb.ldf}% + \FBStandardEnumerateEnvtrue + \PackageInfo{frenchb.ldf}% {Setting StandardEnumerateEnv=true for\MessageBreak compatibility with enumitem package,\MessageBreak}% - \FBStandardEnumerateEnvtrue - \fi}% - {}% + \fi}{}% \@ifpackageloaded{paralist}{% \ifFBStandardItemizeEnv \else - \FBWarning{frenchb.ldf}% + \FBStandardItemizeEnvtrue + \PackageInfo{frenchb.ldf}% {Setting StandardItemizeEnv=true for\MessageBreak compatibility with paralist package,\MessageBreak}% - \FBStandardItemizeEnvtrue \fi \ifFBStandardEnumerateEnv \else - \FBWarning{frenchb.ldf}% + \FBStandardEnumerateEnvtrue + \PackageInfo{frenchb.ldf}% {Setting StandardEnumerateEnv=true for\MessageBreak compatibility with paralist package,\MessageBreak}% - \FBStandardEnumerateEnvtrue - \fi}% - {}% + \fi}{}% \@ifpackageloaded{enumerate}{% \ifFBStandardEnumerateEnv \else - \FBWarning{frenchb.ldf}% + \FBStandardEnumerateEnvtrue + \PackageInfo{frenchb.ldf}% {Setting StandardEnumerateEnv=true for\MessageBreak compatibility with enumerate package,\MessageBreak}% - \FBStandardEnumerateEnvtrue - \fi}% - {}% - \ifFBStandardItemizeEnv - \addto\extrasfrench{\let\itemize\itemizeORI}% - \addto\noextrasfrench{\let\itemize\itemizeORI}% - \else - \addto\extrasfrench{\let\itemize\itemizeFB}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \let\itemize\itemizeFB - \else - \let\itemize\itemizeORI - \fi}% - \fi - \ifFBStandardEnumerateEnv - \addto\extrasfrench{\let\enumerate\enumerateORI - \let\description\descriptionORI}% - \addto\noextrasfrench{\let\enumerate\enumerateORI - \let\description\descriptionORI}% - \else - \addto\extrasfrench{\let\enumerate\enumerateFB - \let\description\descriptionFB}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \let\enumerate\enumerateFB - \let\description\descriptionFB - \else - \let\enumerate\enumerateORI - \let\description\descriptionORI - \fi}% - \fi - \ifFBStandardItemLabels - \addto\extrasfrench{\bbl@nonfrenchlabelitems}% - \addto\noextrasfrench{\bbl@nonfrenchlabelitems}% - \else - \addto\extrasfrench{\bbl@frenchlabelitems}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \bbl@frenchlabelitems - \else - \bbl@nonfrenchlabelitems - \fi}% - \fi - \ifFBIndentFirst - \addto\extrasfrench{\bbl@frenchindent}% - \addto\noextrasfrench{\ifFBGlobalLayoutFrench - \bbl@frenchindent - \else - \bbl@nonfrenchindent - \fi}% - \else - \addto\extrasfrench{\bbl@nonfrenchindent}% - \addto\noextrasfrench{\bbl@nonfrenchindent}% + \fi}{}% + \def\FB@ufl{\update@frenchlists} + \ifx\bbl@main@language\FB@french + \update@frenchlists \fi \ifFBAutoSpacePunctuation - \autospace@beforeFDP + \autospace@beforeFDP \else - \noautospace@beforeFDP + \noautospace@beforeFDP \fi \ifFBOriginalTypewriter \else + \let\ttfamilyORI\ttfamily + \let\rmfamilyORI\rmfamily + \let\sffamilyORI\sffamily \let\ttfamily\ttfamilyFB \let\rmfamily\rmfamilyFB \let\sffamily\sffamilyFB \fi - \ifFBThinColonSpace\renewcommand*{\FBcolonspace}{\FBthinspace}\fi + \ifFBThinColonSpace + \ifFB@luatex@punct + \FBcolonskip=\FBthinskip\relax + \else + \renewcommand*{\FBcolonspace}{\FBthinspace}% + \fi + \fi \@ifpackageloaded{numprint}% {\ifnprt@autolanguage \providecommand*{\npstylefrench}{}% @@ -1287,8 +1216,19 @@ \else \renewcommand*{\FB@lc}[1]{##1}% \fi - \ifFBPartNameFull - \else\addto\captionsfrench{\def\partname{Partie}}\fi + \ifFBCustomiseFigTabCaptions + \ifFB@koma + \let\captionformat\CaptionSeparator + \fi + \@ifclassloaded{memoir}% + {\captiondelim{\CaptionSeparator}}{}% + \else + \ifFB@koma + \def\captionformat{\iflanguage{french}{ : }{: }}% + \fi + \@ifclassloaded{memoir}% + {\captiondelim{\iflanguage{french}{ : }{: }}}{}% + \fi \ifFBShowOptions \GenericWarning{* }{% * **** List of possible options for frenchb ****\MessageBreak @@ -1324,37 +1264,17 @@ LowercaseSuperscripts=false [true]\MessageBreak PartNameFull=false [true]\MessageBreak SuppressWarning=true [false]\MessageBreak - og= <left quote character>, fg= <right quote character> + CustomiseFigTabCaptions=false [true]\MessageBreak + og= <left quote character>, fg= <right quote character>% \MessageBreak - ********************************************* + *********************************************% \MessageBreak\protect\frenchbsetup{ShowOptions}} \fi } \AtBeginDocument{% - \ifx\@afterindentfalse\@afterindenttrue - \let\@aifORI\@afterindenttrue - \else \let\@aifORI\@afterindentfalse - \fi - \let\listORI\list - \let\endlistORI\endlist - \let\endlistFB\endlist - \let\itemizeORI\itemize - \let\enditemizeORI\endlist - \let\enditemizeFB\endlist - \let\enumerateORI\enumerate - \let\endenumerateORI\endlist - \let\endenumerateFB\endlist - \let\descriptionORI\description - \let\enddescriptionORI\endlist - \let\enddescriptionFB\endlist - \let\@ltiORI\labelitemi - \let\@ltiiORI\labelitemii - \let\@ltiiiORI\labelitemiii - \let\@ltivORI\labelitemiv \providecommand*{\xspace}{\relax}% - \@ifundefined{pdfstringdefDisableCommands}% - {\let\pdfstringdefDisableCommands\undefined}% - {\pdfstringdefDisableCommands{% + \ifdefined\pdfstringdefDisableCommands + \pdfstringdefDisableCommands{% \let\up\relax \let\fup\relax \let\degre\textdegree @@ -1377,37 +1297,24 @@ \def\circonflexe{\string^}% \def\tild{\string~}% \let\bsc\textsc - }% - }% - \FBprocess@options - \let\bbl@nonfrenchspacingORI\bbl@nonfrenchspacing - \let\bbl@nonfrenchspacing\relax - \@ifundefined{captionformat}% - {\let\captionformat\undefined}% - {\let\CaptionSeparatorORI\captionformat - \addto\extrasfrench{% - \renewcommand*{\captionformat}{\CaptionSeparator}}% - \addto\noextrasfrench{% - \renewcommand*{\captionformat}{\CaptionSeparatorORI}}% - }% - \ifx\bbl@main@language\FB@french - \extrasfrench\captionsfrench - \else - \noextrasfrench + }% \fi - \let\bbl@nonfrenchspacing\bbl@nonfrenchspacingORI - \ifFBXeTeX - \@ifundefined{DeclareUTFcharacter}% - {\PackageWarning{frenchb.ldf}% - {Add \protect\usepackage{xltxtra} to the\MessageBreak + \FBprocess@options + \ifFB@luatex@punct + \activate@luatexpunct + \fi + \ifFBunicode + \ifdefined\DeclareUTFcharacter + \else + \PackageWarning{frenchb.ldf}% + {Add \protect\usepackage{fontspec} to the\MessageBreak preamble of your document,}% - \let\DeclareUTFcharacter\undefined}% - {}% - \else + \fi + \else \begingroup \newcommand{\FBOTone}{OT1}% \ifx\encodingdefault\FBOTone \PackageWarning{frenchb.ldf}% - {OT1 encoding should not be used for French. + {OT1 encoding should not be used for French.% \MessageBreak Add \protect\usepackage[T1]{fontenc} to the preamble\MessageBreak of your document,}% @@ -1415,9 +1322,195 @@ \endgroup \fi } -\loadlocalcfg{frenchb} +\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\labelwidthFB +\setlength{\labelwidthFB}{-1pt} +\newlength\leftmarginFB +\def\FB@listHsettings{% + \leftmarginFB\labelwidthFB + \advance\leftmarginFB \labelsep + \leftmargini\leftmarginFB + \advance\leftmargini \listindentFB + \leftmarginii\leftmarginFB + \leftmarginiii\leftmarginFB + \leftmarginiv\leftmarginFB + \leftmargin\csname leftmargin\romannumeral\the\@listdepth\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 +} +\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 + \advance\itemindent by \listindentFB + \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 + \fi + \FB@ufl +} +\def\bbl@nonfrenchlistlayout{% + \ifFBGlobalLayoutFrench + \update@frenchlists + \fi +} +\FB@addto{extras}{\bbl@frenchlistlayout} +\FB@addto{noextras}{\bbl@nonfrenchlistlayout} +\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}% + } +\newcommand*{\dotFFN}{.} +\newcommand*{\kernFFN}{\kern .5em} +\newdimen\parindentFFN +\parindentFFN=10in +\def\ftnISsymbol{\@fnsymbol\c@footnote} +\long\def\@makefntextFB#1{\ifx\thefootnote\ftnISsymbol + \@makefntextORI{#1}% + \else + \parindent=\parindentFFN + \rule\z@\footnotesep + \setbox\@tempboxa\hbox{\@thefnmark}% + \ifdim\wd\@tempboxa>\z@ + \llap{\@thefnmark}\dotFFN\kernFFN + \fi #1 + \fi}% +\AtBeginDocument{\@ifpackageloaded{bigfoot}{}% + {\ifdim\parindentFFN<10in + \else + \parindentFFN=\parindent + \ifdim\parindentFFN<1.5em \parindentFFN=1.5em \fi + \fi + \let\@makefntextORI\@makefntext + \long\def\@makefntext#1{% + \ifFBFrenchFootnotes + \@makefntextFB{#1}% + \else + \@makefntextORI{#1}% + \fi}% + }% + } +\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue} +\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue} +\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse} \FBclean@on@exit -\ldf@quit\CurrentOption +\ldf@finish\CurrentOption \endinput %% %% End of file `frenchb.ldf'. |