texlive[65000] Master/texmf-dist: babel-french (12nov22)

commits+karl at tug.org commits+karl at tug.org
Sat Nov 12 21:53:09 CET 2022


Revision: 65000
          http://tug.org/svn/texlive?view=revision&revision=65000
Author:   karl
Date:     2022-11-12 21:53:09 +0100 (Sat, 12 Nov 2022)
Log Message:
-----------
babel-french (12nov22)

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	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.tex	2022-11-12 20:53:09 UTC (rev 65000)
@@ -121,11 +121,10 @@
 
 \title{Mode d’emploi du module \ext{babel-french}}
 \author{\href{mailto:daniel.flipo at free.fr}{Daniel \textsc{Flipo}}}
-\newcommand*{\latestversion}{3.5n}
+\newcommand*{\latestversion}{3.5o}
 \date{Version {\latestversion} -- \today}
 
 \begin{document}
-\def\today{18 avril 2022}
 
 \maketitle
 \thispagestyle{empty}
@@ -159,9 +158,6 @@
   \vspace{-\baselineskip}\noindent
   \descindentFB=0pt
   \begin{description}
-  \item[14 mai 2016] Mise à jour pour TeXLive~2016,
-    voir section~\ref{ssec:changes-3.2}. L’historique des changements
-    antérieurs à la version~3.0 a été supprimé.
   \item[3 juillet 2016] Ajout dans la version~3.2d, du paramètre
     |\descindentFB| pour les listes \env{description}, voir
     section~\ref{ssec:lists}.
@@ -186,6 +182,9 @@
     p.~\pageref{frquote}.
   \item[18 avril 2022] Nouvelle commande |\bname{}|, variante sans petites
     capitales de |\bsc{}|  voir p.~\pageref{bname}.
+  \item[11 novembre 2022] Avec Lua(La)TeX le codage |«~abc~»| ne produit plus
+    d’espace parasite.  La redéfinition de |\shorthandoff{}|,
+    |\shorthandon{}| sous LuaTeX/XeTeX est supprimée.
 \end{description}
 \end{abstract}
 \egroup
@@ -270,9 +269,10 @@
   commandes\\
   |\usepackage[T1]{fontenc}|\\
   |\usepackage{lmodern}|\\
-  et de déclarer le codage d’entrée (celui qui est utilisé par l’éditeur choisi),
-  par exemple |utf8| (recommandé) ou |latin9| ou |latin1| ou |applemac|, etc.\\
-  |\usepackage[utf8]{inputenc}|
+  la déclaration du codage d’entrée n’est nécessaire que si celui-ci n’est
+  pas le codage par défaut (|utf8| depuis 2018), par exemple |latin9| ou
+  |latin1| ou |applemac|, etc.\\
+  |\usepackage[latin9]{inputenc}|
 \item avec LuaLaTeX ou XeLaTeX on peut ajouter |\usepackage{fontspec}| mais
   ceci est devenu facultatif avec les formats LaTeX récents (2017).
 \end{itemize}
@@ -304,7 +304,7 @@
 
   Il est également possible d’utiliser des  fontes PostScript, pour plus de
   détails consulter par exemple le chapitre~15 du livre
-  \textit{\LaTeX, l’essentiel} de \bsc{D.~Bitouzé} et \bsc{J.-C.~Charpentier}.
+  \textit{LaTeX, l’essentiel} de \bsc{D.~Bitouzé} et \bsc{J.-C.~Charpentier}.
 \end{itemize}
 
 \section{Description de la francisation par babel-french}
@@ -549,9 +549,10 @@
   On obtient de vraies lettres supérieures
   \begin{itemize}
   \item avec les moteurs LuaTeX et XeTeX, à condition de charger les extensions
-    \ext{fontspec} et \ext{realscripts} et d’utiliser une police de type
-    OpenType qui connaisse la directive «\code{VerticalPosition=Superior}»
-    (polices Linux Libertine O, Iwona, par exemple) ;
+    \ext{fontspec} \emph{et} \ext{realscripts} et d’utiliser une police de type
+    OpenType qui connaisse la directive «sups» (c’est le cas de la plupart
+    d’entre-elles, il est possible de s’en assurer sous linux grâce à la
+    commande |otfinfo -f `kpsewhich nom_police.otf`|) ;
   \item sous (pdf)LaTeX avec certaines polices type~1 expertes
     (Fourier-Utopia).
   \end{itemize}
