texlive[69298] Master/texmf-dist: babel-italian (4jan24)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 4 21:33:33 CET 2024


Revision: 69298
          https://tug.org/svn/texlive?view=revision&revision=69298
Author:   karl
Date:     2024-01-04 21:33:33 +0100 (Thu, 04 Jan 2024)
Log Message:
-----------
babel-italian (4jan24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/babel-italian/README.txt
    trunk/Master/texmf-dist/doc/generic/babel-italian/italian.pdf
    trunk/Master/texmf-dist/source/generic/babel-italian/italian.dtx
    trunk/Master/texmf-dist/tex/generic/babel-italian/italian.ldf

Modified: trunk/Master/texmf-dist/doc/generic/babel-italian/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/generic/babel-italian/README.txt	2024-01-04 20:33:18 UTC (rev 69297)
+++ trunk/Master/texmf-dist/doc/generic/babel-italian/README.txt	2024-01-04 20:33:33 UTC (rev 69298)
@@ -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.
 

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

Modified: trunk/Master/texmf-dist/source/generic/babel-italian/italian.dtx
===================================================================
--- trunk/Master/texmf-dist/source/generic/babel-italian/italian.dtx	2024-01-04 20:33:18 UTC (rev 69297)
+++ trunk/Master/texmf-dist/source/generic/babel-italian/italian.dtx	2024-01-04 20:33:33 UTC (rev 69298)
@@ -10,7 +10,7 @@
 \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.
@@ -17,7 +17,7 @@
 \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 @@
 %
 % \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,18 +60,18 @@
 %</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 at 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}
@@ -78,7 +78,7 @@
 \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 @@
 %</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 @@
 % \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 @@
 \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 at 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 at 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 @@
     \adddialect\l at 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 at 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 at 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 @@
 % \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 @@
     \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 @@
 % \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 @@
 %
 % \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 at savevariable\clubpenalty
@@ -515,8 +592,8 @@
 % \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 at savevariable\finalhyphendemerits
@@ -525,28 +602,29 @@
 %
 % \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 at gmail.com> who spotted the
-%    error and suggested the correction.}
+%    apostrophe so as to work also with platex and uplatex.
+%    Thanks to Hironobu Yamashita <h.y.acetaminophen at 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 at gmail.com>} if this |babel| language option 
-%    is used while using either |pdflatex| or a Unicode aware
-%    typesetting engine.
+%  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 at 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 @@
 \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.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.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 at lettering \it at lettering=\@ne
 \newcommand*\XXIletters{\it at lettering=\z@}
@@ -597,8 +679,9 @@
 %    \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 at alph#1{%
 \ifcase\it at lettering
@@ -607,8 +690,8 @@
    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 at Alph#1{%
 \ifcase\it at lettering
@@ -617,109 +700,131 @@
    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}
+% \subsection{Support for etymological hyphenation}
 %
-%    In Italian etymological hyphenation is desirable with
-%    technical terms, chemical names, and the like.
+%  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.
+% \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 |\-|.
+%   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.
+%  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.
 %
-%    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!).
+%  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 at doublequoteactive \it at doublequoteactive=\z@
 \def\setactivedoublequote{\it at doublequoteactive=\@ne}
