summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-07 23:20:00 +0000
committerKarl Berry <karl@freefriends.org>2013-05-07 23:20:00 +0000
commit5b966dbe971a184cdba145cc60f01008b8b4eb69 (patch)
treecc7130c3bef01e1e17d9dc83eb14df0c09686cf0 /Master/texmf-dist/source/generic
parent5be21ea43e12a7e7e0208ccc712d2001412b7ac7 (diff)
rm babel-frenchb, now babel-french
git-svn-id: svn://tug.org/texlive/trunk@30324 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic')
-rw-r--r--Master/texmf-dist/source/generic/babel-frenchb/frenchb.dtx3571
-rw-r--r--Master/texmf-dist/source/generic/babel-frenchb/frenchb.ins118
2 files changed, 0 insertions, 3689 deletions
diff --git a/Master/texmf-dist/source/generic/babel-frenchb/frenchb.dtx b/Master/texmf-dist/source/generic/babel-frenchb/frenchb.dtx
deleted file mode 100644
index e510c25a130..00000000000
--- a/Master/texmf-dist/source/generic/babel-frenchb/frenchb.dtx
+++ /dev/null
@@ -1,3571 +0,0 @@
-% \CheckSum{2913}
-%
-% \iffalse
-% Tell the \LaTeX\ system who we are and write an entry on the
-% transcript. Nothing to write to the .cfg file, if generated.
-%<*dtx>
-\ProvidesFile{frenchb.dtx}
-%</dtx>
-% \changes{v2.1d}{2008/05/04}{Argument of \cs{ProvidesLanguage} changed
-% from `french' to `frenchb', otherwise \cs{listfiles} prints
-% no date/version information. The bug with \cs{listfiles}
-% (introduced in v.~1.5!), was pointed out by Ulrike Fischer.}
-%<code>\ProvidesLanguage{frenchb}
-%\ProvidesFile{frenchb.dtx}
-%<*!cfg>
- [2013/03/14 v2.6b French support from the babel system]
-%</!cfg>
-%<*cfg>
-%% frenchb.cfg: configuration file for frenchb.ldf
-%% Daniel Flipo daniel.flipo at free.fr
-%</cfg>
-%% File `frenchb.dtx'
-%% Babel package for LaTeX version 2e
-%% Copyright (C) 1989 - 2013
-%% by Daniel Flipo, GUTenberg
-%
-%<*!cfg>
-%% Frenchb language Definition File
-%% Copyright (C) 1989 - 2013
-%% by Daniel Flipo, GUTenberg
-%
-%% Please report errors to: Daniel Flipo, GUTenberg
-%% daniel.flipo at free.fr
-%</!cfg>
-%
-% This file is part of the babel system, it provides the source
-% code for the French language definition file.
-%
-%<*filedriver>
-\documentclass[a4paper]{ltxdoc}
-\DeclareFontEncoding{T1}{}{}
-\DeclareFontSubstitution{T1}{lmr}{m}{n}
-\DeclareTextCommand{\guillemotleft}{OT1}{%
- {\fontencoding{T1}\fontfamily{lmr}\selectfont\char19}}
-\DeclareTextCommand{\guillemotright}{OT1}{%
- {\fontencoding{T1}\fontfamily{lmr}\selectfont\char20}}
-\newcommand*\TeXhax{\TeX hax}
-\newcommand*\babel{\textsf{babel}}
-\newcommand*\langvar{$\langle \mathit lang \rangle$}
-\newcommand*\note[1]{}
-\newcommand*\Lopt[1]{\textsf{#1}}
-\newcommand*\file[1]{\texttt{#1}}
-\lefthyphenmin=2 \righthyphenmin=3
-\begin{document}
-\setlength{\parindent}{0pt}
-\begin{center}
- \textbf{\Large A Babel language definition file for French}\\[3mm]^^A\]
- Daniel \textsc{Flipo}\\
- \texttt{daniel.flipo@free.fr}
-\end{center}
- \RecordChanges
- \DocInput{frenchb.dtx}
-\end{document}
-%</filedriver>
-% \fi
-% \GetFileInfo{frenchb.dtx}
-%
-% \section{The French language}
-%
-% The file \file{\filename}\footnote{The file described in this
-% section has version number \fileversion\ and was last revised on
-% \filedate.}, defines all the language definition macros for the
-% French language.
-%
-% Customisation for the French language is achieved following the
-% book ``Lexique des r\`egles typographiques en usage \`a
-% l'Imprimerie nationale'' troisi\`eme \'edition (1994),
-% ISBN-2-11-081075-0.
-%
-% First version released: 1.1 (1996/05/31) as part of
-% \babel-3.6beta.
-%
-% |frenchb| has been improved using helpful suggestions from many
-% people, mainly from Jacques Andr\'e, Michel Bovani, Thierry Bouche,
-% and Vincent Jalby. Thanks to all of them!
-%
-% This new version (2.x) has been designed to be used with \LaTeXe{}
-% and Plain\TeX{} formats only. \LaTeX-2.09 is no longer supported.
-% Changes between version 1.6 and \fileversion{} are listed in
-% subsection~\ref{ssec-changes} p.~\pageref{ssec-changes}.
-%
-% An extensive documentation is available in French here:\\
-% |http://daniel.flipo.free.fr/frenchb|
-%
-% \subsection{Basic interface}
-%
-% In a multilingual document, some typographic rules are language
-% dependent, i.e.\ spaces before `double punctuation' (|:| |;| |!|
-% |?|) in French, others concern the general layout (i.e.\ layout of
-% lists, footnotes, indentation of first paragraphs of sections) and
-% should apply to the whole document.
-%
-% Starting with version~2.2, |frenchb| behaves differently according
-% to \babel's \emph{main language} defined as the \emph{last}
-% option\footnote{Its name is kept in \texttt{\textbackslash
-% bbl@main@language}.} at \babel's loading. When French is
-% not \babel's main language, |frenchb| no longer alters the global
-% layout of the document (even in parts where French is the current
-% language): the layout of lists, footnotes, indentation of first
-% paragraphs of sections are not customised by |frenchb|.
-%
-% When French is loaded as the last option of \babel, |frenchb|
-% makes the following changes to the global layout, \emph{both in
-% French and in all other languages}\footnote{%
-% For each item, hooks are provided to reset standard
-% \LaTeX{} settings or to emulate the behavior of former versions
-% of \texttt{frenchb} (see command
-% \texttt{\textbackslash frenchbsetup\{\}},
-% section~\ref{ssec-custom}).}:
-% \begin{enumerate}
-% \item the first paragraph of each section is indented
-% (\LaTeX{} only);
-% \item the default items in itemize environment are set to `---'
-% instead of `\textbullet', and all vertical spacing and glue
-% is deleted; it is possible to change `---' to something else
-% (`--' for instance) using |\frenchbsetup{}|;
-% \item vertical spacing in general \LaTeX{} lists is
-% shortened;
-% \item footnotes are displayed ``\`a la fran\c{c}aise''.
-% \end{enumerate}
-%
-% Regarding local typography, the command |\selectlanguage{french}|
-% switches to the French language\footnote{%
-% \texttt{\textbackslash selectlanguage\{francais\}}
-% and \texttt{\textbackslash selectlanguage\{frenchb\}} are kept
-% for backward compatibility but should no longer be used.},
-% with the following effects:
-% \begin{enumerate}
-% \item French hyphenation patterns are made active;
-% \item `double punctuation' (|:| |;| |!| |?|) is made
-% active%\footnote{Actually, they are active in the whole
-% document, only their expansions differ in French and
-% outside French.} for correct spacing in French;
-% \item |\today| prints the date in French;
-% \item the caption names are translated into French
-% (\LaTeX{} only);
-% \item the space after |\dots| is removed in French.
-% \end{enumerate}
-%
-% Some commands are provided in |frenchb| to make typesetting
-% easier:
-% \begin{enumerate}
-% \item French quotation marks can be entered using the commands
-% |\og| and |\fg| which work in \LaTeXe and Plain\TeX,
-% their appearance depending on what is available to draw
-% them; even if you use \LaTeXe{} \emph{and} |T1|-encoding,
-% you should refrain from entering them as
-% |<<~French quotation marks~>>|: |\og| and |\fg| provide
-% better horizontal spacing.
-% |\og| and |\fg| can be used outside French, they typeset
-% then English quotes `` and ''.
-% \item A command |\up| is provided to typeset superscripts like
-% |M\up{me}| (abbreviation for ``Madame''), |1\up{er}| (for
-% ``premier''). Other commands are also provided for
-% ordinals: |\ier|, |\iere|, |\iers|, |\ieres|, |\ieme|,
-% |\iemes| (|3\iemes| prints 3\textsuperscript{es}).
-% \item Family names should be typeset in small capitals and never
-% be hyphenated, the macro |\bsc| (boxed small caps) does
-% this, e.g., |Leslie~\bsc{Lamport}| will produce
-% Leslie~\mbox{\textsc{Lamport}}. Note that composed names
-% (such as Dupont-Durant) may now be hyphenated on explicit
-% hyphens, this differs from |frenchb|~v.~1.x.
-% \item Commands |\primo|, |\secundo|, |\tertio| and |\quarto|
-% print 1\textsuperscript{o}, 2\textsuperscript{o},
-% 3\textsuperscript{o}, 4\textsuperscript{o}.
-% |\FrenchEnumerate{6}| prints 6\textsuperscript{o}.
-% \item Abbreviations for ``Num\'ero(s)'' and ``num\'ero(s)''
-% (N\textsuperscript{o} N\textsuperscript{os}
-% n\textsuperscript{o} and n\textsuperscript{os}~)
-% are obtained via the commands |\No|, |\Nos|, |\no|, |\nos|.
-% \item Two commands are provided to typeset the symbol for
-% ``degr\'e'': |\degre| prints the raw character and
-% |\degres| should be used to typeset temperatures (e.g.,
-% ``|20~\degres C|'' with an unbreakable space), or for
-% alcohols'' strengths (e.g., ``|45\degres|'' with \emph{no}
-% space in French).
-% \item In math mode the comma has to be surrounded with
-% braces to avoid a spurious space being inserted after it,
-% in decimal numbers for instance (see the \TeX{}book p.~134).
-% The command |\DecimalMathComma| makes the comma be an
-% ordinary character \emph{in French only} (no space added);
-% as a counterpart, if |\DecimalMathComma| is active, an
-% explicit space has to be added in lists and intervals:
-% |$[0,\ 1]$|, |$(x,\ y)$|. |\StandardMathComma| switches
-% back to the standard behaviour of the comma.
-% \item A command |\nombre| was provided in 1.x versions to easily
-% format numbers in slices of three digits separated either
-% by a comma in English or with a space in French; |\nombre|
-% is now mapped to |\numprint| from \file{numprint.sty}, see
-% \file{numprint.pdf} for more information.
-% \item |frenchb| has been designed to take advantage of the
-% \file{xspace} package if present: adding
-% |\usepackage{xspace}| in the preamble will force macros like
-% |\fg|, |\ier|, |\ieme|, |\dots|, \dots, to respect the
-% spaces you type after them, for instance typing
-% `|1\ier juin|' will print `1\textsuperscript{er} juin'
-% (no need for a forced space after |1\ier|).
-% \end{enumerate}
-%
-% \subsection{Customisation}
-% \label{ssec-custom}
-%
-% Up to version 1.6, customisation of |frenchb| was achieved
-% by entering commands in \file{frenchb.cfg}. This possibility
-% remains for compatibility, but \emph{should not longer be used}.
-% Version 2.0 introduces a new command |\frenchbsetup{}| using
-% the \file{keyval} syntax which should make it easier to choose
-% among the many options available. The command |\frenchbsetup{}|
-% is to appear in the preamble only (after loading \babel).
-%
-% \vspace{.5\baselineskip}
-% |\frenchbsetup{ShowOptions}| prints all available options to
-% the \file{.log} file, it is just meant as a remainder of the
-% list of offered options. As usual with \file{keyval} syntax,
-% boolean options (as |ShowOptions|) can be entered as
-% |ShowOptions=true| or just |ShowOptions|, the `|=true|' part
-% can be omitted.
-%
-% \vspace{.5\baselineskip}
-% The other options are listed below. Their default value is
-% shown between brackets, sometimes followed be a `\texttt{*}'.
-% The `\texttt{*}' means that the default shown applies when
-% |frenchb| is loaded as the \emph{last} option of \babel{}
-% ---\babel's \emph{main language}---, and is toggled otherwise:
-% \begin{itemize}
-% \item |StandardLayout=true [false*]| forces |frenchb| not to
-% interfere with the layout: no action on any kind of lists,
-% first paragraphs of sections are not indented (as in English),
-% no action on footnotes. This option replaces the former
-% command |\StandardLayout|. It might be used to avoid conflicts
-% with classes or packages which customise lists or footnotes.
-% \item |GlobalLayoutFrench=false [true*]| can be used, when French
-% is the main language, to emulate what prior versions of
-% |frenchb| (pre-2.2) did: lists, and first paragraphs
-% of sections will be displayed the standard way in other
-% languages than French, and ``\`a la fran\c{c}aise'' in French.
-% Note that the layout of footnotes is language independent
-% anyway (see below |FrenchFootnotes| and |AutoSpaceFootnotes|).
-% This option replaces the former command |\FrenchLayout|.
-% \item |ReduceListSpacing=false [true*]|; |frenchb| reduces the
-% values of the vertical spaces used in the \emph{all} list
-% environments in French (this includes itemize, enumerate,
-% description, but also abstract, quote, quotation and verse and
-% possibly others). Setting this option to |false|
-% reverts to the standard settings of |list|. This option
-% replaces the former command |\FrenchListSpacingfalse|.
-% \item |ListOldLayout=true [false]|; starting with version~2.6a,
-% the layout of lists has changed regarding leftmargins' sizes
-% and default itemize label (`---' instead of `--' up to~2.5k).
-% This option, provided for backward compatibility, displays
-% lists as they were up to version~2.5k.
-% \item |CompactItemize=false [true*]|; should no longer be used
-% (kept only for backward compatibility).
-% \item |StandardItemizeEnv=true [false*]|; |frenchb| redefines
-% the |itemize| environment to suppress any vertical space
-% between items of |itemize| lists in French and customize
-% leftmargins. Setting this option to |false| reverts to the
-% standard definition of |itemize|.
-% \item |StandardEnumerateEnv=true [false*]|; starting with
-% version~2.6a |frenchb| redefines the |enumerate| environment
-% to make leftmargins match those of the French version of
-% |itemize| lists. Setting this option to |false| reverts to
-% the standard definition of |enumerate|.
-% \item |StandardItemLabels=true [false*]| when set to |true| this
-% option stops |frenchb| from changing the labels in |itemize|
-% lists in French.
-% \item |ItemLabels=\textendash|, |\textbullet|, |\ding{43}|,
-% \dots, |[\textemdash*]|; when |StandardItemLabels=false| (the
-% default), this option enables to choose the label used in
-% |itemize| lists for all levels. The next three options do
-% the same but each one for one level only. Note that the
-% example |\ding{43}| requires |\usepackage{pifont}|.
-% \item |ItemLabeli=\textendash|, |\textbullet|, |\ding{43}|,
-% \dots,|[\textemdash*]|
-% \item |ItemLabelii=\textendash|, |\textbullet|, |\ding{43}|,
-% \dots, |[\textemdash*]|
-% \item |ItemLabeliii=\textendash|, |\textbullet|, |\ding{43}|,
-% \dots, |[\textemdash*]|
-% \item |ItemLabeliv=\textendash|, |\textbullet|, |\ding{43}|,
-% \dots, |[\textemdash*]|
-% \item |StandardLists=true [false*]| forbids |frenchb| to
-% customise any kind of list. Try the option |StandardLists|
-% in case of conflicts with classes or packages that customise
-% lists too. This option is just a shorthand for all four options
-% |ReduceListSpacing=false|, |StandardItemizeEnv=true|,
-% |StandardEnumerateEnv=true| and |StandardItemLabels=true|.
-% \item |IndentFirst=false [true*]|; |frenchb| normally forces
-% indentation of the first paragraph of sections.
-% When this option is set to |false|, the first paragraph of
-% will look the same in French and in English (not indented).
-% \item |FrenchFootnotes=false [true*]| reverts to the standard
-% layout of footnotes. By default |frenchb| typesets leading
-% numbers as `1.\hspace{.5em}' instead of `$\hbox{}^1$', but
-% has no effect on footnotes numbered with symbols (as in the
-% |\thanks| command). The former commands |\StandardFootnotes|
-% and |\FrenchFootnotes| are still there, |\StandardFootnotes|
-% can be useful when some footnotes are numbered with letters
-% (inside minipages for instance).
-% \item |AutoSpaceFootnotes=false [true*]| ; by default |frenchb|
-% adds a thin space in the running text before the number or
-% symbol calling the footnote. Making this option |false|
-% reverts to the standard setting (no space added).
-% \item |FrenchSuperscripts=false [true]| ; then
-% |\up=\textsuperscript| (option added in version 2.1).
-% Should only be made |false| to recompile older documents.
-% By default |\up| now relies on |\fup| designed to produce
-% better looking superscripts.
-% \item |AutoSpacePunctuation=false [true]|; in French, the user
-% \emph{should} input a space before the four characters `|:;!?|'
-% but as many people forget about it (even among native French
-% writers!), the default behaviour of |frenchb| is to
-% automatically add a |\thinspace| before `|;|' `|!|' `|?|' and a
-% normal (unbreakable) space before~`|:|' (this is recommended by
-% the French Imprimerie nationale). This is convenient in most
-% cases but can lead to addition of spurious spaces in URLs or in
-% MS-DOS paths but only if they are no typed using |\texttt| or
-% verbatim mode. When the current font is a monospaced
-% (typewriter) font, |AutoSpacePunctuation| is locally switched
-% to |false|, no spurious space is added in that case, so the
-% default behaviour of of |frenchb| in that area should be fine
-% in most circumstances.
-%
-% Choosing |AutoSpacePunctuation=false| will ensure that
-% a proper space will be added before `|:;!?|' \emph{if and only
-% if} a (normal) space has been typed in. Those who are unsure
-% about their typing in this area should stick to the default
-% option and type |\string;| |\string:| |\string!| |\string?|
-% instead of |;| |:| |!| |?| in case an unwanted space is
-% added by |frenchb|.
-% \item |ThinColonSpace=true [false]| changes the normal
-% (unbreakable) space added before the colon `:' to a thin space,
-% so that the same amount of space is added before any of the
-% four double punctuation characters. The default setting is
-% supported by the French Imprimerie nationale.
-% \item |LowercaseSuperscripts=false [true]| ; by default |frenchb|
-% inhibits the uppercasing of superscripts (for instance when they
-% are moved to page headers). Making this option |false|
-% will disable this behaviour (not recommended).
-% \item |PartNameFull=false [true]|; when true, |frenchb| numbers
-% the title of |\part{}| commands as ``Premi\`ere partie'',
-% ``Deuxi\`eme partie'' and so on. With some classes which change
-% the|\part{}| command (AMS and SMF classes do so), you will get
-% ``Premi\`ere partie~I'', ``Deuxi\`eme partie~II'' instead;
-% when this occurs, this option should be set to |false|,
-% part titles will then be printed as ``Partie I'', ``Partie II''.
-% \item |SuppressWarning=true [false]|; when true |frenchb| issues
-% no warnings if |\@makecaption| has been redefined or if the
-% \file{bigfoot} package is in use.
-% \item |og=|\texttt{\guillemotleft}, |fg=|\texttt{\guillemotright};
-% when guillemets characters are available on the keyboard
-% (through a compose key for instance), it is nice to use them
-% instead of typing |\og| and |\fg|. This option tells |frenchb|
-% which characters are opening and closing French guillemets
-% (they depend on the input encoding), then you can type either
-% \texttt{\guillemotleft{} guillemets \guillemotright}, or
-% \texttt{\guillemotleft{}guillemets\guillemotright} (with or
-% without spaces), to get properly typeset French quotes.
-% This option requires \file{inputenc} to be loaded with the
-% proper encoding, it works with 8-bits encodings (latin1,
-% latin9, ansinew, applemac,\dots) and multi-byte encodings
-% (utf8 and utf8x).
-% \end{itemize}
-%
-% \subsection{Hyphenation checks}
-% \label{ssec-hyphen}
-%
-% Once you have built your format, a good precaution would be to
-% perform some basic tests about hyphenation in French.
-% For \LaTeXe{} I suggest this:
-% \begin{itemize}
-% \item run the following file, with the encoding suitable for
-% your machine (\textit{my-encoding} will be |latin1| for
-% \textsc{unix} machines, |ansinew| for PCs running~Windows,
-% |applemac| or |latin1| for Macintoshs, or |utf8|\dots\\[3mm]^^A\]
-% |%%% Test file for French hyphenation.|\\
-% |\documentclass{article}|\\
-% |\usepackage[|\textit{my-encoding}|]{inputenc}|\\
-% |\usepackage[T1]{fontenc} % Use LM fonts|\\
-% |\usepackage{lmodern} % for French|\\
-% |\usepackage[frenchb]{babel}|\\
-% |\begin{document}|\\
-% |\showhyphens{signal container \'ev\'enement alg\`ebre}|\\
-% |\showhyphens{|\texttt{signal container \'ev\'enement
-% alg\`ebre}|}|\\
-% |\end{document}|
-% \item check the hyphenations proposed by \TeX{} in your log-file;
-% in French you should get with both 7-bit and 8-bit encodings\\
-% \texttt{si-gnal contai-ner \'ev\'e-ne-ment al-g\`ebre}.\\
-% Do not care about how accented characters are displayed in the
-% log-file, what matters is the position of the `|-|' hyphen
-% signs \emph{only}.
-% \end{itemize}
-% If they are all correct, your installation (probably) works fine,
-% if one (or more) is (are) wrong, ask a local wizard to see what's
-% going wrong and perform the test again (or e-mail me about what
-% happens).\\
-% Frequent mismatches:
-% \begin{itemize}
-% \item you get |sig-nal con-tainer|, this probably means that the
-% hyphenation patterns you are using are for US-English, not for
-% French;
-% \item you get no hyphen at all in \texttt{\'ev\'e-ne-ment}, this
-% probably means that you are using CM fonts and the macro
-% |\accent| to produce accented characters.
-% Using 8-bits fonts with built-in accented characters avoids
-% this kind of mismatch.
-% \end{itemize}
-%
-% \textbf{Options' order} -- Please remember that options are read
-% in the order they appear inside the |\frenchbsetup| command.
-% Someone wishing that |frenchb| leaves the layout of lists
-% and footnotes untouched but caring for indentation of first
-% paragraph of sections could choose
-% |\frenchbsetup{StandardLayout,IndentFirst}| and get the expected
-% layout. Choosing |\frenchbsetup{IndentFirst,StandardLayout}|
-% would not lead to the expected result: option |IndentFirst| would
-% be overwritten by |StandardLayout|.
-%
-% \subsection{Changes}
-% \label{ssec-changes}
-%
-% \subsubsection*{What's new in version 2.0?}
-%
-% Here is the list of all changes:
-% \begin{itemize}
-% \item Support for \LaTeX-2.09 and for \LaTeXe{} in compatibility
-% mode has been dropped. This version is meant for \LaTeXe{} and
-% Plain based formats (like \file{bplain}). \LaTeXe{} formats
-% based on ml\TeX{} are no longer supported either (plenty of
-% good 8-bits fonts are available now, so T1 encoding should
-% be preferred for typesetting in French). A warning is issued
-% when OT1 encoding is in use at the |\begin{document}|.
-% \item Customisation should now be handled by command
-% |\frenchbsetup{}|, \file{frenchb.cfg} (kept for compatibility)
-% should no longer be used. See section~\ref{ssec-custom} for
-% the list of available options.
-% \item Captions in figures and table have changed in French: former
-% abbreviations ``Fig.'' and ``Tab.'' have been replaced by full
-% names ``Figure'' and ``Table''. If this leads to formatting
-% problems in captions, you can add the following two commands to
-% your preamble (after loading \babel) to get the former captions\\
-% |\addto\captionsfrench{\def\figurename{{\scshape Fig.}}}|\\
-% |\addto\captionsfrench{\def\tablename{{\scshape Tab.}}}|.
-% \item The |\nombre| command is now provided by the \file{numprint}
-% package which has to be loaded \emph{after} \babel{} with the
-% option |autolanguage| if number formatting should depend on the
-% current language.
-% \item The |\bsc| command no longer uses an |\hbox| to stop
-% hyphenation of names but a |\kern0pt| instead. This change
-% enables \file{microtype} to fine tune the length of the
-% argument of |\bsc|; as a side-effect, compound names like
-% Dupont-Durand can now be hyphenated on explicit hyphens.
-% You can get back to the former behaviour of |\bsc| by adding\\
-% |\renewcommand*{\bsc}[1]{\leavevmode\hbox{\scshape #1}}|\\
-% to the preamble of your document.
-% \item Footnotes are now displayed ``\`a la fran\c caise'' for the
-% whole document, except with an explicit\\
-% |\frenchbsetup{AutoSpaceFootnotes=false,FrenchFootnotes=false}|.\\
-% Add this command if you want standard footnotes. It is still
-% possible to revert locally to the standard layout of footnotes
-% by adding |\StandardFootnotes| (inside a |minipage| environment
-% for instance).
-% \end{itemize}
-%
-% \subsubsection*{What's new in version 2.1?}
-%
-% New command |\fup| to typeset better looking superscripts.
-% Former command |\up| is now defined as |\fup|, an option
-% |\frenchbsetup{FrenchSuperscripts=false}| is provided for
-% backward compatibility. |\fup| was designed using ideas from
-% Jacques Andr\'e, Thierry Bouche and Ren\'e Fritz, thanks to them!
-%
-% \subsubsection*{What's new in version 2.2?}
-%
-% Starting with version~2.2a, |frenchb| alters the layout of
-% lists, footnotes, and the indentation of first paragraphs of
-% sections) \emph{only if} French is the ``main language''
-% (i.e. babel's last language option). The layout is global for
-% the whole document: lists, etc.\ look the same in French and in
-% other languages, everything is typeset ``\`a la fran\c caise''
-% if French is the ``main language'', otherwise |frenchb| doesn't
-% change anything regarding lists, footnotes, and indentation of
-% paragraphs.
-%
-% \subsubsection*{What's new in version 2.3?}
-%
-% Starting with version~2.3a, |frenchb| no longer inserts spaces
-% automatically before `|:;!?|' when a typewriter font is in use;
-% this was suggested by Yannis Haralambous to prevent
-% spurious spaces in computer source code or expressions like
-% \texttt{C\string:/foo}, \texttt{http\string://foo.bar},
-% etc. An option (|OriginalTypewriter|) is provided to get back
-% to the former behaviour of |frenchb|.
-%
-% Another probably invisible change: lowercase conversion in
-% |\up{}| is now achieved by the \LaTeX{} command |\MakeLowercase|
-% instead of \TeX's |\lowercase| command. This prevents error
-% messages when diacritics are used inside |\up{}| (diacritics
-% should \emph{never} be used in superscripts though!).
-%
-% \subsubsection*{What's new in version 2.4?}
-%
-% A new option |SuppressWarning| has been added (desactivated by
-% default) to suppress warnings if |\@makecaption| has been
-% redefined or if the \file{bigfoot} package is in use.
-%
-% French hyphenation patterns are now coded in Unicode, see file
-% \file{hyph-fr.tex}. Extra code has been added to deal with
-% hyphenation of the French ``apostrophe'' with XeTeX and LuaTeX
-% engines.
-%
-% Better compatibility with the \file{enumitem} package.
-%
-% When typewriter fonts are in use (hence in verbatim mode) no
-% space is added after `\guillemotleft' and before
-% `\guillemotright' when they are entered as characters
-% (see |\frenchbsetup|).
-%
-% \subsubsection*{What's new in version 2.5?}
-%
-% The main change is that active characters are no longer used
-% in French with (recent) Xe\TeX-based engines (they still are
-% with \TeX-based engines). All the functionalities (automatic
-% insertion of missing spaces before |:;!?| or bare replacement
-% of typed spaces with suitable unbreabable ones, tuning of the
-% spaces width) remain available and the user interface is
-% unchanged. The use of active characters is replaced by the
-% |\XeTeXinterchartoks| mechanism (as in package
-% \file{polyglossia}).
-%
-% A new command |\NoAutoSpacing| has been added. It should be used
-% \emph{inside a group} instead of |\shorthandoff{;:!?}| whenever
-% active characters or automatic spacing of French punctuation or
-% quote characters conflict with other packages; it is designed to
-% work with \TeX- and Xe\TeX-based engines.
-%
-% Bug corrections: |\frenchspacing| and |\nonfrenchspacing| are no
-% longer messed up by \file{frenchb.ldf}.
-%
-% \subsubsection*{What's new in version 2.6?}
-%
-% The way |frenchb| handles list environments has been completely
-% redesigned in version~2.6a due to a long standing bug affecting
-% enumerate lists inside itemize lists. Horizontal indentation of
-% itemize and enumerate lists differs now from previous versions,
-% an option for backward compatibility is provided:
-% |\frenchbsetup{ListOldLayout}|.
-%
-% |frenchb| is now compatible with the \file{paralist} package.
-%
-% \StopEventually{}
-%
-% \subsection{File frenchb.cfg}
-% \label{sec-cfg}
-%
-% \file{frenchb.cfg} is now a dummy file just kept for compatibility
-% with previous versions.
-%
-% \iffalse
-%<*cfg>
-% \fi
-% \begin{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%% WARNING: THIS FILE SHOULD NO LONGER BE USED %%%%%%%%%
-%% If you want to customise frenchb, please DO NOT hack into the code!
-%% Do no put any code in this file either, please use the new command
-%% \frenchbsetup{} with the proper options to customise frenchb.
-%%
-%% Add \frenchbsetup{ShowOptions} to your preamble to see the list of
-%% available options and/or read the documentation.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \end{macrocode}
-% \iffalse
-%</cfg>
-% \fi
-%
-% \subsection{Initial setup}
-%
-% \changes{v2.1d}{2008/05/02}{Argument of \cs{ProvidesLanguage} changed
-% above from `french' to `frenchb' (otherwise \cs{listfiles} prints
-% no date/version information). The real name of current language
-% (french) as to be corrected before calling \cs{LdfInit}.}
-%
-% \iffalse
-%<*code>
-% \fi
-%
-% While this file was read through the option \Lopt{frenchb} we make
-% it behave as if \Lopt{french} was specified.
-% \begin{macrocode}
-\def\CurrentOption{french}
-% \end{macrocode}
-%
-% The macro |\LdfInit| takes care of preventing that this file is
-% loaded more than once, checking the category code of the
-% \texttt{@} sign, etc.
-%
-% \begin{macrocode}
-\LdfInit\CurrentOption\datefrench
-% \end{macrocode}
-%
-% \changes{v2.1d}{2008/05/04}{Avoid warning ``\cs{end} occurred
-% when \cs{ifx} ... incomplete'' with LaTeX-2.09.}
-%
-% \begin{macro}{\ifLaTeXe}
-% No support is provided for late \LaTeX-2.09: issue a warning
-% and exit if \LaTeX-2.09 is in use. Plain is still supported.
-% \begin{macrocode}
-\newif\ifLaTeXe
-\let\bbl@tempa\relax
-\ifx\magnification\@undefined
- \ifx\@compatibilitytrue\@undefined
- \PackageError{frenchb.ldf}
- {LaTeX-2.09 format is no longer supported.\MessageBreak
- Aborting here}
- {Please upgrade to LaTeX2e!}
- \let\bbl@tempa\endinput
- \else
- \LaTeXetrue
- \fi
-\fi
-\bbl@tempa
-% \end{macrocode}
-% \end{macro}
-%
-% Check if hyphenation patterns for the French language have been
-% loaded in language.dat; we allow for the names `french',
-% `francais', `canadien' or `acadian'. The latter two are both
-% names used in Canada for variants of French that are in use in
-% that country.
-%
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% Now |\l@french| is always defined.
-%
-% The internal name for the French language is |french|;
-% |francais| and |frenchb| are synonymous for |french|:
-% first let both names use the same hyphenation patterns.
-% Later we will have to set aliases for |\captionsfrench|,
-% |\datefrench|, |\extrasfrench| and |\noextrasfrench|.
-% As French uses the standard values of |\lefthyphenmin| (2)
-% and |\righthyphenmin| (3), no special setting is required here.
-%
-% \begin{macrocode}
-\ifx\l@francais\@undefined
- \let\l@francais\l@french
-\fi
-\ifx\l@frenchb\@undefined
- \let\l@frenchb\l@french
-\fi
-% \end{macrocode}
-% When this language definition file was loaded for one of the
-% Canadian versions of French we need to make sure that a suitable
-% hyphenation pattern register will be found by \TeX.
-% \begin{macrocode}
-\ifx\l@canadien\@undefined
- \let\l@canadien\l@french
-\fi
-\ifx\l@acadian\@undefined
- \let\l@acadian\l@french
-\fi
-% \end{macrocode}
-%
-% This language definition can be loaded for different variants of
-% the French language. The `key' \babel\ macros are only defined
-% once, using `french' as the language name, but |frenchb| and
-% |francais| are synonymous.
-% \begin{macrocode}
-\def\datefrancais{\datefrench}
-\def\datefrenchb{\datefrench}
-\def\extrasfrancais{\extrasfrench}
-\def\extrasfrenchb{\extrasfrench}
-\def\noextrasfrancais{\noextrasfrench}
-\def\noextrasfrenchb{\noextrasfrench}
-% \end{macrocode}
-%
-% \begin{macro}{\extrasfrench}
-% \begin{macro}{\noextrasfrench}
-% The macro |\extrasfrench| will perform all the extra
-% definitions needed for the French language.
-% The macro |\noextrasfrench| is used to cancel the actions of
-% |\extrasfrench|.\\
-% In French, character ``apostrophe'' is a letter in expressions
-% like |l'ambulance| (French hyphenation patterns provide entries
-% for this kind of words). This means that the |\lccode| of
-% ``apostrophe'' has to be non null in French for proper hyphenation
-% of those expressions, and has to be reset to null when exiting
-% French.
-%
-% \begin{macro}{\ifFBunicode}
-% \begin{macro}{\ifFLuaTeX}
-% \begin{macro}{\ifFXeTeX}
-% French hyphenation patterns are now coded in Unicode, see file
-% \file{hyph-fr.tex}. XeTeX and LuaTeX engines require some extra
-% code to deal with the French ``apostrophe''.
-% Let's define three new `if': |\ifFBLuaTeX|, |\ifFBXeTeX| and
-% |\ifFBunicode| which will be true for XeTeX and LuaTeX engines
-% and false for 8-bits engines.
-%
-% \changes{v2.4a}{2009/11/23}{Added a new `if' \cs{FBunicode} and
-% some \cs{lccode} definitions to \cs{extrasfrench} and
-% \cs{noextrasfrench}.}
-%
-% \changes{v2.5d}{2011/01/17}{Added two new `if' \cs{FBXeTeX} and
-% \cs{FBLuaTeX} as XeTeX and behave differently regarding the status
-% of the French ``apostrophe''.}
-%
-% \begin{macrocode}
-\newif\ifFBunicode
-\newif\ifFBLuaTeX
-\newif\ifFBXeTeX
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname luatexversion\endcsname\relax
-\else
- \FBunicodetrue \FBLuaTeXtrue
-\fi
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname XeTeXrevision\endcsname\relax
-\else
- \FBunicodetrue \FBXeTeXtrue
-\fi
-% \end{macrocode}
-% These |\lccode| changes will ensure correct hyphenation of
-% words like |d'aventure|, |l'utopie|, with all TeX engines
-% (XeTeX, LuaTeX, pdfTeX) using \file{hyph-fr.tex} patterns.
-% \begin{macrocode}
-\@namedef{extras\CurrentOption}{\lccode`\'=`\'
- \ifFBLuaTeX \lccode`\'="2019 \fi
- \ifFBXeTeX \lccode"2019=`\' \fi}
-\@namedef{noextras\CurrentOption}{\lccode`\'=0
- \ifFBXeTeX \lccode"2019=0 \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% One more thing |\extrasfrench| needs to do is to make sure that
-% ``Frenchspacing'' is in effect. |\noextrasfrench| will switch
-% ``Frenchspacing'' off again if necessary.
-% \begin{macrocode}
-\addto\extrasfrench{\bbl@frenchspacing}
-\addto\noextrasfrench{\bbl@nonfrenchspacing}
-% \end{macrocode}
-%
-% \subsection{Punctuation}
-% \label{sec-punct}
-%
-% \changes{v2.5a}{2010/08/10}{Punctation is no longer made active
-% with XeTeX-based engines.}
-%
-% As long as no better solution is available, the `double
-% punctuation' characters (|;| |!| |?| and |:|) have to be made
-% |\active| for an automatic control of the amount of space to
-% insert before them. Xe\TeX{} provides an alternative to active
-% characters and Lua\TeX{} will hopefully do so as well in the
-% (near?) future.
-%
-% Before doing so, we have to save the standard definition of
-% |\@makecaption| (which includes two ':') to compare it later to
-% its definition at the |\begin{document}|.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-%
-% \changes{v2.5a}{2010/08/10}{Define \cs{Fthinspace} for those who want
-% to customise the width of the space before ; ! and ?.}
-%
-% According to the I.N.\ specifications, the `:' requires a normal
-% space before it, but some people prefer a |\thinspace| (just
-% like the other three). We define |\Fcolonspace| to hold the
-% required amount of space (user customisable). In case some users
-% are not satisfied with |\thinspace|'s width, it is also
-% customisable.
-% \begin{macrocode}
-\newcommand*{\Fcolonspace}{\space}
-\newcommand*{\Fthinspace}{\thinspace}
-% \end{macrocode}
-%
-% \begin{macro}{\ifF@active@punct}
-% \begin{macro}{\ifF@xetex@punct}
-% Check the availability of |\XeTeXinterchartokenstate| and decide
-% whether the `double punctuation' characters (|;| |!| |?| and |:|)
-% have to be made |\active| or not.
-% \begin{macrocode}
-\newif\ifFB@active@punct \FB@active@puncttrue
-\newif\ifFB@xetex@punct
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname XeTeXinterchartokenstate\endcsname\relax
-\else
- \FB@xetex@puncttrue\FB@active@punctfalse
-\fi
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% If |\XeTeXinterchartokenstate| is available, we use the
-% ``inter char'' mechanism (as in polyglossia, see
-% \file{gloss-french.ldf}) to provide correct spacing in French
-% before the four characters |;| |!| |?| and |:|. We use the same
-% mechanism for French quotes (\texttt{\guillemotleft} and
-% \texttt{\guillemotright}), when automatic spacing for quotes is
-% required by options \texttt{og=} and \texttt{fg=} in
-% |\frenchbsetup{}| (see section~\ref{sec-keyval}).
-%
-% For every character used in French text-mode (except spaces),
-% |\XeTeXcharclass| value must be 0.
-% |\XeTeXcharclass| value for spaces is assumed to be 255.
-% Otherwise, the spacing before the `double punctuation' characters
-% and inside quotes might not be correct.
-%
-% We switch |\XeTeXinterchartokenstate| to 1 and change the
-% |\XeTeXcharclass| values of |;| |!| |?| |:| |(| |]|
-% \texttt{\guillemotleft} and \texttt{\guillemotright} when
-% entering French. Special care is taken to restore them to their
-% inital values when leaving French.
-%
-% \changes{v2.5d}{2011/01/19}{Moved the \cs{newcount} command outside
-% \cs{ifFB@xetex@punct} ... \cs{fi} (it broke Plain formats).}
-%
-% \changes{v2.5g}{2012/01/02}{Add four \cs{newif} to control
-% spacing of quotes (characters and control sequences).}
-%
-% \changes{v2.5g}{2012/01/01}{Skip the message in Plain,
-% \cs{PackageInfo} undefined for Plain formats.}
-%
-% \begin{macrocode}
-\newif\ifFBAutoSpaceGuill \FBAutoSpaceGuilltrue
-\newif\ifFBguillo@addspace
-\newif\ifFBguillf@addspace
-\newif\ifFBog@addspace \FBog@addspacetrue
-\newif\ifFBfg@addspace \FBfg@addspacetrue
-\newcount\FB@interchartokenstateORI
-\ifFB@xetex@punct
- \ifLaTeXe
- \PackageInfo{frenchb.ldf}{No need for active punctuation characters
- \MessageBreak with this version of XeTeX! reported}
- \fi
-% \end{macrocode}
-% We will need the following code (borrowed from
-% \file{zhsusefulmacros.sty}) for loops:
-% \begin{macrocode}
- \@ifundefined{@for}{%
- \def\@nnil{\@nil}%
- \def\@empty{}%
- \def\@fornoop#1\@@#2#3{}%
- \long\def\@for#1:=#2\do#3{%
- \expandafter\def\expandafter\@fortmp\expandafter{#2}%
- \ifx\@fortmp\@empty \else
- \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}%
- \long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
- #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}%
- \long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
- \expandafter\@fornoop \else
- #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}%
- \def\@tfor#1:={\@tf@r#1 }%
- \long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
- \@tforloop#2\@nil\@nil\@@#1{#3}\fi}%
- \long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
- \expandafter\@fornoop \else
- #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}%
- }{}%
-% \end{macrocode}
-% \changes{v2.5i}{2012/04/20}{Temporary fix: as long as
-% \file{xeCJK.sty} will not use \cs{newXeTeXintercharclass} to
-% allocate its classes, we will have to define 3 fake classes.}
-%
-% \changes{v2.5j}{2012/05/08}{Previous fix removed: bug fixed in
-% \file{xeCJK.sty} version 3.0.4 (06-May-2012).}
-%
-% Five new character classes are defined for |frenchb|.
-% \begin{macrocode}
- \newXeTeXintercharclass\FB@punctthick
- \newXeTeXintercharclass\FB@punctthin
- \newXeTeXintercharclass\FB@punctnul
- \newXeTeXintercharclass\FB@punctguilo
- \newXeTeXintercharclass\FB@punctguilf
-% \end{macrocode}
-% We define a command to store the |\XeTeXcharclass| values which
-% will be modified for French (as a comma separated list) and a
-% command to retrieve them.
-% \begin{macrocode}
- \def\FB@charclassesORI{}
- \def\empty{}
- \def\FB@parse#1,#2\endparse{\def\FB@class{#1}%
- \def\FB@charclassesORI{#2}}%
-% \end{macrocode}
-%
-% \begin{macro}{\FB@xetex@punct@french}
-% The following command will be executed when entering French, it
-% first saves the values to be modified, then fits them to our
-% needs. It also redefines |\shorthandoff| and |\shorthandon|
-% (locally) to avoid error messages with XeTeX-based engines.
-%
-% \changes{v2.5g}{2011/12/31}{XeTeXcharclass(es) for French quotes will
-% be set to \cs{FB@punctguilo} and \cs{FB@punctguilf} by options
-% `og' and `fg' in \cs{frenchbsetup}. French quotes should behave
-% as normal characters by default in XeLaTeX as in LaTeX.}
-%
-% \changes{v2.5i}{2012/04/20}{\file{xeCJK.sty} changes the
-% \cs{XeTeXcharclass} of ASCII chars '-' ',' '.' ')' ']' '\}'
-% '\{' '\%' opening and closing single and double quotes.
-% We set their class to 0 in French and reset their class
-% to their original value when leaving French. See
-% \cs{FB@xetex@punct@nonfrench} below.}
-%
-% \begin{macrocode}
- \newcommand*{\FB@xetex@punct@french}{%
-% \end{macrocode}
-% Saving must not be repeated if saved values are already in.
-% \begin{macrocode}
- \ifx\FB@charclassesORI\empty
- \FB@interchartokenstateORI=\XeTeXinterchartokenstate
- \@for\FB@char:={`\:,`\;,`\!,`\?,"AB,"BB,`\(,`\[,`\{,`\,,`\.,%
- `\-,`\),`\],`\},`\%,"22,"27,"60,"2019}\do
- {\edef\FB@charclassesORI{\FB@charclassesORI%
- \the\XeTeXcharclass\FB@char,}}%
- \let\shorthandonORI\shorthandon
- \let\shorthandoffORI\shorthandoff
- \fi
-% \end{macrocode}
-% Set the classes and interactions between classes.
-% \begin{macrocode}
- \XeTeXinterchartokenstate=1
- \XeTeXcharclass `\: = \FB@punctthick
- \XeTeXinterchartoks \z@ \FB@punctthick = {%
- \ifhmode\FDP@colonspace\fi}%
- \XeTeXinterchartoks \FB@punctguilf \FB@punctthick = {%
- \FDP@colonspace}%
- \XeTeXinterchartoks 255 \FB@punctthick = {%
- \ifhmode\unskip\penalty\@M\Fcolonspace\fi}%
- \@for\FB@char:={`\;,`\!,`\?}\do
- {\XeTeXcharclass\FB@char=\FB@punctthin}%
- \XeTeXinterchartoks \z@ \FB@punctthin = {%
- \ifhmode\FDP@thinspace\fi}%
- \XeTeXinterchartoks \FB@punctguilf \FB@punctthin = {%
- \FDP@thinspace}%
- \XeTeXinterchartoks 255 \FB@punctthin = {%
- \ifhmode\unskip\penalty\@M\Fthinspace\fi}%
- \XeTeXinterchartoks \FB@punctguilo \z@ = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\fi}%
- \XeTeXinterchartoks \FB@punctguilo 255 = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\ignorespaces\fi}%
- \XeTeXinterchartoks \z@ \FB@punctguilf = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\fi}%
- \XeTeXinterchartoks \FB@punctthin \FB@punctguilf = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\fi}%
- \XeTeXinterchartoks 255 \FB@punctguilf = {%
- \ifFBAutoSpaceGuill\unskip\FBguill@spacing\fi}%
-% \end{macrocode}
-% This avoids spurious spaces in (!), [?], etc.
-% \begin{macrocode}
- \@for\FB@char:={`\[,`\(}\do
- {\XeTeXcharclass\FB@char=\FB@punctnul}%
-% \end{macrocode}
-% These characters have their class changed by \file{xeCJK.sty},
-% let's reset them to 0 in French.
-% \begin{macrocode}
- \@for\FB@char:={`\{,`\,,`\.,`\-,`\),`\],`\},`\%,%
- "22,"27,"60,"2019}\do
- {\XeTeXcharclass\FB@char=\z@}%
-% \end{macrocode}
-% With Xe(La)TeX, French defines no active shorthands.
-% \begin{macrocode}
- \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}%
- }%
- }%
- \def\shorthandon##1{}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\FB@xetex@punct@nonfrench}
-% The following command will be executed when leaving French for
-% restoring classes and commands modified in French.
-% When French is not the main language, |\noextrasfrench| is
-% executed `AtBeginDocument', so the test on
-% |\FB@charclassesORI| is mandatory.
-% \begin{macrocode}
- \newcommand*{\FB@xetex@punct@nonfrench}{%
- \ifx\FB@charclassesORI\empty
- \else
- \@for\FB@char:={`\:,`\;,`\!,`\?,"AB,"BB,`\(,`\[,`\{,`\,,`\.,%
- `\-,`\),`\],`\},"22,"25,"27,"60,"2019}\do
- {\expandafter\FB@parse\FB@charclassesORI\endparse
- \XeTeXcharclass\FB@char=\FB@class}%
- \def\FB@charclassesORI{}%
- \XeTeXinterchartokenstate=\FB@interchartokenstateORI
- \let\shorthandon\shorthandonORI
- \let\shorthandoff\shorthandoffORI
- \fi
- }
- \addto\extrasfrench{\FB@xetex@punct@french}
- \addto\noextrasfrench{\FB@xetex@punct@nonfrench}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% Otherwise we need to make the four characters |;| |!| |?| and |:|
-% `active' and provide their definitions.
-% \begin{macrocode}
-\ifFB@active@punct
- \initiate@active@char{:}%
- \initiate@active@char{;}%
- \initiate@active@char{!}%
- \initiate@active@char{?}%
-% \end{macrocode}
-% We first tune the amount of space before \texttt{;}
-% \texttt{!} \texttt{?} and \texttt{:}. This should only happen
-% in horizontal mode, hence the test |\ifhmode|.
-%
-% In horizontal mode, if a space has been typed before `;' we
-% remove it and put an unbreakable |\thinspace| instead. If no
-% space has been typed, we add |\FDP@thinspace| which will be
-% defined, up to the user's wishes, as an automatic added
-% thin space, or as |\@empty|.
-% \begin{macrocode}
- \declare@shorthand{french}{;}{%
- \ifhmode
- \ifdim\lastskip>\z@
- \unskip\penalty\@M\Fthinspace
- \else
- \FDP@thinspace
- \fi
- \fi
-% \end{macrocode}
-% Now we can insert a |;| character.
-% \begin{macrocode}
- \string;}
-% \end{macrocode}
-% The next three definitions are very similar.
-% \begin{macrocode}
- \declare@shorthand{french}{!}{%
- \ifhmode
- \ifdim\lastskip>\z@
- \unskip\penalty\@M\Fthinspace
- \else
- \FDP@thinspace
- \fi
- \fi
- \string!}
- \declare@shorthand{french}{?}{%
- \ifhmode
- \ifdim\lastskip>\z@
- \unskip\penalty\@M\Fthinspace
- \else
- \FDP@thinspace
- \fi
- \fi
- \string?}
- \declare@shorthand{french}{:}{%
- \ifhmode
- \ifdim\lastskip>\z@
- \unskip\penalty\@M\Fcolonspace
- \else
- \FDP@colonspace
- \fi
- \fi
- \string:}
-% \end{macrocode}
-% When the active characters appear in an environment where their
-% French behaviour is not wanted they should give an `expected'
-% result. Therefore we define shorthands at system level as well.
-% \begin{macrocode}
- \declare@shorthand{system}{:}{\string:}
- \declare@shorthand{system}{!}{\string!}
- \declare@shorthand{system}{?}{\string?}
- \declare@shorthand{system}{;}{\string;}
-%}
-% \end{macrocode}
-% We specify that the French group of shorthands should be used when
-% switching to French.
-% \begin{macrocode}
- \addto\extrasfrench{%
- \languageshorthands{french}%
-% \end{macrocode}
-% These characters are `turned on' once, later their definition may
-% vary. Don't misunderstand the following code: they keep being
-% active all along the document, even when leaving French.
-% \begin{macrocode}
- \bbl@activate{:}\bbl@activate{;}%
- \bbl@activate{!}\bbl@activate{?}%
- }
- \addto\noextrasfrench{%
- \bbl@deactivate{:}\bbl@deactivate{;}%
- \bbl@deactivate{!}\bbl@deactivate{?}}
-\fi
-% \end{macrocode}
-%
-% A new `if' |\FBAutoSpacePunctuation| needs to be defined now.
-% \begin{macrocode}
-\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue
-% \end{macrocode}
-%
-% \changes{v2.3a}{2008/10/10}{\cs{NoAutoSpaceBeforeFDP} and
-% \cs{AutoSpaceBeforeFDP} now set the flag
-% \cs{ifFBAutoSpacePunctuation} accordingly (LaTeX only).}
-%
-% \changes{v2.3e}{2009/10/10}{Execute \cs{AutoSpaceBeforeFDP}
-% also in LaTeX to define \cs{FDP@colonspace}: needed for
-% tex4ht, pointed out by MPG.}
-%
-% \begin{macro}{\AutoSpaceBeforeFDP}
-% \begin{macro}{\NoAutoSpaceBeforeFDP}
-% |\FDP@thinspace| and |\FDP@colonspace| are defined as unbreakable
-% spaces by |\autospace@beforeFDP| or as |\@empty| by
-% |\noautospace@beforeFDP| (internal commands), user commands
-% |\AutoSpaceBeforeFDP| and |\NoAutoSpaceBeforeFDP| do the same and
-% take care of the flag |\ifFBAutoSpacePunctuation| in \LaTeX{}.
-% Set the default now for Plain (done later for \LaTeX).
-% \begin{macrocode}
-\def\autospace@beforeFDP{%
- \def\FDP@thinspace{\penalty\@M\Fthinspace}%
- \def\FDP@colonspace{\penalty\@M\Fcolonspace}}
-\def\noautospace@beforeFDP{\let\FDP@thinspace\@empty
- \let\FDP@colonspace\@empty}
-\ifLaTeXe
- \def\AutoSpaceBeforeFDP{\autospace@beforeFDP
- \FBAutoSpacePunctuationtrue}
- \def\NoAutoSpaceBeforeFDP{\noautospace@beforeFDP
- \FBAutoSpacePunctuationfalse}
-\else
- \let\AutoSpaceBeforeFDP\autospace@beforeFDP
- \let\NoAutoSpaceBeforeFDP\noautospace@beforeFDP
- \fi
-\AutoSpaceBeforeFDP
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \changes{v2.3a}{2008/10/10}{In LaTeX, frenchb no longer adds spaces
-% before `double punctuation' characters in computer code.
-% Suggested by Yannis Haralambous.}
-%
-% \changes{v2.3c}{2009/02/07}{Commands \cs{ttfamily}, \cs{rmfamily}
-% and \cs{sffamily} have to be robust. Bug introduced in 2.3a,
-% pointed out by Manuel P\'egouri\'e-Gonnard.}
-%
-% In \LaTeXe{} |\ttfamily| (and hence |\texttt|) will be redefined
-% `AtBeginDocument' as |\ttfamilyFB| so that no space
-% is added before the four |; : ! ?| characters, even if
-% |AutoSpacePunctuation| is true. |\rmfamily| and |\sffamily| need
-% to be redefined also (|\ttfamily| is not always used inside a
-% group, its effect can be cancelled by |\rmfamily| or |\sffamily|).
-%
-% These redefinitions can be canceled if necessary, for instance to
-% recompile older documents, see option |OriginalTypewriter| below.
-%
-% \changes{v2.4c}{2010/05/23}{In \cs{ttfamilyFB}, also cancel
-% automatic spaces inside French guillemets entered as characters
-% (see \cs{frenchbsetup}).}
-%
-% To be consistent with what is done for the |; : ! ?|
-% characters, |\ttfamilyFB| also switches off insertion of spaces
-% inside French guillemets \emph{when they are typed in as
-% characters} with the `og'/`fg' options in |\frenchbsetup{}|.
-% This is also a workaround for the weird behaviour of these
-% characters in verbatim mode.
-%
-% \changes{v2.5g}{2012/01/02}{Switch flags \cs{ifFBog@addspace} and
-% \cs{ifFBfg@addspace} to true, otherwise \cs{og} and \cs{fg}
-% provide no spacing in XeLaTeX with options `og' and `fg'
-% activated in \cs{frenchbsetup} (bug v.~2.5a-f).}
-%
-% \begin{macrocode}
-\ifLaTeXe
- \let\ttfamilyORI\ttfamily
- \let\rmfamilyORI\rmfamily
- \let\sffamilyORI\sffamily
- \DeclareRobustCommand\ttfamilyFB{%
- \FBAutoSpaceGuillfalse
- \FBog@addspacetrue \FBfg@addspacetrue
- \noautospace@beforeFDP\ttfamilyORI}%
- \DeclareRobustCommand\rmfamilyFB{%
- \FBAutoSpaceGuilltrue
- \ifFBguillo@addspace\FBog@addspacefalse\fi
- \ifFBguillf@addspace\FBfg@addspacefalse\fi
- \ifFBAutoSpacePunctuation
- \autospace@beforeFDP
- \else
- \noautospace@beforeFDP
- \fi
- \rmfamilyORI}%
- \DeclareRobustCommand\sffamilyFB{%
- \FBAutoSpaceGuilltrue
- \ifFBguillo@addspace\FBog@addspacefalse\fi
- \ifFBguillf@addspace\FBfg@addspacefalse\fi
- \ifFBAutoSpacePunctuation
- \autospace@beforeFDP
- \else
- \noautospace@beforeFDP
- \fi
- \sffamilyORI}%
-\fi
-% \end{macrocode}
-%
-% \changes{v2.5a}{2010/08/14}{New command \cs{NoAutoSpacing},
-% suggested by MPG.}
-%
-% \begin{macro}{\NoAutoSpacing}
-% The following command will switch off active punctuation
-% characters (if any) and disable automatic spacing for French quote
-% characters. It is engine independent (works for \TeX{} and
-% Xe\TeX{} based engines) and is meant to be used inside a group.
-%
-% \changes{v2.5g}{2012/01/02}{Switch flags \cs{ifFBog@addspace} and
-% \cs{ifFBfg@addspace} to true, otherwise \cs{og} and \cs{fg}
-% provide no spacing in XeLaTeX with options `og' and `fg'
-% activated in \cs{frenchbsetup} (bug v.~2.5a-f).}
-%
-% \begin{macrocode}
-\newcommand*{\NoAutoSpacing}{\FBAutoSpaceGuillfalse
- \FBog@addspacetrue \FBfg@addspacetrue
- \ifFB@active@punct\shorthandoff{;:!?}\fi
- \ifFB@xetex@punct\XeTeXinterchartokenstate=0\fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Commands for French quotation marks}
-% \label{sec-quotes}
-%
-% \begin{macro}{\og}
-% \begin{macro}{\fg}
-% The top macros for quotation marks will be called |\og|
-% (``\underline{o}uvrez \underline{g}uillemets'') and |\fg|
-% (``\underline{f}ermez \underline{g}uillemets'').
-% Another option for typesetting quotes in multilingual texts
-% is to use the package \file{csquotes.sty} and its command
-% |\enquote|.
-%
-% \begin{macrocode}
-\newcommand*{\og}{\@empty}
-\newcommand*{\fg}{\@empty}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\guillemotleft}
-% \begin{macro}{\guillemotright}
-% \begin{macro}{\textquoteddblleft}
-% \begin{macro}{\textquoteddblright}
-% \LaTeX{} users are supposed to use 8-bit output encodings (T1,
-% LY1,\dots) to typeset French, those who still stick to OT1 should
-% call \file{aeguill.sty} or a similar package. In both cases the
-% commands |\guillemotleft| and |\guillemotright| will print the
-% French opening and closing quote characters from the output font.
-% For XeLaTeX, |\guillemotleft| and |\guillemotright| are defined
-% by package \file{xunicode.sty}.
-% We will check `AtBeginDocument' that the proper output encodings
-% are in use (see end of section~\ref{sec-keyval}).
-%
-% \changes{v2.5a}{2010/08/20}{Change \cs{guillemotleft} and
-% \cs{guillemotright} definitions for Unicode anf provide
-% definitions for \cs{textquotedblleft} and
-% \cs{textquotedbright}. Insures correct printing of quotes
-% by \cs{og} and \cs{fg} in French and outside.}
-%
-% We give the following definitions for non-LaTeX users only as a
-% fall-back, they are welcome to change them for anything better.
-% \begin{macrocode}
-\ifLaTeXe
-\else
- \ifFBunicode
- \def\guillemotleft{{\char"00AB}}
- \def\guillemotright{{\char"00BB}}
- \def\textquotedblleft{{\char"201C}}
- \def\textquotedblright{{\char"201D}}
- \else
- \def\guillemotleft{\leavevmode\raise0.25ex
- \hbox{$\scriptscriptstyle\ll$}}
- \def\guillemotright{\raise0.25ex
- \hbox{$\scriptscriptstyle\gg$}}
- \def\textquotedblleft{``}
- \def\textquotedblright{''}
- \fi
- \let\xspace\relax
-\fi
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% The next step is to provide correct spacing after |\guillemotleft|
-% and before |\guillemotright|: a space precedes and follows
-% quotation marks but no line break is allowed neither \emph{after}
-% the opening one, nor \emph{before} the closing one.
-% |\FBguill@spacing| which does the spacing, has been fine tuned by
-% Thierry Bouche. French quotes (including spacing) are printed by
-% |\FB@og| and |\FB@fg|, the expansion of the top level commands
-% |\og| and |\og| is different in and outside French.
-% We'll try to be smart to users of David~Carlisle's \file{xspace}
-% package: if this package is loaded there will be no need for |{}|
-% or |\ | to get a space after |\fg|, otherwise |\xspace| will be
-% defined as |\relax| (done at the end of this file).
-%
-% \changes{v2.5g}{2012/01/01}{\cs{FBguill@spacing} needs to be skipped
-% in commands \cs{FB@og} and \cs{FB@fg} only when XeTeX's ``inter
-% char'' mechanism is triggered for quotes, see \cs{frenchbsetup}.}
-%
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-%
-% The top level definitions for French quotation marks are switched
-% on and off through the |\extrasfrench| |\noextrasfrench|
-% mechanism. Outside French, |\og| and |\fg| will typeset standard
-% English opening and closing double quotes.
-%
-% \changes{v2.5a}{2010/08/20}{\cs{og} and \cs{fg} do not print
-% correctly in English when using XeTeX or LuaTeX, fixed by using
-% \cs{textquotedblleft} and \cs{textquotedblright} defined above.}
-%
-% \begin{macrocode}
-\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}}
-\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}}
-\fi
-\addto\extrasfrench{\bbl@frenchguillemets}
-\addto\noextrasfrench{\bbl@nonfrenchguillemets}
-% \end{macrocode}
-%
-% \subsection{Date in French}
-%
-% \begin{macro}{\datefrench}
-% The macro |\datefrench| redefines the command |\today| to
-% produce French dates.
-%
-% \changes{v2.0}{2006/11/06}{2 '\cs{relax}' added in
-% \cs{today}'s definition.}
-%
-% \changes{v2.1a}{2008/03/25}{\cs{today} changed (correction in 2.0
-% was wrong: \cs{today} was printed without spaces in toc).}
-%
-% \changes{v2.5a}{2010/08/20}{Replaced \cs{'}e and \cs{\char94}u
-% by c.s. to work with XeTeX and LuaTeX.}
-%
-% \begin{macrocode}
-\@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}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Extra utilities}
-%
-% Let's provide the French user with some extra utilities.
-%
-% \changes{v2.1a}{2008/03/24}{Command \cs{fup} added to produce
-% better superscripts than \cs{textsuperscript}.}
-%
-% \begin{macro}{\up}
-%
-% \changes{v2.1c}{2008/04/29}{Provide a temporary definition
-% (hyperref safe) of \cs{up} in case it has to be expanded in
-% the preamble (by beamer's \cs{title} command for instance).}
-%
-% \changes{v2.4d}{2010/07/28}{Command \cs{up} defined with
-% \cs{providecommand} instead of \cs{newcommand} as \cs{up} may be
-% defined elsewhere (catalan.ldf).
-% Bug pointed out by Felip Many\'e i Ballester.}
-%
-% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the
-% tested control sequence defined as \cs{relax} when TRUE.
-% Changed \cs{relax} to \cs{undefined} when testing
-% \cs{realsuperscript}.}
-%
-% \begin{macro}{\fup}
-%
-% \changes{v2.1b}{2008/04/02}{Command \cs{fup} changed to use
-% real superscripts from fourier v.~1.6.}
-%
-% \changes{v2.2a}{2008/05/08}{\cs{newif} and \cs{newdimen} moved
-% before \cs{ifLaTeXe} to avoid an error with plainTeX.}
-%
-% \changes{v2.3a}{2008/09/30}{\cs{lowercase} changed to
-% \cs{MakeLowercase} as the former doesn't work for non ASCII
-% characters in encodings like applemac, utf-8,\dots}
-%
-% |\up| eases the typesetting of superscripts like
-% `1\textsuperscript{er}'. Up to version 2.0 of |frenchb| |\up| was
-% just a shortcut for |\textsuperscript| in \LaTeXe, but several
-% users complained that |\textsuperscript| typesets superscripts
-% too high and too big, so we now define |\fup| as an attempt to
-% produce better looking superscripts. |\up| is defined as |\fup|
-% but |\frenchbsetup{FrenchSuperscripts=false}| redefines |\up|
-% as |\textsuperscript| for compatibility with previous versions.
-%
-% When a font has built-in superscripts, the best thing to do is
-% to just use them, otherwise |\fup| has to simulate superscripts
-% by scaling and raising ordinary letters. Scaling is done using
-% package \file{scalefnt} which will be loaded at the end of
-% \babel's loading (|frenchb| being an option of babel, it cannot
-% load a package while being read).
-%
-% \begin{macrocode}
-\newif\ifFB@poorman
-\newdimen\FB@Mht
-\ifLaTeXe
- \AtEndOfPackage{\RequirePackage{scalefnt}}
-% \end{macrocode}
-% |\FB@up@fake| holds the definition of fake superscripts.
-% The scaling ratio is 0.65, raising is computed to put the top of
-% lower case letters (like `m') just under the top of upper case
-% letters (like `M'), precisely 12\% down. The chosen settings
-% look correct for most fonts, but can be tuned by the end-user
-% if necessary by changing |\FBsupR| and |\FBsupS| commands.
-%
-% |\FB@lc| is defined as |\MakeLowercase| to inhibit the uppercasing
-% of superscripts (this may happen in page headers with the standard
-% classes but is wrong); |\FB@lc| can be redefined to do nothing
-% by option |LowercaseSuperscripts=false| of |\frenchbsetup{}|.
-% \begin{macrocode}
- \newcommand*{\FBsupR}{-0.12}
- \newcommand*{\FBsupS}{0.65}
- \newcommand*{\FB@lc}[1]{\MakeLowercase{#1}}
- \DeclareRobustCommand*{\FB@up@fake}[1]{%
- \settoheight{\FB@Mht}{M}%
- \addtolength{\FB@Mht}{\FBsupR \FB@Mht}%
- \addtolength{\FB@Mht}{-\FBsupS ex}%
- \raisebox{\FB@Mht}{\scalefont{\FBsupS}{\FB@lc{#1}}}%
- }
-% \end{macrocode}
-% The only packages I currently know to take advantage of real
-% superscripts are a) \file{xltxtra} used in conjunction with
-% XeLaTeX and OpenType fonts having the font feature
-% 'VerticalPosition=Superior' (\file{xltxtra} defines
-% |\realsuperscript| and |\fakesuperscript|) and b) \file{fourier}
-% (from version 1.6) when Expert Utopia fonts are available.
-%
-% |\FB@up| checks whether the current font is a Type1 `Expert'
-% (or `Pro') font with real superscripts or not (the code works
-% currently only with \file{fourier-1.6} but could work with any
-% Expert Type1 font with built-in superscripts, see below), and
-% decides to use real or fake superscripts.
-% It works as follows: the content of |\f@family| (family name of
-% the current font) is split by |\FB@split| into two pieces, the
-% first three characters (`|fut|' for Fourier, `|ppl|' for Adobe's
-% Palatino, \dots) stored in |\FB@firstthree| and the rest stored
-% in |\FB@suffix| which is expected to be `|x|' or `|j|' for expert
-% fonts.
-% \begin{macrocode}
- \def\FB@split#1#2#3#4\@nil{\def\FB@firstthree{#1#2#3}%
- \def\FB@suffix{#4}}
- \def\FB@x{x}
- \def\FB@j{j}
- \DeclareRobustCommand*{\FB@up}[1]{%
- \bgroup \FB@poormantrue
- \expandafter\FB@split\f@family\@nil
-% \end{macrocode}
-% Then |\FB@up| looks for a \file{.fd} file named \file{t1fut-sup.fd}
-% (Fourier) or \file{t1ppl-sup.fd} (Palatino), etc.\ supposed to
-% define the subfamily (|fut-sup| or |ppl-sup|, etc.) giving access
-% to the built-in superscripts. If the \file{.fd} file is not found
-% by |\IfFileExists|, |\FB@up| falls back on fake superscripts,
-% otherwise |\FB@suffix| is checked to decide whether to use fake or
-% real superscripts.
-% \begin{macrocode}
- \edef\reserved@a{\lowercase{%
- \noexpand\IfFileExists{\f@encoding\FB@firstthree -sup.fd}}}%
- \reserved@a
- {\ifx\FB@suffix\FB@x \FB@poormanfalse\fi
- \ifx\FB@suffix\FB@j \FB@poormanfalse\fi
- \ifFB@poorman \FB@up@fake{#1}%
- \else \FB@up@real{#1}%
- \fi}%
- {\FB@up@fake{#1}}%
- \egroup}
-% \end{macrocode}
-% |\FB@up@real| just picks up the superscripts from the subfamily
-% (and forces lowercase).
-% \begin{macrocode}
- \newcommand*{\FB@up@real}[1]{\bgroup
- \fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup}
-% \end{macrocode}
-% |\fup| is now defined as |\FB@up| unless |\realsuperscript| is
-% defined (occurs with XeLaTeX calling \file{xltxtra.sty}).
-% \begin{macrocode}
- \DeclareRobustCommand*{\fup}[1]{%
- \@ifundefined{realsuperscript}%
- {\FB@up{#1}\let\realsuperscript\undefined}%
- {\bgroup\let\fakesuperscript\FB@up@fake
- \realsuperscript{\FB@lc{#1}}\egroup}}
-% \end{macrocode}
-% Let's provide a temporary definition for |\up| (redefined
-% `AtBeginDocument' as |\fup| or |\textsuperscript| according to
-% |\frenchbsetup{}| options).
-% \begin{macrocode}
- \providecommand*{\up}{\relax}
-% \end{macrocode}
-% Poor man's definition of |\up| for Plain.
-% \begin{macrocode}
-\else
- \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}}
-\fi
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\ieme}
-% \begin{macro}{\ier}
-% \begin{macro}{\iere}
-% \begin{macro}{\iemes}
-% \begin{macro}{\iers}
-% \begin{macro}{\ieres}
-% Some handy macros for those who don't know how to abbreviate ordinals:
-% \begin{macrocode}
-\def\ieme{\up{\lowercase{e}}\xspace}
-\def\iemes{\up{\lowercase{es}}\xspace}
-\def\ier{\up{\lowercase{er}}\xspace}
-\def\iers{\up{\lowercase{ers}}\xspace}
-\def\iere{\up{\lowercase{re}}\xspace}
-\def\ieres{\up{\lowercase{res}}\xspace}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \changes{v2.1c}{2008/04/29}{Added commands \cs{Nos} and \cs{nos}.}
-%
-% \begin{macro}{\No}
-% \begin{macro}{\no}
-% \begin{macro}{\Nos}
-% \begin{macro}{\nos}
-% \begin{macro}{\primo}
-% \begin{macro}{\fprimo)}
-% And some more macros relying on |\up| for numbering,
-% first two support macros.
-% \begin{macrocode}
-\newcommand*{\FrenchEnumerate}[1]{%
- #1\up{\lowercase{o}}\kern+.3em}
-\newcommand*{\FrenchPopularEnumerate}[1]{%
- #1\up{\lowercase{o}})\kern+.3em}
-% \end{macrocode}
-%
-% Typing |\primo| should result in `$1^{\rm o}$\kern+.3em',
-% \begin{macrocode}
-\def\primo{\FrenchEnumerate1}
-\def\secundo{\FrenchEnumerate2}
-\def\tertio{\FrenchEnumerate3}
-\def\quarto{\FrenchEnumerate4}
-% \end{macrocode}
-% while typing |\fprimo)| gives `1$^{\rm o}$)\kern+.3em.
-% \begin{macrocode}
-\def\fprimo){\FrenchPopularEnumerate1}
-\def\fsecundo){\FrenchPopularEnumerate2}
-\def\ftertio){\FrenchPopularEnumerate3}
-\def\fquarto){\FrenchPopularEnumerate4}
-% \end{macrocode}
-%
-% Let's provide four macros for the common abbreviations
-% of ``Num\'ero''.
-% \begin{macrocode}
-\DeclareRobustCommand*{\No}{N\up{\lowercase{o}}\kern+.2em}
-\DeclareRobustCommand*{\no}{n\up{\lowercase{o}}\kern+.2em}
-\DeclareRobustCommand*{\Nos}{N\up{\lowercase{os}}\kern+.2em}
-\DeclareRobustCommand*{\nos}{n\up{\lowercase{os}}\kern+.2em}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\bsc}
-% As family names should be written in small capitals and never be
-% hyphenated, we provide a command (its name comes from Boxed Small
-% Caps) to input them easily. Note that this command has changed
-% with version~2 of |frenchb|: a |\kern0pt| is used instead of |\hbox|
-% because |\hbox| would break microtype's font expansion; as a
-% (positive?) side effect, composed names (such as Dupont-Durand)
-% can now be hyphenated on explicit hyphens.
-% Usage: |Jean~\bsc{Duchemin}|.
-%
-% \changes{v2.0}{2006/11/06}{\cs{hbox} dropped, replaced by
-% \cs{kern0pt}.}
-%
-% \begin{macrocode}
-\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt
- \scshape #1\endgroup}
-\ifLaTeXe\else\let\scshape\relax\fi
-% \end{macrocode}
-% \end{macro}
-%
-% Some definitions for special characters. We won't define |\tilde|
-% as a Text Symbol not to conflict with the macro |\tilde| for math
-% mode and use the name |\tild| instead. Note that |\boi| may
-% \emph{not} be used in math mode, its name in math mode is
-% |\backslash|. |\degre| can be accessed by the command |\r{}|
-% for ring accent.
-%
-% \changes{v2.5f}{2011/07/18}{Changed definitions of \cs{at},
-% \cs{circonflexe}, \cs{tild}, \cs{boi} and \cs{degre} for
-% Unicode based engines.}
-%
-% \begin{macrocode}
-\ifFBunicode
- \newcommand*{\at}{{\char"0040}}
- \newcommand*{\circonflexe}{{\char"005E}}
- \newcommand*{\tild}{{\char"007E}}
- \newcommand*{\boi}{\textbackslash}
- \newcommand*{\degre}{{\char"00B0}}
-\else
- \ifLaTeXe
- \DeclareTextSymbol{\at}{T1}{64}
- \DeclareTextSymbol{\circonflexe}{T1}{94}
- \DeclareTextSymbol{\tild}{T1}{126}
- \DeclareTextSymbolDefault{\at}{T1}
- \DeclareTextSymbolDefault{\circonflexe}{T1}
- \DeclareTextSymbolDefault{\tild}{T1}
- \DeclareRobustCommand*{\boi}{\textbackslash}
- \DeclareRobustCommand*{\degre}{\r{}}
- \else
- \def\T@one{T1}
- \ifx\f@encoding\T@one
- \newcommand*{\degre}{{\char6}}
- \else
- \newcommand*{\degre}{{\char23}}
- \fi
- \newcommand*{\at}{{\char64}}
- \newcommand*{\circonflexe}{{\char94}}
- \newcommand*{\tild}{{\char126}}
- \newcommand*{\boi}{$\backslash$}
- \fi
-\fi
-% \end{macrocode}
-%
-% \changes{v2.5a}{2010/08/20}{New definitions needed for XeTeX/LuaTeX
-% to properly print some dates and captions: using c.s. like \cs{'e}
-% do not work with XeTeX (OK with XeLaTeX).}
-%
-% French dates and captions make use of four non-ascii characters
-% (\texttt{\`a}, \texttt{\`e}, \texttt{\'e} and \texttt{\^u}).
-% This is fine except for (plain) XeTeX (|\accent| commands are not
-% implemented), so we define four new commands to deal with this
-% issue.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-%
-% \begin{macro}{\degres}
-% We now define a macro |\degres| for typesetting the abbreviation
-% for `degrees' (as in `degrees Celsius'). As the bounding box of
-% the character `degree' has \emph{very} different widths in CM/EC
-% and PostScript fonts, we fix the width of the bounding box of
-% |\degres| to 0.3\,em, this lets the symbol `degree' stick to the
-% preceding (e.g., |45\degres|) or following character
-% (e.g., |20~\degres C|).
-%
-% If \TeX{} Companion fonts are available (\file{textcomp.sty}),
-% we pick up |\textdegree| from them instead of using emulating
-% `degrees' from the |\r{}| accent. Otherwise we overwrite the
-% (poor) definition of |\textdegree| given in \file{latin1.def},
-% \file{applemac.def} etc.\ (called by \file{inputenc.sty}) by
-% our definition of |\degres|. We also advice the user (once only)
-% to use TS1-encoding.
-%
-% \changes{v2.1c}{2008/04/29}{Provide a temporary definition (hyperref
-% safe) of \cs{degres} in case it has to be expanded in the preamble
-% (by beamer's \cs{title} command for instance).}
-%
-% \changes{v2.5h}{2012/03/21}{textcomp.sty has changed. The test
-% about \cs{M@TS1} is no longer relevant, let's change it.}
-%
-% \begin{macrocode}
-\ifLaTeXe
- \newcommand*{\degres}{\degre}
- \ifFBunicode
- \DeclareRobustCommand*{\degres}{\degre}
- \else
- \def\Warning@degree@TSone{%
- \PackageWarning{frenchb.ldf}{%
- Degrees would look better in TS1-encoding:
- \MessageBreak add \protect
- \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}%
- \let\textdegree\degres}%
- {\DeclareRobustCommand*{\degres}{%
- \hbox{\UseTextSymbol{TS1}{\textdegree}}}}%
- }
- \fi
-\else
- \newcommand*{\degres}{%
- \leavevmode\hbox to 0.3em{\hss\degre\hss}}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Formatting numbers}
-% \label{sec-numbers}
-%
-% \begin{macro}{\DecimalMathComma}
-% \begin{macro}{\StandardMathComma}
-% As mentioned in the \TeX{}book p.~134, the comma is of type
-% |\mathpunct| in math mode: it is automatically followed by a
-% space. This is convenient in lists and intervals but
-% unpleasant when the comma is used as a decimal separator
-% in French: it has to be entered as |{,}|.
-% |\DecimalMathComma| makes the comma be an ordinary character
-% (of type |\mathord|) in French \emph{only} (no space added);
-% |\StandardMathComma| switches back to the standard behaviour
-% of the comma.
-% \begin{macrocode}
-\newcount\std@mcc
-\newcount\dec@mcc
-\std@mcc=\mathcode`\,
-\dec@mcc=\std@mcc
-\@tempcnta=\std@mcc
-\divide\@tempcnta by "1000
-\multiply\@tempcnta by "1000
-\advance\dec@mcc by -\@tempcnta
-\newcommand*{\DecimalMathComma}{\iflanguage{french}%
- {\mathcode`\,=\dec@mcc}{}%
- \addto\extrasfrench{\mathcode`\,=\dec@mcc}}
-\newcommand*{\StandardMathComma}{\mathcode`\,=\std@mcc
- \addto\extrasfrench{\mathcode`\,=\std@mcc}}
-\addto\noextrasfrench{\mathcode`\,=\std@mcc}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\nombre}
-%
-% \changes{v2.0}{2006/11/06}{\cs{nombre} requires now numprint.sty.}
-%
-% The command |\nombre| is now borrowed from \file{numprint.sty} for
-% \LaTeXe. There is no point to maintain the former tricky code
-% when a package is dedicated to do the same job and more.
-% For Plain based formats, |\nombre| no longer formats numbers,
-% it prints them as is and issues a warning about the change.
-%
-% Fake command |\nombre| for Plain based formats, warning users of
-% |frenchb| v.~1.x.\ of the change.
-% \begin{macrocode}
-\newcommand*{\nombre}[1]{{#1}\message{%
- *** \noexpand\nombre no longer formats numbers\string! ***}}%
-% \end{macrocode}
-% \end{macro}
-%
-% The next definitions only make sense for \LaTeXe. Let's cleanup
-% and exit if the format in Plain based.
-%
-% \begin{macrocode}
-\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
- \FBclean@on@exit
- \ldf@quit\CurrentOption\endinput}
-\fi
-\FBstop@here
-% \end{macrocode}
-%
-% What follows now is for \LaTeXe{} \emph{only}.
-% We redefine |\nombre| for \LaTeXe. A warning is issued
-% at the first call of |\nombre| if |\numprint| is not
-% defined, suggesting what to do. The package \file{numprint}
-% is \emph{not} loaded automatically by |frenchb| because of
-% possible options conflict.
-%
-% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the
-% tested control sequence defined as \cs{relax} when TRUE.
-% Changed \cs{relax} to \cs{undefined} when testing
-% \cs{numprint}.}
-%
-% \begin{macrocode}
-\renewcommand*{\nombre}[1]{\Warning@nombre\numprint{#1}}
-\newcommand*{\Warning@nombre}{%
- \@ifundefined{numprint}%
- {\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
- see file numprint.pdf for more options.\MessageBreak
- \protect\nombre\space called}%
- \global\let\Warning@nombre\relax
- \global\let\numprint\undefined
- }{}%
-}
-% \end{macrocode}
-%
-% \changes{v2.0c}{2007/06/25}{There is no need to define here
-% numprint's command \cs{npstylefrench}, it will be redefined
-% `AtBeginDocument' by \cs{FBprocess@options}.}
-%
-% \changes{v2.0c}{2007/06/25}{\cs{ThinSpaceInFrenchNumbers} added
-% for compatibility with frenchb-1.x.}
-%
-% \begin{macrocode}
-\newcommand*{\ThinSpaceInFrenchNumbers}{%
- \PackageWarning{frenchb.ldf}{%
- Type \protect\frenchbsetup{ThinSpaceInFrenchNumbers}
- \MessageBreak Command \protect\ThinSpaceInFrenchNumbers\space
- is no longer\MessageBreak defined in frenchb v.~2,}}
-% \end{macrocode}
-%
-% \subsection{Caption names}
-%
-% The next step consists of defining the French equivalents for
-% the \LaTeX{} caption names.
-%
-% \begin{macro}{\captionsfrench}
-% Let's first define |\captionsfrench| which sets all strings used
-% in the four standard document classes provided with \LaTeX.
-%
-% \changes{v2.0}{2006/11/06}{`Fig.' changed to `Figure' and
-% `Tab.' to `Table'.}
-%
-% \changes{v2.0}{2006/12/15}{Set \cs{CaptionSeparator} in
-% \cs{extrasfrench} now instead of \cs{captionsfrench}
-% because it has to be reset when leaving French.}
-%
-% \changes{v2.5a}{2010/08/16}{\cs{emph} deleted in \cs{seename}
-% and \cs{alsoname} to match what is done for the other languages.
-% Suggested by Marc Baudoin.}
-%
-% \changes{v2.5a}{2010/08/20}{Replaced \cs{'e}, \cs{`e} and \cs{`a}
-% by c.s. to work with XeTeX.}
-%
-% \begin{macrocode}
-\@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}}%
-% \end{macrocode}
-% ``Premi\`ere partie'' instead of ``Part I''.
-% \begin{macrocode}
- \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}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% As some users who choose |frenchb| or |francais| as option of
-% \babel, might customise |\captionsfrenchb| or |\captionsfrancais|
-% in the preamble, we merge their changes at the |\begin{document}|
-% when they do so.
-% The other variants of French (canadien, acadian) are defined by
-% checking if the relevant option was used and then adding one extra
-% level of expansion.
-%
-% \changes{v2.5b}{2010/10/30}{\cs{captionsfrench} will be executed
-% `AtBeginDocument' after \cs{FBprocess@options}, no need to
-% add it here.}
-%
-% \begin{macrocode}
-\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}%
- }{}
-% \end{macrocode}
-%
-% \begin{macro}{\CaptionSeparator}
-% Let's consider now captions in figures and tables.
-% In French, captions in figures and tables should be printed with
-% endash (`--') instead of the standard `:'.
-%
-% The standard definition of |\@makecaption| (e.g., the one provided
-% in article.cls, report.cls, book.cls which is frozen for \LaTeXe{}
-% according to Frank Mittelbach), has been saved in
-% |\STD@makecaption| before making `:' active
-% (see section~\ref{sec-punct}). `AtBeginDocument' we compare it to
-% its current definition (some classes like koma-script classes,
-% AMS classes, ua-thesis.cls\dots change it).
-% If they are identical, |frenchb| just adds a hook called
-% |\CaptionSeparator| to |\@makecaption|, |\CaptionSeparator|
-% defaults to `: ' as in the standard |\@makecaption|, and will be
-% changed to ` -- ' in French.
-% If the definitions differ, |frenchb| doesn't overwrite the changes,
-% but prints a message in the .log file.
-%
-% \changes{v2.4a}{2009/11/23}{\cs{PackageWarning} changed to
-% \cs{FBWarning} (in case \cs{@makecaption} has been customized).
-% \cs{FBWarning} is defined as \cs{PackageWarning} by default but
-% can be made silent using \cs{frenchbsetup}, (suggested by MPG).}
-%
-% \begin{macrocode}
-\newcommand{\FBWarning}[2]{\PackageWarning{#1}{#2}}
-\def\CaptionSeparator{\string:\space}
-\long\def\FB@makecaption#1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{#1\CaptionSeparator #2}%
- \ifdim \wd\@tempboxa >\hsize
- #1\CaptionSeparator #2\par
- \else
- \global \@minipagefalse
- \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
- \vskip\belowcaptionskip}
-\AtBeginDocument{%
- \ifx\@makecaption\STD@makecaption
- \global\let\@makecaption\FB@makecaption
- \else
- \@ifundefined{@makecaption}%
- {\let\@makecaption\undefined}%
- {\FBWarning{frenchb.ldf}%
- {The definition of \protect\@makecaption\space
- has been changed,\MessageBreak
- frenchb will NOT customise it;\MessageBreak reported}%
- }%
- \fi
- \let\FB@makecaption\relax
- \let\STD@makecaption\relax
-}
-\addto\extrasfrench{%
- \def\CaptionSeparator{\space\textendash\space}}
-\addto\noextrasfrench{%
- \def\CaptionSeparator{\string:\space}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{French lists}
-% \label{sec-lists}
-%
-% \changes{v2.6a}{2013/01/30}{Bug correction: changing \cs{leftmargin}
-% cannot be done only for itemize-lists: it messes up
-% embedded enumerate lists. Pointed out by Denis Bitouz\'e.
-% Lists have been completely redesigned in frenchb v.~2.6a.
-% An option for backward compatibility is provided.}
-%
-% \begin{macro}{\listFB}
-% \begin{macro}{\listORI}
-% \begin{macro}{\FB@listVsettings}
-% Vertical spacing in lists should be shorter in French texts than
-% the defaults provided by \LaTeX.
-% Note that the easy way, just changing values of vertical spacing
-% parameters when entering French and restoring them to their
-% defaults on exit would not work; so we define the command
-% |\FB@listVsettings| to hold the settings to be used by
-% the French variant |\listFB| of |\list|. Note that switching
-% to |\listFB| reduces vertical spacing in \emph{all} environments
-% built on |\list|: |itemize|, |enumerate|, |description|, but also
-% |abstract|, |quotation|, |quote| and |verse|\dots{}
-%
-% The amount of vertical space before and after a list is given by
-% |\topsep| + |\parskip| (+ |\partopsep| if the list starts a new
-% paragraph). IMHO, |\parskip| should be added \emph{only} when
-% the list starts a new paragraph, so I subtract |\parskip| from
-% |\topsep| and add it back to |\partopsep|; this will normally
-% make no difference because |\parskip|'s default value is 0pt, but
-% will be noticeable when |\parskip| is \emph{not} null.
-%
-% |\endlist| is not redefined, but |\endlistORI| and |\endlistFB|
-% will be defined as |\endlist| `AtBeginDocument' for users
-% who define their own lists using |\listORI| or |\listFB|.
-% \begin{macrocode}
-\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}%
-% \end{macrocode}
-% |\parskip| is of type `skip', its mean value only (\emph{not
-% the glue}) should be subtracted from |\topsep| and added to
-% |\partopsep|, so convert |\parskip| to a `dimen' using
-% |\@tempdima|.
-% \begin{macrocode}
- \@tempdima=\parskip
- \addtolength{\topsep}{-\@tempdima}%
- \addtolength{\partopsep}{\@tempdima}%
-}
-\def\listFB#1#2{\listORI{#1}{\FB@listVsettings #2}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% Let's now consider French itemize-lists. They differ from those
-% provided by the standard \LaTeXe{} classes:
-% \begin{itemize}
-% \item The `\textbullet' is never used in French itemize-lists,
-% an emdash `---' or an endash `--' is preferred for all
-% levels. The item label to be used in French is stored in
-% |\FrenchLabelItem}|, it defaults to `---' and can be changed
-% using |\frenchbsetup{}| (see section~\ref{sec-keyval}).
-% \item Vertical spacing between items, before and after
-% the list, should be \emph{null} with \emph{no glue} added;
-% \item In French the labels of itemize-lists are vertically
-% aligned as follows:\\
-% \fbox{\parbox[t]{.5\textwidth}{%
-% \parindent=1.5em
-% Text starting at `parindent' \\
-% \noindent$\Leftarrow$ Leftmargin\\
-% \hspace*{\parindent}\textendash{} first item\dots{}\\
-% \hspace*{\parindent}\hspace*{\labelsep}%
-% \textendash{} first second level item\\
-% \hspace*{\parindent}\hspace*{\labelsep}%
-% \textendash{} next one\dots{}\\
-% \hspace*{\parindent}\textendash{} second item\dots{}
-% }}\\
-% \end{itemize}
-%
-% \begin{macro}{\FrenchLabelItem}
-% \changes{v2.6a}{2013/01/30}{defaults to \cs{textemdash} instead of
-% \cs{textendash} up to v.~2.5k.}
-% \begin{macro}{\Frlabelitemi}
-% \begin{macro}{\Frlabelitemii}
-% \begin{macro}{\Frlabelitemiii}
-% \begin{macro}{\Frlabelitemiv}
-% Default labels for French itemize-lists (same label for all levels):
-% \begin{macrocode}
-\newcommand*{\FrenchLabelItem}{\textemdash}
-\newcommand*{\Frlabelitemi}{\FrenchLabelItem}
-\newcommand*{\Frlabelitemii}{\FrenchLabelItem}
-\newcommand*{\Frlabelitemiii}{\FrenchLabelItem}
-\newcommand*{\Frlabelitemiv}{\FrenchLabelItem}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\bbl@frenchlabelitems}
-% \changes{v2.6a}{2013/01/30}{It now sets default values for
-% \cs{labelwidthFB} and \cs{listindentFB} and resets
-% \cs{FrenchLabelItem} to \cs{textendash} when compatibility
-% with former versions is requested.}
-% \begin{macro}{\bbl@nonfrenchlabelitems}
-% |\bbl@frenchlabelitems| saves current itemize labels and changes
-% them to their value in French. This code should never be executed
-% twice in a row, so we need a new flag that will be set and reset
-% by |\bbl@nonfrenchlabelitems| and |\bbl@frenchlabelitems|.
-% |\bbl@frenchlabelitems| also sets reasonable default values for
-% lengths |\labelwidthFB| and |\listindentFB| to be defined below,
-% but these lengths can still be customised in the preamble.
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\listindentFB}
-% \begin{macro}{\labelwidthFB}
-% Let's define two lengths |\listindentFB| and |\labelwidthFB| to
-% customise lists' horizontal indentations. They are given
-% silly values here ($-1$\,pt) in order to eventually
-% enable their customisation in the preamble. They will get
-% reasonnable defaults later when entering French (see
-% |\bbl@frenchlabelitems|) unless they have been customised.
-% \begin{macrocode}
-\newlength\listindentFB
-\setlength{\listindentFB}{-1pt}
-\newlength\labelwidthFB
-\setlength{\labelwidthFB}{-1pt}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\FB@listHsettings}
-% \begin{macro}{\leftmarginFB}
-% |\FB@listHsettings| holds the new horizontal settings chosen for
-% French lists itemize and enumerate starting with version~2.6a.
-% They are based on the look resquested in French for
-% itemize-lists.
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\itemizeFB}
-% \begin{macro}{\FB@itemizesettings}
-% New environment for French itemize-lists.\\ |\FB@itemizesettings|
-% does two things: first suppress all vertical spaces including
-% glue, then set horizontal indentations according to
-% |\FB@listHsettings| unless option |ListOldLayout| is true
-% (compatibility with lists up to v.~2.5k).
-% \begin{macrocode}
-\def\FB@itemizesettings{%
- \setlength{\itemsep}{\z@}%
- \setlength{\parsep}{\z@}%
- \setlength{\topsep}{\z@}%
- \setlength{\partopsep}{\z@}%
- \@tempdima=\parskip
- \addtolength{\topsep}{-\@tempdima}%
- \addtolength{\partopsep}{\@tempdima}%
- \ifFBListOldLayout
- \settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
- \setlength{\leftmargin}{\labelwidth}%
- \addtolength{\leftmargin}{\labelsep}%
- \addtolength{\leftmargin}{\parindent}%
- \else
- \FB@listHsettings
- \fi
-}
-% \end{macrocode}
-% The definition of |\itemizeFB| follows the one of |\itemize|
-% in standard \LaTeXe{} classes (see \file{ltlists.dtx}),
-% spaces are customised by |\FB@itemizesettings|.
-%
-% |\enditemizeFB| will be defined as |\endlist|=|\endlistORI|
-% `AtBeginDocument'.
-% \begin{macrocode}
-\def\itemizeFB{%
- \ifnum \@itemdepth >\thr@@\@toodeep\else
- \advance\@itemdepth\@ne
- \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
- \expandafter
- \listORI
- \csname\@itemitem\endcsname
- \FB@itemizesettings
- \fi}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\enumerateFB}
-% The definition of |\enumerateFB|, new to version~2.6a, follows
-% the one of |\enumerate| in standard \LaTeXe{} classes (see
-% \file{ltlists.dtx}), vertical spaces are customised (or not)
-% via |\list| (=|\listFB| or |\listORI|) and horizontal spaces
-% (leftmargins) are borrowed from |itemize| lists via
-% |\FB@listHsettings|.
-%
-% |\endenumerateFB| will be defined as |\endlist|=|\endlistORI|
-% `AtBeginDocument'.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\descriptionFB}
-% \changes{v2.6b}{2013/02/10}{Settings of \cs{FB@listHsettings} should
-% apply to description lists too.}
-%
-% Same tuning for the |description| environment (see the original
-% definition in \file{classes.dtx}).
-%
-% \begin{macrocode}
-\def\descriptionFB{%
- \list{}{\FB@listHsettings
- \labelwidth\z@ \itemindent-\leftmargin
- \let\makelabel\descriptionlabel}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{French indentation of sections}
-% \label{sec-indent}
-%
-% \begin{macro}{\bbl@frenchindent}
-% \begin{macro}{\bbl@nonfrenchindent}
-% In French the first paragraph of each section should be indented,
-% this is another difference with US-English. This is controlled
-% by the flag |\if@afterindent|.
-%
-% \changes{v2.3d}{2009/03/16}{Bug correction: previous versions of
-% frenchb set the flag \cs{if@afterindent} to false outside
-% French which is correct for English but wrong for some languages
-% like Spanish. Pointed out by Juan Jos\'e Torrens.}
-%
-% We will need to save the value of the flag |\if@afterindent|
-% `AtBeginDocument' before eventually changing its value.
-%
-% \begin{macrocode}
-\def\bbl@frenchindent{\let\@afterindentfalse\@afterindenttrue
- \@afterindenttrue}
-\def\bbl@nonfrenchindent{\let\@afterindentfalse\@aifORI
- \@afterindentfalse}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Formatting footnotes}
-% \label{sec-footnotes}
-%
-% \changes{v2.0}{2006/11/06}{Footnotes are now printed
-% by default `\`a la fran\c caise' for the whole document.}
-%
-% \changes{v2.0b}{2007/04/18}{Footnotes: Just do nothing
-% (except warning) when the bigfoot package is loaded.}
-%
-% The \file{bigfoot} package deeply changes the way footnotes are
-% handled. When \file{bigfoot} is loaded, we just warn the user
-% that |frenchb| will drop the customisation of footnotes.
-%
-% The layout of footnotes is controlled by two flags
-% |\ifFBAutoSpaceFootnotes| and |\ifFBFrenchFootnotes| which are
-% set by options of |\frenchbsetup{}| (see section~\ref{sec-keyval}).
-% Notice that the layout of footnotes \emph{does not depend} on the
-% current language (just think of two footnotes on the same page
-% looking different because one was called in a French part, the
-% other one in English!).
-%
-% When |\ifFBAutoSpaceFootnotes| is true, |\@footnotemark| (whose
-% definition is saved at the |\begin{document}| in order to include
-% any customisation that packages might have done) is redefined to
-% add a thin space before the number or symbol calling a footnote
-% (any space typed in is removed first). This has no effect on
-% the layout of the footnote itself.
-%
-% \changes{v2.4a}{2009/11/23}{\cs{PackageWarning} changed to
-% \cs{FBWarning} (when bigfoot package in use).}
-%
-% \begin{macrocode}
-\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}%
- }
-% \end{macrocode}
-%
-% We then define |\@makefntextFB|, a variant of |\@makefntext|
-% which is responsible for the layout of footnotes, to match the
-% specifications of the French `Imprimerie Nationale': footnotes
-% will be indented by |\parindentFFN|, numbers (if any) typeset on
-% the baseline (instead of superscripts) and followed by a dot
-% and an half quad space. Whenever symbols are used to number
-% footnotes (as in |\thanks| for instance), we switch back to the
-% standard layout (the French layout of footnotes is meant for
-% footnotes numbered by Arabic or Roman digits).
-%
-% \changes{v2.0}{2006/11/06}{\cs{parindentFFN} not changed if
-% already defined (required by JA for cah-gut.cls).}
-%
-% \changes{v2.3b}{2008/12/06}{New commands \cs{dotFFN} and
-% \cs{kernFFN} for more flexibility (suggested by JA).}
-%
-% The value of |\parindentFFN| will be redefined at the
-% |\begin{document}|, as the maximum of |\parindent| and 1.5em
-% \emph{unless} it has been set in the preamble (the weird value
-% 10in is just for testing whether |\parindentFFN| has been set
-% or not).
-%
-% \begin{macrocode}
-\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}%
-% \end{macrocode}
-%
-% We save the standard definition of |\@makefntext| at the
-% |\begin{document}|, and then redefine |\@makefntext| according to
-% the value of flag |\ifFBFrenchFootnotes| (true or false).
-%
-% \begin{macrocode}
-\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}%
- }%
- }
-% \end{macrocode}
-%
-% For compatibility reasons, we provide definitions for the commands
-% dealing with the layout of footnotes in |frenchb| version~1.6.
-% |\frenchbsetup{}| (see in section \ref{sec-keyval}) should be
-% preferred for setting these options. |\StandardFootnotes| may
-% still be used locally (in minipages for instance), that's why the
-% test |\ifFBFrenchFootnotes| is done inside |\@makefntext|.
-% \begin{macrocode}
-\newcommand*{\AddThinSpaceBeforeFootnotes}{\FBAutoSpaceFootnotestrue}
-\newcommand*{\FrenchFootnotes}{\FBFrenchFootnotestrue}
-\newcommand*{\StandardFootnotes}{\FBFrenchFootnotesfalse}
-% \end{macrocode}
-%
-% \subsection{Global layout}
-% \label{sec-global}
-%
-% In multilingual documents, some typographic rules must depend
-% on the current language (e.g., hyphenation, typesetting of
-% numbers, spacing before double punctuation\dots), others should,
-% IMHO, be kept global to the document: especially the layout of
-% lists (see~\ref{sec-lists}) and footnotes
-% (see~\ref{sec-footnotes}), and the indentation of the first
-% paragraph of sections (see~\ref{sec-indent}).
-%
-% From version 2.2 on, if |frenchb| is \babel's ``main language''
-% (i.e.\ last language option at \babel's loading), |frenchb|
-% customises the layout (i.e.\ lists, indentation of the first
-% paragraphs of sections and footnotes) in the whole document
-% regardless the current language. On the other hand, if |frenchb|
-% is \emph{not} \babel's ``main language'', it leaves the layout
-% unchanged both in French and in other languages.
-%
-% \begin{macro}{\FrenchLayout}
-% \begin{macro}{\StandardLayout}
-% The former commands |\FrenchLayout| and |\StandardLayout| are kept
-% for compatibility reasons but should no longer be used.
-%
-% \changes{v2.0g}{2008/03/23}{Flag \cs{ifFBStandardLayout} not checked
-% by \cs{FBprocess@options}, low-level flags have to be set
-% one by one.}
-%
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Dots\dots}
-% \label{sec-dots}
-%
-% \begin{macro}{\FBtextellipsis}
-% \LaTeXe's standard definition of |\dots| in text-mode is
-% |\textellipsis| which includes a |\kern| at the end;
-% this space is not wanted in some cases (before a closing brace
-% for instance) and |\kern| breaks hyphenation of the next word.
-% We define |\FBtextellipsis| for French (in \LaTeXe{} only).
-%
-% The |\if| construction in the \LaTeXe{} definition of |\dots|
-% doesn't allow the use of |xspace| (|xspace| is always followed
-% by a |\fi|), so we use the AMS-\LaTeX{} construction of |\dots|;
-% this has to be done `AtBeginDocument' not to be overwritten
-% when \file{amsmath.sty} is loaded after \babel.
-%
-% \changes{v2.0}{2006/11/06}{Added special case for LY1 encoding,
-% see bug report from Bruno Voisin (2004/05/18).}
-%
-% \changes{v2.5f}{2011/06/18}{Unicode fonts also provide a ready made
-% character for \cs{textellipsis}, let's just use it!
-% (reported by Maxime Chupin, 2011/06/04).}
-%
-% LY1 has a ready made character for |\textellipsis|, it should be
-% used in French too. The same is true for Unicode fonts in use
-% with XeTeX and LuaTeX.
-%
-% \begin{macrocode}
-\ifFBunicode
- \let\FBtextellipsis\textellipsis
-\else
- \DeclareTextSymbol{\FBtextellipsis}{LY1}{133}
- \DeclareTextCommandDefault{\FBtextellipsis}{%
- .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace}
-\fi
-% \end{macrocode}
-% |\Mdots@| and |\Tdots@ORI| hold the definitions of |\dots| in
-% Math and Text mode. They default to those of amsmath-2.0, and
-% will revert to standard \LaTeX{} definitions `AtBeginDocument',
-% if amsmath has not been loaded. |\Mdots@| doesn't change when
-% switching from/to French, while |\Tdots@| is |\FBtextellipsis|
-% in French and |\Tdots@ORI| otherwise.
-% \begin{macrocode}
-\newcommand*{\Tdots@ORI}{\@xp\textellipsis}
-\newcommand*{\Tdots@}{\Tdots@ORI}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Setup options: keyval stuff}
-% \label{sec-keyval}
-%
-% \changes{v2.0}{2006/11/06}{New command \cs{frenchbsetup} added
-% for global customisation.}
-%
-% \changes{v2.0c}{2007/06/25}{Option ThinSpaceInFrenchNumbers added.}
-%
-% \changes{v2.0d}{2007/07/15}{Options og and fg changed: limit
-% the definition to French so that quote characters can be used
-% in German.}
-%
-% \changes{v2.0e}{2007/10/05}{New option: StandardLists.}
-%
-% \changes{v2.0f}{2008/03/23}{Two typos corrected in
-% option StandardLists: [false] $\to$ [true] and
-% StandardLayout $\to$ StandardLists.}
-%
-% \changes{v2.0f}{2008/03/23}{StandardLayout option had no
-% effect on lists. Test moved to \cs{FBprocess@options}.}
-%
-% \changes{v2.0g}{2008/03/23}{Revert previous change to
-% StandardLayout. This option must set the three flags
-% \cs{FBReduceListSpacingfalse}, \cs{FBCompactItemizefalse},
-% and \cs{FBStandardItemLabeltrue} instead of
-% \cs{FBStandardListstrue}, so that later options can still
-% change their value before executing \cs{FBprocess@options}.
-% Same thing for option StandardLists.}
-%
-% \changes{v2.1a}{2008/03/24}{New option: FrenchSuperscripts
-% to define \cs{up} as \cs{fup} or as \cs{textsuperscript}.}
-%
-% \changes{v2.1a}{2008/03/30}{New option: LowercaseSuperscripts.}
-%
-% \changes{v2.2a}{2008/05/08}{The global layout of the document is
-% no longer changed when frenchb is not the last option of babel
-% (\cs{bbl@main@language}). Suggested by Ulrike Fischer.}
-%
-% \changes{v2.2a}{2008/05/08}{Values of flags
-% \cs{ifFBReduceListSpacing}, \cs{ifFBCompactItemize},
-% \cs{ifFBStandardItemLabels}, \cs{ifFBIndentFirst},
-% \cs{ifFBFrenchFootnotes}, \cs{ifFBAutoSpaceFootnotes} changed:
-% default now means `StandardLayout', it will be changed to
-% `FrenchLayout' AtEndOfPackage only if french is
-% \cs{bbl@main@language}.}
-%
-% \changes{v2.2a}{2008/05/08}{When frenchb is babel's last option,
-% French becomes the document's main language, so
-% GlobalLayoutFrench applies.}
-%
-% \changes{v2.3a}{2008/10/10}{New option: OriginalTypewriter. Now
-% frenchb switches to \cs{noautospace@beforeFDP} when a tt-font is
-% in use. When OriginalTypewriter is set to true, frenchb behaves
-% as in pre-2.3 versions.}
-%
-% \changes{v2.4a}{2009/11/23}{New option SuppressWarning.}
-%
-% \changes{v2.6a}{2013/01/30}{New options ListOldLayout,
-% StandardItemizeEnv and StandardEnumerateEnv (CompactItemize is
-% deprecated).}
-%
-% We first define a collection of conditionals with their defaults
-% (true or false).
-%
-% \begin{macrocode}
-\newif\ifFBStandardLayout \FBStandardLayouttrue
-\newif\ifFBGlobalLayoutFrench \FBGlobalLayoutFrenchfalse
-\newif\ifFBReduceListSpacing \FBReduceListSpacingfalse
-\newif\ifFBListOldLayout \FBListOldLayouttrue
-\newif\ifFBCompactItemize \FBCompactItemizefalse
-\newif\ifFBStandardItemizeEnv \FBStandardItemizeEnvtrue
-\newif\ifFBStandardEnumerateEnv \FBStandardEnumerateEnvtrue
-\newif\ifFBStandardItemLabels \FBStandardItemLabelstrue
-\newif\ifFBStandardLists \FBStandardListstrue
-\newif\ifFBIndentFirst \FBIndentFirstfalse
-\newif\ifFBFrenchFootnotes \FBFrenchFootnotesfalse
-\newif\ifFBAutoSpaceFootnotes \FBAutoSpaceFootnotesfalse
-\newif\ifFBOriginalTypewriter \FBOriginalTypewriterfalse
-\newif\ifFBThinColonSpace \FBThinColonSpacefalse
-\newif\ifFBThinSpaceInFrenchNumbers \FBThinSpaceInFrenchNumbersfalse
-\newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue
-\newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue
-\newif\ifFBPartNameFull \FBPartNameFulltrue
-\newif\ifFBSuppressWarning \FBSuppressWarningfalse
-\newif\ifFBShowOptions \FBShowOptionsfalse
-% \end{macrocode}
-%
-% The defaults values of these flags have been set so that |frenchb|
-% does not change anything regarding the global layout.
-% |\bbl@main@language|, set by the last option of babel, controls
-% the global layout of the document. `AtEndOfPackage' we check the
-% main language in |\bbl@main@language|; if it is French,
-% the values of some flags have to be changed to ensure a French
-% looking layout for the whole document (even in parts written in
-% languages other than French); the end-user will then be able to
-% customise the values of all these flags with |\frenchbsetup{}|.
-%
-% \changes{v2.5b}{2010/10/30}{Do not use the
-% test \cs{iflanguage}\{french\} to check whether French is the
-% main language or not, as it might be be erroneously positive
-% when English is the main language and no hyphenation patterns
-% are available for French.
-% In this case \cs{l@french} and \cs{l@english} are 0.
-% Pointed out by G\"unter Milde.}
-%
-% \begin{macrocode}
-\def\FB@french{french}
-\AtEndOfPackage{%
- \ifx\bbl@main@language\FB@french
- \FBReduceListSpacingtrue
- \FBListOldLayoutfalse
- \FBCompactItemizetrue
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \FBStandardItemLabelsfalse
- \FBIndentFirsttrue
- \FBFrenchFootnotestrue
- \FBAutoSpaceFootnotestrue
- \FBGlobalLayoutFrenchtrue
- \fi
-}
-% \end{macrocode}
-%
-% \begin{macro}{\frenchbsetup}
-% From version 2.0 on, all setup options are handled by \emph{one}
-% command |\frenchbsetup| using the keyval syntax.
-% Let's now define this command which reads and sets the options
-% to be processed later (at |\begin{document}|) by
-% |\FBprocess@options|. It can only be called in the preamble.
-% \begin{macrocode}
-\newcommand*{\frenchbsetup}[1]{%
- \setkeys{FB}{#1}%
-}%
-\@onlypreamble\frenchbsetup
-% \end{macrocode}
-% |frenchb| being an option of babel, it cannot load a package
-% (\file{keyval}) while \file{frenchb.ldf} is read, so we defer the
-% loading of \file{keyval} and the options setup at the end of
-% \babel's loading.
-%
-% |StandardLayout| resets the layout in French to the standard layout
-% defined par the \LaTeX{} class and packages loaded. It deals with
-% lists, indentation of first paragraphs of sections and footnotes.
-% Other keys, entered \emph{after} |StandardLayout| in
-% |\frenchbsetup|, can overrule some of the |StandardLayout|
-% settings.
-%
-% When French is the main language, |GlobalLayoutFrench| forces the
-% layout in French and (as far as possible) outside French to meet
-% the French typographic standards.
-%
-% \changes{v2.3d}{2009/03/16}{Warning added to \cs{GlobalLayoutFrench}
-% when French is not the main language.}
-%
-% \changes{v2.5b}{2010/10/30}{Do not use the
-% test \cs{iflanguage}\{french\} to check whether French is the
-% main language or not, as it might be be erroneously positive
-% when English is the main language and no hyphenation patterns
-% are available for French.
-% In this case \cs{l@french} and \cs{l@english} are 0.
-% Pointed out by G\"unter Milde.}
-%
-% \begin{macrocode}
-\AtEndOfPackage{%
- \RequirePackage{keyval}%
- \define@key{FB}{StandardLayout}[true]%
- {\csname FBStandardLayout#1\endcsname
- \ifFBStandardLayout
- \FBReduceListSpacingfalse
- \FBStandardItemizeEnvtrue
- \FBStandardEnumerateEnvtrue
- \FBStandardItemLabelstrue
- \FBIndentFirstfalse
- \FBFrenchFootnotesfalse
- \FBAutoSpaceFootnotesfalse
- \FBGlobalLayoutFrenchfalse
- \else
- \FBReduceListSpacingtrue
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \FBStandardItemLabelsfalse
- \FBIndentFirsttrue
- \FBFrenchFootnotestrue
- \FBAutoSpaceFootnotestrue
- \fi}%
- \define@key{FB}{GlobalLayoutFrench}[true]%
- {\csname FBGlobalLayoutFrench#1\endcsname
- \ifFBGlobalLayoutFrench
- \ifx\bbl@main@language\FB@french
- \FBReduceListSpacingtrue
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \FBStandardItemLabelsfalse
- \FBIndentFirsttrue
- \FBFrenchFootnotestrue
- \FBAutoSpaceFootnotestrue
- \else
- \PackageWarning{frenchb.ldf}%
- {Option `GlobalLayoutFrench' skipped:
- \MessageBreak French is *not*
- babel's last option.\MessageBreak}%
- \fi
- \fi}%
- \define@key{FB}{ReduceListSpacing}[true]%
- {\csname FBReduceListSpacing#1\endcsname}%
- \define@key{FB}{ListOldLayout}[true]%
- {\csname FBListOldLayout#1\endcsname
- \ifFBListOldLayout
- \renewcommand*{\FrenchLabelItem}{\textendash}%
- \fi}%
- \define@key{FB}{CompactItemize}[true]%
- {\csname FBCompactItemize#1\endcsname
- \ifFBCompactItemize
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \else
- \FBStandardItemizeEnvtrue
- \FBStandardEnumerateEnvtrue
- \fi}%
- \define@key{FB}{StandardItemizeEnv}[true]%
- {\csname FBStandardItemizeEnv#1\endcsname}%
- \define@key{FB}{StandardEnumerateEnv}[true]%
- {\csname FBStandardEnumerateEnv#1\endcsname}%
- \define@key{FB}{StandardItemLabels}[true]%
- {\csname FBStandardItemLabels#1\endcsname}%
- \define@key{FB}{ItemLabels}{%
- \renewcommand*{\FrenchLabelItem}{#1}}%
- \define@key{FB}{ItemLabeli}{%
- \renewcommand*{\Frlabelitemi}{#1}}%
- \define@key{FB}{ItemLabelii}{%
- \renewcommand*{\Frlabelitemii}{#1}}%
- \define@key{FB}{ItemLabeliii}{%
- \renewcommand*{\Frlabelitemiii}{#1}}%
- \define@key{FB}{ItemLabeliv}{%
- \renewcommand*{\Frlabelitemiv}{#1}}%
- \define@key{FB}{StandardLists}[true]%
- {\csname FBStandardLists#1\endcsname
- \ifFBStandardLists
- \FBReduceListSpacingfalse
- \FBCompactItemizefalse
- \FBStandardItemizeEnvtrue
- \FBStandardEnumerateEnvtrue
- \FBStandardItemLabelstrue
- \else
- \FBReduceListSpacingtrue
- \FBCompactItemizetrue
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \FBStandardItemLabelsfalse
- \fi}%
- \define@key{FB}{IndentFirst}[true]%
- {\csname FBIndentFirst#1\endcsname}%
- \define@key{FB}{FrenchFootnotes}[true]%
- {\csname FBFrenchFootnotes#1\endcsname}%
- \define@key{FB}{AutoSpaceFootnotes}[true]%
- {\csname FBAutoSpaceFootnotes#1\endcsname}%
- \define@key{FB}{AutoSpacePunctuation}[true]%
- {\csname FBAutoSpacePunctuation#1\endcsname}%
- \define@key{FB}{OriginalTypewriter}[true]%
- {\csname FBOriginalTypewriter#1\endcsname}%
- \define@key{FB}{ThinColonSpace}[true]%
- {\csname FBThinColonSpace#1\endcsname}%
- \define@key{FB}{ThinSpaceInFrenchNumbers}[true]%
- {\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
- \define@key{FB}{FrenchSuperscripts}[true]%
- {\csname FBFrenchSuperscripts#1\endcsname}
- \define@key{FB}{LowercaseSuperscripts}[true]%
- {\csname FBLowercaseSuperscripts#1\endcsname}
- \define@key{FB}{PartNameFull}[true]%
- {\csname FBPartNameFull#1\endcsname}%
- \define@key{FB}{SuppressWarning}[true]%
- {\csname FBSuppressWarning#1\endcsname
- \ifFBSuppressWarning
- \renewcommand{\FBWarning}[2]{\relax}%
- \else
- \renewcommand{\FBWarning}[2]{%
- \PackageWarning{##1}{##2}}%
- \fi}
- \define@key{FB}{ShowOptions}[true]%
- {\csname FBShowOptions#1\endcsname}%
-% \end{macrocode}
-% Inputing French quotes as \emph{single characters} when they are
-% available on the keyboard (through a compose key for instance)
-% is more comfortable than typing |\og| and |\fg|.
-% The purpose of the following code is to map the French quote
-% characters to |\og\ignorespaces| and |{\fg}| respectively when
-% the current language is French, and to |\guillemotleft| and
-% |\guillemotright| otherwise (think of German quotes); thus correct
-% unbreakable spaces will be added automatically to French quotes.
-% The quote characters typed in depend on the input encoding,
-% it can be single-byte (latin1, latin9, applemac,\dots) or
-% multi-bytes (utf-8, utf8x). We first check whether XeTeX or
-% LuaTeX engines are used, if not the \file{inputenc} package has to
-% be loaded before the |\begin{document}| with the proper coding
-% option, so we check if |\DeclareInputText| is defined.
-%
-% \changes{v2.4c}{2010/05/23}{In \cs{ttfamilyFB}, also cancel
-% automatic spaces inside French guillemets coded as characters
-% (see \cs{frenchbsetup}).}
-%
-% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the
-% tested control sequence defined as \cs{relax} when TRUE.
-% Changed \cs{relax} to \cs{undefined} when testing
-% \cs{XeTeXrevision}, \cs{DeclareInputText}, \cs{uc@dclc},
-% \cs{DeclareUnicodeCharacter}, \cs{mule@def} in \cs{og} and
-% \cs{fg}.}
-%
-% \changes{v2.5c}{2011/01/16}{The code meant for XeTeX also works for
-% LuaTeX, we just need to change the test.}
-%
-% \changes{v2.5g}{2011/12/31}{When \cs{ifFB@xetex@punct} is true,
-% `og' and `fg' options now set XeTeXcharclasses of these characters
-% to \cs{FB@punctguilo} and \cs{FB@punctguilf}. Otherwise French
-% quotes behave as normal characters (their XeTeXcharclass is 0).}
-%
-% \begin{macrocode}
- \define@key{FB}{og}{%
- \newcommand*{\FB@@og}{%
- \iflanguage{french}%
- {\ifFBAutoSpaceGuill\FB@og\ignorespaces
- \else\guillemotleft
- \fi}%
- {\guillemotleft}}%
- \ifFBunicode
-% \end{macrocode}
-% LuaTeX or XeTeX in use,
-% \begin{macrocode}
- \ifFB@xetex@punct
-% \end{macrocode}
-% |\XeTeXinterchartokenstate| is defined, we just need to set
-% |\XeTeXcharclass| to |\FB@punctguilo| for the French opening
-% quote (see subsection~\ref{sec-punct}) and to switch
-% |\ifFBog@addspace| to false, otherwise commands |\og| and
-% |\fg| would produce a double space; the |\ifFBguillo@addspace|
-% flag is needed when switching from |\ttfamily| back to |\sf| or
-% |\rm|.
-% \begin{macrocode}
- \XeTeXcharclass"00AB = \FB@punctguilo
- \FBguillo@addspacetrue \FBog@addspacefalse
- \else
-% \end{macrocode}
-% then LuaTeX or an old XeTeX in use, the following trick
-% for defining the active quote character is borrowed from
-% \file{inputenc.dtx}.
-% \begin{macrocode}
- \catcode`#1=\active
- \bgroup
- \uccode`\~`#1%
- \uppercase{%
- \egroup
- \def~%
- }{\FB@@og}%
- \fi
- \else
-% \end{macrocode}
-% This is for conventional TeX engines:
-% \begin{macrocode}
- \AtBeginDocument
- {\@ifundefined{DeclareInputText}%
- {\PackageWarning{frenchb.ldf}%
- {Option `og' requires package inputenc.\MessageBreak}%
- \let\DeclareInputText\undefined
- }%
- {\@ifundefined{uc@dclc}%
-% \end{macrocode}
-% if |\uc@dclc| is undefined, utf8x is not loaded\dots
-% \begin{macrocode}
- {\@ifundefined{DeclareUnicodeCharacter}%
-% \end{macrocode}
-% if |\DeclareUnicodeCharacter| is undefined, utf8 is not loaded
-% either, we assume 8-bit character input encoding.
-% Package \file{MULEenc.sty} (from CJK) defines |\mule@def| to map
-% characters to control sequences.
-% \begin{macrocode}
- {\@tempcnta`#1\relax
- \@ifundefined{mule@def}%
- {\DeclareInputText{\the\@tempcnta}{\FB@@og}%
- \let\mule@def\undefined}%
- {\mule@def{11}{{\FB@@og}}}%
- \let\DeclareUnicodeCharacter\undefined
- }%
-% \end{macrocode}
-% utf8 loaded, use |\DeclareUnicodeCharacter|,
-% \begin{macrocode}
- {\DeclareUnicodeCharacter{00AB}{\FB@@og}}%
- \let\uc@dclc\undefined
- }%
-% \end{macrocode}
-% utf8x loaded, use |\uc@dclc|,
-% \begin{macrocode}
- {\uc@dclc{171}{default}{\FB@@og}}%
- }%
- }%
- \fi
- }%
-% \end{macrocode}
-% Same code for the closing quote.
-% \begin{macrocode}
- \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
- \else
- \catcode`#1=\active
- \bgroup
- \uccode`\~`#1%
- \uppercase{%
- \egroup
- \def~%
- }{{\FB@@fg}}%
- \fi
- \else
- \AtBeginDocument
- {\@ifundefined{DeclareInputText}%
- {\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
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\FBprocess@options}
-% |\FBprocess@options| processes the options, it is called \emph{once}
-% at |\begin{document}|.
-% \begin{macrocode}
-\newcommand*{\FBprocess@options}{%
-% \end{macrocode}
-% Nothing has to be done here for |StandardLayout| and
-% |StandardLists| (the involved flags have already been set in
-% |\frenchbsetup{}| or before (at babel's EndOfPackage).
-%
-% The next three options deal with the layout of lists in French.
-%
-% |ReduceListSpacing| reduces the vertical spaces in lists
-% in French (done by changing |\list| to |\listFB|).
-% When |GlobalLayoutFrench| is true (the default), the same is
-% done outside French except for languages that force a different
-% setting.
-% \begin{macrocode}
- \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
-% \end{macrocode}
-%
-% When |ListOldLayout=true|, set |StandardEnumerateEnv=true|
-% (before v.~2.6a |enumerate| was not redefined).
-% \begin{macrocode}
- \ifFBListOldLayout
- \FBStandardEnumerateEnvtrue
- \fi
-% \end{macrocode}
-%
-% \changes{v2.4b}{2010/04/30}{Warning and set flag CompactItemize=false
-% when the enumitem package is loaded (ensures compatibility).}
-%
-% \changes{v2.5k}{2012/12/27}{No warning if flag CompactItemize already
-% set to false by user.}
-%
-% \changes{v2.6a}{2013/01/30}{Flag CompactItemize deprecated.
-% Set flags StandardItemizeEnv and StandardEnumerateEnv to true
-% when the enumitem package is loaded.}
-%
-% \changes{v2.6a}{2013/01/30}{Ensure compatibility with paralist and
-% enumerate packages.}
-%
-% To ensure compatibility with the \file{enumitem} package, when
-% |enumitem| is loaded, force flags |StandardItemizeEnv| and
-% |StandardEnumerateEnv| to true.
-% \begin{macrocode}
- \@ifpackageloaded{enumitem}{%
- \ifFBStandardItemizeEnv
- \else
- \FBWarning{frenchb.ldf}%
- {Setting StandardItemizeEnv=true for\MessageBreak
- compatibility with enumitem package,\MessageBreak}%
- \FBStandardItemizeEnvtrue
- \fi
- \ifFBStandardEnumerateEnv
- \else
- \FBWarning{frenchb.ldf}%
- {Setting StandardEnumerateEnv=true for\MessageBreak
- compatibility with enumitem package,\MessageBreak}%
- \FBStandardEnumerateEnvtrue
- \fi}%
- {}%
-% \end{macrocode}
-%
-% To ensure compatibility with the \file{paralist} package, when
-% \file{paralist} is loaded; force flags |StandardItemizeEnv| and
-% |StandardEnumerateEnv| to true.
-% \begin{macrocode}
- \@ifpackageloaded{paralist}{%
- \ifFBStandardItemizeEnv
- \else
- \FBWarning{frenchb.ldf}%
- {Setting StandardItemizeEnv=true for\MessageBreak
- compatibility with paralist package,\MessageBreak}%
- \FBStandardItemizeEnvtrue
- \fi
- \ifFBStandardEnumerateEnv
- \else
- \FBWarning{frenchb.ldf}%
- {Setting StandardEnumerateEnv=true for\MessageBreak
- compatibility with paralist package,\MessageBreak}%
- \FBStandardEnumerateEnvtrue
- \fi}%
- {}%
-% \end{macrocode}
-%
-% To ensure compatibility with the \file{enumerate} package, when
-% |enumerate| is loaded, force flag |StandardEnumerateEnv| to true.
-% \begin{macrocode}
- \@ifpackageloaded{enumerate}{%
- \ifFBStandardEnumerateEnv
- \else
- \FBWarning{frenchb.ldf}%
- {Setting StandardEnumerateEnv=true for\MessageBreak
- compatibility with enumerate package,\MessageBreak}%
- \FBStandardEnumerateEnvtrue
- \fi}%
- {}%
-% \end{macrocode}
-%
-% Let's now process flags |StandardItemizeEnv| and
-% |StandardEnumerateEnv|. Mind that
-% |StandardEnumerateEnv|'s value decides for both environments
-% |enumerate| and |description|).
-% \begin{macrocode}
- \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
-% \end{macrocode}
-%
-% |StandardItemLabels| resets labelitems in French to their
-% standard values set by the \LaTeX{} class and packages loaded.
-% When |GlobalLayoutFrench| is true, labelitems are identical
-% whether the current language is French or not.
-% \begin{macrocode}
- \ifFBStandardItemLabels
- \addto\extrasfrench{\bbl@nonfrenchlabelitems}%
- \addto\noextrasfrench{\bbl@nonfrenchlabelitems}%
- \else
- \addto\extrasfrench{\bbl@frenchlabelitems}%
- \addto\noextrasfrench{\ifFBGlobalLayoutFrench
- \bbl@frenchlabelitems
- \else
- \bbl@nonfrenchlabelitems
- \fi}%
- \fi
-% \end{macrocode}
-%
-% |IndentFirst| forces the first paragraphs of sections to be
-% indented just like the other ones in French.
-% When |GlobalLayoutFrench| is true, the same is done outside French
-% except for languages that force a different setting.
-% |\bbl@nonfrenchindent| has been designed to be smart with other
-% languages (like Spanish) who also indent every first paragraphs of
-% sections (see section~\ref{sec-indent}).
-% \begin{macrocode}
- \ifFBIndentFirst
- \addto\extrasfrench{\bbl@frenchindent}%
- \addto\noextrasfrench{\ifFBGlobalLayoutFrench
- \bbl@frenchindent
- \else
- \bbl@nonfrenchindent
- \fi}%
- \else
- \addto\extrasfrench{\bbl@nonfrenchindent}%
- \addto\noextrasfrench{\bbl@nonfrenchindent}%
- \fi
-% \end{macrocode}
-%
-% The layout of footnotes is handled at the |\begin{document}|
-% depending on the values of flags |FrenchFootnotes|
-% and |AutoSpaceFootnotes| (see section~\ref{sec-footnotes}),
-% nothing has to be done here for footnotes.
-%
-% |AutoSpacePunctuation| adds an unbreakable space (in French only)
-% before the four active characters (:;!?) even if none has been
-% typed before them.
-% \begin{macrocode}
- \ifFBAutoSpacePunctuation
- \autospace@beforeFDP
- \else
- \noautospace@beforeFDP
- \fi
-% \end{macrocode}
-%
-% When |OriginalTypewriter| is set to |false| (the default),
-% |\ttfamily|, |\rmfamily| and |\sffamily| are redefined as
-% |\ttfamilyFB|, |\rmfamilyFB| and |\sffamilyFB| respectively
-% to prevent addition of automatic spaces before the four active
-% characters in computer code.
-% \begin{macrocode}
- \ifFBOriginalTypewriter
- \else
- \let\ttfamily\ttfamilyFB
- \let\rmfamily\rmfamilyFB
- \let\sffamily\sffamilyFB
- \fi
-% \end{macrocode}
-%
-% |ThinColonSpace| changes the normal unbreakable space typeset in
-% French before `:' to a thin space.
-% \begin{macrocode}
- \ifFBThinColonSpace\renewcommand*{\Fcolonspace}{\Fthinspace}\fi
-% \end{macrocode}
-%
-% When |true|, |ThinSpaceInFrenchNumbers| redefines |numprint.sty|'s
-% command |\npstylefrench| to set |\npthousandsep| to |\,|
-% (thinspace) instead of |~| (default) . This option has no effect
-% if package \file{numprint.sty} is not loaded with `|autolanguage|'.
-% As old versions of \file{numprint.sty} did not define
-% |\npstylefrench|, we have to provide this command.
-% \begin{macrocode}
- \@ifpackageloaded{numprint}%
- {\ifnprt@autolanguage
- \providecommand*{\npstylefrench}{}%
- \ifFBThinSpaceInFrenchNumbers
- \renewcommand*\npstylefrench{%
- \npthousandsep{\,}%
- \npdecimalsign{,}%
- \npproductsign{\cdot}%
- \npunitseparator{\,}%
- \npdegreeseparator{}%
- \nppercentseparator{\nprt@unitsep}%
- }%
- \else
- \renewcommand*\npstylefrench{%
- \npthousandsep{~}%
- \npdecimalsign{,}%
- \npproductsign{\cdot}%
- \npunitseparator{\,}%
- \npdegreeseparator{}%
- \nppercentseparator{\nprt@unitsep}%
- }%
- \fi
- \npaddtolanguage{french}{french}%
- \fi}{}%
-% \end{macrocode}
-%
-% |FrenchSuperscripts|: if |true| |\up=\fup|, else
-% |\up=\textsuperscript|. Anyway |\up*=\FB@up@fake|. The star-form
-% |\up*{}| is provided for fonts that lack some superior letters:
-% Adobe Jenson Pro and Utopia Expert have no ``g superior'' for
-% instance.
-% \begin{macrocode}
- \ifFBFrenchSuperscripts
- \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}{\fup}}%
- \else
- \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}%
- {\textsuperscript}}%
- \fi
-% \end{macrocode}
-%
-% |LowercaseSuperscripts|: if |true| let |\FB@lc| be |\lowercase|,
-% else |\FB@lc| is redefined to do nothing.
-% \begin{macrocode}
- \ifFBLowercaseSuperscripts
- \else
- \renewcommand*{\FB@lc}[1]{##1}%
- \fi
-% \end{macrocode}
-%
-% |PartNameFull|: if |false|, redefine |\partname|.
-% \begin{macrocode}
- \ifFBPartNameFull
- \else\addto\captionsfrench{\def\partname{Partie}}\fi
-% \end{macrocode}
-%
-% |ShowOptions|: if |true|, print the list of all options to the
-% \file{.log} file.
-% \begin{macrocode}
- \ifFBShowOptions
- \GenericWarning{* }{%
- * **** List of possible options for frenchb ****\MessageBreak
- [Default values between brackets when frenchb is loaded *LAST*]%
- \MessageBreak
- ShowOptions=true [false]\MessageBreak
- StandardLayout=true [false]\MessageBreak
- GlobalLayoutFrench=false [true]\MessageBreak
- StandardLists=true [false]\MessageBreak
- IndentFirst=false [true]\MessageBreak
- ReduceListSpacing=false [true]\MessageBreak
- ListOldLayout=true [false]\MessageBreak
- StandardItemizeEnv=true [false]\MessageBreak
- StandardEnumerateEnv=true [false]\MessageBreak
- StandardItemLabels=true [false]\MessageBreak
- ItemLabels=\textemdash, \textbullet,
- \protect\ding{43},... [\textendash]\MessageBreak
- ItemLabeli=\textemdash, \textbullet,
- \protect\ding{43},... [\textendash]\MessageBreak
- ItemLabelii=\textemdash, \textbullet,
- \protect\ding{43},... [\textendash]\MessageBreak
- ItemLabeliii=\textemdash, \textbullet,
- \protect\ding{43},... [\textendash]\MessageBreak
- ItemLabeliv=\textemdash, \textbullet,
- \protect\ding{43},... [\textendash]\MessageBreak
- FrenchFootnotes=false [true]\MessageBreak
- AutoSpaceFootnotes=false [true]\MessageBreak
- AutoSpacePunctuation=false [true]\MessageBreak
- OriginalTypewriter=true [false]\MessageBreak
- ThinColonSpace=true [false]\MessageBreak
- ThinSpaceInFrenchNumbers=true [false]\MessageBreak
- FrenchSuperscripts=false [true]\MessageBreak
- LowercaseSuperscripts=false [true]\MessageBreak
- PartNameFull=false [true]\MessageBreak
- SuppressWarning=true [false]\MessageBreak
- og= <left quote character>, fg= <right quote character>
- \MessageBreak
- *********************************************
- \MessageBreak\protect\frenchbsetup{ShowOptions}}
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \changes{v2.0}{2006/12/15}{AtBeginDocument, save again the
-% definitions of the `list' and `itemize' environments and the
-% values of labelitems. As of frenchb v.~1.6, `ORI' values were
-% set when reading frenchb.ldf, later changes were ignored.}
-%
-% \changes{v2.0}{2006/12/06}{Added warning for OT1 encoding.}
-%
-% \changes{v2.1b}{2008/04/07}{Disable some commands in bookmarks.}
-%
-% \changes{v2.5a}{2010/08/21}{Test \cs{@ifundefined} leaves the
-% tested control sequence defined as \cs{relax} when TRUE.
-% Changed \cs{relax} to \cs{undefined} when testing
-% \cs{pdfstringdefDisableCommands} AtBeginDocument.}
-%
-% \changes{v2.5e}{2011/04/03}{The redefinition of
-% \cs{pdfstringdefDisableCommands} from \cs{relax} to \cs{undefined}
-% was misplaced. Reported by S\'ebastien Gouezel.}
-%
-% \changes{v2.5e}{2011/04/03}{\cs{pdfstringdefDisableCommands} should
-% redefine \cs{FB@og} and \cs{FB@fg} instead of \cs{og} and \cs{fg}
-% so that it works also when quotes are entered as characters.
-% Reported by S\'ebastien Gouezel.}
-%
-% At |\begin{document}| we save again the value of
-% |\if@afterindent|, definitions of the list environments and the
-% values of labelitems so that all changes made in the preamble are
-% taken into account in languages other than French and in French
-% with the StandardLayout option.
-% We also have to provide an |\xspace| command in case the
-% \file{xspace.sty} package is not loaded.
-%
-% \begin{macrocode}
-\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}%
-% \end{macrocode}
-%
-% \changes{v2.5g}{2011/11/13}{Redefine \cs{degre}, \cs{degres} \cs{at}
-% \cs{circonflexe} and \cs{tild} for bookmarks. Add \cs{fup} also.}
-%
-% Let's redefine some commands in \file{hyperref}'s bookmarks.
-% \begin{macrocode}
- \@ifundefined{pdfstringdefDisableCommands}%
- {\let\pdfstringdefDisableCommands\undefined}%
- {\pdfstringdefDisableCommands{%
- \let\up\relax
- \let\fup\relax
- \let\degre\textdegree
- \let\degres\textdegree
- \def\ieme{e\xspace}%
- \def\iemes{es\xspace}%
- \def\ier{er\xspace}%
- \def\iers{ers\xspace}%
- \def\iere{re\xspace}%
- \def\ieres{res\xspace}%
- \def\FrenchEnumerate#1{#1\degre\space}%
- \def\FrenchPopularEnumerate#1{#1\degre)\space}%
- \def\No{N\degre\space}%
- \def\no{n\degre\space}%
- \def\Nos{N\degre\space}%
- \def\nos{n\degre\space}%
- \def\FB@og{\guillemotleft\space}%
- \def\FB@fg{\space\guillemotright}%
- \def\at{@}%
- \def\circonflexe{\string^}%
- \def\tild{\string~}%
- \let\bsc\textsc
- }%
- }%
-% \end{macrocode}
-%
-% It is time to process the options set with |\frenchboptions{}|.
-% Then we need to execute either |\extrasfrench| and
-% |\captionsfrench| or |\noextrasfrench| according to the current
-% language at the |\begin{document}| (these three commands have been
-% updated by |\FBprocess@options|). \emph{But}, when French is the
-% main language, |\extrasfrench| is executed \emph{again} now
-% (French has been switched on `AtBeginDocument' some time before).
-% This is harmless, except for |\bbl@frenchspacing| which will
-% redefine |\bbl@nonfrenchspacing| to |\relax|, this will be
-% wrong if the user switches to English.
-% When French is \emph{not} the main language, |\noextrasfrench|
-% executes |\bbl@nonfrenchspacing| (=|\nonfrenchspacing|), thus
-% eventually overwriting a |\frenchspacing| command issued by the
-% main language (German, Spanish, etc.).
-% So we have to define |\bbl@nonfrenchspacing| as |\relax| here
-% and restore it's meaning afterwards.
-%
-% \changes{v2.5a}{2010/08/15}{Define \cs{bbl@nonfrenchspacing} locally
-% as \cs{relax}, otherwise the \cs{bbl@frenchspacing} command
-% included in germanb.ldf is overwritten here by
-% \cs{noextrasfrench}. Bug pointed out by Ulrike Fischer.}
-%
-% \changes{v2.5b}{2010/10/30}{Do not use the
-% test \cs{iflanguage}\{french\} to check whether French is the
-% main language or not, as it might be be erroneously positive
-% when English is the main language and no hyphenation patterns
-% are available for French.
-% In this case \cs{l@french} and \cs{l@english} are 0.
-% Pointed out by G\"unter Milde.}
-%
-% \begin{macrocode}
- \FBprocess@options
- \let\bbl@nonfrenchspacingORI\bbl@nonfrenchspacing
- \let\bbl@nonfrenchspacing\relax
- \ifx\bbl@main@language\FB@french
- \extrasfrench\captionsfrench
- \else
- \noextrasfrench
- \fi
- \let\bbl@nonfrenchspacing\bbl@nonfrenchspacingORI
-% \end{macrocode}
-% Some warnings are issued when output font encodings are not
-% properly set. With XeLaTeX, \file{fontspec.sty} and
-% \file{xunicode.sty} should be loaded; with (pdf)\LaTeX, a warning
-% is issued when OT1 encoding is in use at the |\begin{document}|.
-% Mind that |\encodingdefault| is defined as `long', defining
-% |\FBOTone| with |\newcommand*| would fail!
-% \begin{macrocode}
- \ifFBXeTeX
- \@ifundefined{DeclareUTFcharacter}%
- {\PackageWarning{frenchb.ldf}%
- {Add \protect\usepackage{xltxtra} to the\MessageBreak
- preamble of your document,}%
- \let\DeclareUTFcharacter\undefined}%
- {}%
- \else
- \begingroup \newcommand{\FBOTone}{OT1}%
- \ifx\encodingdefault\FBOTone
- \PackageWarning{frenchb.ldf}%
- {OT1 encoding should not be used for French.
- \MessageBreak
- Add \protect\usepackage[T1]{fontenc} to the
- preamble\MessageBreak of your document,}%
- \fi
- \endgroup
- \fi
-}
-% \end{macrocode}
-%
-% \subsection{Clean up and exit}
-%
-% Load |frenchb.cfg| (should do nothing, just for compatibility).
-% \begin{macrocode}
-\loadlocalcfg{frenchb}
-% \end{macrocode}
-% Final cleaning.
-% The macro |\ldf@quit| takes care for setting the main language
-% to be switched on at |\begin{document}| and resetting the
-% category code of \texttt{@} to its original value.
-% The config file searched for has to be |frenchb.cfg|, and
-% |\CurrentOption| has been set to `french', so
-% |\ldf@finish\CurrentOption| cannot be used: we first load
-% |frenchb.cfg|, then call |\ldf@quit\CurrentOption|.
-% \begin{macrocode}
-\FBclean@on@exit
-\ldf@quit\CurrentOption
-% \end{macrocode}
-% \iffalse
-%</code>
-%<*dtx>
-% \fi
-%%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-% \iffalse
-%</dtx>
-% \fi
-%
-% \Finale
-% \clearpage\PrintChanges
-\endinput
diff --git a/Master/texmf-dist/source/generic/babel-frenchb/frenchb.ins b/Master/texmf-dist/source/generic/babel-frenchb/frenchb.ins
deleted file mode 100644
index d6ffaa5abcd..00000000000
--- a/Master/texmf-dist/source/generic/babel-frenchb/frenchb.ins
+++ /dev/null
@@ -1,118 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% Copyright 2001-2013 Daniel Flipo. All rights reserved.
-%%
-%% This file is part of the Babel system, release 3.9.
-%% ---------------------------------------------------
-%%
-%% It may be distributed under the terms of the LaTeX Project Public
-%% License, as described in lppl.txt in the base LaTeX distribution.
-%% Either version 1.2 or, at your option, any later version.
-%%
-%% --------------- start of docstrip commands ------------------
-%%
-\def\filedate{2013/03/22}
-\def\batchfile{frenchb.ins}
-\input docstrip.tex
-
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\declarepreamble\mainpreamble
-This is a generated file of the Babel system.
----------------------------------------------------------
-
-It may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-The Current Maintainer of this work is Daniel Flipo.
-
-This file may only be distributed together with a copy of the Babel
-system. You may however distribute the Babel system without
-such generated files.
-
-The list of all files belonging to the Babel distribution is
-given in the file `manifest.bbl'. See also `legal.bbl for additional
-information.
-
-The list of derived (unpacked) files belonging to the distribution
-and covered by LPPL is defined by the unpacking scripts (with
-extension .ins) which are part of the distribution.
-
-\endpreamble
-
-\declarepreamble\fdpreamble
-
-This is a generated file.
-
-Copyright 2001-2013 Daniel Flipo. All rights reserved.
-
-This file is part of the Babel system, release 3.9.
----------------------------------------------------
-
-It may be distributed under the terms of the LaTeX Project Public
-License, as described in lppl.txt in the base LaTeX distribution.
-Either version 1.2 or, at your option, any later version.
-
-In particular, permission is granted to customize the declarations in
-this file to serve the needs of your installation.
-
-However, NO PERMISSION is granted to distribute a modified version
-of this file under its original name.
-
-\endpreamble
-
-\keepsilent
-
-\usedir{tex/generic/babel}
-
-\usepreamble\mainpreamble
-\generate{\file{frenchb.ldf}{\from{frenchb.dtx}{code}}
- }
-\nopreamble
-\nopostamble
-\generate{\file{frenchb.cfg}{\from{frenchb.dtx}{cfg}}
- }
-
-\ifToplevel{
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the files ending with}
-\Msg{* '.dtx' and `.fdd' through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-}
-
-\endinput
-
-
-
-