summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-09-18 03:08:21 +0000
committerNorbert Preining <norbert@preining.info>2022-09-18 03:08:21 +0000
commitbaa3e10650110291de10e0e8e6a1e48ac4579afe (patch)
tree8eff974515ba91e538c94002db56558182e59a4e /macros/latex
parent9ae94dce28ea17b97ef24019e324353cd6af4dba (diff)
CTAN sync 202209180308
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/calculator/README.md (renamed from macros/latex/contrib/calculator/README)11
-rw-r--r--macros/latex/contrib/calculator/calculator.dtx123
-rw-r--r--macros/latex/contrib/calculator/calculator.ins6
-rw-r--r--macros/latex/contrib/calculator/calculator.pdfbin565260 -> 572138 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin511972 -> 511473 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex57
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx141
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1320819 -> 1325255 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.pdfbin191985 -> 264306 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.tex73
-rw-r--r--macros/latex/contrib/verifiche/verifiche.dtx150
-rw-r--r--macros/latex/contrib/verifiche/verifiche.pdfbin586335 -> 638888 bytes
-rw-r--r--macros/latex/required/babel/base/README.md28
-rw-r--r--macros/latex/required/babel/base/babel.dtx118
-rw-r--r--macros/latex/required/babel/base/babel.ins3
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin883632 -> 885746 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
17 files changed, 595 insertions, 117 deletions
diff --git a/macros/latex/contrib/calculator/README b/macros/latex/contrib/calculator/README.md
index 5b07974348..04c5147e30 100644
--- a/macros/latex/contrib/calculator/README
+++ b/macros/latex/contrib/calculator/README.md
@@ -1,7 +1,6 @@
-
The calculator and calculus packages: Use \LaTeX as a scientific calculator.
-Robert Fuster, 2012, 2014
+Robert Fuster, 2012, 2014, 2022
1. Licence
@@ -11,6 +10,10 @@ This material is subject to the LaTeX Project Public License.
See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
for the details of that license.
+2. Changes in version 2.1
+-------------------------
+- Some bugs fixed
+
2. Changes in version 2.0
-------------------------
- Inverse trigonometric and inverse hyperbolic functions are added
@@ -136,5 +139,5 @@ You can store or discard this files.
Robert Fuster
rfuster@mat.upv.es
-Universitat Polit\`ecnica de Val\`encia, 2012/05/19, 2014/02/23
---------------------------------------------------------------- \ No newline at end of file
+Universitat Polit\`ecnica de Val\`encia, 2012/05/19, 2014/02/23, 2022/09/15
+---------------------------------------------------------------
diff --git a/macros/latex/contrib/calculator/calculator.dtx b/macros/latex/contrib/calculator/calculator.dtx
index 41d95f24a0..64f6fe0b6a 100644
--- a/macros/latex/contrib/calculator/calculator.dtx
+++ b/macros/latex/contrib/calculator/calculator.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2012, 2014 by Robert Fuster <rfuster@mat.upv.es>
+% Copyright (C) 2012, 2014, 2022 by Robert Fuster <rfuster@mat.upv.es>
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -27,15 +27,16 @@
%<*driver>
\documentclass{ltxdoc}
\ProvidesFile{calculator.dtx}
- [2014/02/20 v.2.0 documented calculator package]
+ [2022/09/15 v.2.1 documented calculator package]
\usepackage{calculus}
\usepackage{amsmath}
\usepackage[lmargin=1.75in,rmargin=1in]{geometry}
\usepackage{fancyvrb}
-\def\fileversion{2.0}
-\def\filedate{2014/02/20}
+\usepackage[colorlinks]{hyperref}
+\def\fileversion{2.1}
+\def\filedate{2022/09/15}
\GetFileInfo{calculator.dtx}
@@ -58,6 +59,7 @@
\newcommand{\Marg}[1]{\textnormal{\marg{#1}}}
\newcommand{\newinversion}[1]{\textnormal{\textit{(new in version~#1)}}}
+\newcommand{\renewinversion}[2][]{\textnormal{\footnote{code modified in version~#2\ifx"#1"\else\space (#1)\fi.}}}
\newcommand{\arccot}{\operatorname{arccot}}
\newcommand{\arsinh}{\operatorname{arsinh}}
@@ -97,11 +99,12 @@
%
% \fi
%
-% \CheckSum{3753}
+% \CheckSum{3913}
% \changes{v1.0}{2012/04/25}{First public version}
% \changes{v1.0a}{2012/06/10}{calculator.dtx modified to make it autoinstallable.
% calculus.dtx embedded in calculus.dtx}
% \changes{v2.0}{2014/02/20}{new calculator.dtx and calculator.ins files}
+% \changes{v2.1}{2022/09/15}{Some bugs fixed}
%% \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
@@ -154,6 +157,10 @@
% (so that we can work with all the classic elementary functions),
% and also can do some additional calculation with vectors
% (such as the cross product and the angle between two vectors).
+
+% Version 2.1 fixes some bugs and calculation problems.\footnote{Thanks to
+% Schmitz Manuel, Thorsten Wolterin, Jim Cline,
+% Schremmer Alain and July Tikhonov.}
% \end{abstract}
%
% \tableofcontents
@@ -447,7 +454,8 @@
% \end{exemple}
% \item[\cs{FRACTIONALPART}\marg{num}\marg{\cs{cmd}}]%
% \SpecialUsageIndex{\FRACTIONALPART}%
-% Fractional part of \textttit{num}.
+% Fractional part of \textttit{num}.\renewinversion[thanks to July Tikhonov
+% who reported a bug and suggested the solution]{2.1}
% \begin{exemple}
% \FRACTIONALPART{1.256}{\sol}
% \sol
@@ -463,7 +471,9 @@
% truncates the number \textttit{num} to \textttit{n} decimal places.
% \item[\cs{ROUND}{[\textttit{n}]}\marg{num}\marg{\cs{cmd}}]%
% \SpecialUsageIndex{\ROUND}%
-% rounds the number \textttit{num} to \textttit{n} decimal places.
+% rounds the number \textttit{num} to \textttit{n} decimal places.%
+% \renewinversion[thanks to Jim Cline and Schremmer Alain
+% who reported a bug]{2.1}
%
% The optional argument \textttit{n} may be \texttt{0}, \texttt{1},
% \texttt{2}, \texttt{3} or \texttt{4} (the default is \texttt{2}).\footnote{%
@@ -1872,7 +1882,7 @@
% \begin{macrocode}
%<*calculator>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{calculator}[2014/02/20 v.2.0]
+\ProvidesPackage{calculator}[2022/09/15 v.2.1]
% \end{macrocode}
% \subsection{Internal lengths and special numbers}
% \cs{cctr@lengtha} and \cs{cctr@lengthb}
@@ -1902,6 +1912,18 @@
% \end{macro}
% \subsection{Warning messages}
% \begin{macrocode}
+\def\cctr@Warntruncate#1#2{%
+ \PackageWarning{calculator}%
+ {The optional argument in truncate \MessageBreak
+ must be less than 5 \MessageBreak
+ I copy #1 to #2 \MessageBreak without truncating}}
+
+\def\cctr@Warnround#1#2{%
+ \PackageWarning{calculator}%
+ {The optional argument in round \MessageBreak
+ must be less than 5 \MessageBreak
+ I copy #1 to #2 \MessageBreak without rounding}}
+
\def\cctr@Warndivzero#1#2{%
\PackageWarning{calculator}%
{Division by 0.\MessageBreak
@@ -2347,7 +2369,7 @@
% returns the integer part of \textit{\#2}.
% \begin{macrocode}
\def\@@INTEGERPART#1.#2.#3)#4{\ifnum #11=1 \COPY{0}{#4}
- \else \COPY{#1}{#4}\fi}
+ \else \ADD{0}{#1}{#4}\fi}
\def\@INTEGERPART#1#2{\expandafter\@@INTEGERPART#1..){#2}}
\def\INTEGERPART#1#2{\begingroup
\ifdim #1\p@<\z@
@@ -2372,9 +2394,10 @@
% \cs{FRACTIONALPART}\marg{\#1}\marg{\#2}
% returns the fractional part of
% \textit{\#2}.
+% \changes{v2.1}{2022/09/15}{Bug fixed}
% \begin{macrocode}
-\def\@@FRACTIONALPART#1.#2.#3)#4{\ifnum #2=11 \COPY{0}{#4}
- \else \COPY{0.#2}{#4}\fi}
+\def\@@FRACTIONALPART#1.#2.#3)#4{\ifnum #21=1 \COPY{0}{#4}
+ \else \ADD{0}{0.#2}{#4}\fi}
\def\@FRACTIONALPART#1#2{\expandafter\@@FRACTIONALPART#1..){#2}}
\def\FRACTIONALPART#1#2{\begingroup
\ifdim #1\p@<\z@
@@ -2382,24 +2405,29 @@
\SUBTRACT{#1}{\cctr@tempA}{#2}
\else
\@FRACTIONALPART{#1}{#2}
- \fi\@OUTPUTSOL{#2}}
+ \fi\@OUTPUTSOL{#2}}
+
% \end{macrocode}
% \end{macro}
% \begin{macro}{\TRUNCATE}
% \cs{TRUNCATE}\oarg{\#1}\marg{\#2}\marg{\#3}
% truncates \textit{\#2} to \textit{\#1} (0, 1, 2 (default), 3 or 4) digits.
+% \changes{v2.1}{2022/09/15}{Bug fixed}
% \begin{macrocode}
\def\TRUNCATE{\@ifnextchar[\@@TRUNCATE\@TRUNCATE}
\def\@TRUNCATE#1#2{\@@TRUNCATE[2]{#1}{#2}}
\def\@@TRUNCATE[#1]#2#3{%
- \begingroup
+ \begingroup
+ \ifdim #1\p@ > 4\p@ \cctr@Warntruncate{#2}{\noexpand#3} \COPY{#2}{#3}
+ \else
\INTEGERPART{#2}{\cctr@tempa}
- \ifdim \cctr@tempa\p@ = #2\p@
- \expandafter\@@@TRUNCATE#2.00000)[#1]{#3}
+ \ifdim \cctr@tempa\p@ = #2\p@
+ \expandafter\@@@TRUNCATE\cctr@tempa.00000.)[#1]{#3}
\else
\expandafter\@@@TRUNCATE#200000.)[#1]{#3}
- \fi
- \@OUTPUTSOL{#3}}
+ \fi\fi
+ \@OUTPUTSOL{#3}}
+
\def\@@@TRUNCATE#1.#2#3#4#5#6.#7)[#8]#9{%
\ifcase #8
\COPY{#1}{#9}
@@ -2413,27 +2441,48 @@
% \begin{macro}{\ROUND}
% \cs{ROUND}\oarg{\#1}\marg{\#2}\marg{\#3}
% rounds \textit{\#2} to \textit{\#1} (0, 1, 2 (default), 3 or 4) digits.
+% \changes{v2.1}{2022/09/15}{Bug fixed}
% \begin{macrocode}
\def\ROUND{\@ifnextchar[\@@ROUND\@ROUND}
\def\@ROUND#1#2{\@@ROUND[2]{#1}{#2}}
\def\@@ROUND[#1]#2#3{%
- \begingroup
- \ifdim#2\p@<\z@
- \MULTIPLY{-1}{#2}{\cctr@temp}
- \@@ROUND[#1]{\cctr@temp}{#3}\COPY{-#3}{#3}
- \else
- \@@TRUNCATE[#1]{#2}{\cctr@tempe}
- \SUBTRACT{#2}{\cctr@tempe}{\cctr@tempc}
- \POWER{10}{#1}{\cctr@tempb}
- \MULTIPLY{\cctr@tempb}{\cctr@tempc}{\cctr@tempc}
- \ifdim\cctr@tempc\p@<0.5\p@
- \else
- \DIVIDE{1}{\cctr@tempb}{\cctr@tempb}
- \ADD{\cctr@tempe}{\cctr@tempb}{\cctr@tempe}
- \fi
- \@@TRUNCATE[#1]{\cctr@tempe}{#3}
- \fi
- \@OUTPUTSOL{#3}}
+ \begingroup
+ \ifdim #1\p@ > 4\p@ \cctr@Warnround{#2}{\noexpand#3} \COPY{#2}{#3}
+ \else
+ \INTEGERPART{#2}{\cctr@tempa}
+ \ifdim \cctr@tempa\p@ = #2\p@
+ \expandafter\@@@ROUND\cctr@tempa.00000.)[#1]{#3}
+ \else
+ \expandafter\@@@ROUND#200000.)[#1]{#3}
+ \fi
+ \fi
+ \@OUTPUTSOL{#3}}
+
+\def\@@@ROUND#1.#2#3#4#5#6.#7)[#8]#9{%
+ \ifcase #8
+ \COPY{#1}{#9} \ifnum #2>4 \ADD{#1}{1}{\cctr@tempp}\COPY{\cctr@tempp}{#9} \fi
+ \or\COPY{#1.#2}{#9} \ifnum #3>4 \ADD{#2}{1}\cctr@tempq\COPY{#1}{\cctr@tempp}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}\cctr@tempp\COPY{0}{\cctr@tempq}\fi
+ \COPY{\cctr@tempp.\cctr@tempq}{#9}
+ \fi
+ \or\COPY{#1.#2#3}{#9} \ifnum #4>4 \ADD{#3}1\cctr@tempq\COPY{#2}{\cctr@tempp}\COPY{#1}{\cctr@tempo}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}{\cctr@tempp}\COPY{0}{\cctr@tempq}\fi
+ \ifnum\cctr@tempp=10\ADD{\cctr@tempo}{1}\cctr@tempo\COPY{0}{\cctr@tempp}\fi
+ \COPY{\cctr@tempo.\cctr@tempp\cctr@tempq}{#9}
+ \fi
+ \or\COPY{#1.#2#3#4}{#9} \ifnum #5>4 \ADD{#4}1\cctr@tempq\COPY{#3}{\cctr@tempp}\COPY{#2}{\cctr@tempo}\COPY{#1}{\cctr@tempn}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}{\cctr@tempp}\COPY{0}{\cctr@tempq}\fi
+ \ifnum\cctr@tempp=10\ADD{\cctr@tempo}{1}\cctr@tempo\COPY{0}{\cctr@tempp}\fi
+ \ifnum\cctr@tempo=10\ADD{\cctr@tempn}{1}\cctr@tempn\COPY{0}{\cctr@tempo}\fi
+ \COPY{\cctr@tempn.\cctr@tempo\cctr@tempp\cctr@tempq}{#9}
+ \fi
+ \or\COPY{#1.#2#3#4#5}{#9} \ifnum #6>4 \ADD{#5}1\cctr@tempq\COPY{#4}{\cctr@tempp}\COPY{#3}{\cctr@tempo}\COPY{#2}{\cctr@tempn}\COPY{#1}{\cctr@tempm}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}{\cctr@tempp}\COPY{0}{\cctr@tempq}\fi
+ \ifnum\cctr@tempp=10\ADD{\cctr@tempo}{1}\cctr@tempo\COPY{0}{\cctr@tempp}\fi
+ \ifnum\cctr@tempo=10\ADD{\cctr@tempn}{1}\cctr@tempn\COPY{0}{\cctr@tempo}\fi
+ \ifnum\cctr@tempn=10\ADD{\cctr@tempm}{1}\cctr@tempm\COPY{0}{\cctr@tempn}\fi
+ \COPY{\cctr@tempm.\cctr@tempn\cctr@tempo\cctr@tempp\cctr@tempq}{#9}
+ \fi}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\GCD}
@@ -3196,9 +3245,11 @@
% \end{macrocode}
%
% We start with |\cctr@lengthb=5\p@| to ensure almost one iteration.
+% \changes{v2.1}{2022/09/15}{Changed stop criterion on iterations to 2sp}
% \begin{macrocode}
\cctr@lengthb=5\p@%
-% \end{macrocode}
+ \cctr@epsilon=2\cctr@epsilon%
+% \end{macrocode}
% Successive iterations
% \begin{macrocode}
\@whilenum \cctr@lengthb>\cctr@epsilon \do {%
@@ -4400,7 +4451,7 @@
\ProvidesPackage{calculus}[2014/02/20 v.2.0]
% \end{macrocode}
% This package requires the calculator package.
-% \begin{macrocode}
+% \begin{macrocode}
\RequirePackage{calculator}
% \end{macrocode}
% \subsection{Error and info messages}
diff --git a/macros/latex/contrib/calculator/calculator.ins b/macros/latex/contrib/calculator/calculator.ins
index 1b76199158..7708cf1e23 100644
--- a/macros/latex/contrib/calculator/calculator.ins
+++ b/macros/latex/contrib/calculator/calculator.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2012, 2014 by Robert Fuster <rfuster@mat.upv.es>
+%% Copyright (C) 2012, 2014, 2022 by Robert Fuster <rfuster@mat.upv.es>
%%
%% This work may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -55,9 +55,9 @@ calculator<nn>.tex derived files.
\Msg{*****************************************************}
\Msg{* *}
\Msg{* To finish the installation you have to move the *}
-\Msg{* following file into a directory searched by TeX: *}
+\Msg{* following files into a directory searched by TeX: *}
\Msg{* *}
-\Msg{* calculator.sty *}
+\Msg{* calculator.sty calculus.sty *}
\Msg{* *}
\Msg{* (in a TDS compliant tree, something like *}
\Msg{* <a texmf dir>/tex/latex/calculator/ *}
diff --git a/macros/latex/contrib/calculator/calculator.pdf b/macros/latex/contrib/calculator/calculator.pdf
index 7da66cec99..4ef145baa4 100644
--- a/macros/latex/contrib/calculator/calculator.pdf
+++ b/macros/latex/contrib/calculator/calculator.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index aef19a755c..0ae8f26c90 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 6244fda93e..f7fa1fe561 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -24,7 +24,6 @@
\usepackage{shortvrb}
\MakeShortVerb{\|}
-
\usepackage{fancyvrb}
\fvset{commandchars=\~\#\@,formatcom=\color{gray}}
@@ -967,13 +966,13 @@ par |\Cdots|, |\Vdots|, etc. : cf.~p.~\pageref{Cdots}.
\end{itemize}
\item Les coins sont créés par la clé |corners| détaillée un peu plus loin : cf.
p.~\pageref{corners}.
-\item Pour les rangées et colonnes extérieures, cf.~\pageref{exterior}.
+\item Pour les rangées et colonnes extérieures, cf. p.~\pageref{exterior}.
\end{itemize}
En particulier, cette remarque explique la différence entre la commande standard
|\hline| et la commande |\Hline| proposée par \pkg{nicematrix}.
-\colorbox{yellow!50}{\textbf{Nouveau 6.13}}\enskip La command |\Hline| admet
+\colorbox{yellow!50}{\textbf{Nouveau 6.13}}\enskip La commande |\Hline| admet
entre crochets un argument optionnel qui est une liste de couples
\textsl{clé=valeur} qui décrivent un filet. Pour la description de ces clés,
voir |custom-line| p.~\pageref{custom-line}.
@@ -1183,7 +1182,7 @@ Cette commande |\diagbox| peut aussi être utilisée dans un |\Block|.
Il est possible de définir des commandes et des lettres pour des filets
personnalisés avec la clé |custom-line|, utilisable dans |\NiceMatrixOptions| ou
bien dans un environnement. Cette clé prend en argument une liste de paires de
-la forme \textsl{clé=valeur}. Il y a d'abord deux clés pour spécifier les outils
+la forme \textsl{clé=valeur}. Il y a d'abord trois clés pour spécifier les outils
qui permettront d'utiliser ce nouveau type de filet.
\begin{itemize}
@@ -1792,9 +1791,51 @@ Antoine \\
Stéphanie \\
\end{NiceTabular}
+\bigskip
+On peut aussi utiliser dans la commande |\rowlistcolors| une série de couleurs
+définie par la commande |\definecolorseries| de \pkg{xcolor} (et initialisée
+avec la commande |\resetcolorseries|\footnote{Pour l'initialisation, on a
+ utilisé dans l'exemple qui suit le compteur |iRow| qui, quand il est utilisé
+ dans le |\CodeBefore| (ou le |\CodeAfter|) désigne le nombre de rangées du
+ tableau : cf~p.~\pageref{iRow}. Cela permet un ajustement de la gradation des
+ couleurs à la taille du tableau.}).
+
+\smallskip
+\begin{BVerbatim}[boxwidth=12cm,baseline=c]
+\begin{NiceTabular}{c}
+\CodeBefore
+ ~emphase#\definecolorseries{BlueWhite}{rgb}{last}{blue}{white}@
+ ~emphase#\resetcolorseries{\value{iRow}}{BlueWhite}@
+ ~emphase#\rowlistcolors{1}{BlueWhite!!+}@
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{c}
+\CodeBefore
+ \definecolorseries{BlueWhite}{rgb}{last}{blue}{white}
+ \resetcolorseries[\value{iRow}]{BlueWhite}
+ \rowlistcolors{1}{BlueWhite!!+}
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+
\end{itemize}
-\medskip
+
+\vspace{1cm}
On rappelle que toutes les commandes de coloriage que l'on vient de décrire ne
colorient pas les cases qui sont dans les «coins». Dans l'exemple suivant, on
utilise la clé |corners| pour demander de considérer le coin \emph{north east} (NE).
@@ -3332,7 +3373,7 @@ $\begin{pNiceMatrix}
\subsection{La légendes des tableaux}
\colorbox{yellow!50}{\bfseries Nouveau 6.12}\enskip L'environnement
-|{NiceTabular}| proposent des clés |caption|, |short-caption| et |label| à
+|{NiceTabular}| propose des clés |caption|, |short-caption| et |label| à
utiliser lorsque le tableau est inséré dans un environnment flottant
(typiquement un environnement |{table}|).
@@ -3462,7 +3503,7 @@ des notes avant les notes numérotées.
\colorbox{yellow!50}{\textbf{Nouveau 6.13} }\enskip Une syntaxe alternative est
proposée : il est possible d'utiliser l'environnement |{TabularNote}| à la fin de
-l'environnement |{NiceTabular}| (mais \emph{avant} l'eventuel |\CodeAfter|).
+l'environnement |{NiceTabular}| (mais \emph{avant} l'éventuel |\CodeAfter|).
\item Si l'extension \pkg{booktabs} a été chargée (avant ou après
\pkg{nicematrix}), la clé |notes/bottomrule| permet de faire tracer un
@@ -3917,6 +3958,8 @@ En fait, l'option |small| correspond aux réglages suivants :
\subsection{Les compteurs iRow et jCol}
+\label{iRow}
+
Dans les cases du tableau, il est possible d'utiliser les compteurs LaTeX |iRow|
et |jCol| qui représentent le numéro de la rangée courante et le numéro de la
colonne courante\footnote{On rappelle que le numéro de la «première rangée» (si
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index 1884212f42..659e7fa56a 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -17,8 +17,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.13}
-\def\myfiledate{2022/08/24}
+\def\myfileversion{6.13a}
+\def\myfiledate{2022/09/17}
%
%
%<*batchfile>
@@ -1200,7 +1200,7 @@ version 2005/12/01 or later.
% It's also possible to define commands and letters for customized rules with
% the key |custom-line| available in |\NiceMatrixOptions| and in the options of
% individual environments. That key takes in as argument a list of
-% \textsl{key=value} pairs. First, there is two keys to define the tools which
+% \textsl{key=value} pairs. First, there is three keys to define the tools which
% will be used to use that new type of rule.
%
% \begin{itemize}
@@ -1754,7 +1754,6 @@ version 2005/12/01 or later.
% arguments for the colors, this command takes in an argument which is a
% (comma-separated) list of colors. In that list, the symbol |=| represent a
% color identical to the previous one.
-% \end{itemize}
%
% \smallskip
% \begin{BVerbatim}[boxwidth=10cm,baseline=c]
@@ -1784,8 +1783,49 @@ version 2005/12/01 or later.
% Alexandra \\
% \end{NiceTabular}
%
+% \bigskip
+% It's also possible to use in the command |\rowlistcolors| a color series
+% defined by the command |\definecolorseries| of \pkg{xcolor} (and initialized
+% with the command |\resetcolorseries|\footnote{For the initialization, in the
+% following example, you have used the counter |iRow| which, when used in the
+% |\CodeBefore| (and in the |\CodeAfter|) corresponds to the number of rows of
+% the array: cf.~p~\pageref{iRow}. That leads to an adjustement of the gradation
+% of the colors to the size of the tabular.}).
%
-% \medskip
+% \smallskip
+% \begin{BVerbatim}[boxwidth=12cm,baseline=c]
+% \begin{NiceTabular}{c}
+% \CodeBefore
+% ~emphase#\definecolorseries{BlueWhite}{rgb}{last}{blue}{white}@
+% ~emphase#\resetcolorseries{\value{iRow}}{BlueWhite}@
+% ~emphase#\rowlistcolors{1}{BlueWhite!!+}@
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{BVerbatim}
+% \begin{NiceTabular}{c}
+% \CodeBefore
+% \definecolorseries{BlueWhite}{rgb}{last}{blue}{white}
+% \resetcolorseries[\value{iRow}]{BlueWhite}
+% \rowlistcolors{1}{BlueWhite!!+}
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{itemize}
+%
+% \vspace{1cm}
% We recall that all the color commands we have described don't color the cells
% which are in the ``corners''. In the following example, we use the key
% |corners| to require the determination of the corner \emph{north east} (NE).
@@ -3876,6 +3916,8 @@ version 2005/12/01 or later.
%
% \subsection{The counters iRow and jCol}
%
+% \label{iRow}
+%
% In the cells of the array, it's possible to use the LaTeX counters |iRow| and
% |jCol| which represent the number of the current row and the number of the
% current column\footnote{We recall that the exterior ``first row'' (if it
@@ -5888,6 +5930,77 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% \subsection*{Security test}
+%
+% Within the package \pkg{nicematrix}, we will have to test whether a cell of a
+% |{NiceTabular}| is empty. For the cells of the columns of type |p|, |b|, |m|,
+% |X| and |V|, we will test whether the cell is syntactically empty (that is to
+% say that there is only spaces between the ampersands |&|). That test will be
+% done with the command |\@@_test_if_empty:| by testing if the two first tokens
+% in the cells are (during the TeX process) are |\ignorespaces| and |\unskip|.
+%
+% However, if, one day, there is a changement in the implementation of
+% \pkg{array}, maybe that this test will be broken (and \pkg{nicematrix} also).
+%
+% That's why, by security, we will take a test in a small |{tabular}| composed
+% in the box |\l_tmpa_box| used as sandbox.
+%
+% \begin{macrocode}
+\@@_msg_new:nn { Internal~error }
+ {
+ A~fatal~internal~error~have~occurred.\\
+ If~you~see~this~message,~contact~the~author~of~the~package~'nicematrix'~
+ because~this~error~should~not~have~occurred.
+ }
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\@@_msg_new:nn { mdwtab~loaded }
+ {
+ The~packages~'mdwtab'~and~'nicematrix'~are~incompatible.~
+ This~error~is~fatal.
+ }
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_security_test:n #1
+ {
+ \peek_meaning:NTF \ignorespaces
+ { \@@_security_test_i:w }
+ { \@@_fatal:n { Internal~error } }
+ #1
+ }
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_security_test_i:w \ignorespaces #1
+ {
+ \peek_meaning:NF \unskip { \@@_fatal:n { Internal~error } }
+ #1
+ }
+% \end{macrocode}
+%
+% \bigskip
+% Here, the box |\l_tmpa_box| will be used as sandbox to take our security test.
+% \begin{macrocode}
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \@ifpackageloaded { mdwtab }
+ { \@@_fatal:n { mdwtab~loaded } }
+ {
+ \hbox_set:Nn \l_tmpa_box
+ {
+ \begin { tabular } { c > { \@@_security_test:n } c c }
+ text & & text
+ \end { tabular }
+ }
+ }
+ }
+% \end{macrocode}
%
% \bigskip
% \subsection*{Technical definitions}
@@ -8497,7 +8610,7 @@ version 2005/12/01 or later.
% we use the following technic:
% \begin{itemize}
% \item for the columns of type |p|, |m|, |b|, |V| (of \pkg{varwidth}) or |X|,
-% we test whether the cell is syntacticly empty with |\@@_test_if_empty:| and
+% we test whether the cell is syntactically empty with |\@@_test_if_empty:| and
% |\@@_test_if_empty_for_S:|
% \item if the width of the box |\l_@@_cell_box| (created with the content of
% the cell) is equal to zero, we consider the cell as empty (however,
@@ -10580,7 +10693,14 @@ version 2005/12/01 or later.
\peek_meaning:NT \unskip
{
\tl_gput_right:Nn \g_@@_cell_after_hook_tl
- { \box_set_wd:Nn \l_@@_cell_box \c_zero_dim }
+ {
+ \box_set_wd:Nn \l_@@_cell_box \c_zero_dim
+% \end{macrocode}
+% We put the following code in order to have a column with the correct width
+% even when all the cells of the column are empty.
+% \begin{macrocode}
+ \skip_horizontal:N \l_@@_col_width_dim
+ }
}
#1
}
@@ -11031,8 +11151,9 @@ version 2005/12/01 or later.
\@whilesw \if@tempswa \fi { \@tempswafalse \the \NC@list }
\tl_gclear:N \g_@@_preamble_tl
\exp_after:wN \@@_patch_m_preamble:n \the \@temptokena \q_stop
- \tl_gset_eq:NN #1 \g_@@_preamble_tl
\group_end:
+ \tl_set_eq:NN #1 \g_@@_preamble_tl
+ % \group_end:
}
% \end{macrocode}
%
@@ -12434,7 +12555,7 @@ version 2005/12/01 or later.
\bool_if:NTF \l_@@_in_code_after_bool
{ \@@_error_or_warning:n { TabularNote~in~CodeAfter } }
{
- \tl_if_empty:NF \g_@@_taublarnote_tl
+ \tl_if_empty:NF \g_@@_tabularnote_tl
{ \tl_gput_right:Nn \g_@@_tabularnote_tl { \par } }
\tl_gput_right:Nn \g_@@_tabularnote_tl { ##1 }
}
@@ -17359,7 +17480,7 @@ version 2005/12/01 or later.
{
{ \int_compare_p:nNn { #2 } = 1 }
{ \dim_compare_p:n { \l_@@_col_width_dim >= \c_zero_dim } }
- { ! \l_@@_respect_arraystretch_bool }
+ { ! \g_@@_rotate_bool } % added 2022/09/16
}
% \end{macrocode}
% When the block is mono-column in a column with a fixed width (eg |p{3cm}|).
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index cd44a1841f..d2b0a1ca61 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.pdf b/macros/latex/contrib/verifiche/verifiche-example.pdf
index 39518e617c..dfc37e08c8 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.pdf
+++ b/macros/latex/contrib/verifiche/verifiche-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.tex b/macros/latex/contrib/verifiche/verifiche-example.tex
index eba83beca0..6717f4403c 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.tex
+++ b/macros/latex/contrib/verifiche/verifiche-example.tex
@@ -1,7 +1,9 @@
% compile 2 times
\documentclass[a4paper, 10pt]{extarticle}
\usepackage[italian]{babel}
-\usepackage[solutions%show/hide the solutions
+\usepackage[
+ solutions,%show/hide the solutions
+ blue%color of solutions font
]{verifiche}
\usepackage[margin=3cm]{geometry}
\usepackage{lipsum}
@@ -213,7 +215,7 @@ A differenza dei numeri assoluti, la differenza tra due \finderror{numeri razio
\vfill
-\centering
+\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
Esercizio & Quesito \ref{es:ferropiuma}
@@ -236,6 +238,73 @@ Punteggio &&&&&&\\[1em]
\multicolumn{4}{c}{}&&Voto&\\[1em]
\cline{6-7}
\end{tabular}
+\end{center}
+
+
+\clearpage
+\pagestyle{empty}
+\vspace*{\fill}
+\begin{center}
+\huge Esempio \verb|multitest|
+\end{center}
+\vspace*{\fill}
+\clearpage
+
+%\pagestyle{plain}
+\pagestyle{mainverifiche}
+\institute{Scuola superiore di Paperopoli}
+\asyear[Anno accademico]{2022/2023}
+\duration[Tempo:]{2 ora}
+\testtype{Compito di matematica}
+\instruction{Risolvere il seguente esercizio nel più breve tempo possibile.\\}
+
+\pgfkeys{/pgf/number format/.cd,
+ %zerofill=true,
+ std,
+ %int detect,
+ precision=3,
+ %set decimal separator={$,$},
+ use comma,
+ set thousands separator={$\,$}
+}
+
+
+\begin{multitest}[4]
+%\pgfmathsetseed{\themultitestcounter*42}
+%\subtitle{Test \Alph{multitestcounter}}
+\printheading
+\pgfmathrandominteger{\ax}{-2}{2}
+\pgfmathrandominteger{\ay}{-2}{2}
+\pgfmathrandominteger{\bx}{-2}{2}
+\pgfmathrandominteger{\by}{-2}{2}
+
+\begin{esercizio}
+ Disegna, in un grafico cartesiano, i seguenti punti:
+ \[
+ A = (\ax; \ay) \quad B = (\bx; \by)
+ \]
+ e calcola la loro distanza.
+\end{esercizio}
+
+\begin{soluzione}
+ Si rappresentano i punti dati nel piano cartesiano
+ \begin{center}
+ \begin{tikzpicture}
+ \draw[gray] (-3,-3) grid (3,3);
+ \draw[->, thick] (-3,0) -- (3,0) node[right]{x};
+ \draw[->, thick] (0,-3) -- (0,3) node[above]{y};
+ \draw[red, very thick] (\ax, \ay) -- (\bx, \by);
+ \fill (\ax, \ay) circle (2pt) node[above] {A};
+ \fill (\bx, \by) circle (2pt) node[below] {B};
+ \end{tikzpicture}
+ \end{center}
+La distanza tra i due punti è data dall'equazione:
+\[
+d(A, B)= \sqrt{(x_A - x_B) ^2 + (y_A- y_B)^2} = \pgfmathparse{sqrt((\ax-\bx)^2+(\ay-\by)^2)}\pgfmathprintnumber\pgfmathresult
+\]
+\end{soluzione}
+\end{multitest}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/verifiche/verifiche.dtx b/macros/latex/contrib/verifiche/verifiche.dtx
index 60621ae295..a65baed8fd 100644
--- a/macros/latex/contrib/verifiche/verifiche.dtx
+++ b/macros/latex/contrib/verifiche/verifiche.dtx
@@ -16,12 +16,13 @@
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{verifiche} [2022/06/21 v5.2 .dtx verifiche file]
+%<package>\ProvidesPackage{verifiche} [2022/09/17 v6.0 .dtx verifiche file]
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english, italian]{babel}
+%\usepackage[a4paper]{geometry}
\usepackage{listings}
\lstset{
language=[LaTeX]TeX,
@@ -31,7 +32,7 @@
\inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion,
\headercandidatenamelabel, \checked, \finderror, \textandimage, \partialpt, \ptprefix, \ptlabel,
\partialptlabel, \partialptdelimiters, \ptdelimiters, \partialptprefix, \checkmaker, \ref, \tikz, \makecolumn,
- \columnseparation},
+ \columnseparation, \subtitle, \subtitlefont},
keywordstyle=\color{blue},
escapeinside={*@}{@*},
inputencoding=utf8,
@@ -70,7 +71,7 @@
%</driver>
% \fi
%
-% \CheckSum{934}
+% \CheckSum{997}
% \changes{v1.0}{2020/06/14}{Initial version.}
% \changes{v2.0}{2020/06/26}{Better performance in exercise environment.}
% \changes{v2.1}{2020/06/30}{Introduced closedquestionitem to control |item| symbol.}
@@ -118,6 +119,7 @@
% \DoNotIndex{\ProcessOptionsX, \protected@write, \ref, \refstepcounter, \reversemarginpar, \rule}
% \DoNotIndex{\scshape, setkeys, \sffamily, \sisetup, \spacedim, \string, \tikz, \underline, \usetikzlibrary}
% \DoNotIndex{\val, \xout, \y, \usebox, \romannumeral, \@ifundefined, \ltx@zero, \rc@default, \rc@extract@, \chardef, \llap}
+% \DoNotIndex{\toks1}
%
%
% \title{Il pacchetto \textsf{verifiche}%
@@ -185,6 +187,7 @@
%|notesttype| & non stampa il tipo di prova \\
%|nonumbered| & quesiti non numerati\\
%|noexercisept| & non stampa il punteggio degli esercizi, anche se dichiarati\\
+%|nosubtitle| & non stampa il sottotitolo\\
%|solutions| & stampa le soluzioni degli esercizi (si veda pag. \pageref{sec:solutions})\\
%|red| & il colore del font delle soluzioni è rosso\\
%|blue| & il colore del font delle soluzioni è blu\\
@@ -195,6 +198,7 @@
%Nel seguito si indicherà con "modalità test", il pacchetto caricato senza l'opzione |solutions|, altrimenti questa verrà detta "modalità soluzione" o "modalità solutions".
%
%\section{Intestazione}\label{sec:intestazione}
+%\subsection*{Comandi}
%Il pacchetto \textsf{verifiche} fornisce alcuni comandi per realizzare una semplice intestazione del documento che prevede il nome dell'istituto, l'anno scolastico il tipo di prova, le istruzioni e la durata della prova.
%Tutte queste voci vanno dichiarate prima del comando |\printheading| che si occupa della produzione del risultato finale.
%Le \emph{opzioni} del pacchetto permettono la soprressione della visualizzazione di alcune di queste voci.
@@ -263,7 +267,17 @@
%\fi
% che viene riportata sotto le istruzioni, al centro, anteponendo all'argomento il \meta{preambolo} (che di default riporta la dicitura ‘‘’Tempo della prova:’’). L'aspetto di questo comando può essere modificato ridefinendo il comando |\durationfont|.
%
-%\vspace{1em}
+%\DescribeMacro{\subtitle} Il comando |\subtitle| introduce un sottotitolo al di sotto di quanto visualizzato dal comando |\texttype|. L'aspetto ed il posizionamento di questo testo possono essere modificati ridefinendo il comando |\subtitlefont|.
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\subtitle*@\marg{testo del sottotitolo}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%
%\DescribeMacro{\printheading}\label{par:printheading}L'intestazione, ovvero l'output di tutti i comandi appena definiti, viene riportata nel documento solo in presenza del comando
%\iffalse
%<*example>
@@ -287,11 +301,13 @@
%|\testtype| & |\testtypefont| & Definisce il tipo di prova.\\
%|\instruction| & |\instrunctionfont|& Definisce le istruzioni delle prove.\\
%|\duration| & |\durationfont| & Definisce la durata della prova.\\
+%|\subtitle| & |\subtitlefont| & Definisce il sottotitolo.\\
%|\printheading| & & Stampa l'intestazione.\\
%\hline
%\end{tabular}
%\end{center}
%
+%\subsection*{Stili di pagina}
% Il pacchetto definisce due stili di pagina \emph{ad hoc}: |mainverifiche| e |verifiche|. Il primo è evocato quando si definisce il comando |\institute| e stampa sulla prima pagina l'argomento di questo comando. \DescribeMacro{verifiche}Il secondo, invece, può essere utilizzato dall'utente tramite il comando:
%\iffalse
%<*example>
@@ -705,7 +721,7 @@ dell'esercizio somministrato
% \fi
%
%
-% L'ambiente \DescribeMacro{closeduestion}|closeduestion*| è analogo al precedente, fatto salvo che è adibito a produrre elenchi in linea; gli elementi vengono spaziati orizzontalmente in modo da riempire tutto lo spazio disponibile. Anche in questo caso i comandi del pacchetto |enumitem| possono essere usati tra le opzioni dell'ambiente.
+% L'ambiente \DescribeEnv{closeduestion}|closeduestion*| è analogo al precedente, fatto salvo che è adibito a produrre elenchi in linea; gli elementi vengono spaziati orizzontalmente in modo da riempire tutto lo spazio disponibile. Anche in questo caso i comandi del pacchetto |enumitem| possono essere usati tra le opzioni dell'ambiente.
% \iffalse
%<*example>
% \fi
@@ -849,7 +865,7 @@ dell'esercizio somministrato
%</example>
% \fi
%
-%
+%\clearpage
%\section{Personalizzazione}
%Il pacchetto prevede un certo numero di comandi per gestire l'aspetto del documento finale.
%\subsection*{Font}
@@ -1060,7 +1076,89 @@ dell'esercizio somministrato
%</example>
%\fi
%\clearpage
+%\section{Test multipli}
+%Uno degli aspetti peculiari della produzione di test tramite software tipografici come \LaTeX{} è quello di poter usufruire della sua versatilità per produrre un numero definito a priori dall'utente di test diversi a partire da uno stesso schema di base.
+%
+%Le modalità e le strategie per fare questo sono molteplici.
+% Uno di questi metodi è utilizzare il pacchetto\footnote{https://ctan.org/pkg/datatool} |datatool| che permette di leggere un database (solitamente salvato come file |csv|) al cui interno sono contenute le domande, i dati ed eventualmente le soluzioni degli esercizi. Il pacchetto, poi, mette a disposizione il comando |\DTLforeach| che, interrogando tutto il database precedentemente costruito, permette di popolare un unico documento in cui si variano taluni elementi al fine di ottenere prove didattiche differenti. Una soluzione di questo tipo necessita di scrivere almeno due file. Il primo, con estensione |tex|, è la struttura della prova di verifica al cui interno presenta tutti i comandi per utilizzare i dati contenuti nel secondo file. Quest'ultimo è un file di tipo |csv| al cui interno, organizzate per colonne, si trovano tutte le domande che si vogliono personalizzare ed ogni riga corrisponde ad un differente compito.
+%Il pacchetto permette anche di generare un database direttamente interno a \LaTeX{}, senza quindi dover creare un file a parte, tramite i comandi:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLnewdb*@\marg{nome del database}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+% per creare un database chiamato |nome del database|; per creare una nuova riga, corrispondente ad una prova diversa, si usa il comando
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLnewrow*@\marg{nome del database}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%e ciascuna entrata di questa riga viene popolata introducendo un'entrata tramite il comando:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLnewdbentry*@\marg{nome del database}\marg{nome colonna}\marg{dato}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%Come nel caso precedente il database può essere utilizzato tramite il comando\footnote{Si rimanda alla documentazione ufficiale per ulteriori approfondimenti. Si faccia attenzione che l'ultima voce del secondo argomento del comando, ovvero |comando=nome colonna| non deve contenere spazi, si consiglia quindi di concludere la riga con il carattere \%}
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLforeach**@\marg{nome del database}\marg{comando=nome colonna}\marg{dato}\marg{testo}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%dichiarato subito dopo |\begin{document}| ed il |testo| non è altro che l'intero corpo del documento.
+%\subsection*{L'ambiente |multitest|}
+% Il pacchetto |verifiche| mette a disposizione una soluzione interna per generare un numero definito dall'utente di prove personalizzate e che si basa sugli strumenti messi a disposizione da |pgf| e |tikz|.
+%\DescribeEnv{multitest}L'ambiente |multitest| racchiude all'interno del suo corpo lo schema della prova che si vuole somministrare ed eventualmente i comandi che permettono personalizzare la prova.
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\begin{multitest}[n]
+...
+\end{multitest}
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%L'ambiente accetta un argomento opzionale |n| che è il numero di prove che si vogliono realizzare. Normalmente l'ambiente viene aperto dopo |\begin{document}| e chiuso prima di |\end{document}|.
%
+%\bigskip
+%La personalizzazione dei dati del problema può avvenire tramite i comandi di gestione dei numeri casuali e delle liste casuali messi a disposizione dal pacchetto |pgf| che vengono di seguito riassunti lasciando il loro approfondimento alla documentazione ufficiale\footnote{https://www.ctan.org/pkg/pgf}.
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\pgfmathrnd
+\pgfmathrand
+\pgfmathrandom{x,y}
+\pgfmathgeneratepseudorandomnumber
+\pgfmathrandominteger*@\marg{macro}\marg{min}\marg{max}@*
+\pgfmathdeclarerandomlist*@\marg{nome lista}\{ \marg{item 1} \marg{item 2} ...\}@*
+\pgfmathrandomitem*@\marg{macro}\marg{nome lista}@*
+\pgfmathsetseed*@\marg{numero intero}@*
+\end{lstlisting}
+%Il comando inizializza il seme dei numeri casuali col numero del compito prodotto, in modo tale da produrre gli stessi compiti casuali ad ogni compilazione.
+%\DescribeMacro{multitestcounter}Il contatore |multitestcounter| permette di identificare il numero della traccia generata.
+%\iffalse
+%</example>
+%\fi
+%\clearpage
% \StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex}
% \section{Implementation}
%\subsection{Require packages}
@@ -1111,6 +1209,7 @@ dell'esercizio somministrato
\newif\ifsolutionscolor\solutionscolorfalse
\newif\ifcandidatename\candidatenametrue
\newif\iftesttype\testtypetrue
+\newif\ifsubtitle\subtitletrue
\newif\ifshowinstructiondelimiter\showinstructiondelimiterfalse
\newif\ifprintedheading\printedheadingfalse
\newif\ifexercisesnumbered\exercisesnumberedtrue
@@ -1132,6 +1231,7 @@ dell'esercizio somministrato
\DeclareOptionX{noasyear}[]{\asyearfalse}
\DeclareOptionX{nocandidatename}[]{\candidatenamefalse}
\DeclareOptionX{notesttype}[]{\testtypefalse}
+\DeclareOptionX{nosubtitle}[]{\subtitlefalse}
\DeclareOptionX{nonumbered}[]{\exercisesnumberedfalse}
\DeclareOptionX{noexercisept}[]{\showexerciseptfalse}
\DeclareOptionX{color}[red]{\solutionscolortrue\def\solutionscolor{#1}}
@@ -1234,6 +1334,8 @@ dell'esercizio somministrato
\showinstructiondelimitertrue}%
\newcommand{\testtype}[1]{%
\gdef\@testtype{#1}}
+\newcommand{\subtitle}[1]{%
+ \gdef\@subtitle{#1}}%
\newcommand{\instruction}[1]{%
\gdef\@instruction{\ignorespaces#1}%
\showinstructiondelimitertrue}
@@ -1263,6 +1365,10 @@ dell'esercizio somministrato
\bgroup\hspace*{\fill}\scshape\huge#1\hspace*{\fill}\egroup}
% \end{macrocode}
% \begin{macrocode}
+\newcommand{\subtitlefont}[1]{%
+ \bgroup\hspace*{\fill}\Large\scshape#1\hspace*{\fill}\egroup}%
+% \end{macrocode}
+% \begin{macrocode}
\newcommand{\instructiondelimiter}{%
\hrulefill}
% \end{macrocode}
@@ -1420,12 +1526,18 @@ dell'esercizio somministrato
%\fi
% \begin{macrocode}
\newcommand{\ps@mainverifiche}{%
- \renewcommand\@oddhead{\parbox{\textwidth}{\centering \institutefont{\@institute}}}%
- \renewcommand\@evenhead{}%
+ \renewcommand\@oddhead{%
+ \parbox{\textwidth}{\centering \institutefont{\@institute}}%
+ }%
+ \renewcommand\@evenhead{}%
+ \renewcommand{\@oddfoot}{\hfill\normalfont\textrm\thepage\hfill}%
+ \let\evenfoot\@oddfoot%
}
\newcommand{\ps@verifiche}{%
- \renewcommand\@oddhead{
- \ifodd\thepage\parbox{\textwidth}{\headerfont\@header}\fi}%
+ \renewcommand\@oddhead{
+ \ifodd\thepage\parbox{\textwidth}{\headerfont\@header}\fi}%
+ \renewcommand{\@oddfoot}{\hfill\normalfont\textrm\thepage\hfill}%
+ \let\evenfoot\@oddfoot%
}
% \end{macrocode}
%
@@ -1439,6 +1551,7 @@ dell'esercizio somministrato
{\ifcandidatename\@header\par\vspace{\baselineskip}\fi}%
{\ifdefined\@asyear\ifasyear\asyearfont{\@asyearpreamble\space\@asyear}\par\vspace{\baselineskip}\fi\fi}%
{\ifdefined\@testtype\iftesttype\testtypefont{\@testtype}\par\fi\fi}%
+ {\ifdefined\@subtitle\ifsubtitle\vspace{\baselineskip}\subtitlefont{\@subtitle}\par\fi\fi}%
{\ifshowinstructiondelimiter\noindent\instructiondelimiter\par\fi}%
{\ifdefined\@instruction\ifinstruction\instrunctionfont{\noindent\@instruction}}\par\fi\fi%
{\ifdefined\@duration\ifduration\durationfont\@duration\par\fi\fi}%
@@ -1774,5 +1887,22 @@ dell'esercizio somministrato
% \end{macrocode}
%\end{macro}
%
+%\begin{environment}{multitest} The environment |multitest| handle the possibility of generating variation of the same test.
+% \begin{macrocode}
+\NewDocumentEnvironment{multitest}{O{1} +b}{
+ \newcounter{multitestcounter}
+ \toks1={\foreach \i in {1,...,#1}}
+ \the\toks1{%
+ \setcounter{multitestcounter}{\i}%
+ \setcounter{page}{1}%
+ \setcounter{exercisenumber}{0}%
+ \pgfmathsetseed{\i}%
+ #2%
+ \clearpage%
+ }%
+}{}
+% \end{macrocode}
+%\end{environment}
+
% \Finale
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/verifiche/verifiche.pdf b/macros/latex/contrib/verifiche/verifiche.pdf
index 6d47fdf24b..0306aa64ed 100644
--- a/macros/latex/contrib/verifiche/verifiche.pdf
+++ b/macros/latex/contrib/verifiche/verifiche.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 8f8cc3876b..ac068b909e 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.79
+## Babel 3.80
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@ is a set of ini files for about 250 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.79 are described in:
+Changes in version 3.80 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.79.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.80.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -46,13 +46,21 @@ respective authors.
### Summary of latest changes
```
-3.79 2022-08-29
- * Fixes:
- - Issues of tcolorbox in RTL (graphics layout), thanks to Salim
- Bou (@seloumi) (#186).
- - \footnote with babel bidi=default raises an error in LuaLaTeX (#187).
- - Extra blank spaces with Hebrew calendar.
- * 'odia' is now the preferred name for 'oriya', following the CLDR.
+3.80 2022-09-16
+ * Ethiopic calendar.
+ * Hungarian date in the superessive case.
+ * Captions for Hausa by Abubakar Yusuf (@fatherofcamels)
+ * Fixes in dates:
+ - Latin: In `pdftex`, numerals were printed in arabic form.
+ - Thai: Buddhist and Gregorian were reversed.
+ - Persian: The Persian calendar was not loaded.
+ * More updates to the CLDR 41: Galician, Swiss German, Gujarati,
+ Hausa, Hebrew, Hindi, Croatian, Upper Sorbian, Hungarian,
+ Armenian, Interlingua, Indonesian, Igbo, Sichuan Yi, Icelandic,
+ Italian, Japanese, Ngomba, Georgian, Kabyle, Kabuverdianu,
+ Kazakh, Kako, Kalaallisut, Khmer, Kannada, Korean, Konkani,
+ Kashmiri, Colognian, Cornish, Kyrgyz, Lakota, Lao, Northern
+ Luri, Lithuanian, Macedonian, Malayalam, Mongolian.
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 1e7004c471..c633f24b9e 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2022/08/29 v3.79 The Babel package]
+\ProvidesFile{babel.dtx}[2022/09/17 v3.80 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -460,16 +460,16 @@ except if there is a real reason to do so:
Examples of cases where |main| is useful are the following.
-\begin{note}
+\begin{example}
Some classes load \babel{} with a hardcoded language option. Sometimes,
the main language can be overridden with something like that before
|\documentclass|:
\begin{verbatim}
\PassOptionsToPackage{main=english}{babel}
\end{verbatim}
-\end{note}
+\end{example}
-\begin{warning}
+\begin{note}
Languages may be set as global and as package option at the same
time, but in such a case you should set explicitly the main language
with the package option |main|:
@@ -477,7 +477,7 @@ the main language can be overridden with something like that before
\documentclass[_italian_]{book}
\usepackage[ngerman,_main=italian_]{babel}
\end{verbatim}
-\end{warning}
+\end{note}
\begin{warning}
In the preamble the main language has \textit{not} been selected,
@@ -519,7 +519,7 @@ _\foreignlanguage{french}{français}_.
With \xetex{} and \luatex, the following bilingual, single script
document in UTF-8 encoding just prints a couple of ‘captions’ and
|\today| in Danish and Vietnamese. No additional packages are
- required.
+ required, because the default font supports both languages.
\setengine{luatex/xetex}
\begin{verbatim}
\documentclass{article}
@@ -528,11 +528,11 @@ _\usepackage[vietnamese,danish]{babel}_
\begin{document}
-\prefacename{} -- \alsoname{} -- \today
+\prefacename, \alsoname, \today.
\selectlanguage{vietnamese}
-\prefacename{} -- \alsoname{} -- \today
+\prefacename, \alsoname, \today.
\end{document}
\end{verbatim}
@@ -583,7 +583,8 @@ _\foreignlanguage{spanish}{Español}_.
Instead of its name, you may prefer to select the language with the
corresponding BCP47 tag. This alternative, however, must be activated
explicitly, because a two- or tree-letter word is a valid name for a
-language (eg, |yi|). See section \ref{bcp47} for further details.
+language (eg, |lu| can be the locale name with tag |khb| or the tag for
+|lubakatanga|). See section \ref{bcp47} for further details.
\end{note}
\subsection{Modifiers}
@@ -3009,7 +3010,7 @@ the current item, so that |\LocaleForEach{\message{ **#1** }}| just
shows the loaded |ini|’s.
\Describe{ensureinfo=off}{}
-\New{3.75} Previously, |ini| files are loaded only with |\babelprovide|
+\New{3.75} Previously, |ini| files were loaded only with |\babelprovide|
and also when languages are selected if there is a |\babelfont| or they
have not been explicitly declared. Now the |ini| files are loaded (and
therefore the corresponding data) even if these two conditions are not
@@ -3206,8 +3207,8 @@ transforms = transliteration.omega (\withsigmafinal) sigma.final
This applies |transliteration.omega| always, but |sigma.final| only when
|\withsigmafinal| is set.
-Here are the transforms currently predefined. (More to follow
-in future releases.)
+Here are the transforms currently predefined. (A few may still require
+some fine-tuning. More to follow in future releases.)
\begingroup
\def\trans#1#2#3{%
@@ -5175,8 +5176,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.79>>
-%<<date=2022/08/29>>
+%<<version=3.80>>
+%<<date=2022/09/17>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -5944,12 +5945,13 @@ help from Bernd Raichle, for which I am grateful.
%
% For the option safe we use a different approach -- |\bbl@opt@safe|
% says which macros are redefined (B for bibs and R for refs). By
-% default, both are set.
+% default, both are currently set, but in a future release it will be set to
+% |none|.
%
% \begin{macrocode}
\ifx\bbl@opt@safe\@undefined
\def\bbl@opt@safe{BR}
- % \let\bbl@opt@safe\@empty % -- By September
+ % \let\bbl@opt@safe\@empty % Pending of \cite
\fi
% \end{macrocode}
%
@@ -8740,6 +8742,25 @@ help from Bernd Raichle, for which I am grateful.
{\bbl@tolower\@empty}{\bbl@toupper\@empty}}%
\gdef\bbl@tolower{\csname\languagename @bbl@lc\endcsname}%
\gdef\bbl@toupper{\csname\languagename @bbl@uc\endcsname}}}
+% A temporary hack:
+\ifx\BabelCaseHack\@undefined
+\AtBeginDocument{%
+ \bbl@exp{%
+ \\\in@{\string\@uclclist}%
+ {\expandafter\meaning\csname MakeUppercase \endcsname}}%
+ \ifin@\else
+ \expandafter\let\expandafter\bbl@newuc\csname MakeUppercase \endcsname
+ \protected\@namedef{MakeUppercase }#1{{%
+ \def\reserved@a##1##2{\let##1##2\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\bbl@newuc{#1}}\reserved@a}}%
+ \expandafter\let\expandafter\bbl@newlc\csname MakeLowercase \endcsname
+ \protected\@namedef{MakeLowercase }#1{{%
+ \def\reserved@a##1##2{\let##2##1\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\bbl@newlc{#1}}\reserved@a}}%
+ \fi}
+\fi
% \end{macrocode}
%
% \begin{macrocode}
@@ -9152,7 +9173,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@toglobal\bbl@captionslist
\fi
\fi}
-% \def\bbl@setcaption@s#1#2#3{} % TODO. Not yet implemented
+% \def\bbl@setcaption@s#1#2#3{} % TODO. Not yet implemented (w/o 'name')
% \end{macrocode}
%
% \subsection{Macros common to a number of languages}
@@ -9712,14 +9733,14 @@ help from Bernd Raichle, for which I am grateful.
\bbl@vforeach{captions,date,import,main,script,language,%
hyphenrules,linebreaking,justification,mapfont,maparabic,%
mapdigits,intraspace,intrapenalty,onchar,transforms,alph,%
- Alph,labels,labels*,calendar}%
+ Alph,labels,labels*,calendar,date}%
{\bbl@csarg\let{KVP@##1}\@nnil}%
\global\let\bbl@release@transforms\@empty
\let\bbl@calendars\@empty
\global\let\bbl@inidata\@empty
\global\let\bbl@extend@ini\@gobble
\gdef\bbl@key@list{;}%
- \bbl@forkv{#1}{% TODO - error handling
+ \bbl@forkv{#1}{%
\in@{/}{##1}%
\ifin@
\global\let\bbl@extend@ini\bbl@extend@ini@aux
@@ -9738,6 +9759,9 @@ help from Bernd Raichle, for which I am grateful.
\ifx\bbl@screset\@undefined
\bbl@ldfinit
\fi
+ % == date (as option) ==
+ % \ifx\bbl@KVP@date\@nnil\else
+ % \fi
% ==
\let\bbl@lbkflag\relax % \@empty = do setup linebreak
\ifcase\bbl@howloaded
@@ -9762,6 +9786,7 @@ help from Bernd Raichle, for which I am grateful.
\xdef\bbl@KVP@import{\bbl@initoload}%
\fi}%
{}%
+ \let\bbl@KVP@date\@empty
\fi
\ifx\bbl@KVP@captions\@nnil
\let\bbl@KVP@captions\bbl@KVP@import
@@ -10128,7 +10153,7 @@ help from Bernd Raichle, for which I am grateful.
\fi
\fi
\StartBabelCommands*{#1}{date}%
- \ifx\bbl@KVP@import\@nnil
+ \ifx\bbl@KVP@date\@nnil
\bbl@exp{%
\\\SetString\\\today{\\\bbl@nocaption{today}{#1today}}}%
\else
@@ -10154,7 +10179,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@read@ini{\bbl@KVP@captions}2% % Here all letters cat = 11
\EndBabelCommands
\fi
- \ifx\bbl@KVP@import\@nnil\else
+ \ifx\bbl@KVP@date\@nnil\else
\StartBabelCommands*{#1}{date}%
\bbl@savetoday
\bbl@savedate
@@ -10267,6 +10292,9 @@ help from Bernd Raichle, for which I am grateful.
\bbl@trim\toks@{#2}%
\bbl@xin@{;\bbl@section/\bbl@tempa;}{\bbl@key@list}%
\ifin@\else
+ \bbl@xin@{,identification/include.}%
+ {,\bbl@section/\bbl@tempa}%
+ \ifin@\edef\bbl@required@inis{\the\toks@}\fi
\bbl@exp{%
\\\g@addto@macro\\\bbl@inidata{%
\\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}%
@@ -10292,6 +10320,16 @@ help from Bernd Raichle, for which I am grateful.
% |\babelprovide| it's either 1 or 2.
%
% \begin{macrocode}
+\def\bbl@loop@ini{%
+ \loop
+ \if T\ifeof\bbl@readstream F\fi T\relax % Trick, because inside \loop
+ \endlinechar\m@ne
+ \read\bbl@readstream to \bbl@line
+ \endlinechar`\^^M
+ \ifx\bbl@line\@empty\else
+ \expandafter\bbl@iniline\bbl@line\bbl@iniline
+ \fi
+ \repeat}
\ifx\bbl@readstream\@undefined
\csname newread\endcsname\bbl@readstream
\fi
@@ -10317,17 +10355,16 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@inistore\bbl@inistore@min % Remember it's local
\fi
\def\bbl@section{identification}%
+ \let\bbl@required@inis\@empty
\bbl@exp{\\\bbl@inistore tag.ini=#1\\\@@}%
\bbl@inistore load.level=#2\@@
- \loop
- \if T\ifeof\bbl@readstream F\fi T\relax % Trick, because inside \loop
- \endlinechar\m@ne
- \read\bbl@readstream to \bbl@line
- \endlinechar`\^^M
- \ifx\bbl@line\@empty\else
- \expandafter\bbl@iniline\bbl@line\bbl@iniline
+ \bbl@loop@ini
+ \ifx\bbl@required@inis\@empty\else
+ \bbl@replace\bbl@required@inis{ }{,}%
+ \bbl@foreach\bbl@required@inis{%
+ \openin\bbl@readstream=##1.ini
+ \bbl@loop@ini}%
\fi
- \repeat
% == Process stored data ==
\bbl@csarg\xdef{lini@\languagename}{#1}%
\bbl@read@ini@aux
@@ -10410,7 +10447,7 @@ help from Bernd Raichle, for which I am grateful.
\ifx\bbl@tempa\relax\else
\bbl@replace\bbl@tempa{=}{}%
\ifx\bbl@tempa\@empty\else
- \xdef\bbl@calendars{,\bbl@tempa}%
+ \xdef\bbl@calendars{\bbl@calendars,\bbl@tempa}%
\fi
\bbl@exp{%
\def\<bbl@inikv@#1>####1####2{%
@@ -10762,7 +10799,6 @@ help from Bernd Raichle, for which I am grateful.
% and therefore always converted with other calendars. TODO. Document
%
% \begin{macrocode}
-% Arguments are _not_ protected.
\let\bbl@calendar\@empty
\DeclareRobustCommand\localedate[1][]{\bbl@localedate{#1}}
\def\bbl@localedate#1#2#3#4{%
@@ -10774,6 +10810,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@ifunset{bbl@calpr@\languagename}{}{\bbl@cl{calpr}},%
#1}%
\bbl@replace\bbl@tempe{ }{}%
+ \bbl@replace\bbl@tempe{CONVERT}{convert=}% Hackish
\bbl@replace\bbl@tempe{convert}{convert=}%
\let\bbl@ld@calendar\@empty
\let\bbl@ld@variant\@empty
@@ -23167,10 +23204,11 @@ Babel.cjk_breaks = {
%</ca-persian>
% \end{macrocode}
%
-% \section{Coptic}
+% \section{Coptic and Ethiopic}
%
% Adapted from \texttt{jquery.calendars.package-1.1.4}, written by Keith
-% Wood, 2010. Dual license: GPL and MIT.
+% Wood, 2010. Dual license: GPL and MIT. The only difference is the
+% epoch.
%
% \begin{macrocode}
%<*ca-coptic>
@@ -23187,6 +23225,20 @@ Babel.cjk_breaks = {
\edef#6{\fp_eval:n{\bbl@tempc - (#5 - 1) * 30 + 1}}}
\ExplSyntaxOff
%</ca-coptic>
+%<*ca-ethiopic>
+\ExplSyntaxOn
+<@Compute Julian day@>
+\def\bbl@ca@ethiopic#1-#2-#3\@@#4#5#6{%
+ \edef\bbl@tempd{\fp_eval:n{floor(\bbl@cs@jd{#1}{#2}{#3}) + 0.5}}%
+ \edef\bbl@tempc{\fp_eval:n{\bbl@tempd - 1724220.5}}%
+ \edef#4{\fp_eval:n{%
+ floor((\bbl@tempc - floor((\bbl@tempc+366) / 1461)) / 365) + 1}}%
+ \edef\bbl@tempc{\fp_eval:n{%
+ \bbl@tempd - (#4-1) * 365 - floor(#4/4) - 1724220.5}}%
+ \edef#5{\fp_eval:n{floor(\bbl@tempc / 30) + 1}}%
+ \edef#6{\fp_eval:n{\bbl@tempc - (#5 - 1) * 30 + 1}}}
+\ExplSyntaxOff
+%</ca-ethiopic>
% \end{macrocode}
%
% \section{Buddhist}
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index e33a43e916..767fe23eb1 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2022/08/29}
+\def\filedate{2022/09/17}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -137,6 +137,7 @@
\file{nil.ldf}{\from{babel.dtx}{nil}}
\file{babel-ca-buddhist.tex}{\from{babel.dtx}{ca-buddhist}}
\file{babel-ca-coptic.tex}{\from{babel.dtx}{ca-coptic}}
+ \file{babel-ca-ethiopic.tex}{\from{babel.dtx}{ca-ethiopic}}
\file{babel-ca-hebrew.tex}{\from{babel.dtx}{ca-hebrew}}
\file{babel-ca-islamic.tex}{\from{babel.dtx}{ca-islamic}}
\file{babel-ca-persian.tex}{\from{babel.dtx}{ca-persian}}
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index d742702467..6741e73fcc 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index 95360a381a..53b5f46b8e 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2022/08/29 v3.79]
+\ProvidesFile{bbcompat.dtx}[2022/09/17 v3.80]
%</dtx>
%
%% File 'bbcompat.dtx'