summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-03-09 21:30:03 +0000
committerKarl Berry <karl@freefriends.org>2014-03-09 21:30:03 +0000
commit0bfe05edb117d45b0720bc4f31d89be020b9c521 (patch)
treefd9bf569935867c88e87fe5f04464d91309ed5b0 /Master/texmf-dist/tex
parent65fff2c077cb5a94b0e949b80902cf73adb4abfd (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')
-rw-r--r--Master/texmf-dist/tex/generic/babel-french/frenchb.ldf1511
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'.