texlive[56333] Master/texmf-dist: babel-french (12sep20)

commits+karl at tug.org commits+karl at tug.org
Sat Sep 12 23:06:55 CEST 2020


Revision: 56333
          http://tug.org/svn/texlive?view=revision&revision=56333
Author:   karl
Date:     2020-09-12 23:06:55 +0200 (Sat, 12 Sep 2020)
Log Message:
-----------
babel-french (12sep20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.pdf
    trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.tex
    trunk/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
    trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
    trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
    trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
    trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf
    trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf
    trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
    trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua

Modified: trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.tex	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.tex	2020-09-12 21:06:55 UTC (rev 56333)
@@ -125,11 +125,11 @@
 %
 \title{Documentation sur le module \ext{babel-french}}
 \author{\href{mailto:daniel.flipo at free.fr}{Daniel \textsc{Flipo}}}
-\newcommand*{\latestversion}{3.5j}
+\newcommand*{\latestversion}{3.5k}
 \date{Version {\latestversion} -- \today}
 
 \begin{document}
-\def\today{2 juillet 2020}
+%\def\today{30 juillet 2020}
 
 \maketitle
 \thispagestyle{empty}
@@ -396,7 +396,7 @@
 \par}
 
 \item Les légendes des figures et des tables utilisent un tiret double
-  à la place du «\string:», on obtient
+  à la place du «\string:», ceci pour toutes les langues, on obtient
   «Figure~1~--~Légende» au lieu de «Figure~1\string:~Légende».
   Il est possible de choisir un autre séparateur :
   pour remplacer le tiret double «--» par un tiret triple «---»,
@@ -1094,7 +1094,8 @@
   la présentation antérieure (pré~3.0) des légendes de figures et tables,
   c.-à-d. |\CaptionSeparator| en français et deux-points pour les autres
   langues.  Cette option ne fonctionne que pour les classes standard
-  \cls{article}, \cls{report}, \cls{book}.
+  \cls{article}, \cls{report}, \cls{book} et rend inopérante l’option
+  \fbo{CustomiseFigTabcaptions}.
 
 \end{description}
 
@@ -1536,6 +1537,23 @@
 des légendes de figures et tables (commandes |\captionformat|, |\captiondelim|,
 etc.) sont maintenant prises en compte correctement.
 
+À partir de la version 3.5k :
+\begin{itemize}
+  \item La traduction française de |\figurename| et |\tablename| ne
+    contient plus de commande de changement de fonte comme c’est la règle.
+    Le passage en petites capitales a été déplacé dans |\fnum at figure| et
+    |\fnum at table|, ce qui a pour effet de mettre le numéro également en
+    petites capitales. Noter que la classe \cls{beamer} ne reconnaît pas les
+    commandes |\fnum at ...|, les légendes ne sont donc plus en petites
+    capitales.
+  \item Le chargement de \pkg{caption} peut se faire indiféremment avant ou
+    après celui de \pkg{babel}.
+  \item La commande |\pdfstringdefDisableCommands| n’est plus utilisée :
+    toutes les commandes nécessitant un traitement spécial dans les
+    signets \pkg{hyperref} sont maintenant définies à partir de
+    |\textorpdfstring{}{}| (suggestion de l’équipe LaTeX3).
+\end{itemize}
+
 \subsection{Changements entre les versions  3.4d et 3.3d}
 \label{ssec:changes-3.4}
 

Modified: trunk/Master/texmf-dist/doc/generic/babel-french/frenchb.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx	2020-09-12 21:06:55 UTC (rev 56333)
@@ -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 at figure| and |\fnum at 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 @@
 %    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 at koma}
 %    Before doing so, we have to save some definitions involving |:|.
 %    \begin{macrocode}
 \newif\ifFB at koma