@@ -986,10 +987,11 @@
   \code{« guillemets »} (avec espaces à l’intérieur) pour obtenir «guillemets»
   avec les espaces insécables adéquates en français. En revanche, si on active
   cette option,
-  \emph{il ne faut pas coder explicitement les espaces insécables} :
-  \code{«}|~|\code{guillemets}|~|\code{»}
-  produirait «~guillemets~» où l’espace qui suit le guillemet ouvrant est
-  trop large.
+  \emph{il ne faut pas coder explicitement les espaces insécables}%
+  \footnote{Sauf avec le moteur LuaTeX qui permet de parer à cette
+    éventualité !}:
+  \code{«}|~|\code{guillemets}|~|\code{»} produirait avec pdfLaTeX ou XeLaTeX
+  une espace trop large après le guillemet ouvrant.
 
   Les espaces insécables ne sont ajoutées que lorsque la langue
   courante est le français : en allemand, le codage \code{(»Auf Deutsch«)}
@@ -1552,6 +1554,18 @@
 version~3.5n, la documentation concernant la commande |\bsc{}| a été revue
 comme celle concernant la saisie des guillemets.
 
+À partir de la version 3.5o :
+\begin{itemize}
+\item Le codage (déconseillé) |«~abc~»| ne produit plus d’espace parasite
+  \emph{avec Lua(La)TeX}, ceci répond à la demande formulée
+  \href{https://tex.stackexchange.com/questions/661377/}{ici}.
+\item Les commandes |\shorthandoff{}| et |\shorthandon{}| affichent maintenant
+  le message standard de \pkg{babel} lorsqu’elles sont exécutées (à tort) sous
+  LuaTeX ou XeTeX. Leur redéfinition, qui permettait de conseiller
+  |\NoAutoSpacing| à la place, a été supprimée à la demande de Javier Bezos,
+  car elle cassait la variante |\shorthandoff*{}|.
+\end{itemize}
+
 \subsection{Changements entre les versions  3.4d et 3.3d}
 \label{ssec:changes-3.4}
 
@@ -1980,7 +1994,7 @@
 \end{itemize}
 
 Pour la mise en œuvre pratique de \biblatex/\biber{}, consulter le manuel
-\textit{\LaTeX, l’essentiel} de \bsc{D.~Bitouzé} et \bsc{J.-C.~Charpentier} ou
+\textit{LaTeX, l’essentiel} de \bsc{D.~Bitouzé} et \bsc{J.-C.~Charpentier} ou
 la documentation en anglais \file{biblatex.pdf}.
 
 \section[Compatibilité avec e-french]

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	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx	2022-11-12 20:53:09 UTC (rev 65000)
@@ -1,5 +1,3 @@
-%\CheckSum{3741}
-%
 %\iffalse
 %    Tell the LaTeX system who we are and write an entry on the
 %    transcript.
@@ -13,7 +11,7 @@
 %<frenchb>\ProvidesLanguage{frenchb}
 %<lua>--[[
 %<lua>   File `frenchb.lua’ generated from frenchb.dtx
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o French support from the babel system]
 %<*internal>
 \iffalse
 %</internal>
@@ -79,7 +77,7 @@
 \newcommand*\env[1]{\texttt{#1}}
 \newcommand*\exe[1]{\texttt{#1}}
 \newcommand*\fbo[1]{\texttt{\ColorArg #1}}
-\newcommand*\fbsetup[1]{\cs{frenchsetup\{\fbo{#1}\}}}
+\newcommand*\fbsetup[1]{\cs{frenchsetup}\{\fbo{#1}\}}
 \renewcommand\meta[1]{\textit{<#1>}}  % no math mode (see doc.sty)
 \let\Module\meta                      % no math mode (see doc.sty)
 \renewcommand*\descriptionlabel[1]{%
@@ -357,7 +355,7 @@
 %  \label{sssec-frenchbsetup}
 %
 %    \vspace{.5\baselineskip}
-%    |\frenchsetup{}| and |\frenchbsetup{}| are synonymous;
+%    |\frenchbsetup{}| and |\frenchsetup{}| are synonymous;
 %    the latter should be preferred as the language name for
 %    French in \babel{} is no longer |frenchb| but |french|.
 %
@@ -587,12 +585,15 @@
 %      tells \frenchb{} which characters are opening and closing
 %      French guillemets (they depend on the input encoding), then
 %      you can type either \hlabel{option-og-fg}
-%      \texttt{« guillemets »} or \texttt{«guillemets»} (with or
-%      without spaces) to get properly typeset French quotes.
-%      This option works with LuaLaTeX and XeLaTeX; with pdfLaTeX it
-%      requires \file{inputenc} to be loaded with a proper encoding:
-%      8-bits encoding (latin1, latin9, ansinew, applemac,…) or
-%      multi-byte encoding (utf8, utf8x).
+%      \texttt{« guillemets »} or \texttt{«guillemets»}%
+%      \footnote{Or even
+%         \texttt{«\textasciitilde{}guillemets\textasciitilde{}»},
+%         but \emph{only} with LuaLaTeX.}
+%      (with or without spaces) to get properly typeset French quotes.
+%      This option works with LuaLaTeX, XeLaTeX and with pdfLaTeX
+%      (default encoding: utf8); with pdflatex other 8-bits encodings
+%      (latin1, latin9, ansinew, applemac,…) are also supported
+%      when properly declared with \file{inputenc}.
 %
 %    \item [INGuillSpace=true (false)] resets the dimensions of spaces
 %      after opening French quotes and before closing French quotes to
@@ -777,6 +778,7 @@
 %    this kind of mismatch.
 %    \end{itemize}
 %
+%  \newpage
 %  \subsection{Changes}
 %  \label{ssec-changes}
 %
@@ -918,9 +920,8 @@
 %    The best way to go is to upgrade to TL2016 or equivalent asap.
 %    Xe(La)TeX and pdf(La)TeX users can safely use \frenchb{} v.~3.2b
 %    and later on older installations too.
-%    \enlargethispage*{.5\baselineskip}
 %
-%    Tne internals of commands |\NoAutoSpacing|, |\ttfamilyFB|,
+%    The internals of commands |\NoAutoSpacing|, |\ttfamilyFB|,
 %    |\rmfamilyFB| and |\sffamilyFB| have been completely redesigned
 %    in version~3.2c, they behave now consistently with all engines.
 %
@@ -1526,18 +1527,13 @@
 %    |\sffamilyFB|. These four commands will now behave the same with
 %    any engine (up to version 3.2b, results were engine dependent).
 %    \begin{macrocode}
-\newcommand*{\FB at spacing@on}{%
-  \ifFB at luatex@punct
-    \FB at spacing=1 \relax
-  \else
-    \FB at spacingtrue
-  \fi}
-\newcommand*{\FB at spacing@off}{%
-  \ifFB at luatex@punct
-    \FB at spacing=0 \relax
-  \else
-    \FB at spacingfalse
-  \fi}
+\ifFB at luatex@punct
+  \newcommand*{\FB at spacing@on}{\FB at spacing=1 \relax}
+  \newcommand*{\FB at spacing@off}{\FB at spacing=0 \relax}
+\else
+  \newcommand*{\FB at spacing@on}{\FB at spacingtrue}
+  \newcommand*{\FB at spacing@off}{\FB at spacingfalse}
+\fi
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -1674,7 +1670,7 @@
 %</french>
 %    \end{macrocode}
 %
-%    \begin{macro}{frenchb.lua}
+%    \begin{environment}{frenchb.lua}
 %    This is \file{frenchb.lua}. It holds Lua code to deal with  `high
 %    punctuation’ and quotes.  This code is based on suggestions from
 %    Paul Isambert.
@@ -2111,9 +2107,12 @@
 %    (i.e. in « \cs{texttt}\{a\} »).}
 %
 % \changes{v3.1g}{2015/06/26}{Flag addgl set to false for
-%   `«’ at the end of an \cs{hbox} or a paragraph or when followed by
-%   a null glue (i.e. springs).}
+%    `«’ at the end of an \cs{hbox} or a paragraph or when followed by
+%    a null glue (i.e. springs).}
 %
+% \changes{v3.5o}{2022/10/11}{Opening guill.: look ahead when next is
+%    a penalty (nobreak space).}
+%
 %    \begin{macrocode}
           elseif SIG then
              local next = item.next
@@ -2121,13 +2120,30 @@
              if next then
                 next_id = next.id
                 next_subtype = next.subtype
-                if next_id == GLYPH then
-                   next_char = next.char
 %    \end{macrocode}
-%    A |kern0| might hide a |glue|, so look ahead if |next| is a kern
-%    (this occurs with |« \texttt{a} »|):
+%    In case of coding |«~| remove the penalty and the glue:
 %    \begin{macrocode}
-                elseif next_id == KERN then
+                if next_id == PENALTY then
+                   nextnext = next.next
+                   if nextnext and nextnext.id == GLUE then
+                      head = remove_node(head,nextnext,true)
+                      head = remove_node(head,next,true)
+                      next = item.next
+                      if next then
+                         next_id = next.id
+                         next_subtype = next.subtype
+                         if next_id == GLYPH then
+                            next_char = next.char
+                         end
+                     end
+                   end
+                end
+%    \end{macrocode}
+%    A |kern0| might hide a |penalty| and/or |glue|, so look ahead if
+%    |next| is a kern (this occurs with |« \texttt{a} »| and
+%    |«~\texttt{a}~»|):
+%    \begin{macrocode}
+                if next_id == KERN then
                    kern_wd = next.kern
                    if kern_wd == 0 then
                       nextnext = next.next
@@ -2135,17 +2151,32 @@
                          next = nextnext
                          next_id = nextnext.id
                          next_subtype = nextnext.subtype
-                         if next_id == GLYPH then
-                            next_char = nextnext.char
+                         if next_id == PENALTY then
+                            nextnext = next.next
+                            if nextnext and nextnext.id == GLUE then
+                               head = remove_node(head,next,true)
+                               head = remove_node(head,nextnext,true)
+                               next = item.next
+                               if next then
+                                  next_id = next.id
+                                  next_subtype = next.subtype
+                               end
+                            end
                          end
                       end
                    end
                 end
+                if next_id == GLYPH then
+                   next_char = next.char
+                end
              end
              local is_glue = next_id == GLUE
              if is_glue then
                 glue_wd = next.width
              end
+%    \end{macrocode}
+%    The |addgl| flag only depends on |next_char| and |is_glue|:
+%    \begin{macrocode}
              local addgl = (next_char and not FB_guil_null[next_char])
                            or (next and not next_char)
 %    \end{macrocode}
@@ -2188,42 +2219,8 @@
 return french_punctuation
 %</lua>
 %    \end{macrocode}
-%    \end{macro}
+%    \end{environment}
 %
-%  \begin{macro}{\FB at luatex@punct at french}
-%    As a language tag is part of glyph nodes in LuaTeX, no more
-%    switching has to be done in |\extrasfrench|, setting the dialect
-%    attribute has already be done (see above, p.~\pageref{extrapunct}).
-%    We will just redefine |\shorthandoff| and |\shorthandon| in French
-%    to issue a warning reminding the user that active characters are no
-%    longer used in French with recent LuaTeX engines.
-%
-% \changes{v3.1l}{2016/02/07}{Use \cs{babel at save} to save and restore
-%    \cs{shorthandon} and \cs{shorthandoff}.}
-%
-%    \begin{macrocode}
-%<*french>
-\ifFB at luatex@punct
-  \newcommand*{\FB at luatex@punct at french}{%
-     \babel at save\shorthandon
-     \babel at save\shorthandoff
-     \def\shorthandoff##1{%
-        \ifx\PackageWarning\@undefined
-          \fb at warning{\noexpand\shorthandoff{;:!?} is helpless with
-           LuaTeX,\\ use \noexpand\NoAutoSpacing
-           *inside a group* instead.}%
-        \else
-          \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?}
-            is helpless with LuaTeX,\MessageBreak
-            use \protect\NoAutoSpacing \space *inside a group*
-            instead;\MessageBreak reported}%
-        \fi}%
-     \def\shorthandon##1{}%
-  }
-  \addto\extrasfrench{\FB at luatex@punct at french}
-%    \end{macrocode}
-%  \end{macro}
-%
 % \changes{v3.0b}{2014/02/13}{frenchb.lua was not found by
 %    Lua function dofile (not kpathsea aware).
 %    Call function kpse.find\_file first, as suggested by Paul Gaborit.}
