From 06cb33c105d29fb7a1a104a11c4c866ce6d6c48f Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 16 Feb 2014 23:14:06 +0000
Subject: babel-italian

git-svn-id: svn://tug.org/texlive/trunk@32979 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/generic/babel-italian/italian.dtx       | 74 ++++++++++++++++++----
 1 file changed, 60 insertions(+), 14 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 5336e6a9281..79527717372 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{677}
+% \CheckSum{723}
 % \iffalse
 %    Tell the \LaTeX\ system who we are and write an entry on the
 %    transcript.
@@ -33,7 +33,7 @@
 %</filedriver>
 %<code>\ProvidesLanguage{italian}
 %<*code>
-        [2013/11/22 v1.3f Italian support from the babel system]
+        [2014/01/22 v1.3f Italian support from the babel system]
 %</code>
 %%
 %% Please report errors to: claudio dot beccari at gmail dot com
@@ -105,6 +105,7 @@
 % \changes{italian-1.3-d}{2013/11/11}{Corrected the \string" behaviour for
 %   etymological hyphenation}
 % \changes{italian-1.3f}{2013/11/22}{Deleted extra \cs{selectlanguage}\{italian\}}
+% \changes{italian-1.3g}{2014/02/16}{Corrected "/}
 %  \section{The Italian language}
 %
 %    \textbf{Important notice:} This language description file relies on
@@ -137,11 +138,14 @@
 %    |""|   & inserts open quotes ``.\\ %^^A'' emacs matching
 %    |"<|   & inserts open guillemets.\\
 %    |">|   & inserts closed guillemets.\\
-%    |"/|   & equivalent to |\slash|\\
+%    |"/|   & allows hyphenation of both word before and after the slash.\\
 %    |"-|   & allows hyphenation in both words connected with a short dash
 %                (\emph{trattino copulativo}, in Italian)
 %    \end{tabular}
-%    \caption{Shortcuts for the Italian language}\label{t:itshrtct}
+%    \caption{Shortcuts for the Italian language. These shortcut 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:
@@ -169,7 +173,19 @@
 %      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. 
+%      point falls before an accented letter. As you can read in
+%      table~\ref{t:itshrtct}, these shortcuts are available only if
+%      they get activated with command |\setactivedoublequote| after
+%      loading \babel\ but before the |\end{docuemnt}| statement. This
+%      is done in order to preseserve the user form 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 sono 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, non just the double quote,
+%      the only Italian language activatable 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
@@ -213,7 +229,13 @@
 %      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|.
+%      or |siunitx.sty|. In particular 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 complance 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, and since
 %      no language description file nor the \babel\ package itself provides
@@ -240,7 +262,7 @@
 %    \end{enumerate}
 %
 %    For this language a few shortcuts have been defined,
-%    table~\ref{t:itshrtct}, some of which are used to overcome
+%    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.
@@ -553,10 +575,22 @@
 %    \babel\ active character |"| and relies on the category
 %    code of the character that follows |"|.
 %
-%    \changes{italian-1.2n}{2000/02/02}{Completely new etymological
+% \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 ha to be activated. The fdeault
+%    value is zero; anything different from zero means that the facility
+%    has to be activates; this is done with a command to be issued
+%    before |\begin{document}|
 %
 %    \begin{macrocode}
+\newcount\it@doublequoteactive \it@doublequoteactive=\z@
+\def\setactivedoublequote{\it@doublequoteactive=\@ne}
+{\catcode`"=12 \global\let\it@doublequote"}
+{\catcode`"=13 \global\let\it@@dqactive"}
+\AtBeginDocument{\unless\ifnum\it@doublequoteactive=\z@
 \initiate@active@char{"}%
 \addto\extrasitalian{\bbl@activate{"}\languageshorthands{italian}}%
 %    \end{macrocode}
@@ -575,7 +609,7 @@
     \def\it@next{\futurelet\it@temp\it@cwm}%
 \fi
 \it@next
-}%
+}\fi}%
 %    \end{macrocode}
 %    \begin{macro}{\it@cwm}
 %    The \cs{it@next} service control sequence is such that upon its
@@ -600,8 +634,9 @@
 %    raised open high double quotes.
 %    \begin{macrocode}
 \def\it@@cwm{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}%
+\def\it@@slash{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}%
 \def\it@@ocap#1{\it@ocap}\def\it@@ccap#1{\it@ccap}%
-\DeclareRobustCommand*{\it@cwm}{\let\it@@next\relax
+\DeclareRobustCommand*{\it@cwm}{\let\it@@next\it@doublequote
 \ifcat\noexpand\it@temp a%
     \def\it@@next{\it@@cwm}%
 \else
@@ -615,9 +650,10 @@
                 \def\it@@next{\it@@ccap}%
             \else
                 \if\noexpand\it@temp\string/%
-                    \def\it@next{\slash\@gobble}%
+                    \def\it@@next{\it@@slash\@gobble}%
                 \else
-                    \ifx\it@temp"%
+                    \ifcat\noexpand\it@temp\noexpand\it@@dqactive
+                        \def\it@@next{``\@gobble}%
                     \else
                         \if\noexpand\it@temp\string-%
                             \def\it@@next{\bbl@allowhyphens-\bbl@allowhyphens
@@ -726,20 +762,29 @@
 %    \begin{macro}{\unit}
 %    \begin{macro}{\ap}
 %    \begin{macro}{\ped}
+%    \begin{macro}{\setISOcompliance}
 %    First we define the new (internal) commands |\bbl@unit|, |\bbl@ap|,
 %    and |\bbl@ped| as robust ones.
 % \changes{italian-1.3}{2013/09/27}{Added testing to avoid conflicts
 %     with the units.sty and  siunitx.sty packages}
+% \changes{italian-1.3g}{2014/01/22}{Besides controlling conflicts with
+%    units, siunitx, this facility is deactivated by default, and activated
+%    only if the user wants to}
+%    This facility is deactivate 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.
 %    \begin{macrocode}
+\newcount\it@ISOcompliance \it@ISOcompliance=\z@
+\def\setISOcompliance{\it@ISOcompliance=\@ne}
+\AtBeginDocument{\unless\ifnum\it@ISOcompliance=\z@%
 \def\activate@it@unit{\DeclareRobustCommand*{\bbl@it@unit}[1]{%
     \textormath{\,\textup{##1}}{\,\mathrm{##1}}}}
-\AtBeginDocument{%
 \@ifpackageloaded{units}{}{\@ifpackageloaded{siunitx}{}{%
   \@ifpackageloaded{SIunits}{}{%
   \activate@it@unit\addto\extrasitalian{%
     \babel@save\unit\let\unit\bbl@it@unit}%
   }}}\ifcsstring{bbl@main@language}{italian}{\selectlanguage{italian}}{}%
-}
+\fi}
 \DeclareRobustCommand*{\bbl@it@ap}[1]{%
   \textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
 \DeclareRobustCommand*{\bbl@it@ped}[1]{%
@@ -759,6 +804,7 @@
 %    \end{macro}
 %    \end{macro}
 %    \end{macro}
+%    \end{macro}
 %
 % \subsection{Intelligent comma}\label{ssec:comma}
 %
-- 
cgit v1.2.3