-\@ifclassloaded{scrartcl}{\FB at komatrue}{}
-\@ifclassloaded{scrbook}{\FB at komatrue}{}
-\@ifclassloaded{scrreprt}{\FB at komatrue}{}
-\ifFB at koma\def\FB at std@capsep{:\ }\fi
-\@ifclassloaded{beamer}{\def\FB at std@capsep{:\ }}{}
-\@ifclassloaded{memoir}{\def\FB at std@capsep{: }}{}
+\ifLaTeXe
+  \@ifclassloaded{scrartcl}{\FB at komatrue}{}
+  \@ifclassloaded{scrbook}{\FB at komatrue}{}
+  \@ifclassloaded{scrreprt}{\FB at komatrue}{}
+  \ifFB at koma\def\FB at std@capsep{:\ }\fi
+  \@ifclassloaded{beamer}{\def\FB at std@capsep{:\ }}{}
+  \@ifclassloaded{memoir}{\def\FB at std@capsep{: }}{}
+\fi
 %    \end{macrocode}
 %    \begin{macrocode}
 \ifFB at active@punct
@@ -2804,25 +2819,35 @@
 %    `»’; 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 at og| and
-%    |\FB at fg|, the expansion of the top level commands |\og| and |\og|
+%    |\FB at 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 at og} and \cs{FB at fg}
+% \changes{v3.5k}{2020/07/17}{\cs{FB at og} and \cs{FB at fg} now rely
+%    on \cs{texorpdfstring} to be safe in bookmarks.}
+%
+%    |\FB at og| and |\FB at fg| are now designed to work in bookmarks.
+%    \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
+\newcommand*{\FB at og}{\texorpdfstring{\@FB at og}{\guillemotleft\space}}
+\newcommand*{\FB at fg}{\texorpdfstring{\@FB at fg}{\space\guillemotright}}
+%    \end{macrocode}
+%
+%\changes{v3.0a}{2014/01/10}{Definitions of \cs{FB at og} and \cs{FB at fg}
 %    now depend on punctuation handling (LuaTeX / XeTeX / active).}
 %
-%    The definitions of |\FB at og| and |\FB at fg| need some engine-dependent
-%    tuning: for LuaTeX, |\FB at 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 at og| and |\@FB at fg| need some
+%    engine-dependent tuning: for LuaTeX, |\FB at 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 at guillspace}{\penalty\@M\FBguillspace}
 \newcommand*{\FBgspchar}{\char"A0\relax}
 \newif\ifFBucsNBSP
 \ifFB at luatex@punct
-  \DeclareRobustCommand*{\FB at og}{\leavevmode
+  \DeclareRobustCommand*{\@FB at og}{\leavevmode
           \bgroup\FB at spacing=0 \guillemotleft\egroup
           \ifFBucsNBSP\FBgspchar\else\FB at guillspace\fi}
-  \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+  \DeclareRobustCommand*{\@FB at fg}{\ifdim\lastskip>\z@\unskip\fi
           \ifFBucsNBSP\FBgspchar\else\FB at guillspace\fi
           \bgroup\FB at spacing=0 \guillemotright\egroup}
 \fi
@@ -2831,18 +2856,18 @@
 %    same reason.
 %    \begin{macrocode}
 \ifFB at xetex@punct
-  \DeclareRobustCommand*{\FB at og}{\leavevmode
+  \DeclareRobustCommand*{\@FB at og}{\leavevmode
         \bgroup\FB at spacingfalse\guillemotleft\egroup
         \FB at guillspace}
-  \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+  \DeclareRobustCommand*{\@FB at fg}{\ifdim\lastskip>\z@\unskip\fi
         \FB at guillspace
         \bgroup\FB at spacingfalse\guillemotright\egroup}
 \fi
 \ifFB at active@punct
-  \DeclareRobustCommand*{\FB at og}{\leavevmode
+  \DeclareRobustCommand*{\@FB at og}{\leavevmode
         \guillemotleft
         \FB at guillspace}
-  \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+  \DeclareRobustCommand*{\@FB at fg}{\ifdim\lastskip>\z@\unskip\fi
         \FB at guillspace
         \guillemotright}
 \fi
@@ -2960,15 +2985,24 @@
 \let\FBeverypar at quote\relax
 \let\FBeveryline at 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 at quote}%
-               {\FBcloseguilltrue\fr at quote}}
+    \texorpdfstring{\@ifstar{\FBcloseguillfalse\fr at quote}%
+                            {\FBcloseguilltrue \fr at quote}}%
+                   {\bm at fr@quote}%
+  }
+  \newcommand{\bm at fr@quote}[1]{%
+    \guillemotleft\space #1\space\guillemotright}
 \else
   \newcommand\frquote[1]{\fr at quote{#1}}
 \fi
@@ -3191,6 +3225,9 @@
 %    \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 @@
        \fontfamily{\FB at firstthree -sup}\selectfont \FB at lc{#1}\egroup}
 %    \end{macrocode}
 %    |\fup| is defined as |\FB at 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 at up{#1}%
-    \else
-      \bgroup\let\fakesuperscript\FB at up@fake
-             \realsuperscript{\FB at lc{#1}}\egroup
-    \fi}
+    \texorpdfstring{\ifx\realsuperscript\@undefined
+                      \FB at up{#1}%
+                    \else
+                      \bgroup\let\fakesuperscript\FB at up@fake
+                        \realsuperscript{\FB at 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,24 +3392,30 @@
 %
 % \changes{v2.1c}{2008/04/29}{Added commands \cs{Nos} and \cs{nos}.}
 %
+%  \begin{macro}{\primo}
+%  \begin{macro}{\fprimo)}
+%  \begin{macro}{\nos}
+%  \begin{macro}{\Nos}
 %  \begin{macro}{\No}
 %  \begin{macro}{\no}
-%  \begin{macro}{\Nos}
-%  \begin{macro}{\nos}
-%  \begin{macro}{\primo}
-%  \begin{macro}{\fprimo)}
 % \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}
@@ -3376,7 +3422,8 @@
 \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 @@
 %    \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 @@
 % \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 @@
 %
 % \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 at 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 at one{T1}
-    \ifx\f at encoding\T at one
-      \newcommand*{\degre}{{\char6}}
-    \else
-      \newcommand*{\degre}{{\char23}}
-    \fi
-    \newcommand*{\at}{{\char64}}
-    \newcommand*{\circonflexe}{{\char94}}
-    \newcommand*{\tild}{{\char126}}
-    \newcommand*{\boi}{$\backslash$}
+    \newcommand*{\FB at degre}{\r{}}
   \fi
 \fi
+\DeclareRobustCommand*{\boi}{\textbackslash}
+\DeclareRobustCommand*{\circonflexe}{\textasciicircum}
+\DeclareRobustCommand*{\tild}{\textasciitilde}
+\DeclareRobustCommand*{\degre}{%
+  \texorpdfstring{\FB at degre}{\textdegree}}
+\newcommand*{\at}{@}
 %    \end{macrocode}
 %
 %  \begin{macro}{\degres}
@@ -3471,7 +3520,7 @@
 %    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 @@
 %    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 at 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 at degree@TSone{\FBWarning
+  \AtBeginDocument{%
+    \@ifpackageloaded{fontspec}{}{%
+      \ifdefined\DeclareEncodingSubset
+        \DeclareRobustCommand*{\degres}{%
+          \texorpdfstring{\hbox{\UseTextSymbol{TS1}{\textdegree}}}%
+                         {\textdegree}}%
+      \else
+        \def\Warning at 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 at degree@TSone
-                       \global\let\Warning at 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 at degree@TSone
+                          \global\let\Warning at degree@TSone\relax}%
+                          {\textdegree}}%
+      \fi
+    }%
+  }
 \fi
 %    \end{macrocode}
 %  \end{macro}
@@ -3731,6 +3775,9 @@
 % \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 at figure} and \cs{fnum at 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 @@
    \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 @@
    \SetString{\partname}{\FB at 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 at figure| and |\fnum at table| when available (not in
+%    beamer.cls f.i.).
+%    \begin{macrocode}
+\AtBeginDocument{%
+  \ifx\FBfigtabshape\relax
+  \else
+    \ifdefined\fnum at figure
+      \let\fnum at figureORI\fnum at figure
+      \let\fnum at tableORI\fnum at table
+      \renewcommand{\fnum at figure}{{\ifFBfrench\FBfigtabshape\fi
+                                   \fnum at figureORI}}%
+      \renewcommand{\fnum at table}{{\ifFBfrench\FBfigtabshape\fi
+                                  \fnum at tableORI}}%
+    \fi
+  \fi
+}
+%    \end{macrocode}
 % \end{macro}
 %
 % \changes{v3.0a}{2014/02/28}{Merging of \cs{captionsfrenchb},
@@ -3937,13 +4003,9 @@
 %    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 at options|)
-%    \hlabel{ifFB at koma}.
 %    \begin{macrocode}
-\newif\ifFB at koma
 \@ifclassloaded{memoir}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{scrartcl}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{scrbook}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{scrreprt}{\@FBwarning at capsepfalse\FB at komatrue}{}
+\ifFB at koma \@FBwarning at capsepfalse \fi
 %    \end{macrocode}
 %    No warning with the \cls{beamer} class which defines
 %    |\beamer at makecaption| (customised below) instead of
@@ -3963,21 +4025,9 @@
 % \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{}.
+% \changes{v3.5k}{2020/09/06}{Reorganise warnings about `:’ in captions,
+%    according to enhancements in caption.sty v3.5a.}
 %
