summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-04-21 22:17:31 +0000
committerKarl Berry <karl@freefriends.org>2014-04-21 22:17:31 +0000
commit55b6d1e036cbf4eb905dd1438723d091232649cf (patch)
tree6d2fe9b1ec97b2e62e0bacd941f9b908004580b0 /Master/texmf-dist/source/generic/babel-french/frenchb.dtx
parentb9cdcfa7770322ac6a61dfb79bc747704cb9170c (diff)
babel-french (21apr14)
git-svn-id: svn://tug.org/texlive/trunk@33601 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic/babel-french/frenchb.dtx')
-rw-r--r--Master/texmf-dist/source/generic/babel-french/frenchb.dtx306
1 files changed, 196 insertions, 110 deletions
diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
index 2bb07d3ce57..1ab4c36a678 100644
--- a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
+++ b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
@@ -1,4 +1,4 @@
-%\CheckSum{3066}
+%\CheckSum{3084}
%
%\iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
@@ -13,14 +13,14 @@
%<ldf>\ProvidesLanguage{frenchb}
%\ProvidesFile{frenchb.dtx}
%<*!lua>
- [2014/03/14 v3.0b French support from the babel system]
+ [2014/04/18 v3.0c French support from the babel system]
%</!lua>
%<*internal>
\iffalse
%</internal>
%<*lua>
--
--- File `frenchb.lua' generated from frenchb.dtx [2014/03/14 v3.0b]
+-- File `frenchb.lua' generated from frenchb.dtx [2014/04/18 v3.0c]
--
-- Copyright (C) 2014 Daniel Flipo <daniel.flipo at free.fr>
-- License LPPL: see frenchb.dtx.
@@ -111,7 +111,8 @@
% ISBN-2-11-081075-0.
%
% First version released: 1.1 (May 1996) as part of
-% \babel-3.6beta. Version~2.0a was released in February 2007.
+% \babel-3.6beta. Version~2.0a was released in February 2007 and
+% version~3.0a in February 2014.
%
% \frenchb{} has been improved using helpful suggestions from many
% people, mainly from Jacques André, Michel Bovani, Thierry Bouche,
@@ -169,8 +170,7 @@
% Regarding local typography, the command |\selectlanguage{french}|
% switches to the French language\footnote{%
% \cs{selectlanguage\{francais\}} and
-% \cs{selectlanguage\{frenchb\}} are kept for backward
-% compatibility but should no longer be used.},
+% \cs{selectlanguage\{frenchb\}} are no longer supported.},
% with the following effects:
% \begin{enumerate}
% \item French hyphenation patterns are made active;
@@ -186,7 +186,7 @@
% \item the space after |\dots| is removed in French.
% \end{enumerate}
%
-% Some commands are provided in \frenchb{} to make typesetting
+% Some commands are provided by \frenchb{} to make typesetting
% easier:
% \begin{enumerate}
% \item French quotation marks can be entered using the commands
@@ -194,8 +194,12 @@
% 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.
+% |<<~French quotation~>>|: |\og| and |\fg| provide
+% better horizontal spacing (controlled by |\FBguillspace|).
+% If French quote characters are available on your keyboard,
+% you can use them, to get proper spacing in \LaTeXe{} see
+% option \fbo{og=«, fg=»} p.~\pageref{option-og-fg}.
+%
% |\og| and |\fg| can be used outside French, they typeset
% then English quotes `` and ''.
% \item A command |\up| is provided to typeset superscripts like
@@ -255,7 +259,7 @@
% (after loading \babel).
%
% \subsubsection[\textbackslash frenchbsetup{}]
-% {\fbsetup{\marg{options}}}
+% {\fbsetup{options}}
% \label{sssec-frenchbsetup}
%
% \vspace{.5\baselineskip}
@@ -332,7 +336,7 @@
% \cs{ding\{43\}},...(\cs{textemdash}*)]
% \item [StandardLists=true (false*)] forbids \frenchb{} to
% customise any kind of list. Try the option \fbo{StandardLists}
-% in case of conflicts with classes or packages that customise
+% in case of conflicts with classes or packages that customise
% lists too. This option is just a shorthand setting all four
% options \fbo{ReduceListSpacing=false},
% \fbo{StandardItemizeEnv=true}, \fbo{StandardEnumerateEnv=true}
@@ -363,16 +367,18 @@
% \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~`|:|' as recommended by
-% the French Imprimerie nationale. This is convenient in most
-% cases but can lead to addition of spurious spaces in URLs, in
-% MS-DOS paths or in timetables (10:55), except if they are
-% typed in |\texttt| or verbatim mode. When the current font
-% is a monospaced (typewriter) font, \fbo{AutoSpacePunctuation}
-% is locally switched to \fbo{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.
+% automatically typeset nobreakspaces the width of which is
+% either |\FBthinspace| (defauts to |\thinspace|) before `|;|'
+% `|!|' `|?|' or |\FBcolonspace| (defauts to |\space|) before
+% `|:|'; the defaults follow the French Imprimerie nationale's
+% recommendations. This is convenient in most cases but can lead
+% to addition of spurious spaces in URLs, in MS-DOS paths or in
+% timetables (10:55), except if they are typed in |\texttt| or
+% verbatim mode. When the current font is a monospaced
+% (typewriter) font, \fbo{AutoSpacePunctuation} is locally
+% switched to \fbo{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 \fbo{AutoSpacePunctuation=false} will ensure that
% a proper space will be added before `|:;!?|' \emph{if and only
@@ -386,6 +392,11 @@
% so that the same amount of space is added before any of the
% four `high punctuation' characters. The default setting is
% supported by the French Imprimerie nationale.
+% \item [INGuillSpace=true (false)] resets the dimensions of spaces
+% after opening French quotes and before closing French quotes to
+% the French Imprimerie nationale standards (inter-word space).
+% \frenchb's default setting produces slightly narrower spaces
+% with lesser stretchability.
% \item [LowercaseSuperscripts=false (true)]; by default \frenchb{}
% inhibits the uppercasing of superscripts (for instance when
% they are moved to page headers). Making this option
@@ -414,7 +425,7 @@
% 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
+% type either \label{option-og-fg}
% \texttt{\guillemotleft{} guillemets \guillemotright} or
% \texttt{\guillemotleft{}guillemets\guillemotright} (with or
% without spaces) to get properly typeset French quotes.
@@ -549,6 +560,11 @@
% change until LuaTeX itself has reached version~1.0.
% \end{itemize}
%
+% Starting with version~3.0c, \frenchb{} no longer customises
+% lists with the \cls{beamer} class and offers a new option
+% (\fbo{INGuillSpace}) to follow French Imprimerie Nationale
+% recommendations regarding quotes' spacing.
+%
% \subsubsection*{What's new in version 2.6?}
%
% The way \frenchb{} handles list environments has been completely
@@ -710,38 +726,13 @@
% \changes{v3.0a}{2014/02/28}{Support for options frenchb, francais,
% canadien, acadian changed.}
%
-% First make sure that |\l@french| is defined (possibly as 0).
-% In Plain formats, \texttt{@} catcode is not `letter';
-% LuaTeX and XeTeX formats set |\lang@<languagename>| instead of
-% |\l@<languagename>|.
-% \begin{macrocode}
-\chardef\atcatcode=\catcode`\@
-\catcode`\@=11\relax
-\def\FB@nopatterns{%
- \ifx\l@nohyphenation\@undefined
- \edef\bbl@nulllanguage{\string\language=0}%
- \adddialect\l@french0
- \else
- \adddialect\l@french\l@nohyphenation
- \edef\bbl@nulllanguage{\string\language=nohyphenation}%
- \fi
- \@nopatterns{French}}
-\ifx\l@french\@undefined
- \ifx\lang@french\@undefined
- \FB@nopatterns
- \else
- \ifnum\lang@french>0
- \let\l@french\lang@french
- \else
- \FB@nopatterns{French}
- \fi
- \fi
-\fi
-% \end{macrocode}
% If \file{frenchb.ldf} was loaded with \babel{}'s options
% \Lopt{francais} or \Lopt{frenchb}, we make it behave as if
% \Lopt{french} was specified.
+% In Plain formats, \texttt{@} catcode is not `letter'.
% \begin{macrocode}
+\chardef\atcatcode=\catcode`\@
+\catcode`\@=11\relax
\def\bbl@tempa{francais}
\ifx\CurrentOption\bbl@tempa
\let\l@francais\l@french
@@ -775,19 +766,25 @@
\LdfInit\CurrentOption\captionsfrench
% \end{macrocode}
%
-% \changes{v3.0a}{2014/02/18}{frenchb requires babel-3.9.}
+% \changes{v3.0c}{2014/03/30}{No need to define \cs{l@french} as
+% \cs{lang@french}, babel.def (3.9j) takes care for this.}
%
-% Quit if \babel's version is less than 3.9.
+% Make sure that |\l@french| is defined (possibly as 0).
+% \file{babel.def} now (3.9i) defines |\l@<languagename>| also for
+% eTeX, LuaTeX and XeTeX formats which set |\lang@<languagename>|.
% \begin{macrocode}
-\let\bbl@tempa\relax
-\ifx\StartBabelCommands\@undefined
- \let\bbl@tempa\endinput
- \PackageError{frenchb.ldf}
- {frenchb requires babel v.3.9.\MessageBreak
- Aborting here}
- {Please upgrade Babel!}
+\def\FB@nopatterns{%
+ \ifx\l@nohyphenation\@undefined
+ \edef\bbl@nulllanguage{\string\language=0}%
+ \adddialect\l@french0
+ \else
+ \adddialect\l@french\l@nohyphenation
+ \edef\bbl@nulllanguage{\string\language=nohyphenation}%
+ \fi
+ \@nopatterns{French}}
+\ifx\l@french\@undefined
+ \FB@nopatterns
\fi
-\bbl@tempa
% \end{macrocode}
%
% \changes{v2.1d}{2008/05/04}{Avoid warning ``\cs{end} occurred
@@ -814,6 +811,53 @@
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.0a}{2014/02/15}{In Plain, provide a substitute for
+% \cs{PackageWarning} and \cs{PackageInfo}.}
+%
+% Let's provide a substitute for |\PackageError|, |\PackageWarning|
+% and |\PackageInfo| not defined in Plain:
+% \begin{macrocode}
+\def\fb@error#1#2{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(frenchb.ldf) }%
+ \errhelp{#2}\errmessage{\\#1}%
+ \endgroup}
+\def\fb@warning#1{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J(frenchb.ldf) }%
+ \message{\\#1}%
+ \endgroup}
+\def\fb@info#1{%
+ \begingroup
+ \newlinechar=`\^^J
+ \def\\{^^J}%
+ \wlog{#1}%
+ \endgroup}
+% \end{macrocode}
+%
+% \changes{v3.0c}{2014/03/30}{frenchb requires babel-3.9i.}
+%
+% Quit if \babel's version is less than 3.9i.
+% \begin{macrocode}
+\let\bbl@tempa\relax
+\ifx\babeltags\@undefined
+ \let\bbl@tempa\endinput
+ \ifLaTeXe
+ \PackageError{frenchb.ldf}
+ {frenchb requires babel v.3.9i.\MessageBreak
+ Aborting here}
+ {Please upgrade Babel!}
+ \else
+ \fb@error{frenchb requires babel v.3.9i.\\
+ Aborting here}
+ {Please upgrade Babel!}
+ \fi
+\fi
+\bbl@tempa
+% \end{macrocode}
+%
% \file{frenchb.ldf} can be loaded with options \Lopt{canadien} or
% \Lopt{acadian}, which both stand for Canadian French. Internally,
% \Lopt{acadian} will be the name of the corresponding \babel's
@@ -844,26 +888,6 @@
\fi
% \end{macrocode}
%
-% \changes{v3.0a}{2014/02/15}{In Plain, provide a substitute for
-% \cs{PackageWarning} and \cs{PackageInfo}.}
-%
-% Let's provide a substitute for |\PackageWarning| and |\PackageInfo|
-% not defined in Plain:
-% \begin{macrocode}
-\def\fb@warning#1{%
- \begingroup
- \newlinechar=`\^^J
- \def\\{^^J(frenchb.ldf) }%
- \message{\\#1}%
- \endgroup}
-\def\fb@info#1{%
- \begingroup
- \newlinechar=`\^^J
- \def\\{^^J}%
- \wlog{#1}%
- \endgroup}
-% \end{macrocode}
-%
% French uses the standard values of |\lefthyphenmin| (2)
% and |\righthyphenmin| (3); let's provide their values though,
% as required by \babel.
@@ -1079,6 +1103,9 @@
% \changes{v3.0b}{2014/02/13}{Require luatexbase with LaTeXe in case
% fontspec has not been loaded before babel.}
%
+% \changes{v3.0c}{2014/03/26}{Just load luatexbase.sty instead of
+% luaotfload.sty with plain formats.}
+%
% We define two LuaTeX attributes to control spacing in French
% for `high punctuation' and quotes, making sure that
% |\newluatexattribute| is defined.
@@ -1096,7 +1123,7 @@
\else
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname newluatexattribute\endcsname\relax
- \input luaotfload.sty
+ \input luatexbase.sty
\newluatexattribute\FB@addDPspace \FB@addDPspace=1 \relax
\newluatexattribute\FB@addGUILspace \FB@addGUILspace=0 \relax
\fb@info{No need for active punctuation characters\\
@@ -1222,7 +1249,7 @@ local has_attribute = node.has_attribute
% in the list starting at |head| and checks the language attributes
% of the current glyph: nothing is done if the current language is
% not French and only specific punctuation characters (those for
-% which |FB_punct_left| or |FB_punct_rigt| is true) need a special
+% which |FB_punct_left| or |FB_punct_right| is true) need a special
% treatment.
% In French, local variables are defined to hold the properties of
% the current glyph (|item|) and of the previous one (|prev|) or the
@@ -1244,7 +1271,23 @@ local function french_punctuation (head)
prev_char = prev.char
end
end
+% \end{macrocode}
+%
+% \changes{v3.0c}{2014/04/18}{Bug correction: null glues should not
+% trigger space insertion before high ponctuation. Bug pointed out
+% by Benoit Rivet for the `lstlisting' environment of the listings
+% package.}
+%
+% If the previous item is a glue, check its natural width,
+% only positive glues are to be replaced by a nobreakspace.
+% \begin{macrocode}
local glue = prev_id == GLUE and prev_subtype == 0
+ local glue_wd
+ if glue then
+ glue_spec = prev.spec
+ glue_wd = glue_spec.width
+ end
+ glue = glue and glue_wd > 0
% \end{macrocode}
% For characters for which |FB_punct_thin| or |FB_punct_thick| is
% \emph{true}, the amount of spacing to be typeset before them
@@ -1260,6 +1303,10 @@ local function french_punctuation (head)
% |FB_punct_null| (this avoids spurious spaces in strings
% like |(!)| or |??|),
% c) the punctuation mark does not start a paragraph.
+%
+% \changes{v3.0c}{2014/04/18}{Missing pair of braces after `and' in the
+% definition of `auto'.}
+%
% \begin{macrocode}
if FB_punct_thin[char] or FB_punct_thick[char] then
local SBDP = has_attribute(item, addDPspace)
@@ -1271,8 +1318,9 @@ local function french_punctuation (head)
end
local auto =
SBDP and SBDP > 0 and
- (prev_char and not FB_punct_null[prev_char]) or
- (not prev_char and (prev_id ~= 0 or prev_subtype ~= 3))
+ ((prev_char and not FB_punct_null[prev_char]) or
+ (not prev_char and (prev_id ~= 0 or prev_subtype ~= 3))
+ )
if glue or auto then
if glue then
head = remove_node(head,prev,true)
@@ -1319,6 +1367,11 @@ local function french_punctuation (head)
end
end
local glue = next_id == GLUE and next_subtype == 0
+ if glue then
+ glue_spec = next.spec
+ glue_wd = glue_spec.width
+ end
+ glue = glue and glue_wd > 0
if glue or (next_char and not FB_guil_null[next_char]) then
if glue then
head = remove_node(head,next,true)
@@ -1479,6 +1532,7 @@ return french_punctuation
#4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}%
\fi
% \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.}
@@ -1568,15 +1622,15 @@ return french_punctuation
\XeTeXinterchartoks 255 \FB@punctthin = {%
\ifhmode\unskip\penalty\@M\FBthinspace\fi}%
\XeTeXinterchartoks \FB@guilo \z@ = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\fi}%
+ \ifFBAutoSpaceGuill\FBguillspace\fi}%
\XeTeXinterchartoks \FB@guilo 255 = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\ignorespaces\fi}%
+ \ifFBAutoSpaceGuill\FBguillspace\ignorespaces\fi}%
\XeTeXinterchartoks \z@ \FB@guilf = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\fi}%
+ \ifFBAutoSpaceGuill\FBguillspace\fi}%
\XeTeXinterchartoks \FB@punctthin \FB@guilf = {%
- \ifFBAutoSpaceGuill\FBguill@spacing\fi}%
+ \ifFBAutoSpaceGuill\FBguillspace\fi}%
\XeTeXinterchartoks 255 \FB@guilf = {%
- \ifFBAutoSpaceGuill\unskip\FBguill@spacing\fi}%
+ \ifFBAutoSpaceGuill\unskip\FBguillspace\fi}%
% \end{macrocode}
% This will avoid spurious spaces in (!), [?] and with Unicode
% nobreakspaces (U+00A0, U+202F):
@@ -1819,9 +1873,6 @@ return french_punctuation
%
% \begin{macrocode}
\ifLaTeXe
- %\let\ttfamilyORI\ttfamily
- %\let\rmfamilyORI\rmfamily
- %\let\sffamilyORI\sffamily
\DeclareRobustCommand\ttfamilyFB{%
\FBAutoSpaceGuillfalse
\ifFB@luatex@punct\FB@addGUILspace=0 \fi
@@ -1935,7 +1986,7 @@ return french_punctuation
% 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
+% |\FBguillspace| which does the spacing, has been fine tuned by
% Thierry Bouche to 80\% of an inter-word space but with reduced
% stretchability. French quotes (including spacing) are printed by
% |\FB@og| and |\FB@fg|, the expansion of the top level commands
@@ -1951,17 +2002,20 @@ return french_punctuation
% \changes{v3.0a}{2014/01/10}{Added explicit \cs{FBguillskip}
% for LuaTeX.}
%
+% \changes{v3.0c}{2014/04/18}{Changed \cs{FBguill@spacing} (internal)
+% to \cs{FBguillspace} (public).}
+%
% LuaTeX which requires skips; |\FBguillskip| is computed from
-% |\FBguill@spacing| for the |lmr10| font, its dimensions will
+% |\FBguillspace| for the |lmr10| font, its dimensions will
% be scaled by \file{frenchb.lua} for the current font.
% \begin{macrocode}
\newskip\FBguillskip
\FBguillskip=2.664pt plus 0.500pt minus 0.888pt \relax
-\newcommand*{\FBguill@spacing}{\penalty\@M\hskip.8\fontdimen2\font
- plus.3\fontdimen3\font
- minus.8\fontdimen4\font}
+\newcommand*{\FBguillspace}{\penalty\@M\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.8\fontdimen4\font}
% \end{macrocode}
-% |\FBguill@spacing| is not used with LuaTeX.
+% |\FBguillspace| is not used with LuaTeX.
% \begin{macrocode}
\ifFB@luatex@punct
\DeclareRobustCommand*{\FB@og}{\leavevmode
@@ -1978,17 +2032,17 @@ return french_punctuation
\ifFB@xetex@punct
\DeclareRobustCommand*{\FB@og}{\leavevmode
\bgroup\FBAutoSpaceGuillfalse\guillemotleft\egroup
- \FBguill@spacing}
+ \FBguillspace}
\DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
- \FBguill@spacing
+ \FBguillspace
\bgroup\FBAutoSpaceGuillfalse\guillemotright\egroup\xspace}
\fi
\ifFB@active@punct
\DeclareRobustCommand*{\FB@og}{\leavevmode
\guillemotleft
- \FBguill@spacing}
+ \FBguillspace}
\DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
- \FBguill@spacing
+ \FBguillspace
\guillemotright\xspace}
\fi
% \end{macrocode}
@@ -2002,7 +2056,7 @@ return french_punctuation
% correctly in English when using XeTeX or LuaTeX, fixed by using
% \cs{textquotedblleft} and \cs{textquotedblright} defined above.}
%
-% \changes{v3.0a}{2010/08/20}{\cs{bbl@nonfrenchguillemets} deleted,
+% \changes{v3.0a}{2014/01/10}{\cs{bbl@nonfrenchguillemets} deleted,
% use \cs{babel@save} instead.}
%
% \begin{macrocode}
@@ -2025,8 +2079,9 @@ return french_punctuation
%
% \begin{macro}{\datefrench}
% The macro |\datefrench| redefines the command |\today| to
-% produce French dates. This new implementation requires \babel~3.9
-% or newer.
+% produce French dates. This new implementation requires \babel~3.9i
+% or newer but, as of 3.9k, doesn't work with Plain based formats,
+% so |\date\CurrentOption| is defined the old way for these formats.
%
% \changes{v2.0}{2006/11/06}{2 '\cs{relax}' added in
% \cs{today}'s definition.}
@@ -2037,6 +2092,9 @@ return french_punctuation
% \changes{v3.0a}{2014/02/18}{Take advantage of babel's \cs{SetString}
% commands for \cs{datefrench}. Doesn't work with Plain (yet?).}
%
+% \changes{v3.0c}{2014/03/26}{\cs{SetString} still does not work for
+% Plain with babel 3.9k. Need to define \cs{datefrench}.}
+%
% \begin{macrocode}
\ifLaTeXe
\def\BabelLanguages{french,acadian}
@@ -2940,6 +2998,8 @@ return french_punctuation
% \changes{v3.0a}{2014/02/28}{New options OldFigTabCaptions and
% CustomiseFigTabCaptions.}
%
+% \changes{v3.0c}{2014/04/18}{New option INGuillSpace.}
+%
% \begin{macrocode}
\newcommand*{\frenchbsetup}[1]{%
\setkeys{FB}{#1}%
@@ -2966,6 +3026,7 @@ return french_punctuation
\newif\ifFBAutoSpaceFootnotes \FBAutoSpaceFootnotesfalse
\newif\ifFBOriginalTypewriter \FBOriginalTypewriterfalse
\newif\ifFBThinColonSpace \FBThinColonSpacefalse
+\newif\ifFBINGuillSpace \FBINGuillSpacefalse
\newif\ifFBThinSpaceInFrenchNumbers \FBThinSpaceInFrenchNumbersfalse
\newif\ifFBFrenchSuperscripts \FBFrenchSuperscriptstrue
\newif\ifFBLowercaseSuperscripts \FBLowercaseSuperscriptstrue
@@ -2985,6 +3046,8 @@ return french_punctuation
% 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 \fbsetup{}.
+% When the \cls{beamer} is loaded, lists are not customised at all
+% to ensure compatibility.
%
% \changes{v2.5b}{2010/10/30}{Do not use the
% test \cs{iflanguage}\{french\} to check whether French is the
@@ -2994,15 +3057,22 @@ return french_punctuation
% In this case \cs{l@french} and \cs{l@english} are 0.
% Pointed out by Günter Milde.}
%
+% \changes{v3.0c}{2014/03/30}{Activate option StandardLists when beamer
+% class is loaded.}
+%
% \begin{macrocode}
\edef\FB@french{\CurrentOption}
\AtEndOfPackage{%
\ifx\bbl@main@language\FB@french
\FBGlobalLayoutFrenchtrue
- \FBReduceListSpacingtrue
- \FBStandardItemizeEnvfalse
- \FBStandardEnumerateEnvfalse
- \FBStandardItemLabelsfalse
+ \@ifclassloaded{beamer}%
+ {\PackageInfo{frenchb.ldf}{%
+ No list customisation for the beamer class,%
+ \MessageBreak reported}}%
+ {\FBReduceListSpacingtrue
+ \FBStandardItemizeEnvfalse
+ \FBStandardEnumerateEnvfalse
+ \FBStandardItemLabelsfalse}%
\FBIndentFirsttrue
\FBFrenchFootnotestrue
\FBAutoSpaceFootnotestrue
@@ -3114,6 +3184,8 @@ return french_punctuation
{\csname FBOriginalTypewriter#1\endcsname}%
\define@key{FB}{ThinColonSpace}[true]%
{\csname FBThinColonSpace#1\endcsname}%
+ \define@key{FB}{INGuillSpace}[true]%
+ {\csname FBINGuillSpace#1\endcsname}%
\define@key{FB}{ThinSpaceInFrenchNumbers}[true]%
{\csname FBThinSpaceInFrenchNumbers#1\endcsname}%
\define@key{FB}{FrenchSuperscripts}[true]%
@@ -3435,7 +3507,19 @@ return french_punctuation
\ifFB@luatex@punct
\FBcolonskip=\FBthinskip\relax
\else
- \renewcommand*{\FBcolonspace}{\FBthinspace}%
+ \renewcommand*{\FBcolonspace}{\FBthinspace}%
+ \fi
+ \fi
+% \end{macrocode}
+% When \fbo{true}, \fbo{INGuillSpace} resets the dimensions of skips
+% after opening French quotes and before closing French quotes to
+% I.N. standards.
+% \begin{macrocode}
+ \ifFBINGuillSpace
+ \ifFB@luatex@punct
+ \FBguillskip=3.33pt plus 1.665pt minus 1.11pt \relax
+ \else
+ \renewcommand*{\FBguillspace}{\space}%
\fi
\fi
% \end{macrocode}
@@ -3551,12 +3635,14 @@ return french_punctuation
AutoSpacePunctuation=false [true]\MessageBreak
OriginalTypewriter=true [false]\MessageBreak
ThinColonSpace=true [false]\MessageBreak
+ INGuillSpace=true [false]\MessageBreak
ThinSpaceInFrenchNumbers=true [false]\MessageBreak
FrenchSuperscripts=false [true]\MessageBreak
LowercaseSuperscripts=false [true]\MessageBreak
PartNameFull=false [true]\MessageBreak
SuppressWarning=true [false]\MessageBreak
CustomiseFigTabCaptions=false [true]\MessageBreak
+ OldFigTabCaptions=true [false]\MessageBreak
og= <left quote character>, fg= <right quote character>%
\MessageBreak
*********************************************%