@@ -2232,6 +2229,13 @@
 %    inserted at the end of the `kerning’ callback (no priority)
 %    instead of `hpack\_filter’ and `pre\_linebreak\_filter’.}
 %
+% \changes{v3.5o}{2022/11/03}{\cs{shorthandon} and \cs{shorthandoff}
+%    are no longer redefined in LuaTeX (it broke \cs{shorthandoff*}).}
+%
+%    As a language tag is part of glyph nodes in LuaTeX, no more
+%    switching has to be done in |\extrasfrench|, setting the dialect
+%    attribute has already be done (see above, p.~\pageref{extrapunct}).
+%
 %    The next  definition will be used to activate Lua punctuation: it
 %    loads \file{frenchb.lua} and adds function |french_punctuation|
 %    to the |kerning| callback; "adding" anything actually disables
@@ -2238,6 +2242,8 @@
 %    the built-in kerning for Type1 fonts (which is now added to
 %    |french_punctuation|).
 %    \begin{macrocode}
+%<*french>
+\ifFB at luatex@punct
   \def\activate at luatexpunct{%
     \directlua{%
       FR_fr = \the\l at french ; FR_ca = \the\l at acadian ;
@@ -2374,8 +2380,7 @@
 %  \begin{macro}{\FB at xetex@punct at french}
 %    The following command will be executed when entering French, it
 %    first saves the values to be modified, then fits them to our
-%    needs.  It also redefines |\shorthandoff| and |\shorthandon|
-%    (locally) to avoid error messages with XeTeX-based engines.
+%    needs.
 %
 % \changes{v2.5g}{2011/12/31}{XeTeXcharclass(es) for French quotes will
 %    be set to \cs{FB at guilo} and \cs{FB at guilf} by options
@@ -2401,25 +2406,14 @@
 % \changes{v3.2c}{2016/05/14}{Switch \cs{ifFB at spacing} added to all
 %    \cs{XeTeXinterchartoks} commands.}
 %
+%% \changes{v3.5o}{2022/11/03}{\cs{shorthandon} and \cs{shorthandoff}
+%    are no longer redefined (it broke \cs{shorthandoff*}).}
+%
 %    \begin{macrocode}
    \newcommand*{\FB at xetex@punct at french}{%
      \babel at savevariable{\XeTeXinterchartokenstate}%
-     \babel at save{\shorthandon}%
-     \babel at save{\shorthandoff}%
      \bbl at for\FB at char\FB at charlist
           {\FBsavevariable at loop{\XeTeXcharclass}{\FB at char}}%
-     \def\shorthandoff##1{%
-       \ifx\PackageWarning\@undefined
-         \fb at warning{\noexpand\shorthandoff{;:!?} is helpless with
-           XeTeX,\\ use \noexpand\NoAutoSpacing
-           *inside a group* instead.}%
-       \else
-         \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?}
-           is helpless with XeTeX,\MessageBreak
-           use \protect\NoAutoSpacing\space *inside a group*
-           instead;\MessageBreak reported}%
-       \fi}%
-      \def\shorthandon##1{}%
 %    \end{macrocode}
 %    Let’s now set the classes and interactions between classes.
 %    When false, the flag |\ifFB at spacing| switches off any interaction
@@ -5252,7 +5246,7 @@
       \addtolength{\partopsep}{\@tempdima}%
 }
 \def\listFB#1#2{\listORI{#1}{\FB at listVsettings #2}}
-\let\endlistFB\endlist
+\let\endlistFB\endlistORI
 %    \end{macrocode}
 %  \end{macro}
 %  \end{macro}
@@ -5570,6 +5564,9 @@
 %    |\relax|, it will be redefined later `AtBeginDocument’ by
 %    |\FBprocess at options| as |\update at frenchlists|,
 %    see p.~\pageref{FB at ufl}.