-%    Check if packages \pkg{caption3} \pkg{subcaption} or \pkg{floatrow}
-%    are loaded now (before \frenchb) and step counter |FBcaption at 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 at count}
-\@ifpackageloaded{caption3}{\addtocounter{FBcaption at count}{4}}{}
-\@ifpackageloaded{subcaption}{\addtocounter{FBcaption at count}{2}}{}
-\@ifpackageloaded{floatrow}{\stepcounter{FBcaption at count}}{}
-%    \end{macrocode}
-%
 % \changes{v3.0a}{2014/02/20}{More informative, less TeXnical warning
 %    about \cs{@makecaption}.}
 %
@@ -3998,57 +4048,35 @@
 %    If \fbo{OldFigTabCaptions=true}, do not overwrite
 %    |\FBCaption at 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 at beforeFDP|
+%    in case \fbo{AutoSpacePunctuation=false}.
 %    \begin{macrocode}
     \ifFBOldFigTabCaptions
     \else
-      \def\FBCaption at Separator{\ifFBfrench\space\fi : }%
-    \fi
-    \ifFBCustomiseFigTabCaptions
-       \ifFB at mainlanguage@FR
-        \def\FBCaption at Separator{\CaptionSeparator}%
+      \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+      \ifFBCustomiseFigTabCaptions
+        \ifFB at mainlanguage@FR
+          \def\FBCaption at Separator{\CaptionSeparator}%
+        \fi
       \fi
     \fi
     \@FBwarning at capsepfalse
   \fi
 %    \end{macrocode}
