From f8c8d56f3bc874b6b3b0c381a195755dc2db5dad Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 14 Mar 2015 23:02:02 +0000
Subject: babel-italian (14mar15)

git-svn-id: svn://tug.org/texlive/trunk@36515 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/generic/babel-italian/italian.dtx       | 337 +++++++++++----------
 1 file changed, 185 insertions(+), 152 deletions(-)

(limited to 'Master/texmf-dist/source/generic/babel-italian/italian.dtx')

diff --git a/Master/texmf-dist/source/generic/babel-italian/italian.dtx b/Master/texmf-dist/source/generic/babel-italian/italian.dtx
index ee47f46096c..ba6ca8ea308 100644
--- a/Master/texmf-dist/source/generic/babel-italian/italian.dtx
+++ b/Master/texmf-dist/source/generic/babel-italian/italian.dtx
@@ -22,7 +22,7 @@
 % and covered by LPPL is defined by the unpacking scripts (with
 % extension .ins) which are part of the distribution.
 % \fi
-% \CheckSum{731}
+% \CheckSum{740}
 % \iffalse
 %    Tell the \LaTeX\ system who we are and write an entry on the
 %    transcript.
@@ -33,7 +33,7 @@
 %</filedriver>
 %<code>\ProvidesLanguage{italian}
 %<*code>
-        [2014/03/29 v1.3k Italian support from the babel system]
+        [2015/03/12 v1.3m Italian support from the babel system]
 %</code>
 %%
 %% Please report errors to: claudio dot beccari at gmail dot com
@@ -49,6 +49,7 @@
 \documentclass{ltxdoc}
 \usepackage[T1]{fontenc}
 \usepackage{lmodern}
+\usepackage{booktabs}
 \newcommand*\TeXhax{\TeX hax}
 \newcommand*\babel{\textsf{babel}}
 \newcommand*\langvar{$\langle \it lang \rangle$}
@@ -114,13 +115,18 @@
 %   but it must be delayed until \string\begin\{document\}; with babel 3.9g
 %   the main language is set before this point, therefore it is necessary
 %   to select again the Italian language if this is the main one}
-% \changes{italian-1.3k}{2014/03/29}{Corretta discrepanza fra 
-%   \cs{SetISOcompliance} (errato nella documentazione) e \cs{setISOcompliance}
-%   (giusto nel codice)}
+% \changes{italian-1.3k}{2014/03/29}{Corrected discrepancy between 
+%   \cs{SetISOcompliance} (wrong in  documentation) and \cs{setISOcompliance}
+%   (correct in code)}
+% \changes{italian-1.3l}{2014/05/25}{Corrections in the documentation}
+% \changes{italian-1.3m}{2015/03/12}{More corrections to the documentations,
+%  specifically on conflicts with the dcolumn package and its D column.
+%  The whole \(No)IntelligentComma mechanism has been actually completely
+%  rewritten; so the change does not deal only with documentation, but also
+%  with code.}
 %
 %  \section{The Italian language}
-%
-%    \textbf{Important notice:} This language description file relies on
+%    \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
@@ -134,11 +140,12 @@
 %    \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
+%    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
@@ -153,9 +160,10 @@
 %    |">|   & 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)
+%                (\emph{trattino copulativo}, in Italian)\\
+%    \bottomrule
 %    \end{tabular}
-%    \caption{shorthands for the Italian language. These shorthand are
+%    \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}
@@ -191,7 +199,7 @@
 %      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 command |\setactivedoublequote| after
+%      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
@@ -201,8 +209,8 @@
 %      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 active character.
-%    \item some Italian compound words have a connecting short dash (a
+%      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
@@ -211,7 +219,7 @@
 %      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\...)
+%      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
@@ -223,22 +231,14 @@
 %    \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
+%      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.\footnote{At
-%      the date of writing actually there are some problems with LuaLaTeX,
-%      in the sense that the real guillemets << and >>  work as they
-%      should, while the \texttt{<{}<} and \texttt{>{}>} ligatures don't;
-%      the bug is due to the lack of some lines in the features description
-%      file of OpenType fonts for LuaLaTeX; the bug has already been
-%      submitted to the LuaTeX Team; is is very likely that when you use
-%      this Italian language description file, the bug has already been
-%      corrected.}
+%      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. 
@@ -253,24 +253,30 @@
 %      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 actually
