summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/babel-contrib/french/frenchb.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-13 03:03:32 +0000
committerNorbert Preining <norbert@preining.info>2020-09-13 03:03:32 +0000
commitce9a7b44d2a859ce796a88c893def7a033f0b8de (patch)
treec669b3255d3ad3ee466f166c910f7ee121b7fd6b /macros/latex/contrib/babel-contrib/french/frenchb.dtx
parent206f46fee13b7233673f40672f21b29a61c70cd9 (diff)
CTAN sync 202009130303
Diffstat (limited to 'macros/latex/contrib/babel-contrib/french/frenchb.dtx')
-rw-r--r--macros/latex/contrib/babel-contrib/french/frenchb.dtx405
1 files changed, 198 insertions, 207 deletions
diff --git a/macros/latex/contrib/babel-contrib/french/frenchb.dtx b/macros/latex/contrib/babel-contrib/french/frenchb.dtx
index 45d56480d4..c30847224f 100644
--- a/macros/latex/contrib/babel-contrib/french/frenchb.dtx
+++ b/macros/latex/contrib/babel-contrib/french/frenchb.dtx
@@ -1,4 +1,4 @@
-%\CheckSum{3841}
+%\CheckSum{3748}
%
%\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
- [2020/07/02 v3.5j French support from the babel system]
+ [2020/09/09 v3.5k French support from the babel system]
%<*internal>
\iffalse
%</internal>
@@ -317,7 +317,7 @@
% |\degres| should be used to typeset temperatures (e.g.,
% ``|20~\degres C|’’ with a non-breaking space), or for
% alcohols’’ strengths (e.g., ``|45\degres|’’ with \emph{no}
-% space in French).
+% space in French) or for angles in math mode.
%
% \item In math mode the comma has to be surrounded with
% braces to avoid a spurious space being inserted after it,
@@ -651,7 +651,8 @@
% \item [CustomiseFigTabCaptions=false (true*)]; when \fbo{false}
% the default separator (colon) is used instead of
% |\CaptionSeparator|. Anyway, \frenchb{} tries hard to insert
-% a proper space before it and warns if it fails to do so.
+% a proper space before it in French and warns if it fails to do
+% so.
%
% \item [OldFigTabCaptions=true (false)] is to be used \emph{only}
% when figures’ and tables’ captions must be typeset as with
@@ -812,6 +813,20 @@
% separator (commands |\captionformat|, |\captiondelim|, etc.) are
% now taken into account properly.
%
+% Version 3.5k is a cleanup release:
+% \begin{itemize}
+% \item the translations in French of |\figurename| and |\tablename|
+% no longer hold font changing commands (switch to small caps), the
+% font switch has been moved to |\fnum@figure| and |\fnum@table| as
+% suggested by Axel Sommerfeldt.
+% \item Package \pkg{caption} can now be loaded whether before
+% or after \pkg{babel}, indifferently.
+% \item |\pdfstringdefDisableCommands| is no longer used: as
+% suggested by the LaTeX3 team, all commands requiring special care
+% in \pkg{hyperref}’s bookmarks are now defined using
+% |\textorpdfstring{}{}|.
+% \end{itemize}
+%
% \subsubsection*{What’s new in version 3.4?}
%
% Version 3.4a adds a new command |\frenchdate| (see
@@ -953,8 +968,6 @@
% lua code (see his presentation at GUT’2010) and kindly
% reviewed my first drafts suggesting significant improvements.
%
-% Please note that this code, still experimental, is likely to
-% change until LuaTeX itself has reached version~1.0.
% \end{itemize}
%
% Starting with version~3.0c, \frenchb{} no longer customises
@@ -2499,16 +2512,18 @@ return french_punctuation
% the colon.}
%
% In standard (pdf)TeX we need to make the four characters |;| |!| |?|
-% and |:| `active’ and provide their definitions.
+% and |:| `active’ and provide their definitions. \hlabel{ifFB@koma}
% Before doing so, we have to save some definitions involving |:|.
% \begin{macrocode}
\newif\ifFB@koma
-\@ifclassloaded{scrartcl}{\FB@komatrue}{}
-\@ifclassloaded{scrbook}{\FB@komatrue}{}
-\@ifclassloaded{scrreprt}{\FB@komatrue}{}
-\ifFB@koma\def\FB@std@capsep{:\ }\fi
-\@ifclassloaded{beamer}{\def\FB@std@capsep{:\ }}{}
-\@ifclassloaded{memoir}{\def\FB@std@capsep{: }}{}
+\ifLaTeXe
+ \@ifclassloaded{scrartcl}{\FB@komatrue}{}
+ \@ifclassloaded{scrbook}{\FB@komatrue}{}
+ \@ifclassloaded{scrreprt}{\FB@komatrue}{}
+ \ifFB@koma\def\FB@std@capsep{:\ }\fi
+ \@ifclassloaded{beamer}{\def\FB@std@capsep{:\ }}{}
+ \@ifclassloaded{memoir}{\def\FB@std@capsep{: }}{}
+\fi
% \end{macrocode}
% \begin{macrocode}
\ifFB@active@punct
@@ -2804,25 +2819,35 @@ return french_punctuation
% `»’; no line break is allowed neither \emph{after} the opening
% one, nor \emph{before} the closing one.
% French quotes (including spacing) are printed by |\FB@og| and
-% |\FB@fg|, the expansion of the top level commands |\og| and |\og|
+% |\FB@fg|, the expansion of the top level commands |\og| and |\fg|
% is different in and outside French.
%
-% \changes{v3.0a}{2014/01/10}{Definitions of \cs{FB@og} and \cs{FB@fg}
+% \changes{v3.5k}{2020/07/17}{\cs{FB@og} and \cs{FB@fg} now rely
+% on \cs{texorpdfstring} to be safe in bookmarks.}
+%
+% |\FB@og| and |\FB@fg| are now designed to work in bookmarks.
+% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
+\newcommand*{\FB@og}{\texorpdfstring{\@FB@og}{\guillemotleft\space}}
+\newcommand*{\FB@fg}{\texorpdfstring{\@FB@fg}{\space\guillemotright}}
+% \end{macrocode}
+%
+%\changes{v3.0a}{2014/01/10}{Definitions of \cs{FB@og} and \cs{FB@fg}
% now depend on punctuation handling (LuaTeX / XeTeX / active).}
%
-% The definitions of |\FB@og| and |\FB@fg| need some engine-dependent
-% tuning: for LuaTeX, |\FB@spacing| is set to~0 locally to prevent
-% the quotes characters from adding space when option
-% \fbo{og=«, fg=»} is set.
+% The internal definitions |\@FB@og| and |\@FB@fg| need some
+% engine-dependent tuning: for LuaTeX, |\FB@spacing| is set to~0
+% locally to prevent the quotes characters from adding space when
+% option \fbo{og=«, fg=»} is set.
% \begin{macrocode}
\newcommand*{\FB@guillspace}{\penalty\@M\FBguillspace}
\newcommand*{\FBgspchar}{\char"A0\relax}
\newif\ifFBucsNBSP
\ifFB@luatex@punct
- \DeclareRobustCommand*{\FB@og}{\leavevmode
+ \DeclareRobustCommand*{\@FB@og}{\leavevmode
\bgroup\FB@spacing=0 \guillemotleft\egroup
\ifFBucsNBSP\FBgspchar\else\FB@guillspace\fi}
- \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
+ \DeclareRobustCommand*{\@FB@fg}{\ifdim\lastskip>\z@\unskip\fi
\ifFBucsNBSP\FBgspchar\else\FB@guillspace\fi
\bgroup\FB@spacing=0 \guillemotright\egroup}
\fi
@@ -2831,18 +2856,18 @@ return french_punctuation
% same reason.
% \begin{macrocode}
\ifFB@xetex@punct
- \DeclareRobustCommand*{\FB@og}{\leavevmode
+ \DeclareRobustCommand*{\@FB@og}{\leavevmode
\bgroup\FB@spacingfalse\guillemotleft\egroup
\FB@guillspace}
- \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
+ \DeclareRobustCommand*{\@FB@fg}{\ifdim\lastskip>\z@\unskip\fi
\FB@guillspace
\bgroup\FB@spacingfalse\guillemotright\egroup}
\fi
\ifFB@active@punct
- \DeclareRobustCommand*{\FB@og}{\leavevmode
+ \DeclareRobustCommand*{\@FB@og}{\leavevmode
\guillemotleft
\FB@guillspace}
- \DeclareRobustCommand*{\FB@fg}{\ifdim\lastskip>\z@\unskip\fi
+ \DeclareRobustCommand*{\@FB@fg}{\ifdim\lastskip>\z@\unskip\fi
\FB@guillspace
\guillemotright}
\fi
@@ -2960,15 +2985,24 @@ return french_punctuation
\let\FBeverypar@quote\relax
\let\FBeveryline@quote\empty
% \end{macrocode}
+%
+% \changes{v3.5k}{2020/07/18}{\cs{frquote} now relies on
+% \cs{texorpdfstring} to be safe in bookmarks.}
+%
% The main command |\frquote| accepts (in LaTeX2e only) a starred
% version which suppresses the closing quote; it is meant to be used
% for inner quotations which end together with the outer one, then
% only one closing guillemet (the outer one) should be printed.
+% |\frquote| (without star) is now designed to work in bookmarks too.
% \begin{macrocode}
\ifLaTeXe
\DeclareRobustCommand\frquote{%
- \@ifstar{\FBcloseguillfalse\fr@quote}%
- {\FBcloseguilltrue\fr@quote}}
+ \texorpdfstring{\@ifstar{\FBcloseguillfalse\fr@quote}%
+ {\FBcloseguilltrue \fr@quote}}%
+ {\bm@fr@quote}%
+ }
+ \newcommand{\bm@fr@quote}[1]{%
+ \guillemotleft\space #1\space\guillemotright}
\else
\newcommand\frquote[1]{\fr@quote{#1}}
\fi
@@ -3191,6 +3225,9 @@ return french_punctuation
% \cs{MakeLowercase} as the former doesn’t work for non ASCII
% characters in encodings like applemac, utf-8,…}
%
+% \changes{v3.5k}{2020/07/18}{\cs{up} and \cs{fup} now rely on
+% \cs{texorpdfstring} to be safe in bookmarks.}
+%
% |\up| eases the typesetting of superscripts like
% `1\up{er}’. Up to version 2.0 of \frenchb{} |\up| was just a
% shortcut for |\textsuperscript| in LaTeX2e, but several users
@@ -3287,21 +3324,24 @@ return french_punctuation
\fontfamily{\FB@firstthree -sup}\selectfont \FB@lc{#1}\egroup}
% \end{macrocode}
% |\fup| is defined as |\FB@up| unless |\realsuperscript| is
-% defined by \file{realscripts.sty}.
+% defined by \file{realscripts.sty}. |\fup| just prints its argument
+% in bookmarks.
% \begin{macrocode}
\DeclareRobustCommand*{\fup}[1]{%
- \ifx\realsuperscript\@undefined
- \FB@up{#1}%
- \else
- \bgroup\let\fakesuperscript\FB@up@fake
- \realsuperscript{\FB@lc{#1}}\egroup
- \fi}
+ \texorpdfstring{\ifx\realsuperscript\@undefined
+ \FB@up{#1}%
+ \else
+ \bgroup\let\fakesuperscript\FB@up@fake
+ \realsuperscript{\FB@lc{#1}}\egroup
+ \fi
+ }{#1}%
+ }
% \end{macrocode}
% Let’s provide a temporary definition for |\up| (redefined
% `AtBeginDocument’ as |\fup| or |\textsuperscript| according to
% \fbsetup{} options).
% \begin{macrocode}
- \providecommand*{\up}{\relax}
+ \providecommand*{\up}{\fup}
% \end{macrocode}
% Poor man’s definition of |\up| for Plain.
% \begin{macrocode}
@@ -3352,31 +3392,38 @@ return french_punctuation
%
% \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)}
+% \begin{macro}{\nos}
+% \begin{macro}{\Nos}
+% \begin{macro}{\No}
+% \begin{macro}{\no}
% \changes{v3.1b}{2014/06/23}{Removed \cs{lowercase} from definitions
% of \cs{FrenchEnumerate}, … \cs{No} and co: \cs{up} already
% does the conversion.}
%
-% And some more macros relying on |\up| for numbering,
-% first two support macros.
+% \changes{v3.5k}{2020/07/18}{\cs{no}, \cs{nos}, \cs{No}, \cs{Nos},
+% \cs{primo}, \cs{fprimo}, now rely on \cs{texorpdfstring} to be
+% safe in bookmarks.}
+%
+% Some support macros relying on |\up| for numbering,
% \begin{macrocode}
-\newcommand*{\FrenchEnumerate}[1]{#1\up{o}\FBthickkern}
-\newcommand*{\FrenchPopularEnumerate}[1]{#1\up{o})\FBthickkern}
+\newcommand*{\FrenchEnumerate}[1]{%
+ #1\texorpdfstring{\up{o}\FBthickkern}{\textdegree\space}}
+\newcommand*{\FrenchPopularEnumerate}[1]{%
+ #1\texorpdfstring{\up{o})\FBthickkern}{\textdegree\space}}
% \end{macrocode}
%
-% Typing |\primo| should result in `\up{o}\kern+.3em’,
+% Typing |\primo| should result in `\up{o}\kern+.3em’ (except in
+% bookmarks where |\textdegree| is used instead of o-superior),
% \begin{macrocode}
\def\primo{\FrenchEnumerate1}
\def\secundo{\FrenchEnumerate2}
\def\tertio{\FrenchEnumerate3}
\def\quarto{\FrenchEnumerate4}
% \end{macrocode}
-% while typing |\fprimo)| gives `\up{o})\kern+.3em.
+% while typing |\fprimo)| gives `\up{o})\kern+.3em (except in
+% bookmarks where |\textdegree| is used instead),.
% \begin{macrocode}
\def\fprimo){\FrenchPopularEnumerate1}
\def\fsecundo){\FrenchPopularEnumerate2}
@@ -3385,12 +3432,16 @@ return french_punctuation
% \end{macrocode}
%
% Let’s provide four macros for the common abbreviations
-% of ``Numéro’’.
+% of ``Numéro’’. In bookmarks ° is used instead of o-superior.
% \begin{macrocode}
-\DeclareRobustCommand*{\No}{N\up{o}\FBmedkern}
-\DeclareRobustCommand*{\no}{n\up{o}\FBmedkern}
-\DeclareRobustCommand*{\Nos}{N\up{os}\FBmedkern}
-\DeclareRobustCommand*{\nos}{n\up{os}\FBmedkern}
+\DeclareRobustCommand*{\No}{%
+ \texorpdfstring{N\up{o}\FBmedkern}{N\textdegree\space}}
+\DeclareRobustCommand*{\no}{%
+ \texorpdfstring{n\up{o}\FBmedkern}{n\textdegree\space}}
+\DeclareRobustCommand*{\Nos}{%
+ \texorpdfstring{N\up{os}\FBmedkern}{N\textdegree\space}}
+\DeclareRobustCommand*{\nos}{%
+ \texorpdfstring{n\up{os}\FBmedkern}{n\textdegree\space}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -3412,10 +3463,18 @@ return french_punctuation
% \changes{v2.0}{2006/11/06}{\cs{hbox} dropped, replaced by
% \cs{kern0pt}.}
%
+% \changes{v3.5k}{2020/07/18}{\cs{bsc} now relies on
+% \cs{texorpdfstring} to be safe in bookmarks.}
+%
% \begin{macrocode}
-\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt
- \scshape #1\endgroup}
-\ifLaTeXe\else\let\scshape\relax\fi
+\ifLaTeXe
+ \DeclareRobustCommand*{\bsc}[1]{%
+ \texorpdfstring{\leavevmode\begingroup\kern0pt \scshape #1\endgroup}%
+ {\textsc{#1}}%
+ }
+\else
+ \newcommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt #1\endgroup}
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -3432,36 +3491,26 @@ return french_punctuation
%
% \changes{v3.2g}{2017/01/24}{Changed Unicode definition of \cs{boi}.}
%
+% \changes{v3.5k}{2020/07/30}{\cs{degre}, \cs{degres}, \cs{circonflexe},
+% \cs{tild}, \cs{boi} and \cs{at} are now safe in bookmarks.}
+%
% \begin{macrocode}
\ifFBunicode
- \newcommand*{\at}{{\char"0040}}
- \newcommand*{\circonflexe}{{\char"005E}}
- \newcommand*{\tild}{{\char"007E}}
- \newcommand*{\boi}{{\char"005C}}
- \newcommand*{\degre}{{\char"00B0}}
+ \providecommand*{\textbackslash}{{\char"005C}}
+ \providecommand*{\textasciicircum}{{\char"005E}}
+ \providecommand*{\textasciitilde}{{\char"007E}}
+ \newcommand*{\FB@degre}{°}
\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$}
+ \newcommand*{\FB@degre}{\r{}}
\fi
\fi
+\DeclareRobustCommand*{\boi}{\textbackslash}
+\DeclareRobustCommand*{\circonflexe}{\textasciicircum}
+\DeclareRobustCommand*{\tild}{\textasciitilde}
+\DeclareRobustCommand*{\degre}{%
+ \texorpdfstring{\FB@degre}{\textdegree}}
+\newcommand*{\at}{@}
% \end{macrocode}
%
% \begin{macro}{\degres}
@@ -3471,7 +3520,7 @@ return french_punctuation
% 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|).
+% (e.g., |20~\degres C|). |\degres| works in math-mode (angles).
%
% \changes{v2.6e}{2013/07/06}{Refrain from redefining \cs{textdegree}
% from latin1.def, applemac.def, etc. as \cs{degres} because it
@@ -3486,34 +3535,29 @@ return french_punctuation
% 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}
+\DeclareRobustCommand*{\degres}{\degre}
\ifLaTeXe
- \newcommand*{\degres}{\degre}
- \ifFBunicode
- \DeclareRobustCommand*{\degres}{\degre}
- \else
- \def\Warning@degree@TSone{\FBWarning
+ \AtBeginDocument{%
+ \@ifpackageloaded{fontspec}{}{%
+ \ifdefined\DeclareEncodingSubset
+ \DeclareRobustCommand*{\degres}{%
+ \texorpdfstring{\hbox{\UseTextSymbol{TS1}{\textdegree}}}%
+ {\textdegree}}%
+ \else
+ \def\Warning@degree@TSone{\FBWarning
{Degrees would look better in TS1-encoding:%
\MessageBreak add \protect
\usepackage{textcomp} to the preamble.%
\MessageBreak Degrees used}}
- \AtBeginDocument{\ifx\DeclareEncodingSubset\@undefined
- \DeclareRobustCommand*{\degres}{%
- \leavevmode\hbox to 0.3em{\hss\degre\hss}%
- \Warning@degree@TSone
- \global\let\Warning@degree@TSone\relax}%
- \else
- \DeclareRobustCommand*{\degres}{%
- \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
- \fi
- }
- \fi
-\else
- \newcommand*{\degres}{%
- \leavevmode\hbox to 0.3em{\hss\degre\hss}}
+ \DeclareRobustCommand*{\degres}{%
+ \texorpdfstring{\hbox to 0.3em{\hss\degre\hss}%
+ \Warning@degree@TSone
+ \global\let\Warning@degree@TSone\relax}%
+ {\textdegree}}%
+ \fi
+ }%
+ }
\fi
% \end{macrocode}
% \end{macro}
@@ -3731,6 +3775,9 @@ return french_punctuation
% \changes{v3.3a}{2017/04/30}{Commands \cs{frenchpartfirst},
% \cs{frenchpartsecond} and \cs{frenchpartnameord} added.}
%
+% \changes{v3.5k}{2020/09/09}{Small caps removed in \cs{figurename} and
+% \cs{tablename}, use \cs{fnum@figure} and \cs{fnum@table} instead.}
+%
% |\figurename| and |\tablename| are printed in small caps in French,
% unless either \fbo{SmallCapsFigTabCaptions} is set to \fbo{false}
% or a class or package loaded before \frenchb{} defines
@@ -3768,8 +3815,8 @@ return french_punctuation
\SetString{\listfigurename}{Table des figures}
\SetString{\listtablename}{Liste des tableaux}
\SetString{\indexname}{Index}
- \SetString{\figurename}{{\FBfigtabshape Figure}}
- \SetString{\tablename}{{\FBfigtabshape Table}}
+ \SetString{\figurename}{Figure}
+ \SetString{\tablename}{Table}
\SetString{\pagename}{page}
\SetString{\seename}{voir}
\SetString{\alsoname}{voir aussi}
@@ -3806,6 +3853,25 @@ return french_punctuation
\SetString{\partname}{\FB@partname}
\EndBabelCommands
% \end{macrocode}
+% |\figurename| and |\tablename| no longer include font commmands;
+% to print them in small caps in French (the default), we now
+% customise |\fnum@figure| and |\fnum@table| when available (not in
+% beamer.cls f.i.).
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifx\FBfigtabshape\relax
+ \else
+ \ifdefined\fnum@figure
+ \let\fnum@figureORI\fnum@figure
+ \let\fnum@tableORI\fnum@table
+ \renewcommand{\fnum@figure}{{\ifFBfrench\FBfigtabshape\fi
+ \fnum@figureORI}}%
+ \renewcommand{\fnum@table}{{\ifFBfrench\FBfigtabshape\fi
+ \fnum@tableORI}}%
+ \fi
+ \fi
+}
+% \end{macrocode}
% \end{macro}
%
% \changes{v3.0a}{2014/02/28}{Merging of \cs{captionsfrenchb},
@@ -3937,13 +4003,9 @@ return french_punctuation
% No warning with \cls{memoir} or koma-script classes: they change
% |\@makecaption| but we will manage to customise them in French
% later on (see below after executing |\FBprocess@options|)
-% \hlabel{ifFB@koma}.
% \begin{macrocode}
-\newif\ifFB@koma
\@ifclassloaded{memoir}{\@FBwarning@capsepfalse}{}
-\@ifclassloaded{scrartcl}{\@FBwarning@capsepfalse\FB@komatrue}{}
-\@ifclassloaded{scrbook}{\@FBwarning@capsepfalse\FB@komatrue}{}
-\@ifclassloaded{scrreprt}{\@FBwarning@capsepfalse\FB@komatrue}{}
+\ifFB@koma \@FBwarning@capsepfalse \fi
% \end{macrocode}
% No warning with the \cls{beamer} class which defines
% |\beamer@makecaption| (customised below) instead of
@@ -3963,20 +4025,8 @@ return french_punctuation
% \changes{v3.3c}{2017/08/16}{Reorganise warnings when the caption,
% subcaption or floatrow packages are loaded before babel/french.}
%
-% The \pkg{caption}, \pkg{subcaption} and \pkg{floatrow} packages are
-% compatible with \frenchb{} if they are loaded after \babel{}.
-%
-% Check if packages \pkg{caption3} \pkg{subcaption} or \pkg{floatrow}
-% are loaded now (before \frenchb) and step counter |FBcaption@count|
-% accordingly; it’s value will be checked |\AtBeginDocument|.
-% N.B.: \pkg{caption} loads \pkg{caption3}, \pkg{subcaption} loads
-% \pkg{caption3} and \pkg{floatrow} loads \pkg{caption3}.
-% \begin{macrocode}
-\newcounter{FBcaption@count}
-\@ifpackageloaded{caption3}{\addtocounter{FBcaption@count}{4}}{}
-\@ifpackageloaded{subcaption}{\addtocounter{FBcaption@count}{2}}{}
-\@ifpackageloaded{floatrow}{\stepcounter{FBcaption@count}}{}
-% \end{macrocode}
+% \changes{v3.5k}{2020/09/06}{Reorganise warnings about `:’ in captions,
+% according to enhancements in caption.sty v3.5a.}
%
% \changes{v3.0a}{2014/02/20}{More informative, less TeXnical warning
% about \cs{@makecaption}.}
@@ -3998,57 +4048,35 @@ return french_punctuation
% If \fbo{OldFigTabCaptions=true}, do not overwrite
% |\FBCaption@Separator| (already saved as `: ’ for other languages
% and set to |\CaptionSeparator| by |\extrasfrench| when French is
-% the main language); otherwise add a space before the `:’ in French
-% in order to avoid problems when \fbo{AutoSpacePunctuation=false}.
+% the main language); otherwise locally force |\autospace@beforeFDP|
+% in case \fbo{AutoSpacePunctuation=false}.
% \begin{macrocode}
\ifFBOldFigTabCaptions
\else
- \def\FBCaption@Separator{\ifFBfrench\space\fi : }%
- \fi
- \ifFBCustomiseFigTabCaptions
- \ifFB@mainlanguage@FR
- \def\FBCaption@Separator{\CaptionSeparator}%
+ \def\FBCaption@Separator{{\autospace@beforeFDP : }}%
+ \ifFBCustomiseFigTabCaptions
+ \ifFB@mainlanguage@FR
+ \def\FBCaption@Separator{\CaptionSeparator}%
+ \fi
\fi
\fi
\@FBwarning@capsepfalse
\fi
% \end{macrocode}
-% Cancel the warning if \file{caption3.sty} has been loaded
-% \emph{after} \babel.
-% \begin{macrocode}
- \@ifpackageloaded{caption3}{%
- \ifnum\value{FBcaption@count}=0 \@FBwarning@capsepfalse\fi
- }{}%
- \if@FBwarning@capsep
- \ifnum\value{FBcaption@count}>0
-% \end{macrocode}
-% \file{caption3.sty} has been loaded \emph{before} babel, maybe by
-% the class…
+% No Warning if \file{caption.sty} has been loaded.
% \begin{macrocode}
- \FBWarning
- {Figures' and tables' captions might look like\MessageBreak
- `Figure 1:' in French instead of `Figure 1 :'.\MessageBreak
- If you have loaded any of the packages caption,\MessageBreak
- subcaption or floatrow BEFORE babel/french,\MessageBreak
- please move them AFTER babel/french.\MessageBreak
- If one of them is loaded by your class,\MessageBreak
- you can still add AFTER babel/french\MessageBreak
- \protect\usepackage[labelsep=period]{caption} or\MessageBreak
- \protect\usepackage[labelsep=endash]{caption} or\MessageBreak
- ... live with it; reported}%
- \else
+ \@ifpackageloaded{caption}{\@FBwarning@capsepfalse}{}%
% \end{macrocode}
-% \file{caption3.sty} hasn’t been loaded at all.
+% Final warning if relevant:
% \begin{macrocode}
- \FBWarning
+ \if@FBwarning@capsep
+ \FBWarning
{Figures' and tables' captions might look like\MessageBreak
`Figure 1:' in French instead of `Figure 1 :'.\MessageBreak
- If it happens, see your class documentation to\MessageBreak
- fix this issue or add AFTER babel/french\MessageBreak
- \protect\usepackage[labelsep=period]{caption} or\MessageBreak
- \protect\usepackage[labelsep=endash]{caption} or\MessageBreak
- or ... live with it; reported}%
- \fi
+ If this happens, to fix this issue\MessageBreak
+ just add \protect\usepackage{caption} or\MessageBreak
+ switch to LuaLaTeX or XeLaTeX or\MessageBreak
+ ... leave it as it is; reported}%
\fi
\let\FB@makecaption\relax
\let\STD@makecaption\relax
@@ -4575,10 +4603,7 @@ return french_punctuation
\define@key{FB}{SmallCapsFigTabCaptions}[true]%
{\csname FBSmallCapsFigTabCaptions#1\endcsname
\ifFBSmallCapsFigTabCaptions
- \let\FBfigtabshape\scshape
- \else
- \let\FBfigtabshape\relax
- \fi}%
+ \else \let\FBfigtabshape\relax \fi}%
\define@key{FB}{SuppressWarning}[true]%
{\csname FBSuppressWarning#1\endcsname
\ifFBSuppressWarning
@@ -4960,10 +4985,13 @@ return french_punctuation
% instance.
% \begin{macrocode}
\ifFBFrenchSuperscripts
- \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}{\fup}}%
+ \DeclareRobustCommand*{\up}{%
+ \texorpdfstring{\@ifstar{\FB@up@fake}{\fup}}{}%
+ }
\else
- \DeclareRobustCommand*{\up}{\@ifstar{\FB@up@fake}%
- {\textsuperscript}}%
+ \DeclareRobustCommand*{\up}{%
+ \texorpdfstring{\@ifstar{\FB@up@fake}{\textsuperscript}}{}%
+ }
\fi
% \end{macrocode}
% \fbo{LowercaseSuperscripts}: if \fbo{false} |\FB@lc| is redefined
@@ -4993,7 +5021,7 @@ return french_punctuation
% This is for koma-script, \cls{memoir} and \cls{beamer} classes.
% If the caption delimiter has been user customised, leave it
% unchanged. Otherwise, force the colon to behave properly in French
-% (add locally |\autospace@beforeFDP| in case of
+% (add locally |\autospace@beforeFDP| in case of
% \fbo{AutoSpacePunctuation=false}) and change the caption delimiter
% to |\CaptionSeparator| if \fbo{CustomiseFigTabCaptions} has been
% set to \fbo{true}.
@@ -5105,46 +5133,9 @@ return french_punctuation
\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.}
-%
-% \changes{v3.2g}{2017/01/24}{Add \cs{boi} to redefinitions for
-% bookmarks.}
-%
-% \changes{v3.5d}{2018/12/16}{Add \cs{frquote} to redefinitions for
-% bookmarks.}
-%
-% Let’s redefine some commands in \file{hyperref}’s bookmarks.
-% \begin{macrocode}
- \ifdefined\pdfstringdefDisableCommands
- \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\frquote#1{\FB@og #1\FB@fg}%
- \def\at{@}%
- \def\circonflexe{\string^}%
- \def\tild{\string~}%
- \def\boi{\textbackslash}%
- \let\bsc\textsc
- }%
- \fi
-% \end{macrocode}
+% \changes{v3.5k}{2020/07/30}{\cs{pdfstringdefDisableCommands}
+% dropped.}
+%
% Let’s now process the remaining options, either not explicitly
% set by \fbsetup{} or possibly modified by packages loaded after
% \frenchb.