summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/babel-french/frenchb.dtx')
-rw-r--r--Master/texmf-dist/source/generic/babel-french/frenchb.dtx79
1 files changed, 56 insertions, 23 deletions
diff --git a/Master/texmf-dist/source/generic/babel-french/frenchb.dtx b/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
index b6ba53391a8..ea6c7473898 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{3669}
+%\CheckSum{3714}
%
%\iffalse
% Tell the LaTeX system who we are and write an entry on the
@@ -13,7 +13,7 @@
%<frenchb>\ProvidesLanguage{frenchb}
%<lua>--[[
%<lua> File `frenchb.lua’ generated from frenchb.dtx
- [2018/07/06 v3.5a French support from the babel system]
+ [2018/07/17 v3.5b French support from the babel system]
%<*internal>
\iffalse
%</internal>
@@ -741,7 +741,10 @@
% closer to French typographic standards: see f.i.\ how lists are
% typeset in the book ``Lexique des règles typographiques en usage
% à l’Imprimerie Nationale’’.
-
+%
+% Version 3.5b fixes a bug due to wrong |\everypar|’s management in
+% |\frquote{}|; it showed up when |\frquote{}| immediately followed
+% a sectionning command.
%
% \subsubsection*{What’s new in version 3.4?}
%
@@ -2796,9 +2799,23 @@ return french_punctuation
% \changes{v3.2g}{2017/01/30}{Default options of \cs{frquote} are no
% longer engine-dependent.}
%
+% \changes{v3.5b}{2018/07/15}{New command \cs{FB@addquote@everypar} to
+% manage \cs{everypar}: \cs{frquote} failed when used immediately
+% after a sectionning command.}
+%
% \begin{macrocode}
\newcount\FBguill@level
-\newtoks\FB@everypar
+\newtoks\FBold@everypar
+% \end{macrocode}
+% |\FB@addquote@everypar| was borrowed from \file{csquotes.sty}.
+% \begin{macrocode}
+\def\FB@addquote@everypar{%
+ \let\FBnew@everypar\everypar
+ \FBold@everypar=\expandafter{\the\everypar}%
+ \FBnew@everypar={\the\FBold@everypar\FBeverypar@quote}%
+ \let\everypar\FBold@everypar
+ \let\FB@addquote@everypar\relax
+}
\newif\ifFBcloseguill \FBcloseguilltrue
\newif\ifFBInnerGuillSingle
\def\FBguillopen{\bgroup\NoAutoSpacing\guillemotleft\egroup}
@@ -2806,6 +2823,8 @@ return french_punctuation
\let\FBguillnone\empty
\let\FBeveryparguill\FBguillopen
\let\FBeverylineguill\FBguillnone
+\let\FBeverypar@quote\relax
+\let\FBeveryline@quote\empty
% \end{macrocode}
% The main command |\frquote| accepts (in LaTeX2e only) a starred
% version which suppresses the closing quote; it is meant to be used
@@ -2841,15 +2860,14 @@ return french_punctuation
\ifcase\FBguill@level
\or
% \end{macrocode}
-% This for level 1 (outer) quotations: save |\everypar| before
-% customising it, set |\FBeverypar@quote| for level 1 quotations
-% and add it to |\everypar|, then print the quotation:
+% This for level 1 (outer) quotations: set |\FBeverypar@quote|
+% for level 1 quotations and add it to |\everypar| using
+% |\FB@addquote@everypar|, then print the quotation:
% \begin{macrocode}
- \FB@everypar=\everypar
\ifx\FBeveryparguill\FBguillnone
\else
\def\FBeverypar@quote{\FBeveryparguill\FB@guillspace}%
- \everypar=\expandafter{\the\everypar \FBeverypar@quote}%
+ \FB@addquote@everypar
\fi
\ogi #1\fgi
\or
@@ -2863,12 +2881,14 @@ return french_punctuation
%
% \begin{macrocode}
\ifx\FBeverylineguill\FBguillopen
- \localleftbox{\guillemotleft\FB@guillspace}%
+ \def\FBeveryline@quote{\guillemotleft\FB@guillspace}%
+ \localleftbox{\FBeveryline@quote}%
\let\FBeverypar@quote\relax
\ogi #1\ifFBcloseguill\fgi\fi
\else
\ifx\FBeverylineguill\FBguillclose
- \localleftbox{\guillemotright\FB@guillspace}%
+ \def\FBeveryline@quote{\guillemotright\FB@guillspace}%
+ \localleftbox{\FBeveryline@quote}%
\let\FBeverypar@quote\relax
\ogi #1\ifFBcloseguill\fgi\fi
\else
@@ -2906,12 +2926,12 @@ return french_punctuation
\fi
\fi
% \end{macrocode}
-% Clean on exit: adjust |\FBguill@level| and restore
-% |\localleftbox| and |\everypar|.
+% Closing: step down |\FBguill@level| and clean on exit.
% \begin{macrocode}
\advance\FBguill@level by \m@ne
+ \let\FBeverypar@quote\relax
+ \let\FBeveryline@quote\empty
\ifx\FBeverylineguill\FBguillnone\else\localleftbox{}\fi
- \ifx\FBeveryparguill\FBguillnone\else\everypar=\FB@everypar\fi
}
% \end{macrocode}
% \end{macro}
@@ -5564,8 +5584,12 @@ return french_punctuation
% \changes{v3.3c}{2017/07/28}{Reset \cs{localleftbox} locally
% inside \cs{@makefntext}. Needed by \cs{frquote} with LuaTeX.}
%
-% The LuaTeX command |\localleftbox| used by |\frquote{}| has to
-% be reset inside footnotes, done for LaTeX based formats only.
+% \changes{v3.5b}{2018/07/17}{Reset \cs{FBeverypar@quote} locally
+% inside \cs{@makefntext}. Needed by \cs{frquote}.}
+%
+% The LuaTeX command |\localleftbox| and |\FBeverypar@quote| used
+% by |\frquote{}| have to be reset inside footnotes; done for LaTeX
+% based formats only.
% \begin{macrocode}
\providecommand\localleftbox[1]{}
\AtBeginDocument{%
@@ -5581,24 +5605,31 @@ return french_punctuation
\ifFB@koma
% \end{macrocode}
% Definition of |\@makefntext| for koma-script classes: running
-% \@makefntextORI inside a group to reset |\localleftbox{}| would
-% mess up the layout of footnotes whenever the first manadatory
-% argument of |\deffootnote{}| (used as |\leftskip|) is non-nil
-% (default is 1em, 0pt in French).
+% \@makefntextORI inside a group to reset |\localleftbox{}| and
+% |\FBeverypar@quote| would mess up the layout of footnotes whenever
+% the first manadatory argument of |\deffootnote{}| (used as
+% |\leftskip|) is non-nil (default is 1em, 0pt in French).
% \begin{macrocode}
\let\@@makefnmarkORI\@@makefnmark
\long\def\@makefntext#1{%
\ifFBFrenchFootnotes
\ifx\footnote\thanks
\let\@@makefnmark\@@makefnmarkTH
- \begingroup\localleftbox{}\@makefntextTH{#1}\endgroup
+ \begingroup\localleftbox{}\let\FBeverypar@quote\relax
+ \@makefntextTH{#1}\endgroup
\else
\let\@@makefnmark\@@makefnmarkFB
- \begingroup\localleftbox{}\@makefntextFB{#1}\endgroup
+ \begingroup\localleftbox{}\let\FBeverypar@quote\relax
+ \@makefntextFB{#1}\endgroup
\fi
\else
+ \localleftbox{}%
+ \let\FBeverypar@save\FBeverypar@quote
+ \let\FBeverypar@quote\relax
\let\@@makefnmark\@@makefnmarkORI
\@makefntextORI{#1}%
+ \let\FBeverypar@quote\FBeverypar@save
+ \localleftbox{\FBeveryline@quote}%
\fi}%
\else
% \end{macrocode}
@@ -5630,7 +5661,9 @@ return french_punctuation
% Definition of |\@makefntext| for all classes other than
% koma-script:
% \begin{macrocode}
- \long\def\@makefntext#1{\begingroup\localleftbox{}%
+ \long\def\@makefntext#1{\begingroup
+ \localleftbox{}%
+ \let\FBeverypar@quote\relax
\ifFBFrenchFootnotes
\@makefntextFB{#1}%
\else