-%      the Bureau International des Pois et Mésures allows also the point
+%      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 th national typographical traditions; since
+%      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|; I believe that my solution is better
-%      than that  provided by both those packages; but, since this
-%      functionality may be turned on or off at the user will, those
-%      packages may still be used. 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.
+%      example |icomma| and |ncccomma|; |icomma|, apparently is not in conflict
+%      with |dcolomn|, but requires a space after the comma all the times it
+%      plays the r\^ole of a punctuation mark; |nccomma|, checks if the next
+%      token is a digit, but it repeated ten tests every time it meets 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 on of those packages, it prefers to use that
+%      functionality; In case one of those pachages is loaded, this module
+%      excludes its 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 cong=flicting packages are being loaded.
 %    \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
@@ -305,7 +311,7 @@
 %    vol.~18, n.~1, pp.~39-48 (1997).
 %    \end{thebibliography}}
 %
-%\subsection*{The commented code}
+%\subsection{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.
@@ -353,8 +359,7 @@
 %    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 words
-%    following suggestions from Claudio Beccari}
+% \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'}
@@ -400,7 +405,7 @@
 %
 % \begin{macro}{\italianhyphenmins}
 % \changes{italian-1.2b}{1994/05/19}{Added setting of left and
-%    righthyphenmin according to Claudio Beccari's suggestion}
+%    righthyphenmin}
 %
 %    The italian hyphenation patterns can be used with both
 %    |\lefthyphenmin| and |\righthyphenmin| set to~2.
@@ -414,7 +419,7 @@
 % \begin{macro}{\extrasitalian}
 % \begin{macro}{\noextrasitalian}
 %
-% \changes{italian-1.2b}{1994/05/19}{Added setting of club- and
+% \changes{italian-1.2b}{1994/05/19}{Added settings of club- and
 %    widowpenalty}
 %    Lower the chance that clubs or widows occur.
 %    \begin{macrocode}
@@ -429,7 +434,7 @@
 %    finalhyphendemerits}
 %
 %    Never ever break a word between the last two lines of a paragraph
-%    in italian texts.
+%    in Italian texts.
 %    \begin{macrocode}
 \addto\extrasitalian{%
   \babel@savevariable\finalhyphendemerits
@@ -454,7 +459,7 @@
 % \end{macro}
 % \end{macro}
 %
-% \subsection*{Traditionally labelled enumerate environment}
+% \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
@@ -467,7 +472,7 @@
 %    26-letter alphabet are retained}
 % \begin{macro}{\XXIletters}
 % \begin{macro}{\XXVIletters}
-%    At the same time it is considered useful to have the posssibility of
+%    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| 
@@ -508,20 +513,20 @@
 \fi}%
 %    \end{macrocode}
 %
-% In order to have a complete description, the situation is this:
+% 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, therefore that the Italian language is 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 |XXLIletter| command, issued outside any environment sets
+%    \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 taggingg takes place only from the second level
+%       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
@@ -533,9 +538,9 @@
 % \changes{italian-1.2m}{2000/01/05}{Support for etymological
 %    hyphenation}
 %
-%   \subsection*{Support for etymological hyphenation}
+%   \subsection{Support for etymological hyphenation}
 
-%    In Italian such etymological hyphenation is desirable with
+%    In Italian etymological hyphenation is desirable with
 %    technical terms, chemical names, and the like.
 
 %    \subsubsection{Some history}
@@ -755,19 +760,20 @@
 %    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"|{\"o}rsted! gets hyphenated as
+%    \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 intermediate passages that have to be done
+%    letters do, because of the LICR (LaTeX Internal Character Representation),
+%    i.e. the set of intermediate macros that have to be expanded
 %    in order to fetch the proper glyph in the output font.
 %
 %    \changes{italian-1.2l}{1999/04/05}{Added useful macros for
 %    fulfilling ISO 31/XI regulations}
 %
-%   \subsection*{Facilities required by the 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
@@ -793,7 +799,7 @@
 %    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 or a root
+%    $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
@@ -806,7 +812,7 @@
 %    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}
