summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/babel-contrib/italian/README.txt36
-rw-r--r--macros/latex/contrib/babel-contrib/italian/italian.dtx2237
-rw-r--r--macros/latex/contrib/babel-contrib/italian/italian.pdfbin471835 -> 504924 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx9
-rw-r--r--macros/latex/contrib/easybook/easybook.ins4
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin589403 -> 589428 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex50
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md10
-rw-r--r--macros/latex/contrib/l3build/README.md6
-rw-r--r--macros/latex/contrib/l3build/l3build-arguments.lua16
-rw-r--r--macros/latex/contrib/l3build/l3build-aux.lua5
-rw-r--r--macros/latex/contrib/l3build/l3build-check.lua26
-rw-r--r--macros/latex/contrib/l3build/l3build-clean.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-ctan.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-file-functions.lua4
-rw-r--r--macros/latex/contrib/l3build/l3build-help.lua4
-rw-r--r--macros/latex/contrib/l3build/l3build-install.lua3
-rw-r--r--macros/latex/contrib/l3build/l3build-manifest-setup.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-manifest.lua4
-rw-r--r--macros/latex/contrib/l3build/l3build-stdmain.lua22
-rw-r--r--macros/latex/contrib/l3build/l3build-tagging.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-typesetting.lua17
-rw-r--r--macros/latex/contrib/l3build/l3build-unpack.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-upload.lua14
-rw-r--r--macros/latex/contrib/l3build/l3build-variables.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-zip.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build.16
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx8
-rw-r--r--macros/latex/contrib/l3build/l3build.ins4
-rwxr-xr-xmacros/latex/contrib/l3build/l3build.lua14
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin748206 -> 747742 bytes
-rw-r--r--macros/latex/contrib/overpic/overpic.dtx70
-rw-r--r--macros/latex/contrib/overpic/overpic.pdfbin371275 -> 404377 bytes
33 files changed, 1412 insertions, 1171 deletions
diff --git a/macros/latex/contrib/babel-contrib/italian/README.txt b/macros/latex/contrib/babel-contrib/italian/README.txt
index 9537d10159..4f00b6e963 100644
--- a/macros/latex/contrib/babel-contrib/italian/README.txt
+++ b/macros/latex/contrib/babel-contrib/italian/README.txt
@@ -1,17 +1,37 @@
-The italian.dtx file has version number 1.4.07 dated 2022-03-27.
+The italian.dtx file has version number 1.5.00 dated 2024-01-03.
It is and update of a series fo files starting with the first one in 1990
-Copyright (C) 1990-2022 Claudio Beccari
+Copyright (C) 1990-2024 Claudio Beccari
Maintainer Claudio Beccari
-Contact: claudio dot beccari at gmail dot com
+Contact: claudio.beccari at gmail.com
-This bundle contains the source file italian.dtx and this README.txt file. By running pdfLaTeX on this italian.dtx file you obtain both the documentation italian.pdf and the language description file italian.ldf.
+This bundle contains the source file italian.dtx and this
+README.txt file. By running pdfLaTeX on this italian.dtx file
+you obtain both the documentation italian.pdf and the language
+description file italian.ldf.
Description
-This file contain the necessary and supplementary data for typesetting documents in Italian with babel as the language manager.
-It defines the infix words, the date in various formats. Optionally lets the user activate a number of shorthands to perform routine frequent tasks by means of the active character " that can be freely activated and deactivated.
-It defines an intelligent mathematical comma that recognises if it has to perform as a punctuation mark or as a decimal separator. Another user command activates or deactivates some commands to supply a minimum of the performance that is fully provided by the siunitx package. The file allows using babel also when a document is typeset with XeLaTeX or LuaLaTeX, even if, according to the author, polyglossia is preferred when typesetting documents in Italian, in spite of the fact that gloss-italian.ldf for polyglossia provides less facilities than the ones available with babel.
+This file contain the necessary and supplementary data for
+typesetting documents in Italian with babel as the language
+manager.
+It defines the infix words, the date in various formats.
+Optionally lets the user activate a number of shorthands to
+perform routine frequent tasks by means of the active
+character " that can be freely activated and deactivated.
+It defines an intelligent mathematical comma that recognises
+if it has to perform as a punctuation mark or as a decimal
+separator.
+It defines an 'english" environment that deactivates the
+intelligent comma functionality, but it is the user
+responsibility to use the decimal point in any fractional
+numerical string.
+Another user command activates or deactivates some commands
+to supply a minimum of the performance that is fully provided
+by the siunitx and similar packages. The file allows using
+babel also when a document is typeset with XeLaTeX or LuaLaTeX.
-The documentation that is provided by running LaTeX on the italian.dtx file provides full documentation of every facility provided by the italian.ldf file.
+The documentation that is provided by running LaTeX on the
+italian.dtx file provides full documentation of every facility
+provided by the italian.ldf file.
The documentation contains the licence clauses.
diff --git a/macros/latex/contrib/babel-contrib/italian/italian.dtx b/macros/latex/contrib/babel-contrib/italian/italian.dtx
index 45ab2375c8..e21225605b 100644
--- a/macros/latex/contrib/babel-contrib/italian/italian.dtx
+++ b/macros/latex/contrib/babel-contrib/italian/italian.dtx
@@ -10,14 +10,14 @@
\preamble
------------------------------------------
The Italian support for babel: italian.ldf.
-Copyright (C) 1990-2022 Claudio Beccari
+Copyright (C) 1990-2024 Claudio Beccari
All rights reserved
License information appended.
\endpreamble
\postamble
-Copyright (C) 1990-2022 Claudio Beccari
+Copyright (C) 1990-2024 Claudio Beccari
It may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
@@ -51,8 +51,8 @@ This file is a self unpacking one.
%
% \fi
% \iffalse
-% Tell the \LaTeX\ system who we are and write an entry on the
-% transcript.
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
%\fi
%\iffalse
%<*driver>
@@ -60,25 +60,25 @@ This file is a self unpacking one.
%</driver>
%<code>\ProvidesLanguage{italian}
%<*code>
- [2022/03/27 v.1.4.07 Italian support for the babel system]
+ [2024/01/03 v.1.5.00 Italian support for the babel system]
%</code>
%%
%% Please report errors to: claudio dot beccari at gmail dot com
%%
%
-% This file is part of the babel system, it provides the source
-% code for the Italian language definition file.
+% This file is part of the babel system, it provides the
+% source code for the Italian language definition file.
% The original version of this file was written by Maurizio
% Codogno, (mau@beatles.cselt.stet.it).
-% The package was completely rewritten by Claudio Beccari, who added
-% several features.
+% The package was completely rewritten by Claudio Beccari,
+% who added several features.
%<*driver>
\documentclass{ltxdoc}
\GetFileInfo{italian.dtx}
\title{The Italian support for babel}
\date{\fileversion\space--- \filedate}
\author{\makebox[\textwidth]{Claudio Beccari ---
-email: \texttt{claudio dot beccari at gmail dot com}}}
+email: \texttt{claudio.beccari at gmail.com}}}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{booktabs}
@@ -99,7 +99,7 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
%</driver>
%\fi
%
-% \CheckSum{798}
+% \CheckSum{761}
%
% \changes{italian-0.99}{1990/07/11}{First version, from english.doc}
% \changes{italian-1.0}{1991/04/23}{Modified for babel 3.0}
@@ -178,211 +178,278 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
% \changes{italian-1.4.06}{2022-03-23}{Eliminated several macros in the
% intelligent comma definition that made the whole group difficult to
% understand and maintain.}
-% \changes{italian-1.4.07}{2022-03-27}{Added the necessary code to have
-% the intelligent comma work correctly with the |{,}| group}
+% \changes{italian-1.4.07}{2022-03-27}{Added the necessary code
+% to have the intelligent comma work correctly with the |{,}|
+% group}
+% \changes{italian 1.4.08}{2024-01-03}{Modified intelligent
+% comma}
%
% \section{The Italian language}
-% \textbf{Important notice}: This language description file relies on
-% functionalities provided by a modern TeX system distribution with
-% pdfLaTeX working in extended mode (eTeX commands available); it
-% should perform correctly also with XeLaTeX and LuaLaTeX; tests have
-% been made also with the latter programs, but it was really tested in
-% depth with |babel| and pdfLaTeX.
+% \textbf{\color{red}Important notice}: This language
+% description file relies on functionalities provided by a
+% modern TeX system distribution with pdfLaTeX working in
+% extended mode (eTeX commands available); it should perform
+% correctly also with XeLaTeX and LuaLaTeX; tests have
+% been made also with the latter programs, but it was really
+% tested in depth with |babel| and pdfLaTeX.
%
% \bigskip
%
-% The file \file{\filename}\footnote{The file described in this
-% section has version number \fileversion\ and was last revised on
-% \filedate. The original author is Maurizio Codogno.
-% It was initially revised
-% by Johannes Braams and then completely rewritten by Claudio Beccari}
-% defines all the required and some optional language-specific
-% macros for the Italian language.
+% The file \file{\filename}\footnote{The file described in
+% this section has version number \fileversion\ and was last
+% revised on \filedate. The original author is Maurizio
+% Codogno. It was initially revised by Johannes Braams and
+% then completely rewritten by Claudio Beccari}
+% defines all the required and some optional language-
+% specific macros for the Italian language.
%
% \begin{table}[!htb]\centering
% \begin{tabular}{cp{90mm}}
% \toprule
-% |"| & inserts a compound word mark where hyphenation is legal;
-% it allows etymological hyphenation which is recommended
-% for technical terms, chemical names and the like; it
-% does not work if the next character is represented with
-% a control sequence or is an accented character.\\
+% |"| & inserts a compound word mark where hyphenation is
+% legal; it allows etymological hyphenation which is
+% recommended for technical terms, chemical names and
+% the like; it does not work if the next character is
+% represented with a control sequence or is an accented
+% character.\\
% \texttt{\string"\string|}
-% & the same as the above without the limitation on
-% characters represented with control sequences or accented
-% ones.\\
-% |""| & inserts open quotes ``.\\ %^^A'' emacs matching
-% |"<| & inserts open guillemets without trailing space.\\
-% |">| & inserts closed guillemets without leading space.\\
-% |"/| & allows hyphenation of both words connected with slash.\\
-% |"-| & allows hyphenation of both words connected with a short dash
-% (\emph{trattino copulativo}, in Italian)\\
+% & the same as the above without the limitation on
+% characters represented with control sequences or
+% accented ones.\\
+% |""|& inserts open quotes ``.\\
+% |"<|& inserts open guillemets without trailing space.\\
+% |">|& inserts closed guillemets without leading space.\\
+% |"/|& allows hyphenation of both words connected with
+% slash.\\
+% |"-|& allows hyphenation of both words connected with a
+% short dash (\emph{trattino copulativo}, in Italian)\\
% \bottomrule
% \end{tabular}
-% \caption{shorthands for the Italian language. These shorthands are
-% available only if command \texttt{\string\setactivedoublequote} is
-% given after loading \babel\ and before
-% \texttt{\string\begin\{document\}}.}\label{t:itshrtct}
+% \caption{shorthands for the Italian language. These
+% shorthands are available only if command
+% \texttt{\string\setactivedoublequote} is given after
+% loading \babel\ and before
+% \texttt{\string\begin\{document\}}.}\label{t:itshrtct}
% \end{table}
%
-% The features of this language definition file are the following:
+% The features of this language definition file are the
+% following:
% \begin{enumerate}
-% \item The Italian hyphenation is invoked, provided that the Italian
-% hyphenation pattern files were loaded when the specific format file
-% was built. This is normally done with the initial installation of
-% \TeX\-Live, but other distributions may not do so.
-% \item The language dependent infix words to be inserted by such
-% commands as |\chapter|, |\caption|, |\tableofcontents|,
-% etc. are redefined in accordance with the Italian
-% typographical practice.
-% \item Since Italian can be easily hyphenated and Italian practice
-% allows to break a word before the last two letters, hyphenation
-% parameters have been set accordingly, but a very high demerit
-% value has been set in order to avoid word breaks in the
-% penultimate line of a paragraph. Specifically the |\clubpenalty|,
-% and the |\widowpenalty| are set to rather high values and
-% |\finalhyphendemerits| is set to such a high value that
-% hyphenation is strongly discouraged between the last two lines
-% of a paragraph.
-% \item Some language specific shorthands have been defined so as to
-% allow etymological hyphenation, specifically |"| inserts a
-% break point at any word boundary that the typesetter chooses,
-% provided it is not followed by an accented letter (very unlikely
-% in Italian, where compulsory accents fall only on the last and
-% ending vowel of a word, but it may take place with compound words
-% that include foreign roots), and \verb="|= when the desired break
-% point falls before an accented letter. As you can read in
-% table~\ref{t:itshrtct}, these shorthands are available only if
-% they get activated with |\setactivedoublequote| after
-% loading \babel\ but before the |\begin{docuemnt}| statement. This
-% is done in order to preserve the user from package conflicts:
-% if s/he wants to use these facilities s/he must remember that
-% conflicts may arise unless active characters are deactivated;
-% this can be done with the \babel\ command |\shorthadsoff{"}|
-% (and reactivated with |\shorthandson{"}|) when its wise to do
-% so; conflicts have been reported with package \file{xypic} and
-% with \texttt{TikZ}, but the latter has its own library to
-% deactivate all active characters, not just the double quotes,
-% the only Italian language possibly activated character.
-% \item Some Italian compound words have a connecting short dash (a
-% hyphen sign) between them without any space between the component
-% words and the short dash; in this situation standard \LaTeX\ allows
-% a line break only just after the short dash; this may lead to
-% paragraphs with protruding lines or with ugly looking wide inter
-% word spaces. If a break point is desired in the second word, one
-% may use a |"| sign just after the short dash; but if a line break
-% is required in the first word, them the |"-| shorthand comes in
-% handy; pay attention though, that if you use an en-dash or an
-% em-dash (both should not be used in Italian as compound words
-% connectors, but\dots) then the |"-| shorthand might impeach the
-% |--| or |---| ligatures, thus producing an unacceptable appearance.
-% \item The shorthand |""| introduces the raised (English) opening
-% double quotes; this shorthand proves its usefulness when one
-% reminds that the Italian keyboard misses the back tick key, and
-% the back tick on a Windows based platform may be obtained only by
-% pressing the \texttt{Alt} key while keying the numerical code
-% 0096 in the numeric keypad; very, very annoying!
-% \item The shorthands |"<| and |">| insert the guillemets sometimes
-% used also in Italian typography; with the T1 font encoding
-% the ligatures |<<| and |>>| should insert such signs directly,
-% but not all the virtual fonts that claim to follow the T1 font
-% encoding actually contain the guillemets; with the OT1 encoding
-% the guillemets are not available and must be faked in some
-% way. By using the |"<| and |">| shorthands (even with the T1
-% encoding) the necessary tests are performed and in case the
-% guillemets are faked by means of the special LaTeX math symbols.
-% At the same time if OpenType fonts are being used with XeLaTeX
-% or LuaLaTeX, there are no problems with guillemets.
-% \item Three new specific commands |\unit|, |\ped|, and |\ap| are
-% introduced so as to enable the correct composition of technical
-% mathematics according to the ISO~31/XI recommendations.
-% The definition of |\unit| takes place only at ``begin document''
-% so that it is possible to verify if some other similar
-% functionalities have already been defined by other packages, such
-% as |units.sty| or |siunitx.sty|. Command |\unit| does not
-% conflict with package |SIunitx| and it may be redefined by means
-% of its internals.
-% Nevertheless command |\unit| is deactivated by
-% default; the user can activate it by entering the command
-% |\setISOcompliance| after loading the \babel\ package and before the
-% |\begin{document}| statement. The above checks will enter into
-% action even if this ISO compliance is set, in order to avoid
-% conflicts with the above named packages. The |\ap| and |\ped|
-% commands remain available because up to now no specific conflicts
-% have been reported.
-% \item Since in all languages different from English the decimal
+% \item
+% The Italian hyphenation is invoked, provided that the
+% Italian hyphenation pattern files were loaded when the
+% specific format file was built. This is normally done
+% with the initial installation of \TeX\-Live, but other
+% distributions may not do so.
+% \item
+% The language dependent infix words to be inserted by such
+% commands as |\chapter|, |\caption|, |\tableofcontents|,
+% etc. are redefined in accordance with the Italian
+% typographical practice.
+% \item
+% Since Italian can be easily hyphenated and Italian
+% practice allows to break a word before the last two
+% letters, hyphenation parameters have been set accordingly,
+% but a very high demerit value has been set in order to
+% avoid word breaks in the penultimate line of a paragraph.
+% Specifically the |\clubpenalty|, and the |\widowpenalty|
+% are set to rather high values and |\finalhyphendemerits|
+% is set to such a high value that hyphenation is strongly
+% discouraged between the last two lines of a paragraph.
+% \item
+% Some language specific shorthands have been defined so as
+% to allow etymological hyphenation, specifically |"|
+% inserts a break point at any word boundary that the
+% user chooses, provided it is not followed by an
+% accented letter (very unlikely in Italian, where
+% compulsory accents fall only on the last and ending vowel
+% of a word, but it may take place with compound words that
+% include foreign roots), and \verb="|= when the desired
+% break point falls before an accented letter. As you can
+% read in table~\ref{t:itshrtct}, these shorthands are
+% available only if they get activated with
+% |\setactivedoublequote| after loading \babel\ but before
+% the |\begin{docuemnt}| statement. This is done in order to
+% preserve the user from package conflicts: if s/he wants to
+% use these facilities s/he must remember that conflicts may
+% arise unless active characters are deactivated; this can
+% be done with the \babel\ command |\shorthadsoff{"}| (and
+% reactivated with |\shorthandson{"}|) when its wise to do
+% so; conflicts have been reported with package \file{xypic}
+% and with \texttt{TikZ}, but the latter has its own library
+% to deactivate all active characters, not just the double
+% quotes, the only Italian language possibly activated
+% character.
+% \item
+% Some Italian compound words have a connecting short dash (a
+% hyphen sign) between them without any space between the
+% component words and the short dash; in this situation
+% standard \LaTeX\ allows a line break only just after the
+% short dash; this may lead to paragraphs with protruding
+% lines or with ugly looking wide inter word spaces. If a
+% break point is desired in the second word, one may use a
+% |"| sign just after the short dash; but if a line break
+% is required in the first word, then the |"-| shorthand
+% comes in\ handy; pay attention though, that if you use an
+% en-dash or an em-dash (both should not be used in Italian
+% as compound words connectors, but\dots) then the |"-|
+% shorthand might impeach the |--| or |---| ligatures, thus
+% producing an unacceptable appearance.
+% \item
+% The shorthand |""| introduces the raised (English) opening
+% double quotes; this shorthand proves its usefulness when
+% one reminds that the Italian keyboard misses the back tick
+% key, and the back tick on a Windows based platform may be
+% obtained only by pressing the \texttt{Alt} key while keying
+% the numerical code 0096 in the numeric keypad; very, very
+% annoying!
+% \item
+% The shorthands |"<| and |">| insert the guillemets
+% sometimes used also in Italian typography; with the T1 font
+% encoding the ligatures |<<| and |>>| should insert such
+% signs directly, but not all the virtual fonts that claim to
+% follow the T1 font encoding actually contain the
+% guillemets; with the OT1 encoding the guillemets are not
+% available and must be faked in some way. By using the |"<|
+% and |">| shorthands (even with the T1 encoding) the
+% necessary tests are performed and in case the guillemets
+% are faked by means of the special LaTeX math symbols.
+% At the same time if OpenType fonts are being used with
+% XeLaTeX or LuaLaTeX, there are no problems with guillemets.
+%
+% \textcolor{red}{Remember, though, that at least since 2022
+% the default input encoding is Unicode; therefore any
+% platform has means to insert non T! encoded characters, and
+% the necessary glyphs are taken from suitable other font
+% encodings, for example the Text Companion fonts with
+% encoding TS1, without the need to load the corresponding
+% packages; on a Mac platform, for example, users can input
+% guillemets by striking \texttt{option+\char92} and
+% \texttt{option+\char124} respectively for « and~».
+% Notice that this specific file is typeset with |pdflatex|
+% and the previous guillemets have been entered directly in
+% the source file by means of \texttt{«} and \texttt{»} while
+% using the Latin Modern fonts.}
+% \item
+% Three specific commands |\unit|, |\ped|, and |\ap| are
+% introduced so as to enable the correct composition of
+% technical mathematics according to the ISO~80000
+% recommendations.
+%
+% The definition of |\unit| takes place only at “begin
+% document” so that it is possible to verify if some other
+% similar functionalities have already been defined by other
+% packages, such as |units.sty| or |siunitx.sty|. Command
+% |\unit| does not conflict with package |SIunitx| and it may
+% be redefined by means of its internals. Nevertheless
+% command |\unit| is deactivated by default; users can
+% activate it by entering the command |\setISOcompliance|
+% after loading the \babel\ package and before the
+% |\begin{document}| statement. The above checks will enter
+% into action even if this ISO compliance is set, in order to
+% avoid conflicts with the above named packages. The |\ap|
+% and |\ped| commands remain available because up to now no
+% specific conflicts have been reported.
+% \item
+% Since in all languages different from English the decimal
% separator according to the ISO regulations \emph{must} be a
-% comma\footnote{Actually the Bureau International des Pois et
-% M\'esures allows also the point as a decimal separator without
-% mentioning any language, but recommends to follow the national
-% typographical traditions.}; since no language description file nor
-% the \babel\ package itself provides for this functionality, a not so
-% simple intelligent comma definition is provided such that at least
-% in mathematics it behaves correctly.
-% There are other packages that provide a similar functionality, for
-% example |icomma| and |ncccomma|; |icomma|, apparently is not in
-% conflict with |dcolumn|, but requires a space after the comma
-% all the times it plays the r\^ole of a punctuation mark;
-% |ncccomma| checks if the next token is a digit, but it repeats ten
-% tests every time it meets a comma, irrespective from what it is
+% comma\footnote{Actually the Bureau International des Pois
+% et Mésures allows also the point as a decimal mark
+% without mentioning any language, but recommends to follow
+% the national typographical traditions.}; since no language
+% description file nor the \babel\ package itself provides
+% for this functionality, a not so simple intelligent comma
+% definition is provided such that at least in mathematics it
+% behaves correctly. There are other packages that provide a
+% similar functionality, for example |icomma|, |ncccomma|
+% and |decimalcomma|; |icomma|, apparently is not in
+% conflict with |dcolumn|, but requires a space after the
+% comma all the times it plays the r\^ole of a punctuation
+% mark; |ncccomma| and |decimal comma| check if the next
+% token is a digit, but they repeat up to ten tests every
+% time they meet a comma, irrespective from what it is
% followed by. I believe that my solution is better than that
-% provided by both those packages; but I assume that
-% if the user loads one of those packages, it prefers to use their
-% functionality; in case one of those packages is loaded, this module
-% excludes its own intelligent comma functionality.
-% By default this functionality is turned \emph{off}, therefore the
-% user should turn it on by means of the |\IntelligentComma| command;
-% it can turn it off by means of |\NoIntelligentComma|. Please, read
-% subsection~\ref{ssec:comma} to see the various situations where a
-% mathematical comma may be used and how to overcome the few cases
-% when the macros of this file don't behave as expected. The section
-% describes also some limitations when some conflicting packages are
-% being loaded. Apparently there are conflicts with package
-% |unicode-math| because active characters are defined with different
-% codes. Therefore this functionality is not available when
-% typesetting with XeLaTeX or LuaLaTeX.
-% \item In Italian legal documents it is common to tag list-items
-% with the old fashioned 21-letter Italian alphabet, that differs from
-% the Latin one by the omission of the letters `j', `k', `w',`x', and
-% `y'. This applies for both upper and lower case tags.
-% This feature is obtained by using the commands |\XXIletters| and
-% |\XXVIletters| that allow to switch back and forth
-% between 21- and 26-letter tagging.
+% provided by those packages; but I assume that if users load
+% one of those packages, they prefer to use their
+% functionalities; in case one of those packages is loaded,
+% this module excludes its own intelligent comma
+% functionality.
+%
+% By default this functionality is turned \emph{off},
+% therefore users should turn it on by means of the
+% |\IntelligentComma| command; they can turn it off by means
+% of |\NoIntelligentComma|. Please, read
+% subsection~\ref{ssec:comma} to see the various situations
+% where a mathematical comma may be used and how to overcome
+% the few cases when the macros of this file don't behave as
+% expected. The section describes also some limitations when
+% some conflicting packages are being loaded. Apparently
+% there are conflicts with package |unicode-math| because
+% active characters are defined with different codes.
+% Therefore this functionality is not available when
+% typesetting with XeLaTeX or LuaLaTeX unless |decimalcomma|
+% is used, because it is conformant with |unicode-math|
+% settings.
+%
+% \item
+% Sometimes it is necessary to quote English texts; if such
+% texts contain some math, the |\IntelligentComma| must be
+% deactivated; an \texttt{english} environment (not available
+% in |babel| but available in |polyglossia|, although without
+% the functionalities connected with the English math
+% typesetting) is defined so that, besides locally setting
+% the English language, issues a |\NoIntelligentComma|
+% command; nevertheless users are still responsible to use
+% the decimal point while typesetting English math.
+% \item
+% In Italian legal documents it is common to tag list-items
+% with the old fashioned 21-letter Italian alphabet, that
+% differs from the Latin one by the omission of the letters
+% `j', `k', `w',`x', and `y'. This applies for both upper and
+% lower case tags. This feature is obtained by using the
+% commands |\XXIletters| and |\XXVIletters| that allow to
+% switch back and forth between 21- and 26-letter tagging.
% \end{enumerate}
%
% For this language a few shorthands have been defined,
-% table~\ref{t:itshrtct}, some of which are introduced to overcome
-% certain limitations of the Italian keyboard; in
-% section~\ref{s:itkbd} there are other comments and hints in order
-% to overcome some other keyboard limitations.
+% table~\ref{t:itshrtct}, some of which are introduced to
+% overcome certain limitations of the Italian keyboard; in
+% section~\ref{s:itkbd} there are other comments and hints in
+% order to overcome some other keyboard limitations.
%
% \subsection*{Acknowlegements}
-% It is my pleasure to acknowledge the contributions of Giovanni Dore,
-% Davide Liessi, Grazia Messineo, Giuseppe Toscano, who spotted some bugs
-% or conflicts with other packages, mainly |amsmath| and |icomma|, and
-% with digits hidden inside macros or control sequences representing
-% implicit characters. Testing by real users and their feedback is
-% essential with open software such as the uncountable contributions
-% to the \TeX\ system. Thank you very much.
+% It is my pleasure to acknowledge the contributions of Giovanni
+% Dore, Davide Liessi, Grazia Messineo, Giuseppe Toscano, who
+% spotted some bugs or conflicts with other packages, mainly
+% |amsmath| and |icomma|, and with digits hidden inside macros
+% or control sequences representing implicit characters.
+% Testing by real users with their feedback is essential with
+% open software such as the uncountable contributions to the
+% \TeX\ system. Thank you very much.
%
% \StopEventually{%
-% \begin{thebibliography}{1}
-% \bibitem{CBec} Beccari C., ``Computer Aided Hyphenation for
+% \begin{thebibliography}{1}
+% \bibitem{CBec} Beccari C., ``Computer Aided Hyphenation for
% Italian and Modern Latin'', \textsf{TUGboat} vol.~13, n.~1,
% pp.~23-33 (1992).
-% \bibitem{Becc2} Beccari C., ``Typesetting mathematics for science
-% and technology according to ISO\,31/XI'', \textsf{TUGboat}
-% vol.~18, n.~1, pp.~39-48 (1997).
-% \end{thebibliography}}
+% \bibitem{Becc2} Beccari C., “Typesetting mathematics for
+% science and technology according to ISO\,31/XI”,
+% \textsf{TUGboat} vol.~18, n.~1, pp.~39-48 (1997).
+% \bibitem{Becc3} Beccari C., “Regole e consigli per comporre
+% la matematica della fisica e delle scienze sperimentali
+% secondo le norme ISO”, (2023); PDF document in Italian to
+% be downloaded from the Documentation section of the Italian
+% TUG site \url{www.guitex.org}.
+% \end{thebibliography}}
%
%\section{The commented code}
-% The macro |\LdfInit| takes care of preventing that this file is
-% loaded more than once, checking the category code of the
-% \texttt{@} sign, etc.
-% \changes{italian-1.2i}{1996/11/03}{Now use \cs{LdfInit} to perform
-% initial checks}
-% \changes{italian-1.2j}{1996/12/29}{Added braces around second arg of
-% \cs{LdfInit}}
+% The macro |\LdfInit| takes care of preventing that this
+% file is loaded more than once, checking the category code
+% of the \texttt{@} sign, etc.
+% \changes{italian-1.2i}{1996/11/03}{Now use \cs{LdfInit} to
+% perform initial checks}
+% \changes{italian-1.2j}{1996/12/29}{Added braces around second
+% arg of \cs{LdfInit}}
%\iffalse
%<*code>
%\fi
@@ -390,14 +457,16 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\LdfInit{italian}{captionsitalian}%
% \end{macrocode}
%
-% When this file is read as an option, i.e. by the |\usepackage|
-% command, \texttt{italian} will be an `unknown' language in which
-% case we have to make it known. So we check for the existence of
-% |\l@italian| to see whether we have to do something here.
+% When this file is read as an option, i.e. by the
+% |\usepackage| command, \texttt{italian} will be an `unknown'
+% language in which case we have to make it known.
+% So we check for the existence of |\l@italian| to see whether
+% we have to do something here.
%
% \changes{italian-1.0}{1991/04/23}{Now use \cs{adddialect} if
% language undefined}
-% \changes{italian-1.0h}{1991/10/08}{Removed use of \cs{@ifundefined}}
+% \changes{italian-1.0h}{1991/10/08}{Removed use of
+% \cs{@ifundefined}}
% \changes{italian-1.1}{1992/02/16}{Added a warning when no
% hyphenation patterns were loaded.}
% \changes{italian-1.2e}{1994/06/26}{Now use \cs{@nopatterns} to
@@ -408,25 +477,31 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\adddialect\l@italian0\fi
% \end{macrocode}
%
-% The next step consists of defining commands to switch to (and
-% from) the Italian language.
+% The next step consists of defining commands to switch to
+% (and from) the Italian language.
%
% \begin{macro}{\captionsitalian}
-% The macro |\captionsitalian| defines all strings used
-% in the four standard document classes provided with \LaTeX.
-% \changes{italian-1.0c}{1991/06/06}{Removed \cs{global} definitions}
+% The |\captionsitalian| macro defines all strings used
+% in the various standard document classes provided with
+% \LaTeX.
+% \changes{italian-1.0c}{1991/06/06}{Removed \cs{global}
+% definitions}
% \changes{italian-1.0c}{1991/06/06}{\cs{pagename} should be
% \cs{headpagename}}
-% \changes{italian-1.0d}{1991/07/01}{`contiene' substitued by `Allegati'
-% as suggested by Marco Bozzo (\texttt{BOZZO@CERNVM}).}
-% \changes{italian-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% \changes{italian-1.0d}{1991/07/01}{`contiene' substituted
+% by `Allegati' as suggested by Marco Bozzo
+% (\texttt{BOZZO@CERNVM}).}
+% \changes{italian-1.1}{1992/02/16}{Added \cs{seename},
+% \cs{alsoname}
% and \cs{prefacename}}
% \changes{italian-1.1}{1993/07/15}{\cs{headpagename} should be
% \cs{pagename}}
-% \changes{italian-1.2b}{1994/05/19}{Changed some of the infix words}
+% \changes{italian-1.2b}{1994/05/19}{Changed some of the infix
+% words}
% \changes{italian-1.2g}{1995/07/04}{Added \cs{proofname} for
% AMS-\LaTeX}
-% \changes{italian-1.2h}{1995/07/27}{Added translation of `Proof'}
+% \changes{italian-1.2h}{1995/07/27}{Added translation of
+% `Proof'}
% \begin{macrocode}
\addto\captionsitalian{%
\def\prefacename{Prefazione}%
@@ -455,20 +530,22 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
% \end{macro}
%
% \begin{macro}{\dateitalian}
-% The macro |\dateitalian| redefines the command
-% |\today| to produce Italian dates.
-% \changes{italian-1.0c}{1991/06/06}{Removed \cs{global} definitions}
+% The |\dateitalian| macro redefines the command
+% |\today| to produce Italian dates.
+% \changes{italian-1.0c}{1991/06/06}{Removed \cs{global}
+% definitions}
% \changes{italian-1.4.04}{2020-05-10}{Added commands
% \cs{OrdinalDayNumberOn} and \cs{OrdinalDayNumberOff}}
-% Normally in Italian day numbers a set as cardinal numbers; some
-% people prefer to use the ordinal number for day~1, and use the
-% cardinal number with the superscript masculine `o'. By default
-% this functionality is turned off but the user can select it with
-% command |\OrdinalDayNumberOn| and deselect it with
-% |\OrdinalDayNumberOff|. The national official regulation require
-% the cardinal numbers only with fully numerical dates; they allow,
-% without prescribing, roman numbers and ordinal numbers only when
-% the month name is spelled out in letters.
+% Normally in Italian day numbers a set as cardinal numbers;
+% some people prefer to use the ordinal number for day~1, and
+% use the cardinal number with the superscript masculine `o'.
+% By default this functionality is turned off but the user can
+% select it with command |\OrdinalDayNumberOn| and deselect it
+% with |\OrdinalDayNumberOff|. The national official
+% regulations require the cardinal numbers only with fully
+% numerical dates; they allow, without prescribing, roman
+% numbers and ordinal numbers only when the month name is
+% spelled out in letters.
% \begin{macrocode}
\newif\ifOrdinalDayNumber \OrdinalDayNumberfalse
\def\OrdinalDayNumberOn{\OrdinalDayNumbertrue}
@@ -479,9 +556,9 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\else
\number\day
\fi~\ifcase\month\or
- gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or
- luglio\or agosto\or settembre\or ottobre\or novembre\or
- dicembre\fi\space \number\year}}%
+ gennaio\or febbraio\or marzo\or aprile\or maggio\or
+ giugno\or luglio\or agosto\or settembre\or ottobre\or
+ novembre\or dicembre\fi\space \number\year}}%
% \end{macrocode}
% \end{macro}
%
@@ -489,10 +566,10 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
% \changes{italian-1.2b}{1994/05/19}{Added setting of left and
% righthyphenmin}
%
-% The italian hyphenation patterns can be used with both
+% The Italian hyphenation patterns can be used with both
% |\lefthyphenmin| and |\righthyphenmin| set to~2.
-% \changes{italian-1.2m}{2000/09/22}{Now use \cs{providehyphenmins} to
-% provide a default value}
+% \changes{italian-1.2m}{2000/09/22}{Now use
+% \cs{providehyphenmins} to provide a default value}
% \begin{macrocode}
\providehyphenmins{\CurrentOption}{\tw@\tw@}
% \end{macrocode}
@@ -503,7 +580,7 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
%
% \changes{italian-1.2b}{1994/05/19}{Added settings of club- and
% widowpenalty}
-% Lower the chance that clubs or widows occur.
+% Lower the chance that clubs or widows occur.
% \begin{macrocode}
\addto\extrasitalian{%
\babel@savevariable\clubpenalty
@@ -515,8 +592,8 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
% \changes{italian-1.2b}{1994/05/19}{Added setting of
% finalhyphendemerits}
%
-% Never ever break a word between the last two lines of a paragraph
-% in Italian texts.
+% Never ever break a word between the last two lines of a
+% paragraph in Italian texts.
% \begin{macrocode}
\addto\extrasitalian{%
\babel@savevariable\finalhyphendemerits
@@ -525,28 +602,29 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
%
% \changes{italian-1.2h}{1995/11/10}{Now give the apostrophe a
% lowercase code}
-% \changes{italian-1.2l}{1999/04/5}{Changed example ``begl'italiani''
-% (obsolete spelling) with another, ``nell'altezza'', that behaves
-% the same way}
-% \changes{italian 1.4.01}{2019-01-05}{Set the lccode of the apostrophe
-% that should be valid for both the pdflatex and the OpentType aware
-% typesetting engines xelatelx and lualatex.}
+% \changes{italian-1.2l}{1999/04/5}{Changed example
+% ``begl'italiani''
+% (obsolete spelling) with another, ``nell'altezza'', that
+% behaves the same way}
+% \changes{italian 1.4.01}{2019-01-05}{Set the lccode of the
+% apostrophe that should be valid for both pdflatex and the
+% OpentType aware typesetting engines xelatex and lualatex.}
% \changes{italian 1.4.03}{2019-11-16}{Adjust the lccode for the
-% apostrophe so as to work also with platex and uplatex. Thanks to
-% Hironobu Yamashita <h.y.acetaminophen@gmail.com> who spotted the
-% error and suggested the correction.}
-%
-% In order to enable the hyphenation of words such as
-% ``nell'altezza'' we give the \texttt{'} a non-zero lower case
-% code. When we do that, \TeX\ finds the following hyphenation
-% points |nel-l'al-tez-za| instead of none. If this |italian.ldf| is
-% used with |babel| when typesetting with |xelatex| or
-% |lualatex| the apostrophe must receive a unicode code point.
-% Therefore we use a special test that was suggested by Hironobu
-% Yamashita\footnote{Thanks to Hironobu Yamashita
-% <h.y.acetaminophen@gmail.com>} if this |babel| language option
-% is used while using either |pdflatex| or a Unicode aware
-% typesetting engine.
+% apostrophe so as to work also with platex and uplatex.
+% Thanks to Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+% who spotted the error and suggested the correction.}
+%
+% In order to enable the hyphenation of words such as
+% “nell'altezza'’ we give the \texttt{'} a non-zero lower case
+% code. When we do that, \TeX\ finds the following hyphenation
+% points |nel-l'al-tez-za| instead of none. If this
+% |italian.ldf| is used with |babel| when typesetting with
+% |xelatex| or |lualatex| the apostrophe must receive a unicode
+% code point. Therefore we use a special test that was
+% suggested by Hironobu Yamashita\footnote{Thanks to Hironobu
+% Yamashita <h.y.acetaminophen@gmail.com>} if this |babel|
+% language option is used while using either |pdflatex| or a
+% Unicode aware typesetting engine.
% \begin{macrocode}
\addto\extrasitalian{%
@@ -557,35 +635,39 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\lccode\string"2019=0\fi}
% \end{macrocode}
-% Notice, though, that if you use |babel| when typesetting with |lualatex|
-% or |xelatex| using the |fontspec| usual commands and options may not
-% lead to their proper font alternative variants being used. Apparently
-% the |\babelfont| command is more performant in transmitting the proper
-% information to |fontspec|. Of course |\babelfont| must be used after the
-% |babel| package has been invoked; while there appears to be no loading
-% precedence requirements when |fontspec| and |polyglossia| are used.
+% Notice, though, that if you use |babel| when typesetting with
+% |lualatex| or |xelatex| using the |fontspec| usual commands
+% and options may not lead to their proper font alternative
+% variants being used. Apparently the |\babelfont| command is
+% more performant in transmitting the proper information to
+% |fontspec|. Of course |\babelfont| must be used after the
+% |babel| package has been invoked; while there appears to be no
+% loading precedence requirements when |fontspec| and
+% |polyglossia| are used.
% \end{macro}
% \end{macro}
%
% \subsection{Traditionally labelled enumerate environment}
-% \changes{italian-1.2v}{2010/01/02}{Support for traditional Italian}
-% In some traditional texts, especially of legal nature, enumerations
-% labelled with lower or upper case letters use the reduced Latin
-% alphabet that omits the so called ``non Italian letters'': j, k, w,
-% x, and y.
-%
-% \changes{italian-1.2w}{2011/01/03}{Added switching mechanism between
-% normal and traditional enumeration labelling}
-% \changes{italian-1.3}{2013/09/27}{The |traditional| language attribute
-% has been dropped while the commands to switch back and forth from
-% 21- to 26-letter alphabet are retained}
+% \changes{italian-1.2v}{2010/01/02}{Support for traditional
+% Italian}
+% In some traditional texts, especially of legal nature,
+% enumerations labelled with lower or upper case letters use
+% the reduced Latin alphabet that omits the so called “non
+% Italian letters”: j, k, w, x, and y.
+%
+% \changes{italian-1.2w}{2011/01/03}{Added switching mechanism
+% between normal and traditional enumeration labelling}
+% \changes{italian-1.3}{2013/09/27}{The |traditional| language
+% attribute has been dropped while the commands to switch
+% back and forth from 21- to 26-letter alphabet are retained}
% \begin{macro}{\XXIletters}
% \begin{macro}{\XXVIletters}
-% At the same time it is considered useful to have the possibility of
-% switching back and forth from the 21-letter tagging and the 26-letter
-% one. This requires a counter that keeps the switching status (0 for 21
-% letters and 1 for 26 letters) and commands |\XXIletters| and
-% |\XXVIletters| to set the switch. Default is 26 letter tagging.
+% At the same time it is considered useful to have the
+% possibility of switching back and forth from the 21-letter
+% tagging and the 26-letter one. This requires a counter that
+% keeps the switching status (0 for 21 letters and 1 for 26
+% letters) and commands |\XXIletters| and |\XXVIletters| to set
+% the switch. Default is 26 letter tagging.
% \begin{macrocode}
\newcount\it@lettering \it@lettering=\@ne
\newcommand*\XXIletters{\it@lettering=\z@}
@@ -597,8 +679,9 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
% \end{macrocode}
% \end{macro}
% \end{macro}
-% To make this feasible it's necessary to redefine the way the \LaTeX\
-% |\@alph| and |\@Alph| work. Let's make the alternate definitions:
+% To make this feasible it's necessary to redefine the way the
+% \LaTeX\ |\@alph| and |\@Alph| work. Let's make the alternate
+% definitions:
% \begin{macrocode}
\def\it@alph#1{%
\ifcase\it@lettering
@@ -607,8 +690,8 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
z\else\@ctrerr\fi
\or
\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or
- j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or
- w\or x\or y\or z\else\@ctrerr\fi
+ j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or
+ v\or w\or x\or y\or z\else\@ctrerr\fi
\fi}%
\def\it@Alph#1{%
\ifcase\it@lettering
@@ -617,108 +700,130 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
Z\else\@ctrerr\fi
\or
\ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or
- J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or
- W\or X\or Y\or Z\else\@ctrerr\fi
+ J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or
+ V\or W\or X\or Y\or Z\else\@ctrerr\fi
\fi}%
% \end{macrocode}
%
-% In order to have a complete description, the situation is as such:
+% In order to have a complete description, the situation is as
+% such:
% \begin{enumerate}
-% \item If you want to always use the 21-letter item tagging, simply
-% use the |\XXIletters| declaration just after |\begin{document}|
-% and this setting remains global (provided, of course, that the
-% declaration is defined, i.e. that the Italian language is the
-% default one); in this way the setting is global while you use
-% the Italian language.
-% \item The |XXVIletter| command, issued outside any environment sets
-% the 26-letter item tagging in a global way; this setting is the
-% default one.
-% \item If you specify |\XXIletters| just before entering an
-% environment that uses alphabetic tagging, this environment will
-% be tagged with the 21-letter alphabet, but this is a local setting,
-% because the letter tagging takes place only from the second level
-% of enumeration.
-% \item The declarations |\XXIletters| and |\XXVIletters| let you
-% switch back and forth between the two kinds of tagging, But this
-% kind of tagging, the 21-letter one, is meaningful only in Italian
-% and when you change language, letter tagging reverts to the
-% 26-letter one.
+% \item
+% If you want to always use the 21-letter item tagging, simply
+% use the |\XXIletters| declaration just after
+% |\begin{document}| and this setting remains global
+% (provided, of course, that the declaration is defined, i.e.
+% that the Italian language is the default one); in this way
+% the setting is global while you use the Italian language.
+% \item
+% The |XXVIletter| command, issued outside any environment
+% sets the 26-letter item tagging in a global way; this
+% setting is the default one.
+% \item
+% If you specify |\XXIletters| just before entering an
+% environment that uses alphabetic tagging, this environment
+% will be tagged with the 21-letter alphabet, but this is a
+% local setting, because the letter tagging takes place only
+% from the second level of enumeration.
+% \item
+% The declarations |\XXIletters| and |\XXVIletters| let you
+% switch back and forth between the two kinds of tagging, but
+% this kind of tagging, the 21-letter one, is meaningful only
+% in Italian and when you change language, letter tagging
+% reverts to the 26-letter one.
% \end{enumerate}
%
% \changes{italian-1.2m}{2000/01/05}{Support for etymological
% hyphenation}
%
-% \subsection{Support for etymological hyphenation}
-%
-% In Italian etymological hyphenation is desirable with
-% technical terms, chemical names, and the like.
-%
-% \subsubsection{Some history}
-% In his article on Italian hyphenation \cite{CBec} Beccari pointed
-% out that the Italian language gets hyphenated on a phonetic
-% basis, although etymological hyphenation is allowed; this is in
-% contrast with what happens in Latin, for example, where
-% etymological hyphenation is always used. Since the patterns for
-% both languages would become too complicated in order to cope with
-% etymological hyphenation, in his paper Beccari proposed the
-% definition of an active character `|_|' such that it could insert
-% a ``soft'' discretionary hyphen at the compound word
-% boundary. For several reasons that idea and the specific active
-% character proved to be unpractical and was abandoned.
-%
-% This problem is so important with the majority of the European
-% languages, that \babel\ from the very beginning developed
-% the tradition of making the |"| character active so as to perform
-% several actions that turned useful with every language.
-% One of these actions consisted in defining the shorthand \verb="|=,
-% that was extensively used in German and in many other languages,
-% in order to insert a discretionary hyphen such that hyphenation
-% would not be precluded in the rest of the word as it happens with
-% the standard \TeX\ command |\-|.
-%
-% Meanwhile the \texttt{ec} fonts with the double Cork encoding
-% (thus formerly called the \texttt{dc} fonts) have become more or
-% less standard and are widely used by virtually all Europeans that
-% write languages with many special national characters; by so
-% doing they avoid the use of the |\accent| primitive which would
-% be required with the standard OT1 encoded \texttt{cm} fonts;
-% with such OT1 encoded fonts the primitive command |\accent| is such
-% that hyphenation becomes almost impossible, in any case strongly
-% impeached.
-%
-% The T1 encoded fonts contain a special character, named
-% ``compound word mark'', that occupies slot 23 (or |'27| or |"17|
-% in the font scheme and may be input with the sequence |^^W|.
-% Up to now, apparently, this special character has never been used
-% in a practical way for typesetting languages rich of compound
-% words; moreover it has never been inserted in the hyphenation pattern
-% files of any language. Beccari modified his pattern file
-% \file{ithyph.tex v4.8b} for Italian so as to contain five new
-% patterns that involve |^^W|, and he tried to give the
-% \babel\ active character |"| a new shorthand definition,
-% so as to allow the insertion of the ``compound word mark'' in the
-% proper place within any word where two semantic fragments join
-% up. With such facility for marking the compound word boundaries,
-% etymological hyphenation becomes possible even if the patterns
-% know nothing about etymology (but the typesetter hopefully
-% does!).
+% \subsection{Support for etymological hyphenation}
+%
+% In Italian etymological hyphenation is desirable with
+% technical terms, chemical names, and the like.
+%
+% \subsubsection{Some history}
+% In his article on Italian hyphenation \cite{CBec} Beccari
+% pointed out that the Italian language gets hyphenated on a
+% phonetic basis, although etymological hyphenation is
+% allowed; this is in contrast with what happens in Latin,
+% for example, where etymological hyphenation is always used.
+% Since the patterns for both languages would become too
+% complicated in order to cope with etymological hyphenation,
+% in his paper Beccari proposed the definition of an active
+% character `|_|' such that it could insert a “soft”
+% discretionary hyphen at the compound word boundary. For
+% several reasons that idea and the specific active character
+% proved to be unpractical and was abandoned.
+%
+% This problem is so important with the majority of the
+% European languages, that \babel\ from the very beginning
+% developed the tradition of making the |"| character active
+% so as to perform several actions that turned useful with
+% every language.
+% One of these actions consisted in defining the shorthand
+% \verb="|=, that was extensively used in German and in many
+% other languages, in order to insert a discretionary hyphen
+% such that hyphenation would not be precluded in the rest of
+% the word as it happens with the standard \TeX\ command |\-|.
+%
+% Meanwhile the \texttt{ec} fonts with the double Cork encoding
+% (thus formerly called the \texttt{dc} fonts) have become more
+% or less standard and are widely used by virtually all
+% Europeans that write in languages that use many special
+% national characters; by so doing they avoid the use of the
+% |\accent| primitive which would be required with the standard
+% OT1 encoded \texttt{cm} fonts; with such OT1 encoded fonts
+% the primitive command |\accent| is such that hyphenation
+% becomes almost impossible, in any case strongly impeached.
+%
+% In practice the OT1 encoded fonts are sufficient for modern
+% English only; medieval and renaissance English used accents.
+% In modern English accents are not used anymore, but it is
+% frequent to use foreign names and, in reference lists,
+% foreign authors`s names and document titles written in
+% foreign languages, so that accents are necessary also with
+% modern English. Therefore OT1 encoded fonts should never be
+% used in this XXI century. At he same time, as already
+% remarked, the Unicode encoding is become the standard one for
+% all \TeX\ input files, that accented characters are not a
+% problem any more.
+%
+% The T1 encoded fonts contain a special character, named
+% “compound word mark”, that occupies slot 23 (or |'27| or
+% |"17|) in the font scheme and may be input with the sequence
+% |^^W|. Up to now, apparently, this special character has
+% never been used in a practical way for typesetting languages
+% rich of compound words; moreover it has never been inserted
+% in the hyphenation pattern files of any language. Beccari
+% modified his pattern file \file{ithyph.tex v4.8b} for Italian
+% so as to contain five new patterns that involve |^^W|, and he
+% tried to give the \babel\ active character |"| a new
+% shorthand definition, so as to allow the insertion of the
+% “compound word mark” in the proper place within any word
+% where two semantic fragments join up. With such facility for
+% marking the compound word boundaries, etymological
+% hyphenation becomes possible even if the patterns know
+% nothing about etymology (but the user hopefully does!).
%
% \subsubsection{The current solution}
%
-% Even this solution proved to be inconvenient on certain *NIX
-% platforms, so Beccari resorted to another approach that uses the
-% \babel\ active character |"| and relies on the category
-% code of the character that follows |"|.
+% Even this solution proved to be inconvenient on certain *NIX
+% platforms, so Beccari resorted to another approach that uses
+% the \babel\ active character |"| and relies on the category
+% code of the character that follows |"|.
%
% \changes{italian-1.2n}{2000/02/02}{Completely new etymological
% hyphenation facility}
% \changes{italian-1.3g}{2014/01/22}{The active double straight
-% quote conflicts with other packages; set as an optional facility.}
-% Instead of a boolean switch we use a private counter so as to check
-% at |\begin{document}| if this facility has to be activated. The
-% default value is zero; anything different from zero means that the
-% facility has to be activated; this is done with command
-% |\setactivedoublequote| to be issued before |\begin{document}|
+% quote conflicts with other packages; set as an optional
+% facility.}
+%
+% Instead of a boolean switch we use a private counter so as to
+% check at |\begin{document}| if this facility has to be
+% activated. The default value is zero; anything different from
+% zero means that the facility has to be activated; this is
+% done with command |\setactivedoublequote| to be issued before
+% |\begin{document}|
%
% \begin{macrocode}
\newcount\it@doublequoteactive \it@doublequoteactive=\z@
@@ -730,13 +835,14 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\initiate@active@char{"}%
\addto\extrasitalian{\bbl@activate{"}\languageshorthands{italian}}%
% \end{macrocode}
-% \begin{macro}{\it@cwm}
-% The active character |"| is now defined for language |italian| so
-% as to perform different actions in math mode compared to text
-% mode; specifically in math mode a double quote is inserted so as
-% to produce a double prime sign, while in text mode the temporary
-% macro |\it@next| is defined so as to defer any further action
-% until the next token category code has been tested.
+% \begin{macro}{\it@cwm}
+% The active character |"| is now defined for language
+% |italian| so as to perform different actions in math mode
+% compared to text mode; specifically in math mode a double
+% quote is inserted so as to produce a double prime sign, while
+% in text mode the temporary macro |\it@next| is defined so as
+% to defer any further action until the next token category
+% code has been tested.
% \begin{macrocode}
\declare@shorthand{italian}{"}{%
\ifmmode
@@ -748,55 +854,56 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
}%
\fi
% \end{macrocode}
-% The following statement must be conditionally executed after the above
-% modification of the |\extraasitalian| list; in facts at the ``begin
-% document'' execution the main language has already been set without
-% the above modifications; therefore nothing takes place unless the
-% Italian main language is selected again with the explicit command
-% |\selectlanguage| without this trick the active double quotes would
-% remain inactive; of course |\languagename| contains the string |italian|
-% if this language was the main one; by testing this string, the suitable
-% command may be issued again with the new settings and the double quotes
-% become really active. Thanks to Davide Liessi for reporting this bug.
+% The following statement must be conditionally executed after
+% the above modification of the |\extraasitalian| list; in
+% facts at the “begin document” execution the main language has
+% already been set without the above modifications; therefore
+% nothing takes place unless the Italian main language is
+% selected again with the explicit command |\selectlanguage|
+% without this trick the active double quotes would remain
+% inactive; of course |\languagename| contains the string
+% |italian| if this language was the main one; by testing this
+% string, the suitable command may be issued again with the new
+% settings and the double quotes become really active.
+% Thanks to Davide Liessi for reporting this bug.
% \begin{macrocode}
\ifdefstring{\languagename}{italian}{\selectlanguage{italian}}{\relax}
}%
% \end{macrocode}
-% \begin{macro}{\it@cwm}
-% The \cs{it@next} service control sequence is such that upon its
-% execution a temporary variable \cs{it@temp} is made equivalent to
-% the next token in the input list without actually removing it.
-% Such temporary token is then tested by the macro \cs{it@cwm}
-% and if it is found to be a letter token (cathode=11), then it
-% introduces a compound word separator control sequence
-% \cs{it@allowhyphens} whose expansion introduces a discretionary
-% hyphen and an unbreakable zero space;
-% otherwise the token is not a letter; then it is therefore
-% tested against \verb=|=$_{12}$: if so a compound word separator
-% is inserted and the \verb=|= token is removed;
-% otherwise two other tests are performed to see if guillemets
-% have to be inserted, and in case a suitable intelligent
-% guillemet macro is introduced that gobbles unwanted leading
-% or trailing spaces;
-% otherwise a test is made to see if the next char is a slash
-% character, and in case a special discretionary break is inserted
-% such as to maintain the slash while allowing the hyphenation
-% of both words before and after the slash;
-% otherwise another test is performed to see if another
-% double quote sign follows: in this case a double open quote
-% mark is inserted;
-% otherwise another test is made to see if a connecting hyphen char
-% follows, and in this case the hyphen char is substituted with
-% a discretionary break that allows hyphenation of both words
-% before and after the hyphen char;
-% otherwise nothing is done.
-%
-% The double quote shorthand for inserting a double open quote sign
-% is useful for people who are inputting Italian text by means of
-% an Italian keyboard which unfortunately misses the grave or
-% backtick key.
-% The shorthand |""| becomes equivalent to |``| for inserting
-% raised open high double quotes.
+% \begin{macro}{\it@cwm}
+% The \cs{it@next} service control sequence is such that upon
+% its execution a temporary variable \cs{it@temp} is made'
+% equivalent to the next token in the input list without
+% actually removing it.
+% Such temporary token is then tested by the macro \cs{it@cwm}
+% and if it is found to be a letter token (cathode=11), then it
+% introduces a compound word separator control sequence
+% \cs{it@allowhyphens} whose expansion introduces a
+% discretionary hyphen and an unbreakable zero space;
+% otherwise the token is not a letter; therefore it is
+% tested against \verb=|=$_{12}$: if so a compound word
+% separator is inserted and the \verb=|= token is removed;
+% otherwise two other tests are performed to see if guillemets
+% have to be inserted, and in case a suitable intelligent
+% guillemet macro is introduced that gobbles unwanted leading
+% or trailing spaces; otherwise a test is made to see if the
+% next char is a slash character, and in case a special
+% discretionary break is inserted such as to maintain the slash
+% while allowing the hyphenation of both words before and after
+% the slash; otherwise another test is performed to see if
+% another double quote sign follows: in this case a double open
+% quote mark is inserted; otherwise another test is made to see
+% if a connecting dash char follows, and in this case the
+% dash char is substituted with a discretionary break that
+% allows hyphenation of both words before and after that dash
+% char; otherwise nothing is done.
+%
+% The double quote shorthand for inserting a double open quote
+% sign is useful for people who are inputting Italian text by
+% means of an Italian keyboard which unfortunately misses the
+% grave or backtick key.
+% The shorthand |""| becomes equivalent to |“| for inserting
+% raised open high double quotes.
% \begin{macrocode}
\def\it@@cwm{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}%
\def\it@@slash{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}%
@@ -806,29 +913,29 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\ifcat\noexpand\it@temp a%
\def\it@@next{\it@@cwm}%
\else
- \if\noexpand\it@temp \string|%
- \def\it@@next{\it@@cwm\@gobble}%
+ \if\noexpand\it@temp \string|%
+ \def\it@@next{\it@@cwm\@gobble}%
+ \else
+ \if\noexpand\it@temp \string<%
+ \def\it@@next{\it@@ocap}%
\else
- \if\noexpand\it@temp \string<%
- \def\it@@next{\it@@ocap}%
+ \if\noexpand\it@temp \string>%
+ \def\it@@next{\it@@ccap}%
+ \else
+ \if\noexpand\it@temp\string/%
+ \def\it@@next{\it@@slash\@gobble}%
\else
- \if\noexpand\it@temp \string>%
- \def\it@@next{\it@@ccap}%
- \else
- \if\noexpand\it@temp\string/%
- \def\it@@next{\it@@slash\@gobble}%
- \else
- \ifcat\noexpand\it@temp\noexpand\it@@dqactive
- \def\it@@next{``\@gobble}%
- \else
- \if\noexpand\it@temp\string-%
- \def\it@@next{\it@@trattino\@gobble}%
- \fi
- \fi
- \fi
+ \ifcat\noexpand\it@temp\noexpand\it@@dqactive
+ \def\it@@next{“\@gobble}%
+ \else
+ \if\noexpand\it@temp\string-%
+ \def\it@@next{\it@@trattino\@gobble}%
\fi
+ \fi
\fi
+ \fi
\fi
+ \fi
\fi
\it@@next}%
% \end{macrocode}
@@ -836,120 +943,153 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
% \end{macro}
%
%
-% \begin{sloppypar}
-% By this definition of |"| if one types |macro"istruzione| the
-% possible break points become \textsf{ma-cro-istru-zio-ne}, while
-% without the |"| mark they would be \textsf{ma-croi-stru-zio-ne},
-% according to the phonetic rules such that the |macro| prefix is
-% not taken as a unit.
-% A chemical name such as \texttt{des"clor"fenir"amina"cloridrato}
-% is breakable as \textsf{des-clor-fe-nir-ami-na-clo-ri-dra-to}
-% instead of \textsf{de-sclor-fe-ni-ra-mi-na-\dots}
-%
-% In other language description files a shorthand is defined so as
-% to allow a break point without actually inserting any hyphen
-% sign; examples are given such as \mbox{entrada/salida}; actually
-% if one wants to allow a breakpoint after the slash, it is much
-% clearer to type |\slash| instead of |/| and \LaTeX\ does
-% everything by itself; here the shorthand |"/| was introduced to
-% stand for |\slash| so that one can type |input"/output| and allow
-% a line break after the slash.
-% This shorthand works only for the slash, since in Italian such
-% constructs are extremely rare.
+% \begin{sloppypar}
+% By this definition of |"|, if one types |macro"istruzione|
+% the possible break points become
+% \textsf{ma-cro-istru-zio-ne},
+% while without the |"| mark they would be
+% \textsf{ma-croi-stru-zio-ne}, according to the phonetic rules
+% such that the |macro| prefix is not taken as a unit.
+%
+% A chemical name such as
+% \texttt{des"clor"fenir"amina"cloridrato}
+% is breakable as \textsf{des-clor-fe-nir-ami-na-clo-ri-dra-to}
+% instead of \textsf{de-sclor-fe-ni-ra-mi-na-\dots}
+%
+% In other language description files a shorthand is defined so
+% as to allow a break point without actually inserting any
+% hyphen sign; examples are given such as
+% \mbox{entrada/salida}; actually if one wants to allow a
+% breakpoint after the slash, it is much clearer to type
+% |\slash| instead of |/| and \LaTeX\ does everything by
+% itself; here the shorthand |"/| was introduced to stand for
+% |\slash| so that one can type |input"/output| and allow
+% a line break after the slash. This shorthand works only for
+% the slash, since in Italian such constructs are extremely
+% rare.
% \end{sloppypar}
%
-% Attention: the expansion of |"| takes place before the actual
-% expansion of OT1 or T1 accented sequences such as |\`{a}|;
-% therefore this etymological hyphenation facility works as it
-% should only when the semantic word fragments \textit{do not
-% start} with an accented letter; this in Italian is always
-% avoidable, because compulsory accents fall only on the last
-% vowel, but it may be necessary to mark a compound word where one
-% or more components come from a foreign language and contain
-% diacritical marks according to the spelling rules of that
-% language. In this case the special shorthand \verb!"|! may be
-% used that performs exactly as |"| normally does, except that the
-% \verb!|! sign is removed from the token input list:
+% Attention: the expansion of |"| takes place before the actual
+% expansion of OT1 or T1 accented sequences such as |\`{a}|;
+% therefore this etymological hyphenation facility works as it
+% should only when the semantic word fragments \textit{do not
+% start} with an explicitly accented letter; this in Italian
+% is always avoidable, because compulsory accents fall only on
+% the last vowel, but it may be necessary to mark a compound
+% word where one or more components come from a foreign
+% language and contain diacritical marks according to the
+% spelling rules of that language. In this case the special
+% shorthand \verb!"|! may be used that performs exactly as |"|
+% normally does, except that the \verb!|! sign is removed from
+% the token input list:
% \verb!kilo"|\"orsted! gets hyphenated as
% \texttt{ki-lo-\"or-sted}; but also
-% \texttt{kilo\string"\string|\"orsted} gets hyphenated correctly
-% as \texttt{ki-lo-\"or-sted} The \verb="|= macro is necessary
-% because, even with a suitable option specified to the |inputenc|
-% package, the letter `\"o' does not have category code 11, as the
-% ASCII letters do, because of the LICR (LaTeX Internal Character
-% Representation), i.e. the set of intermediate macros that have to be
-% expanded in order to fetch the proper glyph in the output font.
-%
-% \changes{italian-1.2l}{1999/04/05}{Added useful macros for
+% \texttt{kilo\string"\string|\"orsted} gets hyphenated
+% correctly as \texttt{ki-lo-\"or-sted}.
+% The \verb="|= macro is necessary because, even with a
+% suitable option specified to the |inputenc| package, the
+% letter `ö' does not have category code 11, as the ASCII
+% letters do, because of the LICR (LaTeX Internal Character
+% Representation), i.e. the set of intermediate macros that
+% have to be expanded in order to fetch the proper glyph in the
+% output font. Users should realise that with \texttt{pdfLaTeX}
+% all accented letters are LICR macros, not plain characters as
+% they are in \texttt{xelatex} and \texttt{lualatex}.
+%
+% \changes{italian-1.2l}{1999/04/05}{Added useful macros for
% fulfilling ISO 31/XI regulations}
%
-% \subsection{Facilities required by the ISO 31/XI regulations}
-% The ISO 31/XI regulations require that units of measure are
-% typeset in upright font in both math and text, and
-% that in text mode they are separated from the numerical
-% indication of the measure with an unbreakable (thin) space.
-% The command |\unit| that was defined for achieving this
-% goal happened to conflict with the homonymous command defined by the
-% |units.sty| package; we therefore need to test if that package
-% has already been loaded so as to avoid conflicts; we assume that
-% if the user loads that package, s/he wants to use that package
-% facilities and command syntax.
+%\subsection{Facilities required by the ISO~80000 regulations}
+%
+% The ISO~80000\footnote{When this file was initially written,
+% only the ISO~3/XI regulations existed and it were
+% possible to consult them. In 2009 the new regulations
+% ISO~80000 were published; they were divided in several “parts”
+% to be sold individually; they were translated in other
+% languages, and in Europe and Italy they had prefixes such as
+% EN or UNI; in general the title numerical part remained the
+% same. They are extremely expensive for a private retired
+% citizen, who therefore has access to only a small part of such
+% regulations. Admittedly they are not so different from the
+% previous edition, but there are several new regulated items,
+% that were not present in the previous edition. An important
+% change is their title: the previous edition was
+% \emph{Mathematical symbols and units for physics and
+% technology} while now it is \emph{Mathematical symbols and
+% units for natural sciences and technology}.} regulations
+% require that units of measure are typeset in upright font in
+% both math and text, and that in text mode they are separated
+% from the numerical value of the measure with an unbreakable
+% (thin) space. The command |\unit| that was defined for
+% achieving this goal happened to conflict with the homonymous
+% command defined by the |units.sty| package; we therefore need
+% to test if that package has already been loaded so as to avoid
+% conflicts; we assume that if users load that package, they
+% want to use that package facilities and command syntax.
%
-% Actually there are around several packages that help to typeset
-% units of measure in the proper way; besides |units.sty| there are also
-% |SIunits| and |siunitx.sty|; the latter nowadays offers the best
-% performances in this domain. Therefore we keep controlling the
-% possibility that |units.sty| has been loaded just for backwards
-% compatibility, but we must do the same with |SIunits| and
-% |siunitx.sty|. In order to avoid the necessity o loading packages
-% in a certain order, we delay the test until |\begin{document}|.
-%
-% The same ISO regulations require also that super and subscripts
-% (apices and pedices) are in upright font, \emph{not in math
-% italics}, when they represent ``adjectives'' or appositions to
-% mathematical or physical variables that do not represent
-% countable or measurable entities: for example,
-% $V_{\mathrm{max}}$ or $V_{\mathrm{rms}}$ for a maximum voltage or
-% a root mean square voltage, compared to $V_i$ or $V_T$ as the $i$-th
-% voltage in a set, or a voltage that depends on the thermodynamic
-% temperature $T$. See \cite{Becc2} for a complete description of
-% the ISO regulations in connection with typesetting.
-%
-% More rarely it happens to use superscripts that are not
-% mathematical variables, such as the notation
-% $\mathbf{A}^{\!\mathrm{T}}$ to denote the transpose of matrix
-% $\mathbf{A}$; text superscripts are useful also as ordinals or
-% in old fashioned abbreviations in text mode; for example the
-% feminine ordinal $1^{\mathrm{a}}$ or the old fashioned obsolete
-% abbreviation F$^{\mathrm{lli}}$ for \mbox{Fratelli} in company
-% names (compare with ``Bros.'' for \underline{Bro}ther\underline{s}
-% in American English); text subscripts are mostly used in logos.
-%
-% \begin{macro}{\unit}
-% \begin{macro}{\ap}
-% \begin{macro}{\ped}
-% \begin{macro}{\setISOcompliance}
-% First we define the new (internal) commands |\bbl@unit|, |\bbl@ap|,
-% and |\bbl@ped| as robust ones.
-% \changes{italian-1.3}{2013/09/27}{Added testing to avoid conflicts
-% with the units.sty and siunitx.sty packages}
-% \changes{italian-1.3g}{2014/01/22}{Besides controlling conflicts with
-% units, siunitx, this facility is deactivated by default, and activated
-% only if the user wants to}
-% This facility is deactivated by default according to the contents of
-% an internal counter and the setting of the activation command by the
-% user; commands for apices and pedices remain available in any case.
+% Actually there are around several packages that help to
+% typeset units of measure in the proper way; besides
+% |units.sty| there are also |SIunits| and |siunitx.sty|; the
+% latter nowadays offers the best performances in this domain.
+%
+% Therefore we keep controlling the possibility that |units.sty|
+% has been loaded just for backwards compatibility, but we must
+% do the same with |SIunits| and |siunitx.sty|. In order to
+% avoid the necessity o loading packages in a certain order, we
+% delay the test until |\begin{document}|.
+%
+% The same ISO regulations require also that superscripts and
+% subscripts (apices and pedices) are typeset in upright font,
+% \emph{not in math italics}, when they represent “adjectives”
+% or appositions to mathematical or physical symbols that do not
+% represent countable or measurable entities: for example,
+% $V_{\mathrm{max}}$ or $V_{\mathrm{rms}}$ for a maximum voltage
+% or a root mean square voltage, compared to $V_i$ or $V_T$ as
+% the $i$-th voltage in a set, or a voltage that depends on the
+% thermodynamic temperature $T$. See \cite{Becc2} for a complete
+% description of the ISO regulations in connection with
+% typesetting.
+%
+% More rarely it happens to use superscripts that are not
+% mathematical symbola, such as the notation
+% $\mathbf{A}^{\!\mathrm{T}}$ to denote the transpose of matrix
+% $\mathbf{A}$; text superscripts are useful also as ordinals or
+% in old fashioned abbreviations in text mode; for example the
+% feminine ordinal $1^{\mathrm{a}}$ or the old fashioned
+% obsolete abbreviation F$^{\mathrm{lli}}$ for \mbox{Fratelli}
+% in company names (compare with “Bros.” for
+% \underline{Bro}ther\underline{s} in American English); text
+% subscripts are mostly used in logos.
+%
+% \begin{macro}{\unit}
+% \begin{macro}{\ap}
+% \begin{macro}{\ped}
+% \begin{macro}{\setISOcompliance}
+% First we define the new (internal) commands |\bbl@unit|,
+% |\bbl@ap|, and |\bbl@ped| as robust ones.
+% \changes{italian-1.3}{2013/09/27}{Added testing to avoid
+% conflicts with the units.sty and siunitx.sty packages}
+% \changes{italian-1.3g}{2014/01/22}{Besides controlling
+% conflicts with units, siunitx, this facility is
+% deactivated by default, and activated only if the user
+% wants to}
+% This facility is deactivated by default according to the
+% contents of an internal counter and the setting of the
+% activation command by the user; commands for apices and
+% pedices remain available in any case.
% \begin{macrocode}
\newcount\it@ISOcompliance \it@ISOcompliance=\z@
\def\setISOcompliance{\it@ISOcompliance=\@ne}
-\AtBeginDocument{\unless\ifnum\it@ISOcompliance=\z@%
+\AtBeginDocument{%
+\unless\ifnum\it@ISOcompliance=\z@%
\def\activate@it@unit{\DeclareRobustCommand*{\bbl@it@unit}[1]{%
\textormath{\,\textup{##1}}{\,\mathrm{##1}}}}
\@ifpackageloaded{units}{}{\@ifpackageloaded{siunitx}{}{%
\@ifpackageloaded{SIunits}{}{%
\activate@it@unit\addto\extrasitalian{%
\babel@save\unit\let\unit\bbl@it@unit}%
- }}}\ifcsstring{bbl@main@language}{italian}{\selectlanguage{italian}}{}%
+ }}}%
+\ifcsstring{bbl@main@language}{italian}{\selectlanguage{italian}}{}%
\fi}
\DeclareRobustCommand*{\bbl@it@ap}[1]{%
\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
@@ -957,253 +1097,264 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\textormath{$_{\mbox{\fontsize\sf@size\z@
\selectfont#1}}$}{_\mathrm{#1}}}%
% \end{macrocode}
-% Then we can use |\let| to define the user level commands, but in
-% case the macros already have a different meaning before entering
-% in Italian mode typesetting, we first save their meaning so
-% as to restore them on exit.
+% Then we can use |\let| to define the user level commands, but
+% in case the macros already have a different meaning before
+% entering in Italian mode typesetting, we first save their
+% meanings so as to restore them on exit.
% \begin{macrocode}
\addto\extrasitalian{%
\babel@save\ap\let\ap\bbl@it@ap
\babel@save\ped\let\ped\bbl@it@ped
}%
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsection{Intelligent comma}\label{ssec:comma}
%
-% We need to perform some tests that require some
-% smart control-sequence handling; therefore we call the |etoolbox|
-% package that allows us more testing functionality. There are no
-% problems with this package that can be invoked also by other ones
-% before or after |babel| is called; the |\RequirePackage| mechanism is
-% sufficiently smart to avoid reloading the same package more than
-% once. But we have to delay this call, because |italian.ldf| is being
-% read while processing the options passed to |babel|, and while
-% options are being scanned and processed it is forbidden to load
-% packages; we delay it at the end of processing the |babel| package
+% We need to perform some tests that require some smart
+% control-sequence handling; therefore we call the |etoolbox|
+% package that allows us more testing functionality. There are
+% no problems with this package that can be invoked also by
+% other ones before or after |babel| is called; the
+% |\RequirePackage| mechanism is sufficiently smart to avoid
+% reloading the same package more than once. But we have to
+% delay this call, because |italian.ldf| is being read while
+% processing the options passed to |babel|, and while options
+% are being scanned and processed it is forbidden to load
+% packages; we delay it at the end of processing the |babel|
+% package
% itself.
% \begin{macrocode}
\AtEndOfPackage{\RequirePackage{etoolbox}}
% \end{macrocode}
%
-% \begin{macro}{\IntelligentComma}
-% \begin{macro}{\NoIntellgentComma}
-% This feature is optional, in the sense that it is necessary to issue
-% a specific command to activate it; actually this functionality is
-% activated or, respectively, deactivated with the self explanatory
-% commands |\IntelligentComma| and |\NoIntelligentComma|. They operate
-% by setting or resetting the comma sign as an active character in
-% mathematics. We defer the definition of the commands that turn on and
-% off the intelligent comma feature at the end of the preamble, so as
-% to avoid possible conflicts with other packages. It has already been
-% pointed out that this procedure for setting up the active comma to
-% behave intelligently in math mode, conflicts with the |dcolumn|
-% package; therefore we assume these commands are defined when the
-% final user typesets a document, but they will be possibly defined
-% only at the end of the preamble when it will be known if the
-% |dcolumn| package has been loaded. We do the same if packages
-% |icomma| or |ncccomma| have been loaded, since that assumes that the
-% user wants to use their functionality, not the functionality of this
-% package.
-%
-% We need a command to set the comma as an active charter only in math
-% mode; the special |\mathcode| that classifies an active character in
-% math is the hexadecimal value |"8000|. By default we set the
-% punctuation type of comma, but we let |\IntelligentComma| and
-% |\NoIntelligentComma| to |\relax| so that their use is forbidden when
-% one of the named packages is loaded. In this way all known conflicts
-% are avoided; should the users find out other conflicts, they are
-% kindly required to notify them to the maintainer.
+% \begin{macro}{\IntelligentComma}
+% \begin{macro}{\NoIntellgentComma}
+%
+% This feature is optional, in the sense that it is necessary to
+% issue a specific command to activate it; actually this
+% functionality is activated or, respectively, deactivated with
+% the self explanatory commands |\IntelligentComma| and
+% |\NoIntelligentComma|. They operate by setting or resetting
+% the comma sign as an active character in mathematics. We defer
+% the definition of the commands that turn on and off the
+% intelligent comma feature at the end of the preamble, so as
+% to avoid possible conflicts with other packages. It has
+% already been pointed out that this procedure for setting up
+% the active comma to behave intelligently in math mode,
+% conflicts with the |dcolumn| package; therefore we assume
+% these commands are defined when the final user typesets a
+% document, but they will be possibly defined only at the end of
+% the preamble when it will be known if the |dcolumn| package
+% has been loaded. We do the same action if packages |icomma|.
+% |ncccomma| or |decimalcomma| have been loaded, since this
+% assumes that the user wants to use their functionality, not
+% the functionality defined in this file.
+%
+% We need a command to set the comma as an active character only
+% in math mode; the special |\mathcode| that classifies an
+% active character in math is the hexadecimal value |"8000|.
+% By default we set the punctuation comma, but we let
+% |\IntelligentComma| and |\NoIntelligentComma| to |\relax| so
+% that their use is neutralised when one of the named packages
+% is loaded. \textcolor{red}{In this way all known conflicts are
+% avoided; should users find out other conflicts, they are
+% kindly requested to notify the maintainer}.
% \begin{macrocode}
-\AtEndOfPackage{\AtEndPreamble{%
-\newcommand*\IntelligentComma{\mathcode`\,=\string"8000}% Active comma
-\newcommand*\NoIntelligentComma{\mathcode`\,=\string"613B}% Punctuation comma
-\@ifpackageloaded{icomma}{\let\IntelligentComma\relax
- \let\NoIntelligentComma\relax}{%
- \@ifpackageloaded{ncccomma}{\let\IntelligentComma\relax
+\AtEndOfPackage{%
+%
+\AtEndPreamble{%
+\newcommand*\IntelligentComma{\mathcode`\,=\string"8000}%
+\newcommand*\NoIntelligentComma{\mathcode`\,=\string"613B}%
+\@ifpackageloaded{icomma}{%
+ \let\IntelligentComma\relax
\let\NoIntelligentComma\relax}{%
- \@ifpackageloaded{dcolumn}{\let\IntelligentComma\relax
+ \@ifpackageloaded{ncccomma}{%
+ \let\IntelligentComma\relax
+ \let\NoIntelligentComma\relax}{%
+ \@ifpackageloaded{dcolumn}{%
+ \let\IntelligentComma\relax
\let\NoIntelligentComma\relax}{%
- \@ifpackageloaded{polyglossia}{%
- \ifcsstring{xpg@main@language}{english}{\relax}{%
- \mathcode`\,=\string"613B}
- }{%
- \ifcsstring{languagename}{english}{\relax}{%
- \mathcode`\,=\string"613B}
- }%
+ \ProvideDocumentEnvironment{english}{}%
+ {\begin{otherlanguage}{english}%
+ \NoIntelligentComma}%
+ {\end{otherlanguage}}%
}}}%
}}
% \end{macrocode}
-% These commands are defined only in the |babel| support for the
-% Italian language (this file) and are not defined in the
-% corresponding |polyglossia| support for the language.
-% In order to have this functionality work properly with pdfLaTeX,
-% XeLaTeX, and LuaLaTeX, it is necessary to discover which engine
-% is being used, or better, which language handling package is
-% being used: |babel| or |polyglossia|? Let us remember that testing
-% the actual engine, as it would be possible with package |iftex|,
-% does not tell the whole truth, because LuaLaTeX and XeLaTeX behave
-% in a similar way for what concerns language handling since they can
-% use both |babel| and |polyglossia| (obviously not at the same time);
-% so the use of |babel| or |polyglossia| is the real discriminant
-% factor, not the typesetting engine.
-%
-% \begin{macro}{\virgola}
-% \begin{macro}{\virgoladecimale}
-% We need two kinds of comma, one that is a decimal separator, and
-% a second one that is a punctuation mark.
+% These commands are defined only in the |babel| support for the
+% Italian language (this file).
+%
+% \begin{macro}{\virgola}
+% \begin{macro}{\virgoladecimale}
+% We need two kinds of commas, one that is a decimal
+% separator/mark, and a second one that is a punctuation mark.
% \begin{macrocode}
\DeclareMathSymbol{\virgoladecimale}{\mathord}{letters}{"3B}
\DeclareMathSymbol{\virgola}{\mathpunct}{letters}{"3B}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
%
-% \changes{italian-1.3a}{2013/10/02}{Corrected the bug of the intelligent
-% comma when used within the AMS alignment environments}
+% \changes{italian-1.3a}{2013/10/02}{Corrected the bug of the
+% intelligent comma when used within the AMS alignment
+% environments}
%
-% Math comma activation is done only after the preamble has been
-% completed, that is after the |\begin{document}| statement has been
-% completely executed. Now we must give a definition to the active
-% comma.
+% Math comma activation is done only after the preamble has been
+% completed, that is after the |\begin{document}| statement has
+% been completely executed. Now we must give a definition to the
+% active comma.
% \begin{macrocode}
{\catcode`,\active \gdef,{\futurelet\tempB\?}}
% \end{macrocode}
-% In facts the above macro lets a temporary control sequence |\tempB|
-% be an alias of the token that immediately follows |\?|; |\tempB| then
-% behaves as an implicit character if that token is a single character,
-% even a space (category cod~10) or a closed brace {category code~3},
-% or an alias of a generic control sequence otherwise.
-%
-% Is is important to remark that |\?| must be a command that
-% does not require arguments; this makes it robust when it is followed
-% by other tokens that may play special r\^oles within the
-% arguments of other macros or environments. Matter of fact the first
-% version 1.3 of this file did accept an argument; and the result was
-% that the active comma would ``gobble'' the |&| in vertical math
-% alignments and very nasty errors took place, especially within the
-% |amsmath| defined ones. This macro |\?| without arguments
-% does not do any harm to the AMS environments and a part of the actual
-% intelligent comma work is going to be executed by other macros that
-% accept an argument in a safe way.
-%
-% Since the intelligent comma is going to be used only in math mode,
-% it must be intelligent enough to avoid problems with commands used
-% in math mode; in particular with commands that operate on digits,
-% such as |\bar| and |\overline|
-%
-% At this point the situation may become complicated: the comma
-% character in the input file may be followed by a real digit, by an
-% analphabetic character of category 12 (other character), by an
-% implicit digit, by a macro defined to be a digit, by a macro that is
-% not defined to be a digit, by a special character (for example a
-% closed brace, an alignment command, et cetera); therefore it is
-% necessary to distinguish all these situations; remember that an
-% implicit digit cannot be used as a real digit, and a macro gets
-% expanded when used within any |\if| clause, except |\ifx|,
-% or is prefixed with |\noexpand|. The tests that are going to be made
-% hereafater are therefore of different kinds, according to this
-% scheme:
-% \begin{itemize}
-% \item
-% we test if the next character is a space (category code~10) and chose
-% at once the puntuation comma;
-% \item
-% we test the the next character id a closed brace (category code~3)
-% and chose immediately the decimal comma, assuming we are in a
-% situation such as |$2,}619$|, just for backwards compatibility;
-% such wrapping of the decimal comma was common when no intelligent
-% comma macros or packages were available;
-% \item
-% we have to check if the next token is |bar| or |\overline| (or a
-% |\periodo|, a new command added by this language description file));
-% we assume that these commands are used to mark the digits of the
-% periodic component of the fractional part of a rational number.
-% May be this assumption is not always correct, but it should be the
-% most common situation when one of these commands is immediately
-% preceded by a comma.
-% \item
-% the |\tempB| category is tested against an asterisk to see if
-% it is of category 12; this is true if the token is a real digit, or
-% an implicit digit, or an analphabetic character;
-% \begin{itemize}
-% \item
-% an implicit digit might be represented by a control sequence; so we
-% check this feature;
-% \item
-% if that |\tempB| is a control sequence, we have to test its
-% nature of a digit by testing if it represented one of the ten
-% digits; of course it is strongly discouraged to let some control
-% sequences be aliases of digits;
-% \item
+% In facts the above macro lets a temporary control sequence
+% |\tempB| be an alias of the token that immediately follows
+% |\?|; |\tempB| then behaves as an implicit character if that
+% token is a single character, even a space (category cod~10)
+% or a closed brace {category code~3}, or an alias of a generic
+% control sequence otherwise.
+%
+% It is important to remark that |\?| must be a command that
+% does not require arguments; this makes it robust when it is
+% followed by other tokens that may play special rôles within
+% the arguments of other macros or environments. Matter of fact
+% the first version 1.3 of this file did accept an argument; and
+% the result was that the active comma would “gobble” the |&| in
+% vertical math alignments and very nasty errors took place,
+% especially within the |amsmath| defined ones. This macro |\?|
+% without arguments does not do any harm to the AMS environments
+% and a part of the actual intelligent comma work is going to be
+% executed by other macros that accept an argument in a safe
+% way. Since the intelligent comma is going to be used only in
+% math mode, it must be intelligent enough to avoid problems
+% with commands used in math mode; in particular with commands
+% that operate on digits, such as |\bar| and |\overline|
+%
+% At this point the situation may become complicated: the comma
+% character in the input file may be followed by a real digit,
+% by an analphabetic character of category 12 (other character),
+% by an implicit digit, by a macro defined to be a digit, by a
+% macro that is not defined to be a digit, by a special
+% character (for example a closed brace, an alignment command,
+% et cetera); therefore it is necessary to distinguish all these
+% situations; remember that an implicit digit cannot be used as a real digit, and a macro gets expanded when used within any
+% |\if| clause, except |\ifx|, or is prefixed with |\noexpand|.
+% The tests that are going to be made hereafter are therefore
+% of different kinds, according to this scheme:
+% \begin{itemize}
+% \item
+% we test if the next character is a space (category code~10)
+% and chose at once the punctuation comma;
+% \item
+% we test the next character is a closed brace (category
+% code~3) and chose immediately the decimal comma, assuming
+% we are in a situation such as |$2{,}619$|, just for
+% backwards compatibility; such wrapping of the decimal comma
+% was common when no intelligent comma macros or packages
+% were available;
+% \item
+% we have to check if the next token is |bar| or |\overline|
+% (or a |\periodo|, a new command added by this language
+% description file)); we assume that these commands are used
+% to mark the digits of the periodic component of the
+% fractional part of a rational number.
+% May be this assumption is not always correct, but it should
+% be the most common situation when one of these commands is
+% immediately preceded by a comma.
+% \item
+% the |\tempB| category is tested against an asterisk to see
+% if it is of category 12; this is true if the token is a
+% real digit, or an implicit digit, or an analphabetic
+% character;
+% \begin{itemize}
+% \item
+% an implicit digit might be represented by a control
+% sequence; so we check this feature;
+% \item
+% if that |\tempB| is a macro, we have to test its
+% nature of a digit by testing if it represents one of the
+% ten digits; of course it we strongly discourage to let
+% some control sequences be an aliase of one or more
+% digits;
+% \item
% in all other cases, as it has category code~12, it is an
% analphabetic character.
-% \end{itemize}
-% \item
+% \end{itemize}
+% \item
% otherwise the |\tempB| is a special character or a command;
-% \item
-% a test is made to see if it is a macro; in this case we check
-% if has been defined to be a digit,
-% \item
-% if it is not a macro, it must be some other kind of token for
-% example another special character.
+% \item
+% a test is made to see if it is a macro; in this case we
+% check if has been defined to be a digit,
+% \item
+% if it is not a macro, it must be some other kind of token
+% for example another special character.
% \end{itemize}
%
-% Notice that if the token is a macro, we do not test if it is defined
-% to be a single digit or a string made up of several digits and/or
-% other charters. If the macro represents one digit the test is
-% correct, otherwise funny results may take place. For this reason it
-% is always better to prefix any macro with a space, whatever its
-% definition might be; if the macro represents a parameter defined to
-% have a numeric value in the range 0--9, then it may represent the
-% fractional part of a (single digit) decimal value, and it is correct
-% to avoid prefixing it with a space; but the users are warned not to
-% make use of numeric strings in the definition of parameters, unless
-% they know exactly what they are doing.
-%
-% The users, if the intelligent comma is active, may use a
-% balanced brace comma group |{,}| but we discourage it for new
-% documents; in any case such a group works fine if the intelligent
-% comma is not active, for example because a stretch of text in a
-% different language is being typeset.
-%
-% So first we test if the comma must act intelligently; we have to
-% perform delicate tests; as a last resource this task is demanded to
-% another macro with arguments: |\@math@@comma|. In order to make the
-% various tests robust we have to resort to the usual trick of the
-% auxiliary macros |\@firstoftwo| and |\@secondoftwo| and various
-% |\expandafter| commands so as to be sure that each |\if| clause is
-% correctly exited without leaving any trace behind. Similarly the
-% |\ifcsequal| compares two control sequence names and compares the
-% equality of their meanings, just as as |\ifx| does, but they are
-% robust in the sense that they don't leave any trace after execution:
-% the third argument code is executed if the test is true, and the
-% fourth one if it is false.
-% Notice that the tests with macros |\periodo|, |\bar|, and|\overline|
-% are used to verify if the fractional part after the comma over lines
-% its periodic component; users are suggested to use the |\periodo|
-% macro that is capable of expanding its argument even if it is a macro
-% (that contains digits); for example the division by~7 yields periods
-% that contains the periodic sequence $142857$, starting with any digit
-% of this sequence: $1/7=0{,}\overline{142857}$,
-% $2/7=0{,}\overline{285714}$, $3/7=0{,}\overline{428571}$,\dots.
-% Users might define six macros with mnemonic names (for example,
-% |\oneoverseven|, |\twooverseven|,\dots) that contain the six digits
-% in the proper order, and use such macros instead of the digit
-% string, saving themselves possible typos; in math, everybody knows
-% that typos are not allowed.
-%
-% The |ifdigit| macros that is defined hereafter is a test made by
-% using a \LaTeX\ kernel internal procedure that compares it only
-% argument with one of the ten digits at a time; if the argument
-% is a digit choses the decimal comma, otherwise the punctuation one;
-% the test is similar but not identical to the one performed by the
-% |nccomma| package; on the opposite the test against s space is
-% performed with a test similar but not identical to the one done
-% by the |icomma| package; all other tests are specific of this
+% Notice that if the token is a macro, we do not test if it
+% is defined to be a single digit or a string made up of
+% several digits and/or other charters. If the macro
+% represents one digit the test is correct, otherwise
+% unexpected results may take place. For this reason it
+% is always better to prefix any macro with a space, whatever
+% its definition might be; if the macro represents a
+% parameter defined to have a numeric value in the range
+% 0--9, then it may represent the fractional part of a
+% (single digit) decimal value, and it is correct
+% to avoid prefixing it with a space; but the users are
+% warned not to make use of numeric strings in the definition
+% of parameters, unless they know exactly what they are
+% doing.
+%
+% Users, if the intelligent comma is active, may use a
+% balanced brace comma group |{,}| but we discourage it for
+% new documents; in any case such a group works fine if the
+% intelligent comma is not active, for example because a
+% stretch of text in a different language is being typeset.
+%
+% So first we test if the comma must act intelligently;
+% we have to perform delicate tests; as a last resource this
+% task is demanded to another macro with arguments:
+% |\@math@@comma|. In order to make the various tests robust
+% we have to resort to the usual trick of the auxiliary
+% macros |\@firstoftwo| and |\@secondoftwo| and various
+% |\expandafter| commands so as to be sure that each |\if|
+% clause is correctly exited without leaving any trace
+% behind. Similarly the |\ifcsequal| compares two control
+% sequence \emph{names} and compares the equality of their
+% meanings, just as as |\ifx| does, but they are robust in
+% the sense that they don't leave any trace after execution:
+% the third argument code is executed if the test is true,
+% and the fourth one if it is false.
+% Notice that the tests with macros |\periodo|, |\bar|, and
+% |\overline| are used to verify if the fractional part after
+% the comma sets a line over its periodic component; users
+% are suggested to use the |\periodo| macro that is capable
+% of expanding its argument even if it is a macro (that
+% contains digits); for example the division by~7 yields
+% periods that contains the periodic sequence $142857$,
+% starting with any digit of this sequence:
+% $1/7=0{,}\overline{142857}$, $2/7=0{,}\overline{285714}$,
+% $3/7=0{,}\overline{428571}$,\dots.
+% Users might define six macros with mnemonic names (for
+% example, |\oneoverseven|, |\twooverseven|,\dots) that
+% contain the six digits in the proper order, and use such
+% macros instead of the digit string, saving themselves
+% possible typos; everybody knows that typos are not allowed
+% in math. But these macros should be used as arguments of
+% |periodo|, otherwise the decimal mark test fails.
+%
+% The |ifdigit| macros that is defined hereafter is a test
+% made by using a \LaTeX\ kernel internal procedure that
+% compares its only argument with one of the ten digits at a
+% time; if the argument is a digit choses the decimal comma,
+% otherwise the punctuation one; the test is similar but not
+% identical to the one performed by the |nccomma| package; on
+% the opposite the test against a space is performed with a
+% test similar but not identical to the one done by the
+% |icomma| package; all other tests are specific of this
% package.
% \begin{macrocode}
@@ -1250,7 +1401,7 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\expandafter\@secondoftwo
\fi
{\virgola}% \tempB actually is a macro
- {\@math@@comma}% \tempB is an alias of something else
+ {\@math@@comma}% \tempB is an alias
}%
}%
}%
@@ -1260,30 +1411,32 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
}
% \end{macrocode}
-%
-% In particular this macro starts testing if it is an alias for a
-% space token (category 10); then tests if it is an alias
-% of |\periodo|, or |\bar| or |\overline| and if it is the decimal
-% separator should be a decimal comma (see below); otherwise other
-% tests are carried on. This macro then tests if the argument has
-% category code~12, that is ``other character'', not a letter, nor
-% other special signs, as, for example,~|&|. In case if the category
-% code is not~12, the comma must act as a punctuation mark; but if it
-% is, it might be a digit, or another character, for example an
-% asterisk; so we have to test its digit nature; the simplest way that
-% we found to test if a token is a digit, is to test if its ASCII code
-% lays within the range delimited by the ASCII codes of~`0' (zero)
-% and~`9'.
-%
-% The typesetting engines give the back tick, |`|, the property that
-% when a number is required, it yields the ASCII code if the following
-% token is an explicit character or a macro argument number; this is
-% why we can't use the temporary implicit token we just tested, but we
-% must examine the first non blank token that follows the
-% |\@math@@comma| macro. Only if the token is a digit, we use the
-% decimal comma, otherwise the punctuation mark. This is therefore the
-% definition of the |\@math@@comma| macro which is not that simple,
-% although the testing macros have clear meanings:
+%
+% In particular this macro starts testing if it is an alias for
+% a space token (category 10); then tests if it is an alias
+% of |\periodo|, or |\bar| or |\overline| and if it is the
+% decimal separator should be a decimal comma (see below);
+% otherwise other tests are carried on. This macro then tests if
+% the argument has category code~12, i.e.\ “other character”,
+% not a letter, nor other special signs, as, for example,~|&|.
+% In case the category code is not~12, the comma must act as a
+% punctuation mark; but if its category cose is~12, it might be
+% a digit, or another character, for example an asterisk; so we
+% have to test its digit nature; the simplest way that we found
+% to test if a token is a digit, is to test if its ASCII code
+% lays within the range delimited by the ASCII codes
+% of~`0' (zero) and~`9'.
+%
+% The typesetting engines give the back tick, |`|, the property
+% that when a number is required, it yields the ASCII code if
+% the following token is an explicit character or a macro
+% argument number; this is why we can't use the temporary
+% implicit token we just tested, but we must examine the first
+% non blank token that follows the |\@math@@comma| macro. Only
+% if the token is a digit, we use the decimal comma, otherwise
+% the punctuation mark. This is therefore the definition of the
+% |\@math@@comma| macro which is not that simple, although the
+% testing macros have clear meanings:
% \begin{macrocode}
\DeclareRobustCommand*\@math@@comma[1]{% argument IS of category 12
\ifcsundef{\expandafter\@gobble\string #1}%
@@ -1295,273 +1448,315 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
{% it's an implicit character of category 12
\let\@tempVirgola\virgola
\@tfor\@tempCifra:=0123456789\do{%
- \expandafter\if\@tempCifra#1\let\@tempVirgola\virgoladecimale
+ \expandafter\if\@tempCifra#1\let\@tempVirgola
+ \virgoladecimale
\@break@tfor\fi}\@tempVirgola
}#1}%
% \end{macrocode}
-% The service macros |\ifcsundef|, |\ifnumless|, and |\ifnumgreater|
-% are provided by the |etoolbox| package, that shall be read at most at
-% the end of the |babel| package processing; therefore we must delay
-% the code at ``end preamble'' time, since only at that time
-% it will be known if the main language is English, or any other one.
-%
-% This intelligent comma definition is pretty intelligent, but it
-% requires some kind of information from the context; this context does
-% not give enough bits of information to this `intelligence' in just
-% one case: when the comma plays the r\^ole of a serial separator in
-% expressions such as $i=1, 2, 3,\dots,\infty$, entered as
-% \verb*?$i=1, 2, 3,\dots,\infty$?. Only in this case the comma must
-% be followed by an explicit space; should this space be absent the
-% macro takes the following non blank token as a digit, and since it
-% actually is a digit, it would use the decimal comma, which
-% would be wrong. The control sequences |\dots| and |\infty| are
-% tested to see if they are undefined, and since they are defined and
-% do not represent digits, the macro inserts a punctuation mark,
-% instead of a decimal separator.
-%
-% Notice that this macro may appear to be inconsistent with the
-% contents of a language description file. I don't agree: matter of
-% facts even math is part of typesetting a text in a certain language.
-% Does this set of macros influence other language description files?
-% May be, but I think that the clever use of macros |\IntelligentComma|
-% and |\NoIntellingentComma| may solve any interference; they allow to
-% use the proper mark even if the Italian language is not the main
-% language, the important point is to turn the switch on and/or off.
-% By default it is off, so there should not be any interference even
-% with legacy documents typeset in Italian.
-%
-% Notice that there are other packages that contain facilities for
-% using the decimal comma as the correct decimal separator; for
-% example |SIunitx| defines a command |\num| that not only correctly
-% spaces the decimal separator, but also can change the input glyph
-% with another one, so that it is possible to copy numbers
-% from texts in English (with the decimal point) and paste them
-% into the argument of the |\num| macro in an Italian document where
-% the decimal point is changed automatically into a decimal comma. Of
-% course |SIunitx| does much more than that; if it's being loaded,
-% then the default |\NoIntelligentComma| declaration disables the
-% functionality defined in this language description file and the
-% users can do what they desire with the many functionalities of that
-% package.
-%
-% Apparently a conflict with the active comma arises with the~D column
-% defined by the |dcolomn| package. Disabling the “Italian” active
-% comma allows the~D column operate correctly. Thanks to Giuseppe
-% Toscano for telling me about this conflict.
+% The service macros |\ifcsundef|, |\ifnumless|, and
+% |\ifnumgreater| are provided by the |etoolbox| package, that
+% shall be read at most at the end of the |babel| package
+% processing; therefore we must delay the code at “end preamble”
+% time, since only at that time it will be known if the main
+% language is Italian, or any other one.
+%
+% This intelligent comma definition is pretty intelligent, but
+% it requires some kind of information from the context; this
+% context does not give enough bits of information to this
+% `intelligence' in just one case: when the comma plays the
+% rôle of a serial separator in expressions such as
+% $i=1, 2, 3,\dots,\infty$, entered as
+% \verb*?$i=1, 2, 3,\dots,\infty$?. Only in this case the comma
+% must be followed by an explicit space; should this space be
+% absent the macro takes the following non blank token as a
+% digit, and since actually it is a digit, it would use the
+% decimal comma, which is wrong. The control sequences
+% |\dots| and |\infty| are tested to see if they are undefined,
+% and since they are defined and do not represent digits, the
+% macro inserts a punctuation mark, instead of a decimal mark.
+%
+% Notice that this macro may appear to be inconsistent with the
+% contents of a language description file. We don't agree:
+% matter of facts even math is part of typesetting a text in a
+% certain language. Does this set of macros influence other
+% language description files? May be, but I think that the
+% clever use of macros |\IntelligentComma| and
+% |\NoIntellingentComma| may solve any interference; they allow
+% to use the proper mark even if the Italian language is not the
+% main language, the important point is to turn the switch on
+% and/or off. By default it is off, so there should not be any
+% interference even with legacy documents typeset in Italian.
+% This is why above we defined the environment |english| that
+% sets |\NeIntelligentComma| at the beginning of its argument,
+% so as to be sure that where the decimal point is the decimal
+% mark, no active commas are are in force.
+%
+% Notice that there are other packages that contain facilities
+% for using the decimal comma as the correct decimal mark; for
+% example |SIunitx| defines a command |\num| that not only
+% correctly spaces the decimal separator, but also can change
+% the input glyph with another one, so that it is possible to
+% copy numbers from texts in English (with the decimal point)
+% and paste them into the argument of the |\num| macro in an
+% Italian document where the decimal point is changed
+% automatically into a decimal comma. Of course |SIunitx| does
+% much more than that; if it's being loaded, then the default
+% |\NoIntelligentComma| declaration disables the functionality
+% defined in this language description file and the users can do
+% what they desire with the many functionalities of that
+% package.
+%
+% Apparently a conflict with the active comma arises with the~D
+% column defined by the |dcolomn| package. Disabling the
+% “Italian” active comma allows the~D column operate correctly.
+% Thanks to Giuseppe Toscano for telling me about this conflict.
% \end{macro}
% \end{macro}
%
% \subsection*{Obsolete arrangements}
-% In the following sections we describe some features that nowadays
-% should be considered totally obsolete. We speak about OT! encoded
-% fonts (who uses them today?); about the limitations of the Italian
-% keyboard, that with modern operating systems may be overridden
-% easily; with French double quotes, that are being used also in
-% Italian, although without any space separating them from their
-% contents (as it happen in French typography); and so on. Consider
-% that this language description file initial versions are more than
-% 30 years old, and in these 30 plus years many legacy documents were
-% created; the following sections describe what had to be done years
-% ago and the information may be useful to upgrade those documents
+%
+% In the following sections we describe some features that
+% nowadays should be considered totally obsolete. We speak about
+% OT! encoded fonts (who uses them today?); about the
+% limitations of the Italian keyboard, that with modern
+% operating systems may be overridden easily; with French double
+% quotes, that are being used also in Italian, although without
+% any space separating them from their contents (as it happen in
+% French typography); and so on. Consider that this language
+% description file initial versions are more than 30 years old,
+% and in this long stretch of time many legacy documents were
+% created; the following sections describe what had to be done
+% years ago and the information may be useful to upgrade those documents
%
% \subsection*{Accents}\label{s:itkbd}
-% Most of the other language description files introduce a number
-% of shorthands for inserting accents and other language specific
-% diacritical marks in a more comfortable way compared to the
-% lengthy standard \TeX\ conventions. When an Italian keyboard is
-% being used on a Windows based platform, it exhibits such
-% limitations that to my best knowledge no convenient shorthands have
-% been developed; the reason lies in the fact that the Italian keyboard
-% lacks the grave accent (also known as ``backtick''), which is
-% compulsory on all accented vowels, but, on the
-% opposite, it carries the keys with all the accented \emph{lowercase}
-% vowels \`a, \`e, \'e, \`i, \`o, \`u, bot no \emph{uppercase} accented
-% vowels are directly available from the keyboard; the keyboard lacks
-% also the tie |~| (tilde) key, while the curly braces require pressing
-% three keys simultaneously.
-%
-% The best solution Italians have found so far is to use a smart
-% editor that accepts shorthand definitions such that, for example,
-% by striking |"(| one gets directly |{| on the screen and the same
-% sign is saved into the \file{.tex} file; the same smart editor
-% should be capable of translating the accented characters into the
-% standard \TeX\ sequences when writing a file to disk (for the
-% sake of file portability), and to transform the standard \TeX\
-% sequences into the corresponding signs when loading a \file{.tex}
-% file from disk to memory. Such smart editors do exist and can be
-% downloaded from the \textsc{ctan} archives.
-%
-% \changes{italian-1.2p}{2002/07/10}{Removed redefinition of \cs{add@acc}
-% since its functionality has been introduced into the kernel of LaTeX
-% 2001/06/01}
-%
-% For what concerns the missing back tick key,
-% which is used also for inputting the open quotes, it must be
-% noticed that the shorthand |""| described above completely solves
-% the problem for \textit{double} raised open quotes; besides this,
-% a single open raised quote may be input with the little known
-% \LaTeX\ kernel command |\lq|; according to
-% the traditions of particular publishing houses, since there are
-% no compulsory regulations on the matter, the guillemets
-% may be used; in this case the T1 font encoding solves the problem
-% by means of its built in ligatures |<<| and |>>|; such ligatures
-% are also available when using OpenType fonts with XeLaTeX and
-% LuaLaTeX, provided they are loaded with the option
-% \texttt{Ligatures = TeX}. But\dots
-%
-% \subsection*{\emph{Caporali} or French double quotes}
-% Although the T1 font encoding ligatures solve the problem, there
-% are some circumstances where even the T1 font encoding cannot be
-% used, either because the author\slash typesetter wants to use the
-% OT1 encoding, or because s/he uses a font set that does
-% not comply completely with the T1 font encoding; some virtual
-% fonts, for example, are supposed to implement the double Cork
-% font encoding but actually miss some glyphs; one such virtual
-% font set is given by the \texttt{ae} virtual fonts, because they
-% are supposed to implement such double font encoding by using
-% virtual fonts that map the |CM| fonts to a T1 font scheme; the
-% type~1 PostScript version of the |CM| fonts do exist, therefore
-% one believes to be able of using them with pdfLaTeX; but since
-% the |CM| fonts do not contain the guillemets, neither the |AM|
-% ones do.
-% Since guillemets (in Italian \emph{caporali}) do not exist in
-% any OT1 encoded \texttt{cm} Latin font, their glyphs must be
-% substituted with something else that fakes them.
-%
-% \changes{italian-1.2q}{2005/02/05}{Redefined the caporali machinery
-% so as to avoid incompatibilities with the slides class, as there
-% are no Cyrillic slides fonts as there are for Latin script}
-% \changes{italian-1.3}{2013/09/30}{The slide font fix-up is not any
-% more necessary with the new caporali handling method.}
-%
-% In the previous versions of this language description file the
-% absent guillemets were faked with other fonts, by taking example
-% from the solution the French had found for their language
-% description file; they would get suitable guillemets from the
-% cyrillic fonts; this solution was good in most cases, except when
-% the ``slides fonts'' were used, because there is no Cyryllic slide
-% font around.
+% Most of the other language description files introduce a
+% number of shorthands for inserting accents and other language
+% specific diacritical marks in a more comfortable way compared
+% to the lengthy standard \TeX\ conventions. When an Italian
+% keyboard is being used on a Windows based platform, it
+% exhibits such limitations that to our best knowledge no
+% convenient shorthands have been developed; the reason lies in
+% the fact that the Italian keyboard lacks the grave accent
+% (also known as “backtick”), which is compulsory on all
+% accented vowels, but, on the opposite, it contains the keys
+% with all the accented \emph{lowercase} vowels \`a, \`e, \'e,
+% \`i, \`o, \`u, bot no \emph{uppercase} accented vowels are
+% directly available from the keyboard; the keyboard lacks
+% also the tie |~| (tilde) key, while the curly braces require
+% pressing three keys simultaneously.
+%
+% The best solution Italians have found so far is to use a smart
+% editor that accepts shorthand definitions such that, for
+% example, by striking |"(| one gets directly |{| on the screen
+% and the same sign is saved into the \file{.tex} file; the same
+% smart editor should be capable of translating the accented
+% characters into the standard \TeX\ sequences when writing a
+% file to disk (for the sake of file portability), and to
+% transform the standard \TeX\ sequences into the corresponding
+% signs when loading a \file{.tex} file from disk to memory.
+% Such smart editors do exist and can be downloaded from the
+% \textsc{ctan} archives.
+%
+% \changes{italian-1.2p}{2002/07/10}{Removed redefinition of
+% \cs{add@acc} since its functionality has been introduced
+% into the kernel of LaTeX 2001/06/01}
+%
+% For what concerns the missing back tick key, which is used
+% also for inputting the open quotes, it must be noticed that
+% the shorthand |""| described above completely solves the
+% problem for \textit{double} raised open quotes; besides this,
+% a single open raised quote may be input with the little known
+% \LaTeX\ kernel command |\lq|; according to the traditions of
+% particular publishing houses, since there are no compulsory
+% regulations on the matter, the guillemets may be used; in this
+% case the T1 font encoding solves the problem by means of its
+% built in ligatures |<<| and |>>|; such ligatures are also
+% available when using OpenType fonts with XeLaTeX and
+% LuaLaTeX, provided they are loaded with the option
+% \texttt{Ligatures = TeX}. But\dots
+%
+% \subsection*{\emph{Caporali} or French double quotes}
+% Although the T1 font encoding ligatures solve the problem,
+% there are some circumstances where even the T1 font encoding
+% cannot be used, either because the authors\slash typesetters
+% want to use the old deprecated OT1 encoding, or because they
+% use a font set that does not comply completely with the T1
+% font encoding; some virtual fonts, for example, are supposed
+% to implement the double Cork font encoding but actually they
+% miss some glyphs; one such virtual font set was given by the
+% \texttt{ae} virtual fonts, because they were supposed to
+% implement such double font encoding by using virtual fonts
+% that mapped the OT1 encoded |CM| fonts to a T1 font scheme;
+% Such fonts are not distributed any more with any \TeX\ system
+% installation, therefore if some vintage source file uses them
+% the correction is to replace them by the vector Latin Modern
+% ones.
%
-% This might seem a negligible ``feature'' because the modern classes
-% or extension modules to produce slides mostly avoid the ``old'' fonts
-% for slides created by Leslie Lamport when he made available the macro
-% package LaTeX to the TeX community.
-%
-% Since I designed renewed slide fonts extending those
-% created by Leslie Lamport to the T1 encoding, the Text Companion
-% fonts, and the most frequent ``regular'' and AMS math fonts with the
-% same graphic style and excellent legibility (LXfonts), I thought that
-% this feature is not so negligible. It's true that nowadays nobody
-% should use the old OT1 encoding when typesetting in any language,
-% English included, because independently form the document main
-% language, it is very frequent to quote text in other languages,
-% or to type foreign proper names of persons or places; nevertheless
-% having in mind a minimum of backwards compatibility and hoping
-% that the deliberate use of OT1 encoding (still necessary to typeset
-% mathematics) is being abandoned, I decided to simplify the previous
-% handling of guillemets.
-%
-% Therefore here I will test at ``begin document'' only if the OT1
-% encoding is the default one, while if the T1 encoding is the default
-% one, that the font collection |AE| is not being used; should
-% it be the case, I will substitute the guillemets with the LaTeX
-% special symbols reduced to script size, and I will not try to fake
-% the guillemets with better solutions; evidently if OpenType fonts
-% are being used, nothing is done; so the tests that follow concern
-% only typesetting old documents or the lack of a wiser choice of fonts
-% and their encodings; an info message is issued and output to the
-% |.log| file.
-%
-% \begin{macro}{\LtxSymbCaporali}
-% \begin{macro}{\it@ocap}
-% \begin{macro}{\it@ccap}
-% First the macro |\LtxSymvCaporali| is defined so as to assign a
-% default definition of the faked guillemets: each one of these macro
-% sets actually redefines the control sequences |\it@ocap| and
-% |\it@ccap| that are the ones effectively activated by the shorthands
-% |"<| and |">|.
-% By default the caporali glyphs are taken from T1-encoded fonts; at
-% the end of the preamble some tests are performed to control if the
-% default fonts contain such glyphs, and in case a different font is
-% chosen.
+% The type~1 PostScript version of the |CM| fonts do exist,
+% therefore one believes to be able of using them with pdfLaTeX;
+% but since the |CM| fonts do not contain the guillemets,
+% neither the |AE| ones do. Since guillemets (in Italian
+% \emph{caporali}) do not exist in any OT1 encoded \texttt{cm}
+% Latin font, their glyphs must be substituted with something
+% else that fakes them. Again the best solution is to correct
+% the preamble of such vintage source file by replacing the call
+% to those old not available fonts with the vector Latin Modern
+% fonts.
+%
+% \changes{italian-1.2q}{2005/02/05}{Redefined the caporali
+% machinery so as to avoid incompatibilities with the slides
+% class, as there are no Cyrillic slides fonts as there are
+% for Latin script}
+% \changes{italian-1.3}{2013/09/30}{The slide font fix-up is not
+% any more necessary with the new caporali handling method.}
+%
+% In the previous versions of this language description file the
+% absent guillemets were faked with other fonts, by taking
+% example from the solution the French had found for their
+% language description file; they would get suitable guillemets
+% from the Cyrillic fonts; this solution was good in most cases,
+% except when the “slides fonts” were used, because there is no
+% Cyryllic slides font around.
+%
+% This might seem a negligible “feature” because the modern
+% classes or extension modules to produce slides mostly avoid
+% the “old” fonts for slides created by Leslie Lamport when he
+% made available the macro package LaTeX to the TeX community.
+%
+% Since the renewed slide fonts were created by extending the
+% Leslie Lamport's one to the T1 encoding, the Text Companion
+% fonts, and the most frequent “regular” and AMS math fonts with
+% the same graphic style and excellent legibility (LXfonts), we
+% thought that this feature is not so negligible. It's true that
+% nowadays nobody should use the old OT1 encoding when
+% typesetting in any language, English included, because
+% independently from the document main language, it is very
+% frequent to quote text in other languages, or to type foreign
+% proper names of persons or places; nevertheless having in mind
+% a minimum of backwards compatibility and hoping that the
+% deliberate use of OT1 encoding (still necessary to typeset
+% mathematics) is being abandoned, we decided to simplify the
+% previous handling of guillemets.
+%
+% Therefore here we will test at “begin document” only if the
+% OT1 encoding is the default one, while if the T1 encoding is
+% the default one, that the font collection |AE| is not being
+% used; should it be the case, we will substitute the guillemets
+% with the LaTeX special symbols reduced to script size, and we
+% will not try to fake the guillemets with better solutions;
+% evidently if OpenType fonts are being used, nothing is done;
+% so the tests that follow concern only typesetting old
+% documents or the lack of a wiser choice of fonts and their
+% encodings; an info message is issued and output to the |.log|
+% file.
+%
+% \begin{macro}{\LtxSymbCaporali}
+% \begin{macro}{\it@ocap}
+% \begin{macro}{\it@ccap}
+% First the macro |\LtxSymbCaporali| is defined so as to assign
+% a default definition of the faked guillemets: each one of
+% these macro sets actually redefines the control sequences
+% |\it@ocap| and |\it@ccap| that are the ones effectively
+% activated by the shorthands |"<| and |">|.
+%
+% By default the caporali glyphs are taken from T1-encoded
+% fonts; at the end of the preamble some tests are performed to
+% control if the default fonts contain such glyphs, and in case
+% a different font is chosen.
+%
% \begin{macrocode}
\def\LtxSymbCaporali{%
- \DeclareRobustCommand*{\it@ocap}{\mbox{%
- \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
- \ignorespaces}%
- \DeclareRobustCommand*{\it@ccap}{\ifdim\lastskip>\z@\unskip\fi
- \mbox{%
- \fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}%
+ \DeclareRobustCommand*{\it@ocap}{\mbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
+ \ignorespaces}%
+ \DeclareRobustCommand*{\it@ccap}{\@killglue
+ \mbox{\fontencoding{U}\fontfamily{lasy}\selectfont)%
+ \kern-0.20em)}}%
}%
-\def\T@unoCaporali{\DeclareRobustCommand*{\it@ocap}{<<\ignorespaces}%
- \DeclareRobustCommand*{\it@ccap}{\ifdim\lastskip>\z@\unskip\fi>>}}%
-\T@unoCaporali
+%
+\def\T@unoCaporali{% default setting
+ \DeclareRobustCommand*{\it@ocap}{<<\ignorespaces}%
+ \DeclareRobustCommand*{\it@ccap}{\@killglue >>}}%
+\T@unoCaporali
% \end{macrocode}
-% Nevertheless a macro for choosing where to get glyphs for real
-% guillemets is offered; the syntax is the following:
-% \begin {flushleft}
-% |\CaporaliFrom|\marg{encoding}\marg{family}\marg{open guill. slot}%
-% \marg{close guill. slot}
-% \end{flushleft}
-% where \meta{encoding} and \meta{family} identify the font family
-% name of that particular encoding from which to get the missing
-% guillemets; \meta{open guill. slot} and \meta{close guill. slot}
-% are the (preferably) decimal slot addresses of the opening and
-% closing guillemets the user wants to use. For example if the
-% T1-encoded Latin Modern fonts are desired, the specific command
-% should be
-% \begin {flushleft}
+% Such macros make available the internal commands |\it@ocap|
+% and |\it@ccap|; they become available when users specify in
+% their preambles either the |\LteSymbCaporali| or in a personal
+% \texttt{.sty} file the |\T@unoCaporali| command. The former
+% gets the real glyphs from the \texttt{lasy} font and deletes
+% any space after the open guillemets and before the closed
+% ones, as it si necessary in Italian typography; the latter
+% one uses the special ligature of two pairs of angle brackets
+% while deleting any space as the former commands do.
+% Both sets of commands are deprecated, unless vintage files
+% have to be recompiled. Nowadays (2024) with the default UTF-8
+% encoding and T1 encoded fonts, glyphs « and » may
+% be directly entered.
+%
+% Nevertheless a macro for choosing where to get glyphs for real
+% guillemets is offered; the syntax is the following:
+% \begin{flushleft}
+% |\CaporaliFrom|\marg{encoding}\marg{family}\verb|%|
+% \marg{open guill. slot}\marg{close guill. slot}
+% \end{flushleft}
+% where \meta{encoding} and \meta{family} identify the font
+% family name of that particular encoding from which to get the
+% missing guillemets; \meta{open guill. slot} and
+% \meta{close guill. slot} are the (preferably) decimal slot
+% addresses of the opening and closing guillemets the user wants
+% to use. For example if the T1-encoded Latin Modern fonts are
+% desired, the specific command should be
+% \begin {flushleft}\obeylines
% |\CaporaliFrom{T1}{lmr}{19}{20}|
-% \end{flushleft}
-% These user choices might be necessary for assuring the correct
-% typesetting
-% with fonts that contain the required glyphs and are available
-% also in PostScript form so as to use them directly with {pdfLaTeX},
-% for example.
+% or
+% |\CaporaliFrom{LGR}{Artemisia}{123}{125}|
+% \end{flushleft}
+% These user choices might be necessary for assuring the correct
+% typesetting with fonts that contain the required glyphs and
+% are available also in PostScript form so as to use them
+% directly, for example, with \texttt{pdflatex}.
% \begin{macrocode}
\def\CaporaliFrom#1#2#3#4{%
\DeclareFontEncoding{#1}{}{}%
\DeclareTextCommand{\it@ocap}{T1}{%
- {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
- \DeclareTextCommand{\it@ccap}{T1}{\ifdim\lastskip>\z@\unskip\fi%
+ {\fontencoding{#1}\fontfamily{#2}%
+ \selectfont\char#3\ignorespaces}}%
+ \DeclareTextCommand{\it@ccap}{T1}{\@kilglue
{\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}%
- \DeclareTextCommand{\it@ocap}{OT1}{%
- {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
- \DeclareTextCommand{\it@ccap}{OT1}{\ifdim\lastskip>\z@\unskip\fi%
- {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}}
+}
% \end{macrocode}
-% Notice that the above macro is strictly tied to the T1 encoding;
-% it won't do anything if the default encoding is not the T1 one.
-% Therefore if the |AE| font collection is being used it would be
-% good idea to issue the command shown above as an example in order
-% to get the proper guillemets\footnote{Actually the \texttt{AE}
-% fonts should not be used at all; the same results, more or less
-% are obtained by using the Latin Modern ones, that are not virtual
-% fonts and contain the whole T1 font scheme. Nevertheless the faked
-% glyphs are not so bad, so the solution I restored from old versions
-% of the language description file is acceptable}.
-
-% Then we set a boolean variable and test the default family;
-% if such family has a name that starts with the letters ``ae''
-% then we have no built in guillemets; of course if the AE font family
-% is chosen after the \babel\ package is loaded, the test does not
-% perform as required.
+% Notice that the above macro is strictly tied to the T1
+% encoding; it won't do anything if the default encoding is not
+% the T1 one. Therefore if the |AE| font collection is being
+% used it would be a good idea to issue the commands shown above
+% as an example in order to get the proper guillemets^^A
+%\footnote{Actually the \texttt{AE} fonts should not be used at
+% all; the same results, are obtained by using the Latin Modern
+% ones, that are not virtual fonts and contain the whole T1 font
+% scheme. Nevertheless the faked glyphs are not so bad, so the
+% solution we restored from old versions of the language
+% description file is acceptable}.
+%
+% Then we set a boolean variable and test the default family; if
+% such family has a name that starts with the letters “ae”
+% then we have no built in guillemets; of course if the AE font
+% family is chosen after the \babel\ package is loaded, the test
+% does not perform as required.
% \begin{macrocode}
\def\get@ae#1#2#3!{\def\bbl@ae{#1#2}}%
\def\@ifT@one@noCap{\expandafter\get@ae\f@family!%
\def\bbl@temp{ae}\ifx\bbl@ae\bbl@temp\expandafter\@firstoftwo\else
- \expandafter\@secondoftwo\fi}%
+ \expandafter\@secondoftwo\fi}%
% \end{macrocode}
-% Now we can set some real settings; first we start by testing
-% the encoding; if the encoding is OT1 we set the faked caporali
-% with LaTeX symbols and issue a warning; then we test if the font
-% family is the AE one we set again the faked caporali and issue
-% another warning\footnote{Notice the it is impossible to check
-% if the slots 19 and 20 of the AE fonts are defined by means of
-% the eTeX macro \texttt{\char92iffontchar}, because they are
-% actually defined as black squares!}; otherwise we set the commands
-% valid for the T1 encoding, that work well also with the TeX
-% Ligatures of the OpenType fonts.
+% Now we can set some real settings; first we start by testing
+% the encoding; if the encoding is OT1 we set the faked caporali
+% with LaTeX symbols and issue a warning; then if the
+% font family is the AE one we set again the faked caporali and
+% issue another warning\footnote{Notice that it is impossible to
+% check if the slots 19 and 20 of the AE fonts are defined by
+% means of the eTeX macro \texttt{\char92iffontchar}, because
+% they are actually defined as black squares!}; otherwise we set
+% the commands valid for the T1 encoding.
% \begin{macrocode}
\AtBeginDocument{\normalfont\def\bbl@temp{OT1}%
\ifx\cf@encoding\bbl@temp
@@ -1571,16 +1766,17 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
With OT1 encoding guillemets are poorly faked\MessageBreak
\space\space\space
Use T1 encoding\MessageBreak\space\space\space
- or specify a font with command \string\CaporaliFrom\MessageBreak
- \space\space\space
- See the documentation concerning the babel-italian typesetting
- \MessageBreak\space\space}%
+ or specify a font with command %
+ \string\CaporaliFrom\MessageBreak\space\space\space
+ See the documentation concerning the babel-italian
+ typesetting\MessageBreak\space\space}%
\else
\ifx\cf@encoding\bbl@t@one
\@ifT@one@noCap{%
\LtxSymbCaporali
\GenericWarning{italian.ldf\space}{%
- File italian.ldf warning: \MessageBreak\space\space\space
+ File italian.ldf warning: \MessageBreak\space\space
+ \space
The AE font collection does not contain the guillemets
\MessageBreak\space\space\space
Use the Latin Modern font collection instead
@@ -1590,17 +1786,18 @@ email: \texttt{claudio dot beccari at gmail dot com}}}
\fi
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection*{Finishing commands}
%
-% \subsection*{Finishing commands}
-% The macro |\ldf@finish| takes care of looking for a
-% configuration file, setting the main language to be switched on
-% at |\begin{document}| and resetting the category code of
-% \texttt{@} to its original value.
-% \changes{italian-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap
-% up}
+% The |\ldf@finish| macro takes care of looking for a
+% configuration file, setting the main language to be switched
+% on at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{italian-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to
+% wrap up}
% \begin{macrocode}
\ldf@finish{italian}%
% \end{macrocode}
diff --git a/macros/latex/contrib/babel-contrib/italian/italian.pdf b/macros/latex/contrib/babel-contrib/italian/italian.pdf
index 009f29080c..d9cd207cdd 100644
--- a/macros/latex/contrib/babel-contrib/italian/italian.pdf
+++ b/macros/latex/contrib/babel-contrib/italian/italian.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index f49e14c200..17b0945a04 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -1,5 +1,5 @@
%
-% Copyright (C) 2021-2022 by Qu Yi <toquyi@163.com>
+% Copyright (C) 2021-2024 by Qu Yi <toquyi@163.com>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/11/08}{1.71D}
+\ProvidesExplClass{easybook}{2024/01/04}{2024A}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -304,7 +304,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/11/08}{1.71D}
+\ProvidesExplPackage{easybase}{2024/01/04}{2024A}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -1776,6 +1776,7 @@
format = hang,
labelfont = {color = ctex@frame},
labelsep = quad,
+ hypcap = false,
singlelinecheck = true
}
\captionsetup[table]{font = eb@table@font}
@@ -2334,7 +2335,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/11/08}{1.71D}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/04}{2024A}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.ins b/macros/latex/contrib/easybook/easybook.ins
index a8df3cd45a..dd041f6aab 100644
--- a/macros/latex/contrib/easybook/easybook.ins
+++ b/macros/latex/contrib/easybook/easybook.ins
@@ -1,5 +1,5 @@
%
-% Copyright (C) 2021-2022 by Qu Yi <toquyi@163.com>
+% Copyright (C) 2021-2024 by Qu Yi <toquyi@163.com>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -19,7 +19,7 @@
\usedir{tex/latex/easybook}
\preamble
-Copyright (C) 2021-2022 by Qu Yi <toquyi@163.com>
+Copyright (C) 2021-2024 by Qu Yi <toquyi@163.com>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index cf8ebd4ce7..d6455ad028 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index de17154a4b..cb18b47540 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -1,18 +1,20 @@
+\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[load-preamble+]{cnltx-doc}
\usepackage[fontset = fandol]{ctex}
\usepackage
{
- enumitem,newtxmath,indentfirst,tabularray,ninecolors,
+ enumitem,newtxmath,indentfirst,tabularray,
fancyvrb,geometry,hologo,pifont,changelog
}
\definecolorscheme{blue}
{
cs => violet,
- option => olive6,
- cnltx => blue,
- link => purple5,
- module => orange,
+ option => Green,
+ cnltx => MediumBlue,
+ link => DeepPink,
+ module => FireBrick,
+ beginend => FireBrick,
meta => black,
versionnote => black
}
@@ -21,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v1.71D,
- date = 2022/11/08,
+ version = v2024A,
+ date = 2024/01/04,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -38,15 +40,15 @@
}
\KOMAoptions{numbers = noenddot}
\setfootnoterule[0.5pt]{0.4\columnwidth}
-\addtokomafont{headsepline}{\color{blue}}
-\addtokomafont{footnoterule}{\color{blue}}
+\addtokomafont{headsepline}{\color{MediumBlue}}
+\addtokomafont{footnoterule}{\color{MediumBlue}}
\addtokomafont{section}{\normalfont\sffamily}
\addtokomafont{subsection}{\normalfont\sffamily}
\addtokomafont{subsubsection}{\normalfont\sffamily}
\DeclareTOCStyleEntry[entryformat = \sffamily]{default}{section}
\DeclareFieldFormat[book]{title}{\textsf{#1}}
\geometry{margin = 1in,marginparwidth = 0.6in}
-\SetEnumitemValue{label}{smallbullet}{\small\color{blue}\textbullet}
+\SetEnumitemValue{label}{smallbullet}{\small\color{MediumBlue}\textbullet}
\setlist{nosep,topsep = \smallskipamount,labelsep = 0.5em}
\setlist[1]{labelindent = \parindent}
\setlist[itemize,1]{label = smallbullet,leftmargin = *}
@@ -141,7 +143,7 @@
baselinestretch = 1.2,
gobble = 2,
fontsize = \small,
- rulecolor = \color{blue},
+ rulecolor = \color{MediumBlue},
framerule = 0.5pt,
frame = single,
framesep = 6pt
@@ -171,7 +173,6 @@
\labelformat{ctexexam}{例#1}
\begin{document}
-
\section{准备开始}
您在使用 \cls*{easybook} 文档类编写文档前可能需要具备以下的条件:
\begin{itemize}
@@ -225,18 +226,18 @@
\ding{72} 需要注意正确\textbf{编译索引}要增加 \code{-shell-escape} 命令行选项。
\subsection{依赖宏包}
-以下为 \pkg*{easybase} 直接调用的关键宏包清单,通常情况下它们是常用且稳定的。棕色背景的宏包表示修改了或依赖它们的内部命令。绿色背景的宏包表示并未调用它们,但做了一些预配置,可在导言区手动载入以实现相关的功能。
+以下为 \pkg*{easybase} 直接调用的关键宏包清单,通常情况下它们是常用且稳定的。\colorbox{PaleTurquoise}{蓝色}背景的宏包表示修改了或依赖它们的内部命令。\colorbox{GreenYellow}{绿色}背景的宏包表示并未调用它们,但做了一些预配置,可在导言区手动载入以实现相关的功能。
\insertalltblr
{
- colspec = @{}*{5}{c}@{},
+ colspec = *{5}{c},
cells = {cmd = \pkg*},
- cell{1}{3,4} = yellow8,
- cell{2}{5} = yellow8,
- cell{3}{2,4} = yellow8,
- cell{5}{1} = yellow8,
- cell{1}{2} = green8,
- cell{3}{1,4} = green8,
- cell{5}{2} = green8
+ cell{1}{3,4} = PaleTurquoise,
+ cell{2}{5} = PaleTurquoise,
+ cell{3}{2,4} = PaleTurquoise,
+ cell{5}{1} = PaleTurquoise,
+ cell{1}{2} = GreenYellow,
+ cell{3}{1,4} = GreenYellow,
+ cell{5}{2} = GreenYellow
}{
amsthm & bicaption & ctexbook & caption & chemformula \\
enumitem & etoolbox & fancyhdr & geometry & hyperref \\
@@ -764,13 +765,13 @@
\defdownfntmark{\notminipage{\textcolor{blue}{\thedownfootnote}}{}}
\end{ctexexam}
\keychoice{fncustom-format}{format code,match}
- 单独设定自定义脚注标记的格式,选项 \code{match} 可以匹配 \option*{spcmd} 全局的值。自定义脚注的命令与用法可以见下方的介绍。
+ 单独设定自定义脚注标记的格式,选项 \code{match} 可以匹配 \option*{spcmd} 全局的值。自定义脚注内容和正文标记的命令与用法可以见下方和\ref{exam:custom footnote markers} 的介绍。
\begin{commands}\noitemsep
\command{Footnote}[\oarg{内容标记}\marg{正文标记}\marg{脚注文本}]\default{}
\command{Footnotetext}[\marg{内容标记}\marg{脚注文本}]\default{}
\command{Footnotemark}[\marg{正文标记}]
- 这些是自定义标记且不影响正常编号的脚注命令,用法与它们对应首字母小写的命令类似。\meta{内容标记} 默认与 \meta{正文标记} 一致,可以进行微调。如果当前标记为空,那么将会使用上一个脚注标记。
- \begin{ctexexam}
+ 这些是自定义标记且不影响正常编号的脚注命令,用法与它们对应首字母小写的命令类似。\meta{内容标记} 默认与 \meta{正文标记} 一致,这也是最常见的情况,也可以定义为不同符号或格式。如果当前标记为空,那么将会使用上一个脚注标记。
+ \begin{ctexexam}[labelref = exam:custom footnote markers]
\Footnote{*}{这是可以自定义标记的脚注。}
\end{ctexexam}
\end{commands}
@@ -1326,6 +1327,7 @@
\shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
\shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
\shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs*{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。}
+ \shortversion{v = 2024A,date = 2024/01/04,changes = 核对依赖宏包的更新改动,优化使用手册的内容细节。}
\end{changelog}
\nocite{*}
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index 8d1ec76440..c06b9a380f 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,13 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2024-01-04]
+
+### Changed
+- Throw warnings on unknown doc name(s)
+- Always execute `runtest_tasks()` if set (issue \#327)
+- Print failures correctly when these occur in multiple configurations
+
## [2023-12-15]
### Fixed
@@ -746,7 +753,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2023-12-15..HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2024-01-04...HEAD
+[2024-01-04]: https://github.com/latex3/l3build/compare/2023-12-15...2024-01-04
[2023-12-15]: https://github.com/latex3/l3build/compare/2023-12-13-2...2023-12-15
[2023-12-13-2]: https://github.com/latex3/l3build/compare/2023-12-13...2023-12-13-2
[2023-12-13]: https://github.com/latex3/l3build/compare/2023-12-12...2023-12-13
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index c071c434e6..c2bba6cc5b 100644
--- a/macros/latex/contrib/l3build/README.md
+++ b/macros/latex/contrib/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX
=================================================
-Release 2023-12-15
+Release 2024-01-04
Overview
--------
@@ -31,6 +31,6 @@ The LaTeX kernel is developed by [The LaTeX Project](https://latex-project.org).
-----
-<p>Copyright (C) 2014-2023 The LaTeX Project <br />
-<a href="http://latex-project.org/">http://latex-project.org/</a> <br />
+<p>Copyright (C) 2014-2024 The LaTeX Project <br />
+<a href="https://latex-project.org/">https://latex-project.org/</a> <br />
All rights reserved.</p>
diff --git a/macros/latex/contrib/l3build/l3build-arguments.lua b/macros/latex/contrib/l3build/l3build-arguments.lua
index 95ed9f59e4..a1755d693d 100644
--- a/macros/latex/contrib/l3build/l3build-arguments.lua
+++ b/macros/latex/contrib/l3build/l3build-arguments.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-arguments.lua Copyright (C) 2018-2021,2023 The LaTeX Project
+File l3build-arguments.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -248,14 +248,14 @@ local function argparse()
return { target = "help" }
end
else
- if not optarg then
- optarg = arg[i + 1]
if not optarg then
- stderr:write("Missing value for option " .. a .."\n")
- return { target = "help" }
+ optarg = arg[i + 1]
+ if not optarg then
+ stderr:write("Missing value for option " .. a .."\n")
+ return { target = "help" }
+ end
+ i = i + 1
end
- i = i + 1
- end
end
else
stderr:write("Unknown option " .. a .."\n")
@@ -283,7 +283,7 @@ local function argparse()
end
end
if next(names) then
- result["names"] = names
+ result["names"] = names
end
return result
end
diff --git a/macros/latex/contrib/l3build/l3build-aux.lua b/macros/latex/contrib/l3build/l3build-aux.lua
index 115117c40f..dd8c410fc0 100644
--- a/macros/latex/contrib/l3build/l3build-aux.lua
+++ b/macros/latex/contrib/l3build/l3build-aux.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-aux.lua Copyright (C) 2018-2021,2023 The LaTeX Project
+File l3build-aux.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -25,6 +25,7 @@ for those people who are interested.
-- local safety guards and shortcuts
local match = string.match
+local gsub = string.gsub
local pairs = pairs
local print = print
@@ -207,4 +208,4 @@ function runcmd(cmd,dir,vars)
end
end
return run(dir,set_epoch_cmd(epoch, forcedocepoch) .. env .. cmd)
-end \ No newline at end of file
+end
diff --git a/macros/latex/contrib/l3build/l3build-check.lua b/macros/latex/contrib/l3build/l3build-check.lua
index 65366c91ca..1f2b04ce5a 100644
--- a/macros/latex/contrib/l3build/l3build-check.lua
+++ b/macros/latex/contrib/l3build/l3build-check.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-check.lua Copyright (C) 2018-2023 The LaTeX Project
+File l3build-check.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -628,10 +628,10 @@ function runcheck(name, hide)
end
end
for i=1, #failedengines do
- if failedengines[i] == stdengine then
- failedengines = {stdengine}
- break
- end
+ if failedengines[i] == stdengine then
+ failedengines = {stdengine}
+ break
+ end
end
-- Return everything
return errorlevel, failedengines
@@ -657,7 +657,7 @@ function setup_check(name, engine)
end
end
if found then
- return
+ return
end
-- Attempt to generate missing reference file from expectation
for _, kind in ipairs(test_order) do
@@ -674,7 +674,7 @@ function setup_check(name, engine)
end
end
if found then
- return
+ return
end
print(
"Error: failed to find any reference or expectation file for "
@@ -824,7 +824,7 @@ function runtest(name, engine, hide, ext, test_type, breakout)
)
-- On Windows, concatenating here will suppress any non-zero errorlevel
-- from the main run, so we split into two parts.
- if errlevels[i] == 0 and runtest_tasks(jobname(lvtfile),i) ~= "" then
+ if runtest_tasks(jobname(lvtfile),i) ~= "" then
local errorlevel =
runcmd(preamble .. runtest_tasks(jobname(lvtfile),i),testdir)
if errorlevel ~= 0 then errlevels[i] = errorlevel end
@@ -922,9 +922,9 @@ local function showsavecommands(failurelist)
end
f:write"\n"
if savecmds[stdengine] then
- print("\n Afterwards test for engine specific changes using\n")
- print(" " .. checkcmd)
- f:write(checkcmd)
+ print("\n Afterwards test for engine specific changes using\n")
+ print(" " .. checkcmd)
+ f:write(checkcmd)
end
f:close()
print("")
@@ -1057,6 +1057,10 @@ end
-- A short auxiliary to print the list of differences for check
function checkdiff(config)
+ local testdir = testdir
+ if config then
+ testdir = testdir .. "-" .. config
+ end
local diff_files = ordered_filelist(testdir, "*" .. os_diffext)
if next(diff_files) then
if config then
diff --git a/macros/latex/contrib/l3build/l3build-clean.lua b/macros/latex/contrib/l3build/l3build-clean.lua
index e5d5ddec3d..07c3459fdb 100644
--- a/macros/latex/contrib/l3build/l3build-clean.lua
+++ b/macros/latex/contrib/l3build/l3build-clean.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-clean.lua Copyright (C) 2018,2020,2021 The LaTeX Project
+File l3build-clean.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build-ctan.lua b/macros/latex/contrib/l3build/l3build-ctan.lua
index b290533b27..c1feb2564a 100644
--- a/macros/latex/contrib/l3build/l3build-ctan.lua
+++ b/macros/latex/contrib/l3build/l3build-ctan.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-ctan.lua Copyright (C) 2018-2021 The LaTeX Project
+File l3build-ctan.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build-file-functions.lua b/macros/latex/contrib/l3build/l3build-file-functions.lua
index b5cd9b5f89..a1b22ce570 100644
--- a/macros/latex/contrib/l3build/l3build-file-functions.lua
+++ b/macros/latex/contrib/l3build/l3build-file-functions.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-file-functions.lua Copyright (C) 2018-2023 The LaTeX Project
+File l3build-file-functions.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -22,7 +22,6 @@ for those people who are interested.
--]]
-local pairs = pairs
local print = print
local open = io.open
@@ -43,7 +42,6 @@ local luatex_version = status.luatex_version
local match = string.match
local sub = string.sub
-local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
diff --git a/macros/latex/contrib/l3build/l3build-help.lua b/macros/latex/contrib/l3build/l3build-help.lua
index 3e204df0d6..46b0bc45b3 100644
--- a/macros/latex/contrib/l3build/l3build-help.lua
+++ b/macros/latex/contrib/l3build/l3build-help.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-help.lua Copyright (C) 2018,2020,2021 The LaTeX Project
+File l3build-help.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -27,7 +27,7 @@ local match = string.match
local rep = string.rep
local sort = table.sort
-local copyright = "Copyright (C) 2014-2021 The LaTeX Project\n"
+local copyright = "Copyright (C) 2014-2024 The LaTeX Project\n"
function version()
print(
diff --git a/macros/latex/contrib/l3build/l3build-install.lua b/macros/latex/contrib/l3build/l3build-install.lua
index ad5aeaaac6..9e2286481e 100644
--- a/macros/latex/contrib/l3build/l3build-install.lua
+++ b/macros/latex/contrib/l3build/l3build-install.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-install.lua Copyright (C) 2018-2021 The LaTeX Project
+File l3build-install.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,6 @@ local var_value = kpse.var_value
local gsub = string.gsub
local lower = string.lower
local match = string.match
-local format = string.format
local insert = table.insert
diff --git a/macros/latex/contrib/l3build/l3build-manifest-setup.lua b/macros/latex/contrib/l3build/l3build-manifest-setup.lua
index b5c2b31718..8654b3deb5 100644
--- a/macros/latex/contrib/l3build/l3build-manifest-setup.lua
+++ b/macros/latex/contrib/l3build/l3build-manifest-setup.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-manifest-setup.lua Copyright (C) 2018,2020,2021 The LaTeX Project
+File l3build-manifest-setup.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build-manifest.lua b/macros/latex/contrib/l3build/l3build-manifest.lua
index 12b8cdc114..99a82464b2 100644
--- a/macros/latex/contrib/l3build/l3build-manifest.lua
+++ b/macros/latex/contrib/l3build/l3build-manifest.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-manifest.lua Copyright (C) 2018,2020,2021 The LaTeX Project
+File l3build-manifest.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -128,7 +128,7 @@ manifest_build_init = function(entry)
Nchar_descr = 11 , -- TODO: generalise
}
- -- copy default options to each group if necessary
+ -- copy default options to each group if necessary
for kk,ll in pairs(manifest_group_defaults) do
if entry[kk] == nil then
entry[kk] = ll
diff --git a/macros/latex/contrib/l3build/l3build-stdmain.lua b/macros/latex/contrib/l3build/l3build-stdmain.lua
index 6209dcd296..d264a78fa4 100644
--- a/macros/latex/contrib/l3build/l3build-stdmain.lua
+++ b/macros/latex/contrib/l3build/l3build-stdmain.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-stdmain.lua Copyright (C) 2018-2021 The LaTeX Project
+File l3build-stdmain.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -122,12 +122,12 @@ target_list =
desc = "Updates release tags in files",
func = tag,
pre = function(names)
- if names and #names > 1 then
- print("Too many tags specified; exactly one required")
- exit(1)
- end
- return 0
- end
+ if names and #names > 1 then
+ print("Too many tags specified; exactly one required")
+ exit(1)
+ end
+ return 0
+ end
},
uninstall =
{
@@ -171,10 +171,10 @@ function main(target,names)
end
else
if target_list[target].pre then
- errorlevel = target_list[target].pre(names)
- if errorlevel ~= 0 then
- exit(1)
- end
+ errorlevel = target_list[target].pre(names)
+ if errorlevel ~= 0 then
+ exit(1)
+ end
end
errorlevel = target_list[target].func(names)
end
diff --git a/macros/latex/contrib/l3build/l3build-tagging.lua b/macros/latex/contrib/l3build/l3build-tagging.lua
index 20ef513f26..0753123f99 100644
--- a/macros/latex/contrib/l3build/l3build-tagging.lua
+++ b/macros/latex/contrib/l3build/l3build-tagging.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-tagging.lua Copyright (C) 2018-2021 The LaTeX Project
+File l3build-tagging.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build-typesetting.lua b/macros/latex/contrib/l3build/l3build-typesetting.lua
index d3ba3e5b6f..8de57f3718 100644
--- a/macros/latex/contrib/l3build/l3build-typesetting.lua
+++ b/macros/latex/contrib/l3build/l3build-typesetting.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-typesetting.lua Copyright (C) 2018-2021,2023 The LaTeX Project
+File l3build-typesetting.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -63,7 +63,7 @@ function bibtex(name,dir)
if os_type == "windows" then
grep = "\\\\"
else
- grep = "\\\\\\\\"
+ grep = "\\\\\\\\"
end
if run(dir,
os_grepexe .. " \"^" .. grep .. "citation{\" " .. name .. ".aux > "
@@ -184,6 +184,12 @@ function doc(files)
local errorlevel = docinit()
if errorlevel ~= 0 then return errorlevel end
local done = {}
+ local files_unknown = {}
+ if files and next(files) then
+ for _, file in pairs(files) do
+ files_unknown[file] = true
+ end
+ end
for _,typesetfiles in ipairs({typesetdemofiles,typesetfiles}) do
for _,glob in pairs(typesetfiles) do
local destpath,globstub = splitpath(glob)
@@ -198,6 +204,7 @@ function doc(files)
typeset = false
for _,file in pairs(files) do
if name == file then
+ files_unknown[file] = nil
typeset = true
break
end
@@ -219,5 +226,11 @@ function doc(files)
end
end
end
+ if next(files_unknown) then
+ for file, _ in pairs(files_unknown) do
+ print("Unknown doc name \"" .. file .. "\"")
+ end
+ return 1
+ end
return 0
end
diff --git a/macros/latex/contrib/l3build/l3build-unpack.lua b/macros/latex/contrib/l3build/l3build-unpack.lua
index 6ce4b3286b..3c73dc8d14 100644
--- a/macros/latex/contrib/l3build/l3build-unpack.lua
+++ b/macros/latex/contrib/l3build/l3build-unpack.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-unpack.lua Copyright (C) 2018-2021 The LaTeX Project
+File l3build-unpack.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build-upload.lua b/macros/latex/contrib/l3build/l3build-upload.lua
index 180572baf4..87158d1b01 100644
--- a/macros/latex/contrib/l3build/l3build-upload.lua
+++ b/macros/latex/contrib/l3build/l3build-upload.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-upload.lua Copyright (C) 2018-2021 The LaTeX Project
+File l3build-upload.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,8 +34,6 @@ local popen = io.popen
local read = io.read
local write = io.write
-local os_type = os.type
-
local len = string.len
local lower = string.lower
local match = string.match
@@ -131,8 +129,8 @@ function upload(tagnames)
print("Are you sure you want to continue? [y/n]" )
io.stdout:write("> "):flush()
if lower(read(),1,1) ~= "y" then
- print'Aborting'
- return 1
+ print'Aborting'
+ return 1
end
end
@@ -247,9 +245,9 @@ function shell(s)
local t = assert(h:read('*a'))
local success = h:close()
if (success) then
- return t
+ return t
else
- error("\nError from shell command:\n" .. s .. "\n" .. t .. "\n")
+ error("\nError from shell command:\n" .. s .. "\n" .. t .. "\n")
end
end
@@ -358,7 +356,7 @@ function input_multi_line_field (name)
if answer_line~=nil then
field = field .. "\n" .. answer_line
end
- end
+ end
until (return_count==3 or answer_line==nil or answer_line=='\004')
return field
end
diff --git a/macros/latex/contrib/l3build/l3build-variables.lua b/macros/latex/contrib/l3build/l3build-variables.lua
index 9e0ed9d47a..123e509a5b 100644
--- a/macros/latex/contrib/l3build/l3build-variables.lua
+++ b/macros/latex/contrib/l3build/l3build-variables.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-variables.lua Copyright (C) 2018-2023 The LaTeX Project
+File l3build-variables.lua Copyright (C) 2018-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build-zip.lua b/macros/latex/contrib/l3build/l3build-zip.lua
index 1fab56cf4b..5107415173 100644
--- a/macros/latex/contrib/l3build/l3build-zip.lua
+++ b/macros/latex/contrib/l3build/l3build-zip.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-zip.lua Copyright (C) 2021 The LaTeX Project
+File l3build-zip.lua Copyright (C) 2021-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index 6b3699cf12..e6d604b560 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,8 +1,8 @@
-.TH l3build 1 "2023-12-15"
+.TH l3build 1 "2024-01-04"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
-l3build <command> [<options>] [<names>]
+l3build <target> [<options>] [<names>]
.SH DESCRIPTION
The l3build system is a Lua script for building TeX packages, with particular
emphasis on regression testing. It is written in cross-platform Lua code, so
@@ -10,7 +10,7 @@ can be used by any modern TeX distribution with the texlua interpreter. A
package for building with l3build can be written in any TeX dialect; its
defaults are set up for LaTeX packages written in the DocStrip style.
.PP
-The most commonly used l3build commands are:
+The most commonly used l3build targets are:
.IP check
Run all automated tests
.IP clean
diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx
index d169f49ccd..047f43f4df 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% File l3build.dtx (C) Copyright 2014-2023 The LaTeX Project
+% File l3build.dtx Copyright (C) 2014-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -251,7 +251,7 @@
% }^^A
% }
%
-% \date{Released 2023-12-15}
+% \date{Released 2024-01-04}
%
% \maketitle
% \tableofcontents
@@ -340,7 +340,7 @@
% process.
%
%The example scripts given in Section~\vref{sec:examples} largely cover the required knowledge in Lua programing.
-% For a more advanced usage, one may consult general Lua documentations including \url{http://www.lua.org/manual/5.3/manual.html} and for the few |texlua| specific additions see section 4.2 of the \LuaTeX{} manual available locally with |texdoc luatex| command line or at \url{https://www.pragma-ade.com/general/manuals/luatex.pdf}.
+% For a more advanced usage, one may consult general Lua documentations including \url{https://www.lua.org/manual/5.3/manual.html} and for the few |texlua| specific additions see section 4.2 of the \LuaTeX{} manual available locally with |texdoc luatex| command line or at \url{https://www.pragma-ade.com/general/manuals/luatex.pdf}.
%
% \subsection{Main build targets}
%
@@ -714,7 +714,7 @@
% For example, for the core \LaTeXe{} tests the main test files are contained
% in a directory |testfiles|. To test font loading for \XeTeX{} and \LuaTeX{}
% there are a second set of tests in |testfiles-TU| which use the short
-% |build-TU.lua| file shown in Listing~\vref{lst:configs}. To run both sets of
+% |config-TU.lua| file shown in Listing~\vref{lst:configs}. To run both sets of
% tests, the main |build.lua| file contains the setting
% |checkconfigs = {"build", "config-TU"}|. This will cause \pkg{l3build} to run
% first using no additional settings (\emph{i.e.}~reading the normal
diff --git a/macros/latex/contrib/l3build/l3build.ins b/macros/latex/contrib/l3build/l3build.ins
index c790b35b40..502e505ec8 100644
--- a/macros/latex/contrib/l3build/l3build.ins
+++ b/macros/latex/contrib/l3build/l3build.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File l3build.ins Copyright (C) 2014-2018,2021 The LaTeX Project
+File l3build.ins Copyright (C) 2014-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@ license information is placed in the derived files.
\preamble
-Copyright (C) 2014-2021 The LaTeX Project
+Copyright (C) 2014-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of
the LaTeX Project Public License (LPPL), either version 1.3c of
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index 0154019cb9..995eefe533 100755
--- a/macros/latex/contrib/l3build/l3build.lua
+++ b/macros/latex/contrib/l3build/l3build.lua
@@ -2,7 +2,7 @@
--[[
-File l3build.lua Copyright (C) 2014-2022 The LaTeX Project
+File l3build.lua Copyright (C) 2014-2024 The LaTeX Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -25,14 +25,13 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2023-12-15"
+release_date = "2024-01-04"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
-- Local access to functions
-local assert = assert
local ipairs = ipairs
local insert = table.insert
local lookup = kpse.lookup
@@ -40,11 +39,8 @@ local match = string.match
local gsub = string.gsub
local next = next
local print = print
-local select = select
-local tonumber = tonumber
local exit = os.exit
local open = io.open
-local stdout = io.stdout
-- l3build setup and functions
kpse.set_program_name("kpsewhich")
@@ -181,11 +177,11 @@ if #checkconfigs > 1 then
exit(2)
end
for line in f:lines() do
- if line == "" then break end
- savecmds = savecmds .. " " .. line .. "\n"
+ if line == "" then break end
+ savecmds = savecmds .. " " .. line .. "\n"
end
for line in f:lines() do
- recheckcmds = recheckcmds .. " " .. line .. "\n"
+ recheckcmds = recheckcmds .. " " .. line .. "\n"
end
f:close()
end
diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf
index 7214f3dcea..763d37dc2d 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/macros/latex/contrib/overpic/overpic.dtx b/macros/latex/contrib/overpic/overpic.dtx
index ee3ba5cc16..4961b179eb 100644
--- a/macros/latex/contrib/overpic/overpic.dtx
+++ b/macros/latex/contrib/overpic/overpic.dtx
@@ -19,7 +19,7 @@
%
%<*package>
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{overpic}[2020/02/22 1.3 picture overlays (RN)]
+\ProvidesPackage{overpic}[2024/01/04 2.0 picture overlays (RN)]
%</package>
%
%<*driver>
@@ -58,7 +58,7 @@
%</driver>
% \fi
%
-% \CheckSum{180}
+% \CheckSum{178}
%
% \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
@@ -242,7 +242,7 @@
%<*package>
% \fi
% \begin{macrocode}
-\RequirePackage{graphicx,epic}
+\RequirePackage{keyval,graphicx,epic}
% \end{macrocode}
%
% \begin{macro}{\OVP@scale}
@@ -253,7 +253,7 @@
% \end{macro}
% All the keys:
% \begin{macrocode}
-\define@key{Gin}{rel}{%
+\define@key{OVP}{rel}{%
\def\OVP@scale{#1}%
\ifnum\OVP@scale>\z@
\let\OVP@calc\OVP@calc@rel
@@ -261,19 +261,21 @@
\PackageError{overpic}{Invalid number for option `rel'}\@ehc
\fi
}
-\define@key{Gin}{percent}[]{%
- \setkeys{Gin}{rel=100}%
+\define@key{OVP}{percent}[]{%
+ \setkeys{OVP}{rel=100}%
}
-\define@key{Gin}{permil}[]{%
- \setkeys{Gin}{rel=\@m}%
+\define@key{OVP}{permil}[]{%
+ \setkeys{OVP}{rel=\@m}%
}
-\define@key{Gin}{abs}[]{%
+\define@key{OVP}{abs}[]{%
\let\OVP@calc\OVP@calc@abs
}
-\newif\ifGin@grid
-\define@key{Gin}{grid}[true]{\lowercase{\Gin@boolkey{#1}}{grid}}
-\define@key{Gin}{tics}{\count@=#1}
-\define@key{Gin}{unit}{\unitlength=\dimexpr#1\relax}
+\def\OVP@boolkey#1#2{%
+ \csname OVP@#2\ifx\relax#1\relax true\else#1\fi\endcsname}
+\newif\ifOVP@grid
+\define@key{OVP}{grid}[true]{\lowercase{\OVP@boolkey{#1}}{grid}}
+\define@key{OVP}{tics}{\count@=#1}
+\define@key{OVP}{unit}{\unitlength=\dimexpr#1\relax}
% \end{macrocode}
% \begin{macro}{\OVP@calc@abs}
% Some calculations in abs mode. \cmd{\@tempcnta} is the normalized width
@@ -287,6 +289,8 @@
}
% \end{macrocode}
% \end{macro}
+% \changes{2.0}{2024/01/01}{Use a separate namespace for the keys to avoid
+% unfavorable influence on \cmd\includegraphics.}
% \begin{macro}{\OVP@calc@rel}
% Some calculations in rel mode. The bigger value of width or height
% is the base.
@@ -313,9 +317,9 @@
% \end{macro}
% The package options set the defaults:
% \begin{macrocode}
-\DeclareOption{percent}{\setkeys{Gin}{rel=100}}
-\DeclareOption{permil}{\setkeys{Gin}{rel=\@m}}
-\DeclareOption{abs}{\setkeys{Gin}{abs}}
+\DeclareOption{percent}{\setkeys{OVP}{rel=100}}
+\DeclareOption{permil}{\setkeys{OVP}{rel=\@m}}
+\DeclareOption{abs}{\setkeys{OVP}{abs}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphicx}}
\ExecuteOptions{percent}
\ProcessOptions
@@ -323,24 +327,24 @@
% \end{macrocode}
%
% \begin{environment}{overpic}
-% Box 0 gets a graphic.
+% Box \cmd{\OVP@box} gets a graphic.
% \changes{1.2}{2018/09/02}{Wrong place of \cmd\setkeys
% (bug report from 'aminophen')}
+% \changes{2.0}{2024/01/04}{Better key handling}
% \begin{macrocode}
\newenvironment{overpic}[2][]{%
+ \let\OVP@temp=\KV@errx
+% \end{macrocode}
+% Silently ignore unknown keys.
+% \begin{macrocode}
+ \let\KV@errx\@gobble
\sbox\OVP@box{\includegraphics[#1]{#2}}%
- \count@=\z@ \Gin@gridfalse
- \setkeys{Gin}{#1}%
+ \count@=\z@ \OVP@gridfalse
+ \setkeys{OVP}{#1}%
% \end{macrocode}
-% Reset the graphics parameter:
+% Reset to previous state.
% \begin{macrocode}
- \let\Gin@outer@scalex\relax
- \let\Gin@outer@scaley\relax
- \let\Gin@angle\relax
- \let\Gin@ewidth\Gin@exclamation
- \let\Gin@eheight\Gin@exclamation
- \def\Gin@scalex{1}%
- \let\Gin@scaley\Gin@exclamation
+ \let\KV@errx\OVP@temp
\OVP@picture{#1}%
}{\endpicture}
% \end{macrocode}
@@ -348,18 +352,18 @@
% \begin{environment}{Overpic}
% \changes{1.0}{2017/10/06}{Suggested by \mbox{Herbert Vo\ss}}
% \changes{1.3}{2020/02/22}{Added missing \cmd\setkeys}
-% Box 0 gets any \TeX\ code.
+% Box \cmd{\OVP@box} gets any \TeX\ code.
% \begin{macrocode}
\newenvironment{Overpic}[2][]{%
\sbox\OVP@box{#2}%
- \count@=\z@ \Gin@gridfalse
- \setkeys{Gin}{#1}%
+ \count@=\z@ \OVP@gridfalse
+ \setkeys{OVP}{#1}%
\OVP@picture{#1}%
}{\endpicture}
% \end{macrocode}
% \end{environment}
% \begin{macro}{\OVP@picture}
-% Put box 0 and and optionally grid at the lower left corner of a
+% Put box \cmd{\OVP@box} and a optionally grid at the lower left corner of a
% picture environment.
% \begin{macrocode}
\newcommand*\OVP@picture[1]{%
@@ -370,7 +374,7 @@
\OVP@calc
\picture(\@tempcnta,\@tempcntb)%
\put(0,0){\makebox(0,0)[bl]{\usebox\OVP@box}}%
- \ifGin@grid
+ \ifOVP@grid
\put(0,0){\normalfont\fontsize\@viipt\@viiipt\selectfont
\grid(\@tempcnta,\@tempcntb)(\count@,\count@)[0,0]}%
\fi
@@ -381,7 +385,7 @@
% Sets new defaults.
% \begin{macrocode}
\newcommand*\setOverpic[1]{%
- \setkeys{Gin}{#1}%
+ \setkeys{OVP}{#1}%
}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/overpic/overpic.pdf b/macros/latex/contrib/overpic/overpic.pdf
index 8537ae6883..0fca353cfc 100644
--- a/macros/latex/contrib/overpic/overpic.pdf
+++ b/macros/latex/contrib/overpic/overpic.pdf
Binary files differ