@@ -730,13 +835,14 @@
   \initiate at active@char{"}%
   \addto\extrasitalian{\bbl at activate{"}\languageshorthands{italian}}%
 %    \end{macrocode}
-%    \begin{macro}{\it at 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 at next| is defined so as to defer any further action
-%    until the next token category code has been tested.
+%  \begin{macro}{\it at 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 at next| is defined so as
+%  to defer any further action until the next token category
+%  code has been tested.
 %    \begin{macrocode}
   \declare at shorthand{italian}{"}{%
     \ifmmode
@@ -748,55 +854,56 @@
   }%
 \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 at cwm}
-%    The \cs{it at next} service control sequence is such that upon its
-%    execution a temporary variable \cs{it at 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 at cwm}
-%      and if it is found to be a letter token (cathode=11), then it
-%      introduces a compound word separator control sequence
-%      \cs{it at 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.
+%  \begin{macro}{\it at cwm}
+%  The \cs{it at next} service control sequence is such that upon
+%  its execution a temporary variable \cs{it at 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 at cwm}
+%  and if it is found to be a letter token (cathode=11), then it
+%  introduces a compound word separator control sequence
+%  \cs{it at 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.
+%  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 at allowhyphens\discretionary{-}{}{}\bbl at allowhyphens}%
 \def\it@@slash{\bbl at allowhyphens\discretionary{/}{}{/}\bbl at allowhyphens}%
@@ -806,29 +913,29 @@
 \ifcat\noexpand\it at temp a%
     \def\it@@next{\it@@cwm}%
 \else
-    \if\noexpand\it at temp \string|%
-        \def\it@@next{\it@@cwm\@gobble}%
+  \if\noexpand\it at temp \string|%
+      \def\it@@next{\it@@cwm\@gobble}%
+  \else
+    \if\noexpand\it at temp \string<%
+        \def\it@@next{\it@@ocap}%
     \else
-        \if\noexpand\it at temp \string<%
-            \def\it@@next{\it@@ocap}%
+      \if\noexpand\it at temp \string>%
+          \def\it@@next{\it@@ccap}%
+      \else
+        \if\noexpand\it at temp\string/%
+            \def\it@@next{\it@@slash\@gobble}%
         \else
-            \if\noexpand\it at temp \string>%
-                \def\it@@next{\it@@ccap}%
-            \else
-                \if\noexpand\it at temp\string/%
-                    \def\it@@next{\it@@slash\@gobble}%
-                \else
-                    \ifcat\noexpand\it at temp\noexpand\it@@dqactive
-                        \def\it@@next{``\@gobble}%
-                    \else
-                        \if\noexpand\it at temp\string-%
-                            \def\it@@next{\it@@trattino\@gobble}%
-                        \fi
-                    \fi
-                \fi
+          \ifcat\noexpand\it at temp\noexpand\it@@dqactive
+                \def\it@@next{“\@gobble}%
+          \else
+            \if\noexpand\it at temp\string-%
+                \def\it@@next{\it@@trattino\@gobble}%
             \fi
+          \fi
         \fi
+      \fi
     \fi
+  \fi
 \fi
 \it@@next}%
 %    \end{macrocode}
@@ -836,113 +943,145 @@
 %    \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}
+% \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.
 %
-%    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.
+%  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.
+%    \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
+% \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}|.
+% 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.
 %
-%    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.
+% 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}|.
 %
-%    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.
+% 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.
 %
-%    \begin{macro}{\unit}
-%    \begin{macro}{\ap}
-%    \begin{macro}{\ped}
-%    \begin{macro}{\setISOcompliance}
-%    First we define the new (internal) commands |\bbl at unit|, |\bbl at ap|,
-%    and |\bbl at 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.
+% 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 at unit|,
+% |\bbl at ap|, and |\bbl at 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 at ISOcompliance \it at ISOcompliance=\z@
 \def\setISOcompliance{\it at ISOcompliance=\@ne}
-\AtBeginDocument{\unless\ifnum\it at ISOcompliance=\z@%
+\AtBeginDocument{%
+\unless\ifnum\it at ISOcompliance=\z@%
 \def\activate at it@unit{\DeclareRobustCommand*{\bbl at it@unit}[1]{%
     \textormath{\,\textup{##1}}{\,\mathrm{##1}}}}
 \@ifpackageloaded{units}{}{\@ifpackageloaded{siunitx}{}{%
@@ -949,7 +1088,8 @@
   \@ifpackageloaded{SIunits}{}{%
   \activate at it@unit\addto\extrasitalian{%
     \babel at save\unit\let\unit\bbl at it@unit}%
-  }}}\ifcsstring{bbl at main@language}{italian}{\selectlanguage{italian}}{}%
+  }}}%
+\ifcsstring{bbl at main@language}{italian}{\selectlanguage{italian}}{}%
 \fi}
 \DeclareRobustCommand*{\bbl at it@ap}[1]{%
   \textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
@@ -957,10 +1097,10 @@
   \textormath{$_{\mbox{\fontsize\sf at 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 at save\ap\let\ap\bbl at it@ap
@@ -967,243 +1107,254 @@
   \babel at save\ped\let\ped\bbl at 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.
+% \begin{macro}{\IntelligentComma}
+% \begin{macro}{\NoIntellgentComma}
 %
-%    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.
+% 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
+\AtEndOfPackage{%
+%
+\AtEndPreamble{%
+\newcommand*\IntelligentComma{\mathcode`\,=\string"8000}% 
+\newcommand*\NoIntelligentComma{\mathcode`\,=\string"613B}%
+\@ifpackageloaded{icomma}{%
+  \let\IntelligentComma\relax
   \let\NoIntelligentComma\relax}{%
-  \@ifpackageloaded{ncccomma}{\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 at 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.
+% 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 comma, one that is a decimal separator, and 
-%    a second one that is a punctuation mark.
+% \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. 
+% 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.
+% 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|
 %
-%    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
+% 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.
+%    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.
 %
-%    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.
+%    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.
+%    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 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
+%    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 @@
                 \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 @@
 }
 
 %    \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 @@
   {% 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 at 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.
+% 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\^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.
+% 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. 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 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 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.
+% 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.
+% 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.
+% 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.
+% 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 at acc}
-%    since its functionality has been introduced into the kernel of LaTeX
-%    2001/06/01}
+% \changes{italian-1.2p}{2002/07/10}{Removed redefinition of
+%    \cs{add at 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
+% 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.
+% \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.
+% 
+% 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.}
+% \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.
+% 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.
+% 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.
+% 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 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. 
+% 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 at ocap}
-%    \begin{macro}{\it at 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 at ocap| and
-%     |\it at 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{macro}{\LtxSymbCaporali}
+% \begin{macro}{\it at ocap}
+% \begin{macro}{\it at 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 at ocap| and |\it at 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 at ocap}{\mbox{%
-        \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
-        \ignorespaces}%
-     \DeclareRobustCommand*{\it at ccap}{\ifdim\lastskip>\z@\unskip\fi
-     \mbox{%
-        \fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}%
+  \DeclareRobustCommand*{\it at ocap}{\mbox{%
+    \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
+      \ignorespaces}%
+  \DeclareRobustCommand*{\it at ccap}{\@killglue
+    \mbox{\fontencoding{U}\fontfamily{lasy}\selectfont)%
+     \kern-0.20em)}}%
 }%
-\def\T at unoCaporali{\DeclareRobustCommand*{\it at ocap}{<<\ignorespaces}%
-     \DeclareRobustCommand*{\it at ccap}{\ifdim\lastskip>\z@\unskip\fi>>}}%
-\T at unoCaporali
+%
+\def\T at unoCaporali{% default setting
+  \DeclareRobustCommand*{\it at ocap}{<<\ignorespaces}%
+  \DeclareRobustCommand*{\it at ccap}{\@killglue >>}}%
+\T at 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 at ocap|
+% and |\it at ccap|; they become available when users specify in
+% their preambles either the |\LteSymbCaporali| or in a personal
+% \texttt{.sty} file the |\T at 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 at ocap}{T1}{%
-    {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
-  \DeclareTextCommand{\it at ccap}{T1}{\ifdim\lastskip>\z@\unskip\fi%
+    {\fontencoding{#1}\fontfamily{#2}%
+      \selectfont\char#3\ignorespaces}}%
+  \DeclareTextCommand{\it at ccap}{T1}{\@kilglue
     {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}%
-  \DeclareTextCommand{\it at ocap}{OT1}{%
-    {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
-  \DeclareTextCommand{\it at 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 at ae#1#2#3!{\def\bbl at ae{#1#2}}%
 \def\@ifT at one@noCap{\expandafter\get at ae\f at family!%
 \def\bbl at temp{ae}\ifx\bbl at ae\bbl at 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 at temp{OT1}%
   \ifx\cf at encoding\bbl at temp
@@ -1571,16 +1766,17 @@
     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 at encoding\bbl at t@one
       \@ifT at 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 @@
   \fi
 }
 %    \end{macrocode}
-%    \end{macro}
-%    \end{macro}
-%    \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 %
-%    \subsection*{Finishing commands}
-%    The macro |\ldf at 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 at finish} to wrap
-%    up}
+% \subsection*{Finishing commands}
+%
+% The |\ldf at 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 at finish} to
+%    wrap up}
 %    \begin{macrocode}
 \ldf at finish{italian}%
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/tex/generic/babel-italian/italian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel-italian/italian.ldf	2024-01-04 20:33:18 UTC (rev 69297)
+++ trunk/Master/texmf-dist/tex/generic/babel-italian/italian.ldf	2024-01-04 20:33:33 UTC (rev 69298)
@@ -7,12 +7,12 @@
 %% italian.dtx  (with options: `code')
 %% ------------------------------------------
 %% 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.
 \ProvidesLanguage{italian}
-        [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]
 %%
 %% Please report errors to: claudio dot beccari at gmail dot com
 %%
@@ -52,9 +52,9 @@
     \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}}%
 \providehyphenmins{\CurrentOption}{\tw@\tw@}
 \addto\extrasitalian{%
   \babel at savevariable\clubpenalty
@@ -86,8 +86,8 @@
    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 at Alph#1{%
 \ifcase\it at lettering
@@ -96,8 +96,8 @@
    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}%
 \newcount\it at doublequoteactive \it at doublequoteactive=\z@
 \def\setactivedoublequote{\it at doublequoteactive=\@ne}
@@ -126,34 +126,35 @@
 \ifcat\noexpand\it at temp a%
     \def\it@@next{\it@@cwm}%
 \else
-    \if\noexpand\it at temp \string|%
-        \def\it@@next{\it@@cwm\@gobble}%
+  \if\noexpand\it at temp \string|%
+      \def\it@@next{\it@@cwm\@gobble}%
+  \else
+    \if\noexpand\it at temp \string<%
+        \def\it@@next{\it@@ocap}%
     \else
-        \if\noexpand\it at temp \string<%
-            \def\it@@next{\it@@ocap}%
+      \if\noexpand\it at temp \string>%
+          \def\it@@next{\it@@ccap}%
+      \else
+        \if\noexpand\it at temp\string/%
+            \def\it@@next{\it@@slash\@gobble}%
         \else
-            \if\noexpand\it at temp \string>%
-                \def\it@@next{\it@@ccap}%
-            \else
-                \if\noexpand\it at temp\string/%
-                    \def\it@@next{\it@@slash\@gobble}%
-                \else
-                    \ifcat\noexpand\it at temp\noexpand\it@@dqactive
-                        \def\it@@next{``\@gobble}%
-                    \else
-                        \if\noexpand\it at temp\string-%
-                            \def\it@@next{\it@@trattino\@gobble}%
-                        \fi
-                    \fi
-                \fi
+          \ifcat\noexpand\it at temp\noexpand\it@@dqactive
+                \def\it@@next{“\@gobble}%
+          \else
+            \if\noexpand\it at temp\string-%
+                \def\it@@next{\it@@trattino\@gobble}%
             \fi
+          \fi
         \fi
+      \fi
     \fi
+  \fi
 \fi
 \it@@next}%
 \newcount\it at ISOcompliance \it at ISOcompliance=\z@
 \def\setISOcompliance{\it at ISOcompliance=\@ne}
-\AtBeginDocument{\unless\ifnum\it at ISOcompliance=\z@%
+\AtBeginDocument{%
+\unless\ifnum\it at ISOcompliance=\z@%
 \def\activate at it@unit{\DeclareRobustCommand*{\bbl at it@unit}[1]{%
     \textormath{\,\textup{##1}}{\,\mathrm{##1}}}}
 \@ifpackageloaded{units}{}{\@ifpackageloaded{siunitx}{}{%
@@ -160,7 +161,8 @@
   \@ifpackageloaded{SIunits}{}{%
   \activate at it@unit\addto\extrasitalian{%
     \babel at save\unit\let\unit\bbl at it@unit}%
-  }}}\ifcsstring{bbl at main@language}{italian}{\selectlanguage{italian}}{}%
+  }}}%
+\ifcsstring{bbl at main@language}{italian}{\selectlanguage{italian}}{}%
 \fi}
 \DeclareRobustCommand*{\bbl at it@ap}[1]{%
   \textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
@@ -172,22 +174,23 @@
   \babel at save\ped\let\ped\bbl at it@ped
   }%
 \AtEndOfPackage{\RequirePackage{etoolbox}}
-\AtEndOfPackage{\AtEndPreamble{%
-\newcommand*\IntelligentComma{\mathcode`\,=\string"8000}% Active comma
-\newcommand*\NoIntelligentComma{\mathcode`\,=\string"613B}% Punctuation comma
-\@ifpackageloaded{icomma}{\let\IntelligentComma\relax
+\AtEndOfPackage{%
+\AtEndPreamble{%
+\newcommand*\IntelligentComma{\mathcode`\,=\string"8000}%
+\newcommand*\NoIntelligentComma{\mathcode`\,=\string"613B}%
+\@ifpackageloaded{icomma}{%
+  \let\IntelligentComma\relax
   \let\NoIntelligentComma\relax}{%
-  \@ifpackageloaded{ncccomma}{\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 at main@language}{english}{\relax}{%
-          \mathcode`\,=\string"613B}
-      }{%
-        \ifcsstring{languagename}{english}{\relax}{%
-          \mathcode`\,=\string"613B}
-      }%
+       \ProvideDocumentEnvironment{english}{}%
+         {\begin{otherlanguage}{english}%
+           \NoIntelligentComma}%
+         {\end{otherlanguage}}%
   }}}%
 }}
  \DeclareMathSymbol{\virgoladecimale}{\mathord}{letters}{"3B}
@@ -237,7 +240,7 @@
                 \expandafter\@secondoftwo
               \fi
               {\virgola}% \tempB actually is a macro
-              {\@math@@comma}% \tempB is an alias of something else
+              {\@math@@comma}% \tempB is an alias
             }%
           }%
         }%
@@ -256,35 +259,34 @@
   {% 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 at tfor\fi}\@tempVirgola
   }#1}%
 \def\LtxSymbCaporali{%
-     \DeclareRobustCommand*{\it at ocap}{\mbox{%
-        \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
-        \ignorespaces}%
-     \DeclareRobustCommand*{\it at ccap}{\ifdim\lastskip>\z@\unskip\fi
-     \mbox{%
-        \fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}%
+  \DeclareRobustCommand*{\it at ocap}{\mbox{%
+    \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
+      \ignorespaces}%
+  \DeclareRobustCommand*{\it at ccap}{\@killglue
+    \mbox{\fontencoding{U}\fontfamily{lasy}\selectfont)%
+     \kern-0.20em)}}%
 }%
-\def\T at unoCaporali{\DeclareRobustCommand*{\it at ocap}{<<\ignorespaces}%
-     \DeclareRobustCommand*{\it at ccap}{\ifdim\lastskip>\z@\unskip\fi>>}}%
+\def\T at unoCaporali{% default setting
+  \DeclareRobustCommand*{\it at ocap}{<<\ignorespaces}%
+  \DeclareRobustCommand*{\it at ccap}{\@killglue >>}}%
 \T at unoCaporali
 \def\CaporaliFrom#1#2#3#4{%
   \DeclareFontEncoding{#1}{}{}%
   \DeclareTextCommand{\it at ocap}{T1}{%
-    {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
-  \DeclareTextCommand{\it at ccap}{T1}{\ifdim\lastskip>\z@\unskip\fi%
+    {\fontencoding{#1}\fontfamily{#2}%
+      \selectfont\char#3\ignorespaces}}%
+  \DeclareTextCommand{\it at ccap}{T1}{\@kilglue
     {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}%
-  \DeclareTextCommand{\it at ocap}{OT1}{%
-    {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
-  \DeclareTextCommand{\it at ccap}{OT1}{\ifdim\lastskip>\z@\unskip\fi%
-    {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}}
-
+}
 \def\get at ae#1#2#3!{\def\bbl at ae{#1#2}}%
 \def\@ifT at one@noCap{\expandafter\get at ae\f at family!%
 \def\bbl at temp{ae}\ifx\bbl at ae\bbl at temp\expandafter\@firstoftwo\else
-    \expandafter\@secondoftwo\fi}%
+  \expandafter\@secondoftwo\fi}%
 \AtBeginDocument{\normalfont\def\bbl at temp{OT1}%
   \ifx\cf at encoding\bbl at temp
     \LtxSymbCaporali
@@ -293,16 +295,17 @@
     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 at encoding\bbl at t@one
       \@ifT at 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
@@ -316,7 +319,7 @@
 %%
 %% \endinput
 %% 
-%% 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



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