texlive[69204] Master: babel-french (23dec23)
commits+karl at tug.org
commits+karl at tug.org
Sat Dec 23 22:44:13 CET 2023
Revision: 69204
https://tug.org/svn/texlive?view=revision&revision=69204
Author: karl
Date: 2023-12-23 22:44:13 +0100 (Sat, 23 Dec 2023)
Log Message:
-----------
babel-french (23dec23)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/generic/babel-french/README.md
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
trunk/Master/tlpkg/libexec/ctan2tds
Removed Paths:
-------------
trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins
Modified: trunk/Master/texmf-dist/doc/generic/babel-french/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/babel-french/README.md 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/doc/generic/babel-french/README.md 2023-12-23 21:44:13 UTC (rev 69204)
@@ -14,7 +14,6 @@
The bundle consists of the following files:
-* frenchb.ins: installation file to unpack the language definition files,
* frenchb.dtx: packed language definition files and documentation,
* frenchb.pdf: unpacked documentation for babel-french,
* frenchb-doc.pdf: comprehensive documentation in French,
@@ -32,7 +31,7 @@
If the latest version of this package is not included in your LaTeX
distribution, do the following:
-* issue "luatex frenchb.ins" to unpack the language definition files;
+* issue "luatex frenchb.dtx" to unpack the language definition files;
* copy the files frenchb.lua, french.ldf, frenchb.ldf, francais.ldf,
acadian.ldf and canadien.ldf to a location where TeX can find them
(default location: $TEXMF/tex/generic/babel-french/);
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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/doc/generic/babel-french/frenchb-doc.tex 2023-12-23 21:44:13 UTC (rev 69204)
@@ -1,5 +1,4 @@
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfstandard=A-2b, lang=fr-FR}
+\DocumentMetadata{pdfstandard=A-2b, lang=fr-FR}
\documentclass[a4paper,12pt,german,english,french]{article}
% LuaTeX ONLY!
@@ -28,7 +27,7 @@
%%% *** APRÈS fontspec ***
\usepackage{babel}
-\frenchbsetup{og=«, fg=», AutoSpacePunctuation=false}
+\frenchbsetup{og=«, fg=»}
\frenchbsetup{ListItemsAsPar}
\usepackage{microtype}
@@ -121,7 +120,7 @@
\title{Mode d’emploi du module \ext{babel-french}}
\author{\href{mailto:daniel.flipo at free.fr}{Daniel \textsc{Flipo}}}
-\newcommand*{\latestversion}{3.5q}
+\newcommand*{\latestversion}{3.5r}
\date{Version {\latestversion} -- \today}
\begin{document}
@@ -158,8 +157,6 @@
\vspace{-\baselineskip}\noindent
\descindentFB=0pt
\begin{description}
- \item[30 janvier 2017] Le comportement par défaut de la commande
- |\frquote{}| sous LuaTeX est modifié, voir p.~\pageref{frquote}.
\item[30 avril 2017] Utiliser |\frenchsetup{}| de préférence à
|\frenchbsetup{}|, voir p.~\pageref{sec:Perso}.
Personnalisation de la commande |\part{}|, voir p.~\pageref{ssec:captions}.
@@ -184,6 +181,8 @@
voir p.~\pageref{decimalmathcomma}.
\item[8 mars 2023] Correction de bug dans les listes,
voir p.~\pageref{par-in-lists}.
+ \item[19 déc. 2023] \ext{babel-french} est maintenant compatible
+ avec \pkg{ucharclasses} (XeLaTeX). \file{frenchb.ins} supprimée.
\end{description}
\end{abstract}
\egroup
@@ -268,9 +267,9 @@
commandes\\
|\usepackage[T1]{fontenc}|\\
|\usepackage{lmodern}|\\
- 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.\\
+ rapellons que 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).
@@ -391,9 +390,9 @@
ajoutée en français ; lorsque l’ajout échoue, un message est affiché dans le
fichier \file{.log}.
- Certaines classes ou extensions modifient la présentation des légendes;
- parmi elles, les classes (\cls{memoir}, \cls{beamer}, koma-script et AMS
- et les extensions(\ext{caption} et \ext{floatrow} sont compatibles avec
+ Certaines classes ou extensions modifient la présentation des légendes ;
+ parmi elles, les classes \cls{memoir}, \cls{beamer}, koma-script et AMS
+ et les extensions \ext{caption} et \ext{floatrow} sont compatibles avec
\ext{babel-french}.
Un avertissement est inséré dans le fichier \file{.log} lorsqu’il y a risque
@@ -405,7 +404,6 @@
En ce qui concerne les conventions typographiques locales (variables avec la
langue) la commande |\selectlanguage{french}|
produit les effets suivants :
-\enlargethispage*{\baselineskip}
\begin{itemize}
\item Les motifs de césures françaises sont activés.
@@ -421,14 +419,6 @@
qui disposent d’un mécanisme permettant d’accéder aux mêmes fonctionnalités
sans recours aux caractères actifs.
-\item la définition de |\dots| est modifiée pour
- supprimer l’espace qui suit (cet espace est gênant devant une
- parenthèse par exemple\dots)%
- \footnote{Certains auteurs préfèrent en français «...» (codé \code{...}
- sans espace) à «\dots» (codé \cs{dots}). Le mieux est d’utiliser
- directement le caractère … dans le texte source dès lors que celui-ci est
- codé en utf-8.}.
-
\item La commande |\today| retourne la date en français.
\item Les titres («caption names» en anglais) sont traduits en
@@ -436,8 +426,24 @@
« Chapitre » au lieu de « Chapter ». Voir section~\ref{ssec:captions}
p.~\pageref{ssec:captions} comment modifier ces intitulés.
+\item La définition de |\dots| est modifiée%
+\footnote{en mode texte seulement, en fait c’est \cs{textellipsis} qui est
+ modifiée.}, \emph{uniquement} avec les moteurs 8-bits (pdftex), afin de
+ supprimer l’espace qui suit, espace gênant devant une parenthèse par exemple.
+ Ceci dit, la commande |\dots| \emph{ne devrait plus être utilisée}
+ dès lors que le texte source est codé en utf-8 :
+ il est plus facile de saisir |…|%
+\footnote{Il s’agit du glyphe \texttt{…} obtenu par exemple grâce à une touche
+ \texttt{Compose}, \emph{pas} de \texttt{...} (trois points consécutifs).}
+ que |\dots|, le texte source est plus lisible et on évite les
+ problèmes d’avalement des espaces après une commande.
+ Avec les moteurs Unicode (xetex, luatex), la commande |\dots| standard
+ utilise le glyphe de la police de sortie sans ajout d’espace,
+ \ext{babel-french} ne la redéfinit donc pas.
+
\end{itemize}
+\vspace{\parskip}
La commande |\selectlanguage{english}| ramène
au comportement standard de LaTeX (typographie américaine).
@@ -473,6 +479,7 @@
Pour les citations imbriquées, plusieurs présentations sont proposées selon
les options choisies :
+ \enlargethispage*{\baselineskip}
\begin{itemize}
\item Les citations internes sont balisées par des guillemets anglais
``comme ceci’’ (recommandation de Aurel Ramat) sauf si
@@ -493,10 +500,9 @@
ce faire, il suffit de coder la citation interne avec |\frquote*{}| au lieu
de |\frquote{}|.
-\pagebreak
Exemple de citation imbriquée :
-\vspace{0.5\baselineskip}
+\vspace{\parskip}
\begin{minipage}[t]{.47\textwidth}
\hspace*{\fill}%
\fbox{\begin{minipage}[t]{.95\textwidth}
@@ -532,7 +538,7 @@
\hspace*{\fill}LuaLaTeX + \fbo{EveryLineGuill=open}\hspace*{\fill}%
\end{minipage}
-\vspace{0.5\baselineskip}
+\vspace{\parskip}
Le codage est le suivant :
{\ttfamily\ColorVerb Xavier raconte… |\frquote{|Au moment… l’hôtesse m’a
dit tout bonnement : |\frquote*{|Je suis désolée, … en anglais.|}}|}
@@ -621,7 +627,6 @@
coupure sur les espaces mais d’autoriser éventuellement celle du mois
(jan-vier, dé-cembre, …) qui est interdite par défaut.
-\enlargethispage{\baselineskip}
\item En mode mathématique, la virgule est toujours suivie d’une espace car
elle est traitée comme un signe de ponctuation et non comme une virgule
décimale%
@@ -638,9 +643,9 @@
corps du document \emph{en mode texte} et dans une partie \emph{en français},
son effet survit à un changement de langue (passage en anglais et retour en
français par exemple), sauf bien sûr si elle est placée dans un groupe.
-
Une solution alternative consiste à utiliser l’extension \ext{icomma}.
+\vspace{\parskip}
\item La commande |\nombre|, destinée à formater
automatiquement les nombres entiers ou décimaux par tranches de
trois chiffres séparées par des espaces en français et par des
@@ -656,15 +661,20 @@
\end{itemize}
+\vspace{\parskip}
En ajoutant |\usepackage{xspace}| dans le préambule, les espaces suivant
les commandes
|\ier|,…, |\ieres|,
|\ieme|, |\iemes|,
-|\fg| et |\dots| sont
-respectés sans avoir à les forcer par des |{}| ou
-des~\code{\boi\textvisiblespace}. Noter cependant que l’auteur de \pkg{xspace}
-ne recommande plus vraiment son utilisation, aussi peut-on préférer
-\emph{ne pas charger} \pkg{xspace} et gérer les espaces soi-même :
+|\fg| et |\dots| sont respectés sans avoir à les forcer par des |{}| ou
+des~\code{\boi\textvisiblespace}. Le recours à l’extension \pkg{xspace} est
+cependant une \emph{fausse simplification} car \emph{certaines} commandes sont
+affectées mais \emph{pas toutes}. Un exemple extrême est fourni par la
+commande |\dots| : lorsqu’elle est redéfinie par \pkg{babel-french} (moteurs
+8-bits et en français seulement) on peut omettre la paire d’accolades, mais
+celle-ci est indispensable dans une partie en anglais par exemple ou avec les
+moteurs Unicode (|\dots| garde sa définition standard)… Il me paraît plus simple
+d’éviter le recours à \pkg{xspace} et de gérer les espaces soi-même :
« |les 1\ier, 2 et 3~mai| » ou « |le 1\ier~mai| » (espace insécable).
\section{Personnalisation}
@@ -1079,7 +1089,7 @@
\begin{description}
-\item [SmallCapsFigTabcaptions=false (true*)]; si cette option est mise
+\item [SmallCapsFigTabCaptions=false (true*)]; si cette option est mise
à \fbo{false}, le recours aux petites capitales dans les intitulés des
légendes de figures et tables est supprimé, on obtient « Figure » et
« Table » au lieu de « \textsc{Figure} » et « \textsc{Table} ».
@@ -1086,7 +1096,7 @@
Noter que le même résultat peut être obtenu en définissant |\FBfigtabshape|
comme |\relax| avant le chargement de \ext{babel}.\hlabel{scfigtab}
-\item [CustomiseFigTabcaptions=false (true*)] ; si cette option est mise
+\item [CustomiseFigTabCaptions=false (true*)] ; si cette option est mise
à \fbo{false}, le séparateur défini par |\CaptionSeparator| est remplacé par
le séparateur par défaut (deux-points) dans les légendes des figures et des
tables, ceci pour toutes les langues. En français, \ext{babel-french} ajoute
@@ -1093,12 +1103,12 @@
si possible une espace insécable adéquate devant le deux-points ou affiche
un message dans le fichier \file{.log}.
-\item [OldFigTabcaptions=true (false)] peut être utilisée pour retrouver
+\item [OldFigTabCaptions=true (false)] peut être utilisée pour retrouver
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} et rend inopérante l’option
- \fbo{CustomiseFigTabcaptions}.
+ \fbo{CustomiseFigTabCaptions}.
\end{description}
@@ -1271,7 +1281,7 @@
gauche au lieu d’être décalées vers la droite.
% Illustration de \parindent et \listindentFB
-\vspace{.5\baselineskip}
+\vspace{\parskip}
\begin{minipage}[t]{.45\textwidth}
\fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright
\FBListItemsAsParfalse \parindent=0pt \listindentFB=1.5em
@@ -1372,7 +1382,7 @@
|\setlength{\descindentFB}{0pt}|.
% Illustration de \parindent et \descindentFB
-\vspace{.5\baselineskip}
+\vspace{\parskip}
\begin{minipage}[t]{.45\textwidth}
\fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright
\FBListItemsAsParfalse
@@ -1430,7 +1440,7 @@
\ref{sec:Perso} (listes \env{description}).
% Illustration de l’option \fbo{ListItemsAsPar}
-\vspace{.5\baselineskip}
+\vspace{\parskip}
\begin{minipage}[t]{.45\textwidth}
\fbox{\begin{minipage}[t]{0.9\textwidth}\raggedright
\FBListItemsAsParfalse \parindent=1.5em \listindentFB=1.5em
@@ -1580,13 +1590,19 @@
détails.
\vspace{\parskip}
-La version 3.5q corrige un bug concernant les listes signalé par Denis Bitouzé :
-les alinéas inclus dans une liste n’étaient pas distinguables. Dorénavant
-|\listparindent| est défini comme |\parindent| et si|\parskip > 0|, |\parsep|
-est défini comme |\parskip|. Il est possible de revenir à l’ancienne
-présentation en ajoutant \emph{dans l’environnement de liste} les commandes
-|\parskip=0pt| et |\parindent=0pt|.\hlabel{par-in-lists}
+La version 3.5q corrige un bug concernant les listes signalé par Denis
+Bitouzé : les alinéas inclus dans une liste n’étaient pas distinguables.
+Dorénavant |\listparindent| est défini comme |\parindent| et si|\parskip > 0|,
+|\parsep| est défini comme |\parskip|. Il est possible de revenir
+à l’ancienne présentation en ajoutant \emph{dans l’environnement de liste}
+les commandes |\parskip=0pt| et |\parindent=0pt|.\hlabel{par-in-lists}
+\vspace{\parskip}
+La version 3.5r est compatible avec \pkg{ucharclasses.sty} qui est maintenant
+chargé avec l’extension \pkg{fontsetup} lorsque le moteur XeTeX est utilisé.
+D’autre part le fichier \file{frenchb.ins} n’est plus nécessaire pour extraire
+les fichiers \file{*.ldf} de \file{frenchb.dtx} (voir~\file{README.md}).
+
\subsection{Changements entre les versions 3.4d et 3.3d}
\label{ssec:changes-3.4}
@@ -2005,7 +2021,7 @@
document en français ;
\item \biblatex{}, associé à \biber{}, permet le traitement des fichiers
- ~\file{.bib} codés en UTF-8 ce qui facilite grandement la coexistence
+ ~\file{.bib} codés en utf-8 ce qui facilite grandement la coexistence
de références à des ouvrages en français, en russe et en grec par exemple ;
\item \biblatex{} possède des options qui remplacent de nombreuses extensions
@@ -2042,7 +2058,7 @@
meilleur rendu typographique.
Les points de suspensions sont saisis |...| avec
-\ext{e-french} et |\dots| avec \ext{babel-french}.
+\ext{e-french} et |…| (ou |\dots|) avec \ext{babel-french}.
Les commandes suivantes peuvent être ajoutées au préambule pour
émuler certaines commandes de \ext{e-french} :
@@ -2062,7 +2078,7 @@
\file{french2b} opère une adaptation \emph{partielle} d’un fichier conçu pour
\ext{e-french} facilitant sa compilation avec \ext{babel-french}. L’appel
à \ext{e-french} est remplacé en un appel à \ext{babel-french}, les guillemets
-|<<| et |>>| sont convertis en |\og| et |\fg| et les |...| en |\dots|, enfin
+|<<| et |>>| sont convertis en |\og| et |\fg| et les |...| en |…|, enfin
quelques commandes spécifiques à \ext{e-french} sont ajoutées dans le
préambule.
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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.dtx 2023-12-23 21:44:13 UTC (rev 69204)
@@ -1,6 +1,72 @@
-%\iffalse
-% Tell the LaTeX system who we are and write an entry on the
-% transcript.
+% \iffalse meta-comment
+%
+% Copyright © 1996-2023 Daniel Flipo.
+%
+% This program can be distributed and/or modified under the terms
+% of the LaTeX Project Public License either version 1.3c of this
+% license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% Please report errors to: daniel (dot) flipo (at) free (dot) fr
+%
+%<*batch>
+%<*gobble>
+\ifx\jobname\relax\let\documentclass\undefined\fi
+\ifx\documentclass\undefined
+\csname fi\endcsname
+%</gobble>
+\input docstrip.tex
+\keepsilent
+\let\MetaPrefix\relax
+\preamble
+This is a generated file part of the babel-french bundle
+to be used with the Babel system.
+-------------------------------------------------------------
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2003/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is Daniel Flipo.
+
+Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
+
+\endpreamble
+\postamble
+\endpostamble
+\let\MetaPrefix\DoubleperCent
+\askforoverwritefalse
+\generate{\file{french.ldf}{\from{frenchb.dtx}{french}}
+ \file{acadian.ldf}{\from{frenchb.dtx}{acadian}}
+ \file{canadien.ldf}{\from{frenchb.dtx}{canadien}}
+ \file{frenchb.ldf}{\from{frenchb.dtx}{frenchb}}
+ \file{francais.ldf}{\from{frenchb.dtx}{francais}}
+ }
+\def\MetaPrefix{-- }
+\def\luapostamble{\MetaPrefix\space End of File frenchb.lua.}
+\usepostamble\luapostamble
+\nopreamble
+\generate{\file{frenchb.lua}{\from{frenchb.dtx}{lua}}
+ }
+\endbatchfile
+%</batch>
+%<*gobble>
+\fi
+\expandafter\ifx\csname @currname\endcsname\empty
+\csname fi\endcsname
+%</gobble>
+%
%<*dtx>
\ProvidesFile{frenchb.dtx}
%</dtx>
@@ -11,26 +77,16 @@
%<frenchb>\ProvidesLanguage{frenchb}
%<lua>--[[
%<lua> File `frenchb.lua’ generated from frenchb.dtx
- [2023/03/08 v3.5q French support from the babel system]
-%<*internal>
-\iffalse
-%</internal>
-%<*lua>
- Copyright © 2014-2022 Daniel Flipo
- <daniel (dot) flipo (at) free (dot) fr>
- License LPPL: see french.ldf.
---]]
-%</lua>
-%<*internal>
-\fi
-%</internal>
-%<*dtx>
-%% File `frenchb.dtx’
-%</dtx>
+ [2023-12-19 v3.5r French support from the babel system]
+%<lua> Copyright © 2014-2023 Daniel Flipo
+%<lua> <daniel (dot) flipo (at) free (dot) fr>
+%<lua> License LPPL: see french.ldf.
+%<lua>--]]
+%
%<*dtx|french>
%%
%% Babel package for LaTeX version 2e
-%% Copyright © 1996-2022
+%% Copyright © 1996-2023
%% by Daniel Flipo <daniel (dot) flipo (at) free (dot) fr>
%%
%</dtx|french>
@@ -39,7 +95,8 @@
%% code for the French language definition file.
%%
%</dtx>
-%<*filedriver>
+%
+%<*driver>
\DocumentMetadata{pdfstandard=A-2b, lang=en-US}
\documentclass[a4paper]{ltxdoc}
\usepackage[left=38mm,right=38mm,top=30mm,bottom=50mm]{geometry}
@@ -88,6 +145,7 @@
minus.8\fontdimen4\font}
\hyphenation{Lua-TeX Lua-LaTeX Xe-LaTeX}
\lefthyphenmin=2 \righthyphenmin=3
+\setlength{\parindent}{0pt}
\RecordChanges
\AtEndDocument{%
\clearpage
@@ -98,7 +156,6 @@
\PrintChanges
}
\begin{document}
-\setlength{\parindent}{0pt}
\GetFileInfo{frenchb.dtx}
\begin{center}
\textbf{\Large A Babel language definition file for French}\\[2mm]^^A\]
@@ -112,8 +169,11 @@
\clearpage
\DocInput{frenchb.dtx}
\end{document}
-%</filedriver>
-%\fi
+%</driver>
+%<*gobble>
+\fi
+%</gobble>
+% \fi
%
% \section{The French language}
%
@@ -137,7 +197,7 @@
% Thanks to all of them!
%
% LaTeX-2.09 is no longer supported.
-% This new version (3.x) has been designed to be used only with
+% Version 3.0 has been designed to be used only with
% LaTeX2e and Plain formats based on TeX, pdfTeX, LuaTeX or XeTeX
% engines.
%
@@ -834,6 +894,11 @@
% can be recovered by adding |\parskip=0pt|, |\parindent=0pt|
% \emph{inside} the list environment.
%
+% Version 3.5r is compatible with \pkg{ucharclasses} which is now
+% loaded by \pkg{fontsetup} with the XeTeX engine.
+% The \file{frenchb.ins} file is no longer needed to extract the
+% \file{.ldf} files from \file{frenchb.dtx} (see~\file{README.md}).
+%
% \subsubsection*{What’s new in version 3.4?}
%
% Version 3.4a adds a new command |\frenchdate| (see
@@ -1132,7 +1197,7 @@
%\changes{v2.1d}{2008/05/04}{Avoid warning `\cs{end} occurred
% when \cs{ifx} ... incomplete’ with LaTeX-2.09.}
%
-% \begin{macro}{\ifLaTeXe}
+% \begin{macro}{\ifLaTeXe}
% No support is provided for late LaTeX-2.09: issue a warning
% and exit if LaTeX-2.09 is in use. Plain is still supported.
% \begin{macrocode}
@@ -1152,11 +1217,11 @@
\fi
\bbl at tempa
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-%\begin{macro}{\ifFBunicode}
-% \begin{macro}{\ifFBLuaTeX}
-% \begin{macro}{\ifFBXeTeX}
+% \begin{macro}{\ifFBunicode}
+% \begin{macro}{\ifFBLuaTeX}
+% \begin{macro}{\ifFBXeTeX}
% French hyphenation patterns are now coded in Unicode, see file
% \file{hyph-fr.tex}. XeTeX and LuaTeX engines require some extra
% code to deal with the French ``apostrophe’’.
@@ -1200,7 +1265,7 @@
% \changes{v3.3b}{2017/07/08}{New `if’ \cs{ifFBfrench} to replace
% \cs{iflanguage} test which is based on patterns.}
%
-% \begin{macro}{\ifFBfrench}
+% \begin{macro}{\ifFBfrench}
% True when the current language is French or any of its dialects;
% will be set to true by |\extrasfrench| and to false by
% |\noextrasfrench|. Used in |\DecimalMathComma| and
@@ -1277,15 +1342,15 @@
% \changes{v3.0a}{2014/01/10}{New flag \cs{ifFB at luatex@punct} for
% `high punctuation’ management with LuaTeX engines.}
%
-% \begin{macro}{\ifFB at active@punct}
+% \begin{macro}{\ifFB at active@punct}
% Three internal flags are needed for the three different techniques
% used for `high punctuation’ management.
% \begin{macrocode}
\newif\ifFB at active@punct \FB at active@puncttrue
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\ifFB at luatex@punct}
+% \begin{macro}{\ifFB at luatex@punct}
% With LuaTeX, starting with version 1.0.4, callbacks are used to
% get rid of active punctuation. With previous versions, `high
% punctuation’ characters remain active (see below).
@@ -1309,9 +1374,9 @@
\fi
\fi
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\ifFB at xetex@punct}
+% \begin{macro}{\ifFB at xetex@punct}
% For XeTeX, the availability of |\XeTeXinterchartokenstate|
% decides whether the `high punctuation’ characters (|;| |!| |?|
% and |:|) have to be made |\active| or not.
@@ -1322,24 +1387,26 @@
%
% The number of available character classes has been increased from
% 256 to 4096 in XeTeX v.~0.99994, the class for non-characters is
-% now 4095 instead of 255.
+% now 0xFFF=4095 (formerly 0xFF=255). The class for standard
+% characters is 0.
% \begin{macrocode}
-\newcount\FB at nonchar
+\newcount\FB at stdchar
\newif\ifFB at xetex@punct
\ifdefined\XeTeXinterchartokenstate
\FB at xetex@puncttrue\FB at active@punctfalse
- \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
- \FB at nonchar=255 \relax
+ \ifdim\the\XeTeXversion\XeTeXrevision\p@ < 0.99994\p@
+ \chardef\FB at nonchar="FF \relax
\else
- \FB at nonchar=4095 \relax
+ \chardef\FB at nonchar="FFF \relax
\fi
+ \FB at stdchar=\z@
\fi
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\FBguillspace}
-% \begin{macro}{\FBcolonspace}
-% \begin{macro}{\FBthinspace}
+% \begin{macro}{\FBguillspace}
+% \begin{macro}{\FBcolonspace}
+% \begin{macro}{\FBthinspace}
% \changes{v2.5a}{2010/08/10}{Define \cs{FBthinspace} for those who want
% to customise the width of the space before ; and co.}
%
@@ -1380,9 +1447,9 @@
\newcommand*{\FBcolonspace}{\space}
\newcommand*{\FBthinspace}{\hskip .5\fontdimen2\font \relax}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v3.3a}{2016/04/30}{Skip \cs{FBguillskip} for LuaTeX
% replaced by toks \cs{FBguillsp}.}
@@ -1393,7 +1460,7 @@
% \changes{v3.4a}{2018/01/26}{New command \cs{FBsetspaces} to fine tune
% spacing independently in French and in French dialects.}
%
-% \begin{macro}{\FBsetspaces}
+% \begin{macro}{\FBsetspaces}
% This command makes it easy to fine tune |\FBguillspace|,
% |\FBcolonspace| and |\FBthinspace| in French (defaut) or
% independently in a French dialect using the optional argument.
@@ -1443,7 +1510,7 @@
\@onlypreamble\FBsetspaces
\fi
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% Remember that the \emph{same} |\extrasfrench| command is executed
% when switching to French or to a French dialect (Acadian).
@@ -2283,18 +2350,28 @@
% quotes is required by options \fbo{og=«} and \fbo{fg=»} in
% \fbsetup{} (see section~\ref{ssec-keyval}).
%
-% The default value for |\XeTeXcharclass| is 0 for characters tokens
-% and |\FB at nonchar| for all other tokens (glues, kerns, math and box
-% boundaries, etc.).
-% These defaults should not be changed otherwise the spacing before
-% the `high punctuation’ characters and inside quotes might not be
-% correct.
+% Unless \pkg{ucharclass} is loaded, the default value for
+% |\XeTeXcharclass| is 0 for characters tokens and |\FB at nonchar| for
+% all other tokens (glues, kerns, math and box boundaries, etc.).
+% \pkg{ucharclass} defines a XeTeX class for every range of Unicode
+% characters in order to facilitate font switching. Most French
+% characters belong to range ["20, "7F] (class |\BasicLatinClass|)
+% some (accented chars, diacritics,…) to range ["80, "FF] (class
+% |\LatinSupplementClass|) and three (œ, Œ, and the long-s) to
+% ["100, "17F] (class |\LatinExtendedAClass|).
%
+% We check AtBeginDocument whether \pkg{ucharclass} is loaded; if so,
+% when switching to French, the class |\FB at stdchar| of all characters
+% possibly used in French (except punctuation) will be forced to
+% |\BasicLatinClass| which is the default for most of them, the class
+% of the others (accented chars, ligatures, diacritics, etc.) will
+% be saved and changed locally in French, then restored to their
+% original value when leaving French.
+%
% We switch |\XeTeXinterchartokenstate| to 1 and change the
% |\XeTeXcharclass| values of |;| |!| |?| |:| |(| |]|
-% \texttt{«} and \texttt{»} when
-% entering French. Special care is taken to restore them to their
-% inital values when leaving French.
+% \texttt{«} and \texttt{»} when entering French.
+% Their inital values will be restored when leaving French.
%
% \changes{v2.5d}{2011/01/19}{Moved the \cs{newcount} command outside
% \cs{ifFB at xetex@punct} ... \cs{fi} (it broke Plain formats).}
@@ -2303,28 +2380,24 @@
% instead of \cs{@for} borrowed from file ltcntrl.dtx
% (\cs{@for} is undefined in Plain).}
%
+% \changes{v3.5r}{2023/12/19}{Compatibility with \pkg{ucharclasses}
+% package added.}
+%
% The following part holds specific code for punctuation with XeTeX
% engines.
%
% \begin{macrocode}
\ifFB at xetex@punct
- \ifLaTeXe
+ \ifLaTeXe
\PackageInfo{french.ldf}{No need for active punctuation
characters\MessageBreak with this
version of XeTeX!\MessageBreak reported}
- \else
+ \else
\fb at info{No need for active punctuation characters\\
with this version of XeTeX!}
- \fi
+ \fi
% \end{macrocode}
%
-% \changes{v2.5i}{2012/04/20}{Temporary fix: as long as
-% \file{xeCJK.sty} will not use \cs{newXeTeXintercharclass} to
-% allocate its classes, we will have to define 3 fake classes.}
-%
-% \changes{v2.5j}{2012/05/08}{Previous fix removed: bug fixed in
-% \file{xeCJK.sty} version 3.0.4 (06-May-2012).}
-%
% \changes{v2.6g}{2013/12/09}{U+00A0 (Unicode nobreakspace) and U+202F
% (Unicode nobreakthinspace) added to class \cs{FB at punctnul}
% to prevent frenchb from adding it’s own space before `high
@@ -2358,32 +2431,42 @@
\def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}%
\x}
% \end{macrocode}
-% |\FB at charlist| holds the all list of characters which have their
-% |\XeTeXcharclass| value modified in French: the first set includes
+% |\FB at charlistsave| holds the all list of characters which have their
+% |\XeTeXcharclass| value modified in French: it always includes
% high punctuation, French quotes, opening delimiters and no-break
-% spaces \\[5pt]
-% \begin{tabular}{*{10}{|c}|}\hline
-% "21 &"3A &"3B &"3F &"AB &"BB &"28 &"5B &"A0 &"202F
-% \\ \hline
-% \char"21 &\char"3A &\char"3B &\char"3F & « & »
-% &\char"28 &\char"5B & & \\ \hline
-% \end{tabular}\\[5pt]
-% the second one holds those which need resetting in French when
-% \file{xeCJK.sty} is in use\\[5pt]
-% \begin{tabular}{*{12}{|c}|}\hline
-% "29 &"5D &"7B &"7D &"2C &"2D &"2E &"22 &"25 &"27 &"60 &"2019
-% \\ \hline
-% \char"29 &\char"5D &\char"7B &\char"7D &\char"2C &\char"2D
-% &\char"2E &\char"22 &\char"25 &\textquotesingle &\char"60
-% &\char"27 \\ \hline
-% \end{tabular}
+% spaces. If \pkg{ucharclasses} is loaded, non-\textsc{ascii}
+% characters used in French have to be added; as \pkg{xeCJK}
+% changes the class of some characters used in French, these have to
+% be saved too if \pkg{xeCJK} is loaded.
%
% \begin{macrocode}
- \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}
+ \def\FB at charlist{"21,"3A,"3B,"3F,"AB,"BB,"28,"5B,"A0,"202F}
+ \def\FB at charlistUCC{}
+ \def\FB at charlistxeCJK{}
+ \edef\FB at charlistsave{\FB at charlist}
+ \ifLaTeXe
+ \AtBeginDocument{%
+ \@ifpackageloaded{ucharclasses}%
+ {\ifdefined\BasicLatinClass
+ \RenewCommandCopy{\FB at stdchar}{\BasicLatinClass}%
+ \def\FB at charlistUCC{"C0,"C2,"C6,"C7,"C8,"C9,"CA,"CB,"CE,"CF,%
+ "D4,"D6,"D9,"DB,"DC,"E0,"E2,"E6,"E7,"E8,"E9,"EA,"EB,"EE,%
+ "EF,"F4,"F6,"F9,"FB,"FC,"152,"153,"17F,"2019}%
+ \addto\FB at charlist{,\FB at charlistUCC}%
+ \edef\FB at charlistsave{\FB at charlist}%
+ \fi
+ }{}%
+ \@ifpackageloaded{xeCJK}%
+ {\def\FB at charlistxeCJK{%
+ "29,"5D,"7B,"7D,"2C,"2D,"2E,"22,"25,"27,"60,"2019}%
+ \addto\FB at charlist{,\FB at charlistxeCJK}%
+ \edef\FB at charlistsave{\FB at charlist}%
+ }{}%
+ }
+ \fi
% \end{macrocode}
%
-% \begin{macro}{\FB at xetex@punct at french}
+% \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.
@@ -2397,8 +2480,7 @@
% \cs{XeTeXcharclass} of ASCII chars `-’ `,’ `.’ `)’ `]’ `\}’
% `\{’ `\%’ opening and closing single and double quotes.
% We set their class to 0 in French and reset their class
-% to their original value when leaving French. See
-% \cs{FB at xetex@punct at nonfrench} below.}
+% to their original value when leaving French.}
%
% \changes{v3.1k}{2015/12/05}{Thin glues (less than 1sp) should not
% trigger space insertion before high ponctuation. Add a check on
@@ -2412,16 +2494,39 @@
% \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}
+% \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}%
- \bbl at for\FB at char\FB at charlist
+ \bbl at for\FB at char\FB at charlistsave
{\FBsavevariable at loop{\XeTeXcharclass}{\FB at char}}%
% \end{macrocode}
-% Let’s now set the classes and interactions between classes.
+% If \pkg{ucharclasses} is loaded, force non-\textsc{ascii} used
+% in French to class |\FB at stdchar| (=|\BasicLatinClass|).
+% \begin{macrocode}
+ \ifx\FB at charlistUCC\@empty\else
+ \bbl at for\FB at char\FB at charlistUCC
+ {\XeTeXcharclass \FB at char \FB at stdchar}%
+ \fi
+% \end{macrocode}
+% These characters have their class changed by \file{xeCJK.sty},
+% let’s reset their class in French.
+% \begin{macrocode}
+ \ifx\FB at charlistxeCJK\@empty\else
+ \bbl at for\FB at char\FB at charlistxeCJK
+ {\XeTeXcharclass\FB at char=\FB at stdchar}%
+ \fi
+% \end{macrocode}
+% This will avoid spurious spaces in (!), [?] and with Unicode
+% non-breaking spaces (U+00A0, U+202F):
+% \begin{macrocode}
+ \bbl at for\FB at char {`\[,`\(,"A0,"202F}%
+ {\XeTeXcharclass\FB at char=\FB at punctnul}%
+% \end{macrocode}
+% Let’s now define specific classes for punctuation and interactions
+% between classes.
% When false, the flag |\ifFB at spacing| switches off any interaction
% between classes (this flag is controlled by user-level command
% |\NoAutoSpacing|; this flag is also set to false when the current
@@ -2429,7 +2534,7 @@
% \begin{macrocode}
\XeTeXinterchartokenstate=\@ne
\XeTeXcharclass `\: = \FB at punctthick
- \XeTeXinterchartoks \z@ \FB at punctthick = {%
+ \XeTeXinterchartoks \FB at stdchar \FB at punctthick = {%
\ifFB at spacing\ifhmode\FDP at colonspace\fi\fi}%
\XeTeXinterchartoks \FB at guilf \FB at punctthick = {%
\ifFB at spacing\FDP at colonspace\fi}%
@@ -2452,10 +2557,9 @@
\fi
\fi
\fi}%
- \bbl at for\FB at char
- {`\;,`\!,`\?}%
+ \bbl at for\FB at char {`\;,`\!,`\?}%
{\XeTeXcharclass\FB at char=\FB at punctthin}%
- \XeTeXinterchartoks \z@ \FB at punctthin = {%
+ \XeTeXinterchartoks \FB at stdchar \FB at punctthin = {%
\ifFB at spacing\ifhmode\FDP at thinspace\fi\fi}%
\XeTeXinterchartoks \FB at guilf \FB at punctthin = {%
\ifFB at spacing\FDP at thinspace\fi}%
@@ -2469,34 +2573,20 @@
\fi
\fi
\fi}%
- \XeTeXinterchartoks \FB at guilo \z@ = {%
+ \XeTeXinterchartoks \FB at guilo \FB at stdchar = {%
\ifFB at spacing\FB at guillspace\fi}%
\XeTeXinterchartoks \FB at guilo \FB at nonchar = {%
\ifFB at spacing\FB at guillspace\ignorespaces\fi}%
- \XeTeXinterchartoks \z@ \FB at guilf = {%
+ \XeTeXinterchartoks \FB at stdchar \FB at guilf = {%
\ifFB at spacing\FB at guillspace\fi}%
\XeTeXinterchartoks \FB at punctthin \FB at guilf = {%
\ifFB at spacing\FB at guillspace\fi}%
\XeTeXinterchartoks \FB at nonchar \FB at guilf = {%
\ifFB at spacing\unskip\FB at guillspace\fi}%
-% \end{macrocode}
-% This will avoid spurious spaces in (!), [?] and with Unicode
-% non-breaking spaces (U+00A0, U+202F):
-% \begin{macrocode}
- \bbl at for\FB at char
- {`\[,`\(,"A0,"202F}%
- {\XeTeXcharclass\FB at char=\FB at punctnul}%
-% \end{macrocode}
-% These characters have their class changed by \file{xeCJK.sty},
-% let’s reset them to 0 in French.
-% \begin{macrocode}
- \bbl at for\FB at char
- {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}%
- {\XeTeXcharclass\FB at char=\z@}%
}
\addto\extrasfrench{\FB at xetex@punct at french}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% End of specific code for punctuation with modern XeTeX engines.
% \begin{macrocode}
@@ -2639,8 +2729,8 @@
\newif\ifFBAutoSpacePunctuation \FBAutoSpacePunctuationtrue
% \end{macrocode}
%
-% \begin{macro}{\AutoSpaceBeforeFDP}
-% \begin{macro}{\NoAutoSpaceBeforeFDP}
+% \begin{macro}{\AutoSpaceBeforeFDP}
+% \begin{macro}{\NoAutoSpaceBeforeFDP}
%
% \changes{v2.3a}{2008/10/10}{\cs{NoAutoSpaceBeforeFDP} and
% \cs{AutoSpaceBeforeFDP} now set the flag
@@ -2739,7 +2829,7 @@
% \changes{v2.5a}{2010/08/14}{New command \cs{NoAutoSpacing},
% suggested by MPG.}
%
-% \begin{macro}{\NoAutoSpacing}
+% \begin{macro}{\NoAutoSpacing}
% The following command disables automatic spacing for high
% punctuation and French quote characters; it also switches off
% active punctuation characters (if any).
@@ -2757,15 +2847,15 @@
\ifFB at active@punct\shorthandoff{;:!?}\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \subsection{Commands for French quotation marks}
% \label{ssec-quotes}
%
-% \begin{macro}{\guillemotleft}
-% \begin{macro}{\guillemotright}
-% \begin{macro}{\textquoteddblleft}
-% \begin{macro}{\textquoteddblright}
+% \begin{macro}{\guillemotleft}
+% \begin{macro}{\guillemotright}
+% \begin{macro}{\textquoteddblleft}
+% \begin{macro}{\textquoteddblright}
% pdfLaTeX users are supposed to use 8-bit output
% encodings (T1, LY1,…) to typeset French, those who still
% stick to OT1 should load \pkg{aeguill} or a similar package.
@@ -2802,18 +2892,18 @@
\let\xspace\relax
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v3.4a}{2018/01/18}{New \cs{FBgspchar} to customise the
% space character to be used for \cs{og} and\cs{fg} with the
% UnicodeNoBreakSpaces option.}
%
-% \begin{macro}{\FBgspchar}
-% \begin{macro}{\FB at og}
-% \begin{macro}{\FB at fg}
+% \begin{macro}{\FBgspchar}
+% \begin{macro}{\FB at og}
+% \begin{macro}{\FB at fg}
% The next step is to provide correct spacing after `«’ and before
% `»’; no line break is allowed neither \emph{after} the opening
% one, nor \emph{before} the closing one.
@@ -2871,12 +2961,12 @@
\guillemotright}
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\og}
-% \begin{macro}{\fg}
+% \begin{macro}{\og}
+% \begin{macro}{\fg}
%
% The user level macros for quotation marks are named |\og|
% (``\underline{o}uvrez \underline{g}uillemets’’) and |\fg|
@@ -2923,8 +3013,8 @@
\def\fg{\ifdim\lastskip>\z@\unskip\fi\textquotedblright}
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v3.0a}{2014/01/10}{\cs{bbl at nonfrenchguillemets} deleted,
% use \cs{babel at save} instead.}
@@ -2937,7 +3027,7 @@
% \changes{v3.1a}{2014/05/20}{New command \cs{frquote} for imbedded or
% long French quotations.}
%
-% \begin{macro}{\frquote}
+% \begin{macro}{\frquote}
% Another way of entering French quotes relies on |\frquote{}|
% with supports up to two levels of quotes.
% Let’s define the default quote characters to be used for level one
@@ -3127,7 +3217,7 @@
% \begin{macrocode}
\newcommand*{\NoEveryParQuote}{\let\FBeveryparguill\FBguillnone}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \subsection{Date in French}
% \label{sssec-date}
@@ -3204,7 +3294,7 @@
% \changes{v2.1a}{2008/03/24}{Command \cs{fup} added to produce
% better superscripts than \cs{textsuperscript}.}
%
-% \begin{macro}{\up}
+% \begin{macro}{\up}
%
% \changes{v2.1c}{2008/04/29}{Provide a temporary definition
% (hyperref safe) of \cs{up} in case it has to be expanded in
@@ -3215,7 +3305,7 @@
% defined elsewhere (catalan.ldf).
% Bug pointed out by Felip Manyé i Ballester.}
%
-% \begin{macro}{\fup}
+% \begin{macro}{\fup}
%
% \changes{v2.1b}{2008/04/02}{Command \cs{fup} changed to use
% real superscripts from fourier v.~1.6.}
@@ -3351,15 +3441,15 @@
\providecommand*{\up}[1]{\leavevmode\raise1ex\hbox{\sevenrm #1}}
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\ieme}
-% \begin{macro}{\ier}
-% \begin{macro}{\iere}
-% \begin{macro}{\iemes}
-% \begin{macro}{\iers}
-% \begin{macro}{\ieres}
+% \begin{macro}{\ieme}
+% \begin{macro}{\ier}
+% \begin{macro}{\iere}
+% \begin{macro}{\iemes}
+% \begin{macro}{\iers}
+% \begin{macro}{\ieres}
% \changes{v3.1b}{2014/06/23}{Removed \cs{lowercase} from definitions
% of \cs{ieme} and co: \cs{up} already does the conversion.}
%
@@ -3373,33 +3463,33 @@
\def\iere{\up{re}\xspace}
\def\ieres{\up{res}\xspace}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v3.3c}{2017/07/23}{New configurable kerns \cs{FBmedkern},
% and \cs{FBthickkern} suitable for HTML translation.}
%
-% \begin{macro}{\FBmedkern}
-% \begin{macro}{\FBthickkern}
+% \begin{macro}{\FBmedkern}
+% \begin{macro}{\FBthickkern}
% \begin{macrocode}
\newcommand*{\FBmedkern}{\kern+.2em}
\newcommand*{\FBthickkern}{\kern+.3em}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \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}{\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.}
@@ -3445,15 +3535,15 @@
\DeclareRobustCommand*{\nos}{%
\texorpdfstring{n\up{os}\FBmedkern}{n\textdegree\space}}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\bname}
-% \begin{macro}{\bsc}
+% \begin{macro}{\bname}
+% \begin{macro}{\bsc}
% These commands are meant to easily enter family names (in small
% capitals for the latter) while avoidind hyphenation.
% A |\kern0pt| is used instead of |\mbox| because |\mbox| would break
@@ -3483,8 +3573,8 @@
\let\bsc\bname
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% Some definitions for special characters. We won’t define |\tilde|
% as a Text Symbol not to conflict with the macro |\tilde| for math
@@ -3521,7 +3611,7 @@
\newcommand*{\at}{@}
% \end{macrocode}
%
-% \begin{macro}{\degres}
+% \begin{macro}{\degres}
% We now define a macro |\degres| for typesetting the abbreviation
% for `degrees’ (as in `degrees Celsius’). As the bounding box of
% the character `degree’ has \emph{very} different widths in CM/EC
@@ -3568,13 +3658,13 @@
}
\fi
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \subsection{Formatting numbers}
% \label{ssec-numbers}
%
-% \begin{macro}{\StandardMathComma}
-% \begin{macro}{\DecimalMathComma}
+% \begin{macro}{\StandardMathComma}
+% \begin{macro}{\DecimalMathComma}
% As mentioned in the \TeX{}book p.~134, the comma is of type
% |\mathpunct| in math mode: it is automatically followed by a
% thin space. This is convenient in lists and intervals but
@@ -3636,7 +3726,8 @@
% (see |\dec at m@c|’s expansion).
% The \pkg{icomma} inhibits |\DecimalMathComma|.
% \begin{macrocode}
-\newif\if at FBpreamble \ifLaTeXe \@FBpreambletrue \fi
+\newif\if at FBpreamble
+\ifLaTeXe \@FBpreambletrue \fi
\newif\if at preamble@DecimalMathComma
\newcommand*{\DecimalMathComma}{%
\if at FBpreamble \@preamble at DecimalMathCommatrue
@@ -3668,56 +3759,15 @@
\fi
}
% \end{macrocode}
-% Ii issued in the preamble, |\DecimalMathComma| works globally on
-% all parts of the document that are typeset in a French dialect.
-% Can be canceled anytime by |\StandardMathComma|.
+% \end{macro}
+% \end{macro}
+% This is for Plain formats \emph{only} (see below).
% \begin{macrocode}
-\ifLaTeXe
- \AtBeginDocument{%
- \@FBpreamblefalse
- \@ifpackageloaded{icomma}%
- {\FB at icommatrue
- \if at preamble@DecimalMathComma
- \PackageWarning{french.ldf}{%
- icomma package loaded, \protect\DecimalMathComma%
- \MessageBreak does nothing. Reported}%
- \fi
- }%
- {\if at preamble@DecimalMathComma
- \ifFB at mainlanguage@FR \dec at math@comma \fi
- \let\dec at m@c\dec at math@comma
- \addto\extrasfrench{\dec at m@c}%
- \ifdefined\extrasacadian
- \addto\extrasacadian{\dec at m@c}%
- \fi
- \fi
-% \end{macrocode}
-% The comma is reset to type |\mathpunct| when leaving French
-% dialects (only if the icomma package is not loaded).
-% \begin{macrocode}
- \addto\noextrasfrench{\std at math@comma}%
- \ifdefined\noextrasacadian
- \addto\noextrasacadian{\std at math@comma}%
- \fi
- }%
- }
-\else
+\ifLaTeXe\else
\addto\noextrasfrench{\std at math@comma}
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\nombre}
-%
-% \changes{v2.0}{2006/11/06}{\cs{nombre} now requires numprint.sty.}
-%
-% The command |\nombre| is now borrowed from \file{numprint.sty} for
-% LaTeX2e. There is no point to maintain the former tricky code
-% when a package is dedicated to do the same job and more.
-% For Plain based formats, |\nombre| no longer formats numbers,
-% it prints them as is and issues a warning about the change.
-%
% Fake command |\nombre| for Plain based formats, warning users of
% \frenchb{} v.~1.x.\ about the change:
% \begin{macrocode}
@@ -3724,7 +3774,6 @@
\newcommand*{\nombre}[1]{{#1}\fb at warning{*** \noexpand\nombre
no longer formats numbers\string! ***}}
% \end{macrocode}
-% \end{macro}
%
% Let’s activate LuaTeX punctuation if necessary (LaTeX or Plain)
% so that |\FBsetspaces| commands can be used in the preamble,
@@ -3737,7 +3786,7 @@
\fi
\let\FBstop at here\relax
\def\FBclean at on@exit{%
- \let\ifLaTeXe\undefined
+ \let\ifLaTeXe\iffalse
\let\LaTeXetrue\undefined
\let\LaTeXefalse\undefined
\let\FB at llc\loadlocalcfg
@@ -3753,16 +3802,53 @@
\FBstop at here
% \end{macrocode}
%
-% What follows is for LaTeX2e \emph{only}.
-% We redefine |\nombre| for LaTeX2e. A warning is issued
-% at the first call of |\nombre| if |\numprint| is not
-% defined, suggesting what to do. The package \pkg{numprint}
-% is \emph{not} loaded automatically by \frenchb{} because of
-% possible options conflict.
+% What follows is for LaTeX2e \emph{only}: the next piece of code
+% would break Plain formats.
+% If issued in the preamble, |\DecimalMathComma| works globally on
+% all parts of the document that are typeset in a French dialect.
+% Can be canceled anytime by |\StandardMathComma|.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@FBpreamblefalse
+ \@ifpackageloaded{icomma}%
+ {\FB at icommatrue
+ \if at preamble@DecimalMathComma
+ \PackageWarning{french.ldf}{%
+ icomma package loaded, \protect\DecimalMathComma%
+ \MessageBreak does nothing. Reported}%
+ \fi
+ }%
+ {\if at preamble@DecimalMathComma
+ \ifFB at mainlanguage@FR \dec at math@comma \fi
+ \let\dec at m@c\dec at math@comma
+ \addto\extrasfrench{\dec at m@c}%
+ \ifdefined\extrasacadian
+ \addto\extrasacadian{\dec at m@c}%
+ \fi
+ \fi
+% \end{macrocode}
+% The comma is reset to type |\mathpunct| when leaving French
+% dialects (only if the icomma package is not loaded).
+% \begin{macrocode}
+ \addto\noextrasfrench{\std at math@comma}%
+ \ifdefined\noextrasacadian
+ \addto\noextrasacadian{\std at math@comma}%
+ \fi
+ }%
+ }
+% \end{macrocode}
%
+% \begin{macro}{nombre}
+% We redefine |\nombre| for LaTeX2e. The command |\nombre| is now
+% borrowed from \file{numprint.sty} for LaTeX2e. There is no point to
+% maintain the former tricky code when a package is dedicated to do
+% the same job and more. A warning is issued at the first call of
+% |\nombre| if |\numprint| is not defined, suggesting what to do.
+% The package \pkg{numprint} is \emph{not} loaded automatically by
+% \frenchb{} because of possible options conflict.
+%
% \changes{v3.1i}{2015/10/03}{\cs{nombre} command changed when
% numprint.sty is not loaded: only one warning, no error.}
-%
% \begin{macrocode}
\renewcommand*{\nombre}[1]{\Warning at nombre{#1}}
\newcommand*{\Warning at nombre}[1]{%
@@ -3780,6 +3866,7 @@
\fi
}
% \end{macrocode}
+% \end{macro}
%
% \changes{v3.3c}{2017/08/10}{New command \cs{FBthousandsep} to
% customise numprint.}
@@ -4150,10 +4237,10 @@
}
% \end{macrocode}
%
-% \subsection{Dots…}
-% \label{ssec-dots}
+% \subsection{Dots…}
+% \label{ssec-dots}
%
-% \begin{macro}{\FBtextellipsis}
+% \begin{macro}{\FBtextellipsis}
% Unless a ready-made character is available in the current font,
% LaTeX’s default definition of |\textellipsis| includes a |\kern| at
% the end; this space is not wanted in some cases (before a closing
@@ -4188,7 +4275,7 @@
\addto\extrasfrench{\bbl at frenchdots}
\fi
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \subsection{More checks about packages’ loading order}
% \label{ssec-loading-order}
@@ -4283,7 +4370,7 @@
% |\babel at save| and |\babel at savevariable| did not work for
% French).\par}
%
-% \begin{macro}{\frenchsetup}
+% \begin{macro}{\frenchsetup}
% Let’s now define this command which reads and sets the options
% to be processed either immediately (i.e.\ just after setting the
% key) or later (at |\begin{document}|) by |\FBprocess at options|.
@@ -4910,7 +4997,7 @@
}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \begin{macro}{\FBprocess at options}
% |\FBprocess at options| will be executed at |\begin{document}|:
@@ -5173,7 +5260,7 @@
\fi
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \changes{v2.0}{2006/12/06}{Added warning for OT1 encoding.}
%
@@ -5255,11 +5342,11 @@
% Lists have been completely redesigned in frenchb v.~2.6a.
% An option for backward compatibility is provided.}
%
-% \begin{macro}{\listFB}
+% \begin{macro}{\listFB}
% \changes{v3.5q}{2023/02/15}{Bug correction: \cs{parsep} should be
% related to \cs{parskip} and \cs{listparindent} to \cs{parindent}.}
-% \begin{macro}{\listORI}
-% \begin{macro}{\FB at listVsettings}
+% \begin{macro}{\listORI}
+% \begin{macro}{\FB at listVsettings}
% Vertical spacing in lists should be shorter in French texts than
% the defaults provided by LaTeX.
% Note that the easy way, just changing values of vertical spacing
@@ -5311,9 +5398,9 @@
\def\listFB#1#2{\listORI{#1}{\FB at listVsettings #2}}
\let\endlistFB\endlistORI
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% Let’s now consider French itemize-lists. They differ from those
% provided by the standard LaTeX classes:
@@ -5329,13 +5416,13 @@
% aligned as shown p.~\pageref{ListAsPar}.
% \end{itemize}
%
-% \begin{macro}{\FrenchLabelItem}
+% \begin{macro}{\FrenchLabelItem}
% \changes{v2.6a}{2013/01/30}{default changed from \cs{textendash} to
% \cs{textemdash}.}
-% \begin{macro}{\Frlabelitemi}
-% \begin{macro}{\Frlabelitemii}
-% \begin{macro}{\Frlabelitemiii}
-% \begin{macro}{\Frlabelitemiv}
+% \begin{macro}{\Frlabelitemi}
+% \begin{macro}{\Frlabelitemii}
+% \begin{macro}{\Frlabelitemiii}
+% \begin{macro}{\Frlabelitemiv}
% Default labels for French itemize-lists (same label for all levels):
% \begin{macrocode}
\newcommand*{\FrenchLabelItem}{\textemdash}
@@ -5344,16 +5431,16 @@
\newcommand*{\Frlabelitemiii}{\FrenchLabelItem}
\newcommand*{\Frlabelitemiv}{\FrenchLabelItem}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\listindentFB}
-% \begin{macro}{\descindentFB}
-% \begin{macro}{\labelindentFB}
-% \begin{macro}{\labelwidthFB}
+% \begin{macro}{\listindentFB}
+% \begin{macro}{\descindentFB}
+% \begin{macro}{\labelindentFB}
+% \begin{macro}{\labelwidthFB}
% Let’s define four dimens |\listindentFB|, |\descindentFB|,
% |\labelindentFB| and |\labelwidthFB| to customise lists’ horizontal
% indentations.
@@ -5372,10 +5459,10 @@
\newdimen\labelwidthFB
\setlength{\labelwidthFB}{-1pt}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v3.2e}{2016/10/28}{Add missing redefinitions for
% \cs{leftmarginv}, \cs{leftmarginvi}. Suggested by J.F. Burnol.}
@@ -5384,8 +5471,8 @@
% lists’ items can be typeset as paragraphs with indented labels
% while the default leaves the labels hanging into the left margin.}
%
-% \begin{macro}{\leftmarginFB}
-% \begin{macro}{\FB at listHsettings}
+% \begin{macro}{\leftmarginFB}
+% \begin{macro}{\FB at listHsettings}
% |\FB at listHsettings| holds the new horizontal settings chosen for
% French lists \env{itemize}, \env{enumerate} and \env{description}
% (two possible layouts).
@@ -5424,11 +5511,11 @@
\ifnum\@listdepth=\@ne i\else ii\fi\endcsname
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\itemizeFB}
-% \begin{macro}{\FB at itemizesettings}
+% \begin{macro}{\itemizeFB}
+% \begin{macro}{\FB at itemizesettings}
%
% \changes{v2.6f}{2013/11/25}{\cs{labelwidth} must be reset, f.i. when
% an itemize list occurs inside environments based on trivlist which
@@ -5487,8 +5574,8 @@
}
\let\enditemizeFB\endlistORI
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macrocode}
\def\setlabelitemsFB{%
@@ -5525,7 +5612,7 @@
}
% \end{macrocode}
%
-% \begin{macro}{\enumerateFB}
+% \begin{macro}{\enumerateFB}
% The definition of |\enumerateFB|, new to version~2.6a, follows
% the one of |\enumerate| in standard LaTeX classes (see
% \file{ltlists.dtx}), vertical spaces are customised (or not)
@@ -5547,9 +5634,9 @@
}
\let\endenumerateFB\endlistORI
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\descriptionFB}
+% \begin{macro}{\descriptionFB}
% \changes{v2.6b}{2013/02/10}{Settings of \cs{FB at listHsettings} should
% apply to description lists too.}
%
@@ -5598,10 +5685,10 @@
}
\let\enddescriptionFB\endlistORI
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\update at frenchlists}
-% \begin{macro}{\bbl at frenchlistlayout}
+% \begin{macro}{\update at frenchlists}
+% \begin{macro}{\bbl at frenchlistlayout}
% |\update at frenchlists| will set up lists according to the final
% options (default or part of \fbsetup{} eventually overruled in
% |\FBprocess at options|).
@@ -5653,13 +5740,13 @@
}
\addto\extrasfrench{\bbl at frenchlistlayout}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsection{French indentation of sections}
% \label{ssec-indent}
%
-% \begin{macro}{\bbl at frenchindent}
+% \begin{macro}{\bbl at frenchindent}
% In French the first paragraph of each section should be indented,
% this is another difference with US-English. This is controlled
% by the flag |\if at afterindent|.
@@ -5686,7 +5773,7 @@
\fi}
\addto\extrasfrench{\bbl at frenchindent}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% \subsection{Formatting footnotes}
% \label{ssec-footnotes}
@@ -5735,7 +5822,7 @@
}
% \end{macrocode}
%
-% \begin{macro}{\@makefntextFB}
+% \begin{macro}{\@makefntextFB}
% We then define |\@makefntextFB|, a variant of |\@makefntext|
% which is responsible for the layout of footnotes, to match the
% specifications of the French `Imprimerie Nationale’: footnotes
@@ -5864,7 +5951,7 @@
\fi}
\providecommand\@makefntextFB[1]{\insertfootnotemarkFB #1}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
% The rest of |\@makefntext|’s customisation is done at the
% |\begin{document}|. We save the original definition of
@@ -6095,6 +6182,7 @@
%<acadian|canadien|frenchb|francais>\input french.ldf\relax
%<acadian|canadien>\let\extrasacadian\extrasfrench
%<acadian|canadien>\let\noextrasacadian\noextrasfrench
+%<acadian|canadien|frenchb|francais|french>\endinput
% \end{macrocode}
%
% \Finale
Deleted: trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/source/generic/babel-french/frenchb.ins 2023-12-23 21:44:13 UTC (rev 69204)
@@ -1,98 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation driver
-%% files from the doc files in this package when run through LuaTeX.
-%%
-%% Copyright 2001-2023 Daniel Flipo. All rights reserved.
-%%
-%% This is a generated file part of the the babel-french bundle
-%% to be used with the Babel system.
-%% -------------------------------------------------------------
-%%
-%% It may be distributed under the terms of the LaTeX Project Public
-%% License, as described in lppl.txt in the base LaTeX distribution.
-%% Either version 1.3 or, at your option, any later version.
-%%
-%% --------------- start of docstrip commands ------------------
-%%
-\def\filedate{2023/01/02}
-\def\batchfile{frenchb.ins}
-\input docstrip.tex
-
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.4e or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\declarepreamble\mainpreamble
-This is a generated file part of the babel-french bundle
-to be used with the Babel system.
--------------------------------------------------------------
-
-It may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-The Current Maintainer of this work is Daniel Flipo.
-
-Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
-
-\endpreamble
-
-\keepsilent
-\askforoverwritefalse
-
-\usedir{tex/generic/babel-french}
-
-\usepreamble\mainpreamble
-\generate{\file{french.ldf}{\from{frenchb.dtx}{french}}
- \file{acadian.ldf}{\from{frenchb.dtx}{acadian}}
- \file{canadien.ldf}{\from{frenchb.dtx}{canadien}}
- \file{frenchb.ldf}{\from{frenchb.dtx}{frenchb}}
- \file{francais.ldf}{\from{frenchb.dtx}{francais}}
- }
-
-\def\MetaPrefix{-- }
-
-\def\luapostamble{%
- \MetaPrefix\space End of File frenchb.lua.%
-}
-
-\nopreamble
-\usepostamble\luapostamble
-
-\generate{\file{frenchb.lua}{\from{frenchb.dtx}{lua}}}
-
-\ifToplevel{
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space frenchb.lua\space\space french.ldf}
-\Msg{* \space\space frenchb.ldf\space\space francais.ldf}
-\Msg{* \space\space canadian.ldf\space\space and acadian.ldf}
-\Msg{*}
-\Msg{* To produce the documentation run the file frenchb.dtx}
-\Msg{* through pdfLaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-}
-
-\endbatchfile
Modified: trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/acadian.ldf 2023-12-23 21:44:13 UTC (rev 69204)
@@ -24,7 +24,7 @@
%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
\ProvidesLanguage{acadian}
- [2023/03/08 v3.5q French support from the babel system]
+ [2023-12-19 v3.5r French support from the babel system]
\PackageInfo{acadian.ldf}%
{`acadian' dialect is currently\MessageBreak
*absolutely identical* to the\MessageBreak
@@ -33,5 +33,6 @@
\let\extrasacadian\extrasfrench
\let\noextrasacadian\noextrasfrench
\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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/canadien.ldf 2023-12-23 21:44:13 UTC (rev 69204)
@@ -24,7 +24,7 @@
%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
\ProvidesLanguage{canadien}
- [2023/03/08 v3.5q French support from the babel system]
+ [2023-12-19 v3.5r 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
@@ -38,5 +38,6 @@
\let\extrasacadian\extrasfrench
\let\noextrasacadian\noextrasfrench
\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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/francais.ldf 2023-12-23 21:44:13 UTC (rev 69204)
@@ -24,7 +24,7 @@
%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
\ProvidesLanguage{francais}
- [2023/03/08 v3.5q French support from the babel system]
+ [2023-12-19 v3.5r 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
@@ -33,5 +33,6 @@
\def\CurrentOption{french}
\input french.ldf\relax
\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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/french.ldf 2023-12-23 21:44:13 UTC (rev 69204)
@@ -24,10 +24,10 @@
%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
\ProvidesLanguage{french}
- [2023/03/08 v3.5q French support from the babel system]
+ [2023-12-19 v3.5r French support from the babel system]
%%
%% Babel package for LaTeX version 2e
-%% Copyright © 1996-2022
+%% Copyright © 1996-2023
%% by Daniel Flipo <daniel (dot) flipo (at) free (dot) fr>
%%
\LdfInit\CurrentOption{FBclean at on@exit}
@@ -153,15 +153,16 @@
\FB at luatex@puncttrue\FB at active@punctfalse
\fi
\fi
-\newcount\FB at nonchar
+\newcount\FB at stdchar
\newif\ifFB at xetex@punct
\ifdefined\XeTeXinterchartokenstate
\FB at xetex@puncttrue\FB at active@punctfalse
- \ifdim\the\XeTeXversion\XeTeXrevision pt<0.99994pt
- \FB at nonchar=255 \relax
+ \ifdim\the\XeTeXversion\XeTeXrevision\p@ < 0.99994\p@
+ \chardef\FB at nonchar="FF \relax
\else
- \FB at nonchar=4095 \relax
+ \chardef\FB at nonchar="FFF \relax
\fi
+ \FB at stdchar=\z@
\fi
\newcommand*{\FBguillspace}{\hskip .8\fontdimen2\font
plus .3\fontdimen3\font
@@ -304,14 +305,14 @@
}
\fi
\ifFB at xetex@punct
- \ifLaTeXe
+ \ifLaTeXe
\PackageInfo{french.ldf}{No need for active punctuation
characters\MessageBreak with this
version of XeTeX!\MessageBreak reported}
- \else
+ \else
\fb at info{No need for active punctuation characters\\
with this version of XeTeX!}
- \fi
+ \fi
\newXeTeXintercharclass\FB at punctthick
\newXeTeXintercharclass\FB at punctthin
\newXeTeXintercharclass\FB at punctnul
@@ -323,16 +324,47 @@
\edef\x{\endgroup
\def\noexpand\originalTeX{\the\toks@ #2=\the#1#2\relax}}%
\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}
+ \def\FB at charlist{"21,"3A,"3B,"3F,"AB,"BB,"28,"5B,"A0,"202F}
+ \def\FB at charlistUCC{}
+ \def\FB at charlistxeCJK{}
+ \edef\FB at charlistsave{\FB at charlist}
+ \ifLaTeXe
+ \AtBeginDocument{%
+ \@ifpackageloaded{ucharclasses}%
+ {\ifdefined\BasicLatinClass
+ \RenewCommandCopy{\FB at stdchar}{\BasicLatinClass}%
+ \def\FB at charlistUCC{"C0,"C2,"C6,"C7,"C8,"C9,"CA,"CB,"CE,"CF,%
+ "D4,"D6,"D9,"DB,"DC,"E0,"E2,"E6,"E7,"E8,"E9,"EA,"EB,"EE,%
+ "EF,"F4,"F6,"F9,"FB,"FC,"152,"153,"17F,"2019}%
+ \addto\FB at charlist{,\FB at charlistUCC}%
+ \edef\FB at charlistsave{\FB at charlist}%
+ \fi
+ }{}%
+ \@ifpackageloaded{xeCJK}%
+ {\def\FB at charlistxeCJK{%
+ "29,"5D,"7B,"7D,"2C,"2D,"2E,"22,"25,"27,"60,"2019}%
+ \addto\FB at charlist{,\FB at charlistxeCJK}%
+ \edef\FB at charlistsave{\FB at charlist}%
+ }{}%
+ }
+ \fi
\newcommand*{\FB at xetex@punct at french}{%
\babel at savevariable{\XeTeXinterchartokenstate}%
- \bbl at for\FB at char\FB at charlist
+ \bbl at for\FB at char\FB at charlistsave
{\FBsavevariable at loop{\XeTeXcharclass}{\FB at char}}%
+ \ifx\FB at charlistUCC\@empty\else
+ \bbl at for\FB at char\FB at charlistUCC
+ {\XeTeXcharclass \FB at char \FB at stdchar}%
+ \fi
+ \ifx\FB at charlistxeCJK\@empty\else
+ \bbl at for\FB at char\FB at charlistxeCJK
+ {\XeTeXcharclass\FB at char=\FB at stdchar}%
+ \fi
+ \bbl at for\FB at char {`\[,`\(,"A0,"202F}%
+ {\XeTeXcharclass\FB at char=\FB at punctnul}%
\XeTeXinterchartokenstate=\@ne
\XeTeXcharclass `\: = \FB at punctthick
- \XeTeXinterchartoks \z@ \FB at punctthick = {%
+ \XeTeXinterchartoks \FB at stdchar \FB at punctthick = {%
\ifFB at spacing\ifhmode\FDP at colonspace\fi\fi}%
\XeTeXinterchartoks \FB at guilf \FB at punctthick = {%
\ifFB at spacing\FDP at colonspace\fi}%
@@ -346,10 +378,9 @@
\fi
\fi
\fi}%
- \bbl at for\FB at char
- {`\;,`\!,`\?}%
+ \bbl at for\FB at char {`\;,`\!,`\?}%
{\XeTeXcharclass\FB at char=\FB at punctthin}%
- \XeTeXinterchartoks \z@ \FB at punctthin = {%
+ \XeTeXinterchartoks \FB at stdchar \FB at punctthin = {%
\ifFB at spacing\ifhmode\FDP at thinspace\fi\fi}%
\XeTeXinterchartoks \FB at guilf \FB at punctthin = {%
\ifFB at spacing\FDP at thinspace\fi}%
@@ -363,22 +394,16 @@
\fi
\fi
\fi}%
- \XeTeXinterchartoks \FB at guilo \z@ = {%
+ \XeTeXinterchartoks \FB at guilo \FB at stdchar = {%
\ifFB at spacing\FB at guillspace\fi}%
\XeTeXinterchartoks \FB at guilo \FB at nonchar = {%
\ifFB at spacing\FB at guillspace\ignorespaces\fi}%
- \XeTeXinterchartoks \z@ \FB at guilf = {%
+ \XeTeXinterchartoks \FB at stdchar \FB at guilf = {%
\ifFB at spacing\FB at guillspace\fi}%
\XeTeXinterchartoks \FB at punctthin \FB at guilf = {%
\ifFB at spacing\FB at guillspace\fi}%
\XeTeXinterchartoks \FB at nonchar \FB at guilf = {%
\ifFB at spacing\unskip\FB at guillspace\fi}%
- \bbl at for\FB at char
- {`\[,`\(,"A0,"202F}%
- {\XeTeXcharclass\FB at char=\FB at punctnul}%
- \bbl at for\FB at char
- {`\{,`\,,`\.,`\-,`\),`\],`\},`\%,"22,"27,"60,"2019}%
- {\XeTeXcharclass\FB at char=\z@}%
}
\addto\extrasfrench{\FB at xetex@punct at french}
\fi
@@ -816,7 +841,8 @@
\newcommand*{\std at math@comma}{\mathcode`\,=\std at mcc}
\fi
\let\dec at m@c\relax
-\newif\if at FBpreamble \ifLaTeXe \@FBpreambletrue \fi
+\newif\if at FBpreamble
+\ifLaTeXe \@FBpreambletrue \fi
\newif\if at preamble@DecimalMathComma
\newcommand*{\DecimalMathComma}{%
\if at FBpreamble \@preamble at DecimalMathCommatrue
@@ -847,32 +873,7 @@
\fi
\fi
}
-\ifLaTeXe
- \AtBeginDocument{%
- \@FBpreamblefalse
- \@ifpackageloaded{icomma}%
- {\FB at icommatrue
- \if at preamble@DecimalMathComma
- \PackageWarning{french.ldf}{%
- icomma package loaded, \protect\DecimalMathComma%
- \MessageBreak does nothing. Reported}%
- \fi
- }%
- {\if at preamble@DecimalMathComma
- \ifFB at mainlanguage@FR \dec at math@comma \fi
- \let\dec at m@c\dec at math@comma
- \addto\extrasfrench{\dec at m@c}%
- \ifdefined\extrasacadian
- \addto\extrasacadian{\dec at m@c}%
- \fi
- \fi
- \addto\noextrasfrench{\std at math@comma}%
- \ifdefined\noextrasacadian
- \addto\noextrasacadian{\std at math@comma}%
- \fi
- }%
- }
-\else
+\ifLaTeXe\else
\addto\noextrasfrench{\std at math@comma}
\fi
\newcommand*{\nombre}[1]{{#1}\fb at warning{*** \noexpand\nombre
@@ -882,7 +883,7 @@
\fi
\let\FBstop at here\relax
\def\FBclean at on@exit{%
- \let\ifLaTeXe\undefined
+ \let\ifLaTeXe\iffalse
\let\LaTeXetrue\undefined
\let\LaTeXefalse\undefined
\let\FB at llc\loadlocalcfg
@@ -896,6 +897,30 @@
\endinput}
\fi
\FBstop at here
+\AtBeginDocument{%
+ \@FBpreamblefalse
+ \@ifpackageloaded{icomma}%
+ {\FB at icommatrue
+ \if at preamble@DecimalMathComma
+ \PackageWarning{french.ldf}{%
+ icomma package loaded, \protect\DecimalMathComma%
+ \MessageBreak does nothing. Reported}%
+ \fi
+ }%
+ {\if at preamble@DecimalMathComma
+ \ifFB at mainlanguage@FR \dec at math@comma \fi
+ \let\dec at m@c\dec at math@comma
+ \addto\extrasfrench{\dec at m@c}%
+ \ifdefined\extrasacadian
+ \addto\extrasacadian{\dec at m@c}%
+ \fi
+ \fi
+ \addto\noextrasfrench{\std at math@comma}%
+ \ifdefined\noextrasacadian
+ \addto\noextrasacadian{\std at math@comma}%
+ \fi
+ }%
+ }
\renewcommand*{\nombre}[1]{\Warning at nombre{#1}}
\newcommand*{\Warning at nombre}[1]{%
\ifdefined\numprint
@@ -1955,5 +1980,6 @@
\ldf at finish\CurrentOption
\let\loadlocalcfg\FB at llc
\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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.ldf 2023-12-23 21:44:13 UTC (rev 69204)
@@ -24,7 +24,7 @@
%% Please report errors to: <daniel (dot) flipo (at) free (dot) fr>
%%
\ProvidesLanguage{frenchb}
- [2023/03/08 v3.5q French support from the babel system]
+ [2023-12-19 v3.5r French support from the babel system]
\def\bbl at tempa{frenchb}
\ifx\CurrentOption\bbl at tempa
\chardef\l at frenchb\l at french
@@ -57,5 +57,6 @@
\fi
\input french.ldf\relax
\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 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/texmf-dist/tex/generic/babel-french/frenchb.lua 2023-12-23 21:44:13 UTC (rev 69204)
@@ -1,7 +1,7 @@
--[[
File `frenchb.lua’ generated from frenchb.dtx
- [2023/03/08 v3.5q French support from the babel system]
- Copyright © 2014-2022 Daniel Flipo
+ [2023-12-19 v3.5r French support from the babel system]
+ Copyright © 2014-2023 Daniel Flipo
<daniel (dot) flipo (at) free (dot) fr>
License LPPL: see french.ldf.
--]]
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds 2023-12-23 16:57:39 UTC (rev 69203)
+++ trunk/Master/tlpkg/libexec/ctan2tds 2023-12-23 21:44:13 UTC (rev 69204)
@@ -3195,6 +3195,7 @@
'atenddvi' => 'etex',
'babel' => 'etex',
'babel-belarusian' => 'tex -8bit', # do not make doc, no ^^
+ 'babel-french' => 'luatex',
'babel-greek' => 'latex', # requires interaction
'babel-serbianc' => 'latex', # requires interaction
'babel-ukrainianx' => 'etex', # requires interaction
More information about the tex-live-commits
mailing list.