-%    Cancel the warning if \file{caption3.sty} has been loaded
-%    \emph{after} \babel.
+%    No Warning if \file{caption.sty} has been loaded.
 %    \begin{macrocode}
-  \@ifpackageloaded{caption3}{%
-    \ifnum\value{FBcaption at count}=0 \@FBwarning at capsepfalse\fi
-    }{}%
-  \if at FBwarning@capsep
-    \ifnum\value{FBcaption at count}>0
+  \@ifpackageloaded{caption}{\@FBwarning at capsepfalse}{}%
 %    \end{macrocode}
-%    \file{caption3.sty} has been loaded \emph{before} babel, maybe by
-%    the class…
+%    Final warning if relevant:
 %    \begin{macrocode}
-      \FBWarning
+  \if at FBwarning@capsep
+     \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
-%    \end{macrocode}
-%    \file{caption3.sty} hasn’t been loaded at all.
-%    \begin{macrocode}
-      \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 at makecaption\relax
   \let\STD at makecaption\relax
@@ -4575,10 +4603,7 @@
   \define at key{FB}{SmallCapsFigTabCaptions}[true]%
           {\csname FBSmallCapsFigTabCaptions#1\endcsname
            \ifFBSmallCapsFigTabCaptions
-             \let\FBfigtabshape\scshape
-           \else
-             \let\FBfigtabshape\relax
-           \fi}%
+           \else \let\FBfigtabshape\relax \fi}%
   \define at key{FB}{SuppressWarning}[true]%
           {\csname FBSuppressWarning#1\endcsname
            \ifFBSuppressWarning
@@ -4960,10 +4985,13 @@
 %    instance.
 %    \begin{macrocode}
   \ifFBFrenchSuperscripts
-    \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}{\fup}}%
+    \DeclareRobustCommand*{\up}{%
+      \texorpdfstring{\@ifstar{\FB at up@fake}{\fup}}{}%
+      }
   \else
