From 55b6d1e036cbf4eb905dd1438723d091232649cf Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 21 Apr 2014 22:17:31 +0000 Subject: babel-french (21apr14) git-svn-id: svn://tug.org/texlive/trunk@33601 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/generic/babel-french/frenchb.dtx | 306 +++++++++++++-------- 1 file changed, 196 insertions(+), 110 deletions(-) (limited to 'Master/texmf-dist/source/generic/babel-french/frenchb.dtx') 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 @@ %\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] % %<*internal> \iffalse % %<*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 -- 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@| instead of -% |\l@|. -% \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@| also for +% eTeX, LuaTeX and XeTeX formats which set |\lang@|. % \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= , fg= % \MessageBreak *********************************************% -- cgit v1.2.3