+%
+%    Lists’ layout changes at language switches only if
+%    |GlobalLayoutFrench=false|.
 %    \begin{macrocode}
 \def\FB at ufl{\relax}
 \def\bbl at frenchlistlayout{%
@@ -5603,8 +5600,9 @@
 % \changes{v3.5n}{2022/04/18}{\cs{bbl at frenchindent} changed.
 %    \cs{bbl at nonfrenchindent} removed.}
 %
-%    We will need to save the value of the flag |\if at afterindent|
-%    `AtBeginDocument’ before eventually changing its value.
+%    Indentation changes at language switches in only two cases:\\
+%    a) |GlobalLayoutFrench=false|,\\
+%    b) |IndentFirst=true| and French isn’t the main language.
 %
 %    \begin{macrocode}
 \def\bbl at frenchindent{%
@@ -6028,29 +6026,7 @@
 %    \end{macrocode}
 %
 % \Finale
-% \iffalse
-%<*!lua>
-% \fi
-%%
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-%%
-% \iffalse
-%</!lua>
-% \fi
+%
 \endinput
 
 %%% Local Variables:

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf	2022-11-12 20:53:09 UTC (rev 65000)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{acadian}
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o French support from the babel system]
 \PackageInfo{acadian.ldf}%
   {`acadian' dialect is currently\MessageBreak
    *absolutely identical* to the\MessageBreak
@@ -32,23 +32,6 @@
 \input french.ldf\relax
 \let\extrasacadian\extrasfrench
 \let\noextrasacadian\noextrasfrench
-%%
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-%%
 \endinput
 %%
 %% End of file `acadian.ldf'.

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf	2022-11-12 20:53:09 UTC (rev 65000)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{canadien}
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o 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
@@ -37,23 +37,6 @@
 \input french.ldf\relax
 \let\extrasacadian\extrasfrench
 \let\noextrasacadian\noextrasfrench
-%%
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-%%
 \endinput
 %%
 %% End of file `canadien.ldf'.

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf	2022-11-12 20:53:09 UTC (rev 65000)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{francais}
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o 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
@@ -32,23 +32,6 @@
 \chardef\l at francais\l at french
 \def\CurrentOption{french}
 \input french.ldf\relax
-%%
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-%%
 \endinput
 %%
 %% End of file `francais.ldf'.

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf	2022-11-12 20:53:09 UTC (rev 65000)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{french}
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o French support from the babel system]
 %%
 %%  Babel package for LaTeX version 2e
 %%  Copyright © 1996-2022
@@ -227,19 +227,14 @@
   }
 \fi
 \newif\ifFB at spacing \FB at spacingtrue
-\newcommand*{\FB at spacing@on}{%
-  \ifFB at luatex@punct
-    \FB at spacing=1 \relax
-  \else
-    \FB at spacingtrue
-  \fi}
-\newcommand*{\FB at spacing@off}{%
-  \ifFB at luatex@punct
-    \FB at spacing=0 \relax
-  \else
-    \FB at spacingfalse
-  \fi}
 \ifFB at luatex@punct
+  \newcommand*{\FB at spacing@on}{\FB at spacing=1 \relax}
+  \newcommand*{\FB at spacing@off}{\FB at spacing=0 \relax}
+\else
+  \newcommand*{\FB at spacing@on}{\FB at spacingtrue}
+  \newcommand*{\FB at spacing@off}{\FB at spacingfalse}
+\fi
+\ifFB at luatex@punct
   \ifdefined\newluafunction\else
     \input ltluatex.tex
   \fi
@@ -290,23 +285,6 @@
   }
 \fi
 \ifFB at luatex@punct
-  \newcommand*{\FB at luatex@punct at french}{%
-     \babel at save\shorthandon
-     \babel at save\shorthandoff
-     \def\shorthandoff##1{%
-        \ifx\PackageWarning\@undefined
-          \fb at warning{\noexpand\shorthandoff{;:!?} is helpless with
-           LuaTeX,\\ use \noexpand\NoAutoSpacing
-           *inside a group* instead.}%
-        \else
-          \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?}
-            is helpless with LuaTeX,\MessageBreak
-            use \protect\NoAutoSpacing \space *inside a group*
-            instead;\MessageBreak reported}%
-        \fi}%
-     \def\shorthandon##1{}%
-  }
-  \addto\extrasfrench{\FB at luatex@punct at french}
   \def\activate at luatexpunct{%
     \directlua{%
       FR_fr = \the\l at french ; FR_ca = \the\l at acadian ;
@@ -347,24 +325,11 @@
      \x}
    \def\FB at charlist{"21,"3A,"3B,"3F,"AB,"BB,"28,"5B,"A0,"202F,%
                     "29,"5D,"7B,"7D,"2C,"2D,"2E,"22,"25,"27,"60,"2019}
+%% \changes{v3.5o}{2022/11/03}{\cs{shorthandon} and \cs{shorthandoff}
    \newcommand*{\FB at xetex@punct at french}{%
      \babel at savevariable{\XeTeXinterchartokenstate}%
-     \babel at save{\shorthandon}%
-     \babel at save{\shorthandoff}%
      \bbl at for\FB at char\FB at charlist
           {\FBsavevariable at loop{\XeTeXcharclass}{\FB at char}}%
-     \def\shorthandoff##1{%
-       \ifx\PackageWarning\@undefined
-         \fb at warning{\noexpand\shorthandoff{;:!?} is helpless with
-           XeTeX,\\ use \noexpand\NoAutoSpacing
-           *inside a group* instead.}%
-       \else
-         \PackageWarning{french.ldf}{\protect\shorthandoff{;:!?}
-           is helpless with XeTeX,\MessageBreak
-           use \protect\NoAutoSpacing\space *inside a group*
-           instead;\MessageBreak reported}%
-       \fi}%
-      \def\shorthandon##1{}%
      \XeTeXinterchartokenstate=1
      \XeTeXcharclass `\: = \FB at punctthick
      \XeTeXinterchartoks \z@ \FB at punctthick = {%
@@ -1667,7 +1632,7 @@
       \addtolength{\partopsep}{\@tempdima}%
 }
 \def\listFB#1#2{\listORI{#1}{\FB at listVsettings #2}}
-\let\endlistFB\endlist
+\let\endlistFB\endlistORI
 \newcommand*{\FrenchLabelItem}{\textemdash}
 \newcommand*{\Frlabelitemi}{\FrenchLabelItem}
 \newcommand*{\Frlabelitemii}{\FrenchLabelItem}
@@ -1955,23 +1920,6 @@
 \FBclean at on@exit
 \ldf at finish\CurrentOption
 \let\loadlocalcfg\FB at llc
-%%
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-%%
 \endinput
 %%
 %% End of file `french.ldf'.

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf	2022-11-12 20:53:09 UTC (rev 65000)
@@ -24,7 +24,7 @@
 %% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
 %% 
 \ProvidesLanguage{frenchb}
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o French support from the babel system]
 \def\bbl at tempa{frenchb}
 \ifx\CurrentOption\bbl at tempa
   \chardef\l at frenchb\l at french
@@ -56,23 +56,6 @@
   \fi
 \fi
 \input french.ldf\relax
-%%
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-%%
 \endinput
 %%
 %% End of file `frenchb.ldf'.

Modified: trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua	2022-11-12 20:52:50 UTC (rev 64999)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua	2022-11-12 20:53:09 UTC (rev 65000)
@@ -1,6 +1,6 @@
 --[[
    File `frenchb.lua’ generated from frenchb.dtx
-         [2022/04/18 v3.5n French support from the babel system]
+         [2022/11/11 v3.5o French support from the babel system]
    Copyright © 2014-2022 Daniel Flipo
    <daniel (dot) flipo (at) free (dot) fr>
    License LPPL: see french.ldf.
@@ -248,9 +248,22 @@
              if next then
                 next_id = next.id
                 next_subtype = next.subtype
-                if next_id == GLYPH then
-                   next_char = next.char
-                elseif next_id == KERN then
+                if next_id == PENALTY then
+                   nextnext = next.next
+                   if nextnext and nextnext.id == GLUE then
+                      head = remove_node(head,nextnext,true)
+                      head = remove_node(head,next,true)
+                      next = item.next
+                      if next then
+                         next_id = next.id
+                         next_subtype = next.subtype
+                         if next_id == GLYPH then
+                            next_char = next.char
+                         end
+                     end
+                   end
+                end
+                if next_id == KERN then
                    kern_wd = next.kern
                    if kern_wd == 0 then
                       nextnext = next.next
@@ -258,12 +271,24 @@
                          next = nextnext
                          next_id = nextnext.id
                          next_subtype = nextnext.subtype
-                         if next_id == GLYPH then
-                            next_char = nextnext.char
+                         if next_id == PENALTY then
+                            nextnext = next.next
+                            if nextnext and nextnext.id == GLUE then
+                               head = remove_node(head,next,true)
+                               head = remove_node(head,nextnext,true)
+                               next = item.next
+                               if next then
+                                  next_id = next.id
+                                  next_subtype = next.subtype
+                               end
+                            end
                          end
                       end
                    end
                 end
+                if next_id == GLYPH then
+                   next_char = next.char
+                end
              end
              local is_glue = next_id == GLUE
              if is_glue then



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