-    \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}%
-                                        {\textsuperscript}}%
+    \DeclareRobustCommand*{\up}{%
+      \texorpdfstring{\@ifstar{\FB at up@fake}{\textsuperscript}}{}%
+      }
   \fi
 %    \end{macrocode}
 %    \fbo{LowercaseSuperscripts}: if \fbo{false} |\FB at lc| is redefined
@@ -4993,7 +5021,7 @@
 %    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 at beforeFDP| in case of
+%    (add locally |\autospace at 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 @@
    \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.5k}{2020/07/30}{\cs{pdfstringdefDisableCommands}
+%    dropped.}
 %
-% \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 at og{\guillemotleft\space}%
-        \def\FB at fg{\space\guillemotright}%
-        \def\frquote#1{\FB at og #1\FB at fg}%
-        \def\at{@}%
-        \def\circonflexe{\string^}%
-        \def\tild{\string~}%
-        \def\boi{\textbackslash}%
-        \let\bsc\textsc
-      }%
-   \fi
-%    \end{macrocode}
 %    Let’s now process the remaining options, either not explicitly
 %    set by \fbsetup{} or possibly modified by packages loaded after
 %    \frenchb.

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf	2020-09-12 21:06:55 UTC (rev 56333)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{acadian}
-         [2020/07/02 v3.5j French support from the babel system]
+         [2020/09/09 v3.5k French support from the babel system]
 \PackageInfo{acadian.ldf}%
   {`acadian' dialect is currently\MessageBreak
    *absolutely identical* to the\MessageBreak

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf	2020-09-12 21:06:55 UTC (rev 56333)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{canadien}
-         [2020/07/02 v3.5j French support from the babel system]
+         [2020/09/09 v3.5k French support from the babel system]
 \PackageWarning{canadien.ldf}%
   {Option `canadien' for Babel is *deprecated*,\MessageBreak
    it might be removed sooner or later.  Please\MessageBreak

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf	2020-09-12 21:06:55 UTC (rev 56333)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{francais}
-         [2020/07/02 v3.5j French support from the babel system]
+         [2020/09/09 v3.5k French support from the babel system]
 \PackageWarning{francais.ldf}%
   {Option `francais' for Babel is *deprecated*,\MessageBreak
    it might be removed sooner or later.  Please\MessageBreak

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf	2020-09-12 21:06:55 UTC (rev 56333)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{french}
-         [2020/07/02 v3.5j French support from the babel system]
+         [2020/09/09 v3.5k French support from the babel system]
 %%
 %%  Babel package for LaTeX version 2e
 %%  Copyright © 1996-2020
@@ -418,12 +418,14 @@
    \addto\extrasfrench{\FB at xetex@punct at french}
 \fi
 \newif\ifFB at koma
-\@ifclassloaded{scrartcl}{\FB at komatrue}{}
-\@ifclassloaded{scrbook}{\FB at komatrue}{}
-\@ifclassloaded{scrreprt}{\FB at komatrue}{}
-\ifFB at koma\def\FB at std@capsep{:\ }\fi
-\@ifclassloaded{beamer}{\def\FB at std@capsep{:\ }}{}
-\@ifclassloaded{memoir}{\def\FB at std@capsep{: }}{}
+\ifLaTeXe
+  \@ifclassloaded{scrartcl}{\FB at komatrue}{}
+  \@ifclassloaded{scrbook}{\FB at komatrue}{}
+  \@ifclassloaded{scrreprt}{\FB at komatrue}{}
+  \ifFB at koma\def\FB at std@capsep{:\ }\fi
+  \@ifclassloaded{beamer}{\def\FB at std@capsep{:\ }}{}
+  \@ifclassloaded{memoir}{\def\FB at std@capsep{: }}{}
+\fi
 \ifFB at active@punct
   \initiate at active@char{:}%
   \initiate at active@char{;}%
@@ -532,30 +534,33 @@
   \fi
   \let\xspace\relax
 \fi
+\providecommand\texorpdfstring[2]{#1}
+\newcommand*{\FB at og}{\texorpdfstring{\@FB at og}{\guillemotleft\space}}
+\newcommand*{\FB at fg}{\texorpdfstring{\@FB at fg}{\space\guillemotright}}
 \newcommand*{\FB at guillspace}{\penalty\@M\FBguillspace}
 \newcommand*{\FBgspchar}{\char"A0\relax}
 \newif\ifFBucsNBSP
 \ifFB at luatex@punct
-  \DeclareRobustCommand*{\FB at og}{\leavevmode
+  \DeclareRobustCommand*{\@FB at og}{\leavevmode
           \bgroup\FB at spacing=0 \guillemotleft\egroup
           \ifFBucsNBSP\FBgspchar\else\FB at guillspace\fi}
-  \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+  \DeclareRobustCommand*{\@FB at fg}{\ifdim\lastskip>\z@\unskip\fi
           \ifFBucsNBSP\FBgspchar\else\FB at guillspace\fi
           \bgroup\FB at spacing=0 \guillemotright\egroup}
 \fi
 \ifFB at xetex@punct
-  \DeclareRobustCommand*{\FB at og}{\leavevmode
+  \DeclareRobustCommand*{\@FB at og}{\leavevmode
         \bgroup\FB at spacingfalse\guillemotleft\egroup
         \FB at guillspace}
-  \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+  \DeclareRobustCommand*{\@FB at fg}{\ifdim\lastskip>\z@\unskip\fi
         \FB at guillspace
         \bgroup\FB at spacingfalse\guillemotright\egroup}
 \fi
 \ifFB at active@punct
-  \DeclareRobustCommand*{\FB at og}{\leavevmode
+  \DeclareRobustCommand*{\@FB at og}{\leavevmode
         \guillemotleft
         \FB at guillspace}
-  \DeclareRobustCommand*{\FB at fg}{\ifdim\lastskip>\z@\unskip\fi
+  \DeclareRobustCommand*{\@FB at fg}{\ifdim\lastskip>\z@\unskip\fi
         \FB at guillspace
         \guillemotright}
 \fi
@@ -604,8 +609,12 @@
 \let\FBeveryline at quote\empty
 \ifLaTeXe
   \DeclareRobustCommand\frquote{%
-       \@ifstar{\FBcloseguillfalse\fr at quote}%
-               {\FBcloseguilltrue\fr at quote}}
+    \texorpdfstring{\@ifstar{\FBcloseguillfalse\fr at quote}%
+                            {\FBcloseguilltrue \fr at quote}}%
+                   {\bm at fr@quote}%
+  }
+  \newcommand{\bm at fr@quote}[1]{%
+    \guillemotleft\space #1\space\guillemotright}
 \else
   \newcommand\frquote[1]{\fr at quote{#1}}
 \fi
@@ -722,13 +731,15 @@
   \newcommand*{\FB at up@real}[1]{\bgroup
        \fontfamily{\FB at firstthree -sup}\selectfont \FB at lc{#1}\egroup}
   \DeclareRobustCommand*{\fup}[1]{%
-    \ifx\realsuperscript\@undefined
-      \FB at up{#1}%
-    \else
-      \bgroup\let\fakesuperscript\FB at up@fake
-             \realsuperscript{\FB at lc{#1}}\egroup
-    \fi}
-  \providecommand*{\up}{\relax}
+    \texorpdfstring{\ifx\realsuperscript\@undefined
+                      \FB at up{#1}%
+                    \else
+                      \bgroup\let\fakesuperscript\FB at up@fake
+                        \realsuperscript{\FB at lc{#1}}\egroup
+                    \fi
+                    }{#1}%
+  }
+  \providecommand*{\up}{\fup}
 \else
   \providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}}
 \fi
@@ -740,8 +751,10 @@
 \def\ieres{\up{res}\xspace}
 \newcommand*{\FBmedkern}{\kern+.2em}
 \newcommand*{\FBthickkern}{\kern+.3em}
-\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}}
 \def\primo{\FrenchEnumerate1}
 \def\secundo{\FrenchEnumerate2}
 \def\tertio{\FrenchEnumerate3}
@@ -750,66 +763,60 @@
 \def\fsecundo){\FrenchPopularEnumerate2}
 \def\ftertio){\FrenchPopularEnumerate3}
 \def\fquarto){\FrenchPopularEnumerate4}
-\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*{\bsc}[1]{\leavevmode\begingroup\kern0pt
-                                           \scshape #1\endgroup}
-\ifLaTeXe\else\let\scshape\relax\fi
+\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}}
+\ifLaTeXe
+  \DeclareRobustCommand*{\bsc}[1]{%
+    \texorpdfstring{\leavevmode\begingroup\kern0pt \scshape #1\endgroup}%
+                   {\textsc{#1}}%
+  }
+\else
+  \newcommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt #1\endgroup}
+\fi
 \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 at 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 at one{T1}
-    \ifx\f at encoding\T at one
-      \newcommand*{\degre}{{\char6}}
-    \else
-      \newcommand*{\degre}{{\char23}}
-    \fi
-    \newcommand*{\at}{{\char64}}
-    \newcommand*{\circonflexe}{{\char94}}
-    \newcommand*{\tild}{{\char126}}
-    \newcommand*{\boi}{$\backslash$}
+    \newcommand*{\FB at degre}{\r{}}
   \fi
 \fi
+\DeclareRobustCommand*{\boi}{\textbackslash}
+\DeclareRobustCommand*{\circonflexe}{\textasciicircum}
+\DeclareRobustCommand*{\tild}{\textasciitilde}
+\DeclareRobustCommand*{\degre}{%
+  \texorpdfstring{\FB at degre}{\textdegree}}
+\newcommand*{\at}{@}
+\DeclareRobustCommand*{\degres}{\degre}
 \ifLaTeXe
-  \newcommand*{\degres}{\degre}
-  \ifFBunicode
-    \DeclareRobustCommand*{\degres}{\degre}
-  \else
-    \def\Warning at degree@TSone{\FBWarning
+  \AtBeginDocument{%
+    \@ifpackageloaded{fontspec}{}{%
+      \ifdefined\DeclareEncodingSubset
+        \DeclareRobustCommand*{\degres}{%
+          \texorpdfstring{\hbox{\UseTextSymbol{TS1}{\textdegree}}}%
+                         {\textdegree}}%
+      \else
+        \def\Warning at 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 at degree@TSone
-                       \global\let\Warning at 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 at degree@TSone
+                          \global\let\Warning at degree@TSone\relax}%
+                          {\textdegree}}%
+      \fi
+    }%
+  }
 \fi
 \newif\ifFB at icomma
 \newcount\mc at charclass
@@ -939,8 +946,8 @@
    \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}
@@ -970,6 +977,19 @@
     }
    \SetString{\partname}{\FB at partname}
 \EndBabelCommands
+\AtBeginDocument{%
+  \ifx\FBfigtabshape\relax
+  \else
+    \ifdefined\fnum at figure
+      \let\fnum at figureORI\fnum at figure
+      \let\fnum at tableORI\fnum at table
+      \renewcommand{\fnum at figure}{{\ifFBfrench\FBfigtabshape\fi
+                                   \fnum at figureORI}}%
+      \renewcommand{\fnum at table}{{\ifFBfrench\FBfigtabshape\fi
+                                  \fnum at tableORI}}%
+    \fi
+  \fi
+}
 \newcommand{\FBWarning}[1]{\PackageWarning{french.ldf}{#1}}
 \bgroup
   \catcode`:=12 \catcode`>=12 \relax
@@ -1006,57 +1026,33 @@
 \@ifclassloaded{amproc}{\@FBwarning at capsepfalse}{}
 \@ifclassloaded{smfart}{\@FBwarning at capsepfalse}{}
 \@ifclassloaded{smfbook}{\@FBwarning at capsepfalse}{}
-\newif\ifFB at koma
 \@ifclassloaded{memoir}{\@FBwarning at capsepfalse}{}
-\@ifclassloaded{scrartcl}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{scrbook}{\@FBwarning at capsepfalse\FB at komatrue}{}
-\@ifclassloaded{scrreprt}{\@FBwarning at capsepfalse\FB at komatrue}{}
+\ifFB at koma \@FBwarning at capsepfalse \fi
 \@ifclassloaded{beamer}{\@FBwarning at capsepfalse}{}
 \ifdefined\@makecaption\else\@FBwarning at capsepfalse\fi
-\newcounter{FBcaption at count}
-\@ifpackageloaded{caption3}{\addtocounter{FBcaption at count}{4}}{}
-\@ifpackageloaded{subcaption}{\addtocounter{FBcaption at count}{2}}{}
-\@ifpackageloaded{floatrow}{\stepcounter{FBcaption at count}}{}
 \AtBeginDocument{%
   \ifx\@makecaption\STD at makecaption
     \global\let\@makecaption\FB at makecaption
     \ifFBOldFigTabCaptions
     \else
-      \def\FBCaption at Separator{\ifFBfrench\space\fi : }%
-    \fi
-    \ifFBCustomiseFigTabCaptions
-       \ifFB at mainlanguage@FR
-        \def\FBCaption at Separator{\CaptionSeparator}%
+      \def\FBCaption at Separator{{\autospace at beforeFDP : }}%
+      \ifFBCustomiseFigTabCaptions
+        \ifFB at mainlanguage@FR
+          \def\FBCaption at Separator{\CaptionSeparator}%
+        \fi
       \fi
     \fi
     \@FBwarning at capsepfalse
   \fi
-  \@ifpackageloaded{caption3}{%
-    \ifnum\value{FBcaption at count}=0 \@FBwarning at capsepfalse\fi
-    }{}%
+  \@ifpackageloaded{caption}{\@FBwarning at capsepfalse}{}%
   \if at FBwarning@capsep
-    \ifnum\value{FBcaption at count}>0
-      \FBWarning
+     \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
-      \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 at makecaption\relax
   \let\STD at makecaption\relax
@@ -1312,10 +1308,7 @@
   \define at key{FB}{SmallCapsFigTabCaptions}[true]%
           {\csname FBSmallCapsFigTabCaptions#1\endcsname
            \ifFBSmallCapsFigTabCaptions
-             \let\FBfigtabshape\scshape
-           \else
-             \let\FBfigtabshape\relax
-           \fi}%
+           \else \let\FBfigtabshape\relax \fi}%
   \define at key{FB}{SuppressWarning}[true]%
           {\csname FBSuppressWarning#1\endcsname
            \ifFBSuppressWarning
@@ -1536,10 +1529,13 @@
      \fi
     }{}%
   \ifFBFrenchSuperscripts
-    \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}{\fup}}%
+    \DeclareRobustCommand*{\up}{%
+      \texorpdfstring{\@ifstar{\FB at up@fake}{\fup}}{}%
+      }
   \else
-    \DeclareRobustCommand*{\up}{\@ifstar{\FB at up@fake}%
-                                        {\textsuperscript}}%
+    \DeclareRobustCommand*{\up}{%
+      \texorpdfstring{\@ifstar{\FB at up@fake}{\textsuperscript}}{}%
+      }
   \fi
   \ifFBLowercaseSuperscripts
   \else
@@ -1629,34 +1625,6 @@
 }
 \AtBeginDocument{%
    \providecommand*{\xspace}{\relax}%
-   \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 at og{\guillemotleft\space}%
-        \def\FB at fg{\space\guillemotright}%
-        \def\frquote#1{\FB at og #1\FB at fg}%
-        \def\at{@}%
-        \def\circonflexe{\string^}%
-        \def\tild{\string~}%
-        \def\boi{\textbackslash}%
-        \let\bsc\textsc
-      }%
-   \fi
    \FBprocess at options
    \ifFBucsNBSP
      \renewcommand*{\FBmedkern}{\char"202F\relax}%

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf	2020-09-12 21:06:55 UTC (rev 56333)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{frenchb}
-         [2020/07/02 v3.5j French support from the babel system]
+         [2020/09/09 v3.5k French support from the babel system]
 \def\bbl at tempa{frenchb}
 \ifx\CurrentOption\bbl at tempa
   \chardef\l at frenchb\l at french

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua	2020-09-12 21:06:37 UTC (rev 56332)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua	2020-09-12 21:06:55 UTC (rev 56333)
@@ -1,6 +1,6 @@
 --[[
    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]
    Copyright © 2014-2020 Daniel Flipo
    <daniel (dot) flipo (at) free (dot) fr>
    License LPPL: see french.ldf.



More information about the tex-live-commits mailing list.