+%    names (compare with ``Bros.'' for \underline{Bro}ther\underline{s}
 %    in American English); text subscripts are mostly used in logos.
 %
 %    \begin{macro}{\unit}
@@ -820,9 +826,9 @@
 % \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 deactivate by default according to the contents of
+%    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 pedixes remain available in any case.
+%    user; commands for apices and pedices remain available in any case.
 %    \begin{macrocode}
 \newcount\it@ISOcompliance \it@ISOcompliance=\z@
 \def\setISOcompliance{\it@ISOcompliance=\@ne}
@@ -843,7 +849,7 @@
 %    \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 memorize their meaning so
+%    in Italian mode typesetting, we first save their meaning so
 %    as to restore them on exit.
 %    \begin{macrocode}
 \addto\extrasitalian{%
@@ -856,32 +862,9 @@
 %    \end{macro}
 %    \end{macro}
 %
-% \subsection*{Intelligent comma}\label{ssec:comma}
-%
-%    \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 it sets a switch and according
-%    to this switch the functionality is activated or dismissed.
-%    \begin{macrocode}
-\newcount\Virgola
-\Virgola=\z@
-\newcommand*\IntelligentComma{\Virgola=\@ne}
-\newcommand*\NoIntelligentComma{\Virgola=\z@}
-\addto\extrasitalian{\babel@savevariable\Virgola}
-%    \end{macrocode}
-%    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 in the case of LuaLaTeX, that
-%    is similar to XeLaTeX  for what concerns handling of OpenType fonts,
-%    but it uses the same engine as pdfLaTeX and can use either |babel| or 
-%    |polyglossia|, so this is the real discriminant factor, not the
-%    typesetting engine.
+% \subsection{Intelligent comma}\label{ssec:comma}
 %
-%    At the same time we need to perform some tests that require some
+%    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
@@ -895,9 +878,69 @@
 \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 |nccomma| have been loaded, since that assumes that the user
+%    wants to use their functionality, not the functionality of this package.
+%
+%    We need a command to set the comma as an active charter only in math mode;
+%    the special |\mathcode| that classifies an active character in math is the
+%    hexadecimal value |"8000|. By default we set the punctuation
+%    type of comma, but we let |\IntelligentComma| and |\NoIntelligentComma|
+%    to |\relax| so that their use is forbidden when one of the named packages
+%    is loaded. In this way all known conflicts are avoided; should the user
+%    find out other conflicts, s/he is kindly required to notify it to the
+%    maintainer.
+%    \begin{macrocode}
+\AtEndOfPackage{\AtEndPreamble{%
+\newcommand*\IntelligentComma{\mathcode`\,=\string"8000}% Active comma
+\newcommand*\NoIntelligentComma{\mathcode`\,=\string"613B}% Punctuation comma
+\@ifpackageloaded{icomma}{\let\IntelligentComma\relax
+  \let\NoIntelligentComma\relax}{%
+  \@ifpackageloaded{nccomma}{\let\IntelligentComma\relax
+  \let\NoIntelligentComma\relax}{%
+    \@ifpackageloaded{dcolumn}{\let\IntelligentComma\relax
+      \let\NoIntelligentComma\relax}{%
+      \@ifpackageloaded{polyglossia}{%
+        \ifcsstring{xpg@main@language}{english}{\relax}{%
+          \mathcode`\,=\string"613B}
+      }{%
+        \ifcsstring{languagename}{english}{\relax}{%
+          \mathcode`\,=\string"613B}
+      }%
+  }}}%
+}}
+%    \end{macrocode}
+%    These commands are defined only in the |babel| support for the Italian
+%    language (this file) and are not defined in the corresponding |polyglossia|
+%    support for the language.
+%    In order to have this functionality work properly with pdfLaTeX,
+%    XeLaTeX, and LuaLaTeX, it is necessary to discover which engine
+%    is being used, or better, which language handling package is
+%    being used: |babel| or |polyglossia|? Let us remember that testing
+%    the actual engine, as it would be possible with package |iftex|,
+%    does not tell the whole truth, because LuaLaTeX and XeLaTeX  behave
+%    in a similar way for what concerns language handling since they can
+%    use both |babel| and |polyglossia| (obviously not at the same time);
+%    so the use of |babel| or |polyglossia| is the real discriminant factor,
+%    not the typesetting engine.
+%
 %    \begin{macro}{\virgola}
 %    \begin{macro}{\virgoladecimale}
-%    We need two kind of commas, one that is a decimal separator, and 
+%    We need two kinds of comma, one that is a decimal separator, and 
 %    a second one that is a punctuation mark.
 %    \begin{macrocode}
  \DeclareMathSymbol{\virgola}{\mathpunct}{letters}{"3B}
@@ -906,35 +949,13 @@
 %    \end{macro}
 %    \end{macro}
 %
-%    Then 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 exadecimal value |"8000|. But we have
-%    to set this value only when the current language is not English
-%    or one of its varieties. We avoid to do anything if at the end of
-%    the preamble is is found that the |icomma| package has been loaded.
-%    There is a conflict; so we assume that if the user wants to use the
-%    |icomma| package, he wants to do it, and does not want to make use
-%    of the functionality of this language description file.
-%    \begin{macrocode}
-\AtEndOfPackage{%
-\AtEndPreamble{\@ifpackageloaded{icomma}{\relax}{%
-    \@ifpackageloaded{polyglossia}{%
-      \ifcsstring{xpg@main@language}{english}{\relax}{%
-        \mathcode`\,=\string"8000}
-    }{%
-      \ifcsstring{languagename}{english}{\relax}{%
-        \mathcode`\,=\string"8000}
-    }%
-  }%
-}}
-%    \end{macrocode}
 % \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:
-%    probably it is not necessary to pass through in intermediate robust
+%    probably it is not necessary to pass through an intermediate robust
 %    command, but certainly it is not wrong to do it.
 %    \begin{macrocode}
 \DeclareRobustCommand*\it@comma@def{\futurelet\let@token\@@math@comma}%
@@ -951,7 +972,7 @@
 %    Is is important to remark that |\@math@comma| must be a command that
 %    does not require arguments; this makes it robust when it is followed
 %    by other characters that may play special r\^oles within the arguments
-%    of other macros or environments. Matter of fact the first version 1.3
+%    of other macros or environments. Matter of fact the first version 
 %    of this file in version 1.3 did accept an argument; and the result was
 %    that the active comma would ``eat up'' the |&| in vertical math
 %    alignments  and very nasty errors took place, especially within the
@@ -966,28 +987,35 @@
 %    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 with any |\if| clause unless
-%    it is a |\ifx| one or is prefixed with |noexpand|. The tests that are
+%    digit, and a macro gets expanded when used with any |\if| clause, unless
+%    it is a |\ifx| one, or is prefixed with |noexpand|. The tests that are
 %    going to be made are therefore of different kinds, according to this
 %    scheme:
 %    \begin{itemize}
-%    \item the |\let@token| is tested against an asterisk to see it it is of
+%    \item 
+%    the |\let@token| is tested against an asterisk to see it 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 is represented by a control sequence; so we
+%    \item 
+%    an implicit digit is represented by a control sequence; so we
 %    first check this feature; 
-%    \item if it is a control sequence, we have to test its nature of a
+%    \item 
+%    if it is a control sequence, we have to test its nature of a
 %    digit by testing if it represented one of the ten digits; 
 %    \item otherwise it is an analphabetic character.
 %    \end{itemize}
-%    \item otherwise the |\let@token| is a special character or a
+%    \item 
+%    otherwise the |\let@token| is a special character or a
 %    macro/command; 
-%    \item a test is made to see if it is a macro; in this case we check
+%    \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 it is not a macro, it must be some other kind of token for
+%    \item 
+%    it is not a macro, it must be some other kind of token for
 %    example a space or 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 more digits and/or other
 %    charters. If the macro represents one digit the test is correct,
@@ -998,12 +1026,12 @@
 %    a (short) decimal value, and it is correct to avoid prefixing it with a
 %    space; but the user is warned not to make use of numeric strings in
 %    the definition of parameters, unless he knows what he is doing.
-%    The user may rather use a balanced brace comma grout |{,}| in the input file
+%    The user may rather use a balanced brace comma group |{,}| in the input file
 %    so that the macro will not be considered by the expansion of the
 %    active comma. For example if |\x| is defined to be the numerical
-%    string |89|, the source input |$2{,}\c$| will be correctly typeset
-%    as 2,89; the input \verb*!$2, \c$! will be typeset as 2,\,89 (with
-%    an unbreakable thin space after the comma) while |$2,\c$| will be
+%    string |89|, the source input |$2{,}\x$| will be correctly typeset
+%    as 2,89; the input \verb*!$2, \x$! will be typeset as 2,\,89 (with
+%    an unbreakable thin space after the comma) while |$2,\x$| will be
 %    typeset as 29,89, obviously wrong.
 %
 %    So first we test if the comma must act intelligently; if the counter
@@ -1018,25 +1046,23 @@
 %    trace behind.
 %    \begin{macrocode}
 \DeclareRobustCommand*\@math@comma{%
-   \ifnumequal{\Virgola}{\z@}{\virgola}{%
-     \ifcat\noexpand\let@token*%
-        \expandafter\@firstoftwo
-     \else
-        \expandafter\@secondoftwo
-     \fi{%  \let@token is of  category 12
-          \@math@@comma
-        }{% test if \let@token is a macro
-           \ifcat\noexpand\let@token\noexpand\relax
-              \expandafter\@firstoftwo
-           \else
-              \expandafter\@secondoftwo
-           \fi{% it is a macro 
-                 \@@math@@comma
-              }{% it is something else. 
-                 \virgola
-              }
-        }
-   }
+ \ifcat\noexpand\let@token*%
+    \expandafter\@firstoftwo
+ \else
+    \expandafter\@secondoftwo
+ \fi{%  \let@token is of  category 12
+      \@math@@comma
+    }{% test if \let@token is a macro
+       \ifcat\noexpand\let@token\noexpand\relax
+          \expandafter\@firstoftwo
+       \else
+          \expandafter\@secondoftwo
+       \fi{% it is a macro 
+             \@@math@@comma
+          }{% it is something else. 
+             \virgola
+          }
+    }
 }
 %    \end{macrocode}
 %
@@ -1045,9 +1071,9 @@
 %    special signs, as |&| for example. In case 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, an asterisk, for example;
-%    so we have to test its digit  nature; the simplest that was found
+%    so we have to test its digit nature; the simplest that was found
 %    to test if a token is a digit, is to test its ASCII code against
-%    the ASCII codes of `0' (zero) and 9.
+%    the ASCII codes of `0' (zero) and `9'.
 %    The typesetting engines give the backtick, |`|, the property that
 %    when a number is required, it yields the ASCII code if the following
 %    token in an explicit character or a macro argument; this is why we
@@ -1125,6 +1151,11 @@
 %    functionality defined in this language description file and the
 %    user can do what he desires with the many functionalities of that
 %    package.
+%
+%    Apparently a conflict with the active comma arises with the D column
+%    defined by the |dcolomn| package. Disabling the ``Italian'' active comma
+%    allows the D column operate correctly. Thanks to Giuseppe Toscano for
+%    telling me about this conflict.
 %    \end{macro}
 %    \end{macro}
 %
@@ -1134,13 +1165,15 @@
 %    diacritical marks in a more comfortable way compared with the
 %    lengthy standard \TeX\ conventions. When an Italian keyboard is
 %    being used on a Windows based platform, it exhibits such
-%    limitations that up to now no convenient shorthands have been
+%    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 lowercase
-%    vowels; the keyboard lacks also the tie |~| (tilde) key, while
-%    the curly braces require pressing three keys simultaneously.
+%    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 avalaible 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,
@@ -1184,7 +1217,7 @@
 %    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.
+%    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.
@@ -1193,20 +1226,20 @@
 %     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 caporal handling method.}
+%     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
+%    cyrillic fonts; this solution was good in most cases, except when
 %    the ``slides fonts'' were used, because there is no Cyryllic slide
 %    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 to the
-%    TeX community the macro package LaTeX.
+%    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
@@ -1298,7 +1331,7 @@
 %    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 they language description file i acceptable}.
+%    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''
-- 
cgit v1.2.3

