<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%
% isonums.sty v1.0, based on ziffer.sty v2.2
%
% Author:
%
% M. V\"ath      vaeth()mathematik.uni-wuerzburg.de
%
% Adapted to handle English formatted numbers:
%
% Luis Rivera    jlrn77()gmail.com
%
% This package provides the macros
% \ZifferAn        (equivalent with \ZifferPunktAn \ZifferStrichAn )
% \ZifferAus       (equivalent with \ZifferPunktAus\ZifferStrichAus)
% \ZifferPunktAn
% \ZifferPunktAus
% \ZifferStrichAn
% \ZifferStrichAus
%
% If \ZifferAn was used, then in numbers in math-mode the following happens:
%   `.' is used as a `one-thousand separator' as common in Germany
%   `,' is used as a decimal separator as common in Germany
%  `--' generates a -- with better spacing (e.g. in 1.000,-- )
%
% You may still use the symbols `.' `,' and `-' in other context in math mode.
%
% The first two conversions are switched on by default, the last conversion has
% to be switched on explicitly (this has been changed in v2.1):
% You may switch on/off the conversions with
% \ZifferPunktAn/\ZifferPunktAus   (for the first two conversions) respectively
% \ZifferStrichAn/\ZifferStrichAus (for the last conversion).
%
% The reason why the last conversion is not on by default (and why it might be
% necessary to [temporarily] switch off a conversion) is that certain packages
% (in particular, newer versions of amsmath) cause problems with it.
%
% There were some discussions which should be the correct output of the
% above conversions (in particular, of `--').
% If you do not like my choice: You may customize (i.e. redefine) the macros
% \ZifferLeer and \ZifferStrich
% after loading the package to produce the `one-thousand separator'
% respectively the `--'.
%
% All above command-names are in German, because I had expected that this
% package is only needed for German texts. Meanwhile, I learned that also
% other countries use this strange convention for numbers. However, for
% downward compatibility, I decided to keep the name conventions anyway
% (after all, the name of the package is in German anyway).
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The extension options (euro,anglo) define the input format, so that all numbers
% in math mode are displayed in ISO-31-0 format, regardless of input format.
% The commands \EuroZiffer and \AngloZiffer make local changes within the document body.
% I wrote these extensions as I use the decimal point consistently and I found 
% convenient to make conversions to all numbers simply by adjusting a command line 
% in the whole document.--- Luis.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{isonums}[2007/12/31 v1.0 Ziffer for automated ISO number format]
\makeatletter
\ifx\newcommand\undefined\else
  \newcommand{\ZifferAn}{}
  \newcommand{\ZifferAus}{}
  \newcommand{\ZifferPunktAn}{}
  \newcommand{\ZifferPunktAus}{}
  \newcommand{\ZifferStrichAn}{}
  \newcommand{\ZifferStrichAus}{}
  \newcommand{\ZifferLeer}{}
  \newcommand{\ZifferStrich}{}
\fi

\def\ZifferAn{\ZifferPunktAn\ZifferStrichAn}
\def\ZifferAus{\ZifferPunktAus\ZifferStrichAus}
\def\ZifferPunktAn{\mathcode`,="8000\mathcode`.="8000\relax}
\def\ZifferPunktAus{\mathcode`,="613B\mathcode`.="013A\relax}
\def\ZifferStrichAn{\mathcode`-="8000\relax}
\def\ZifferStrichAus{\mathcode`-="2200\relax}
\def\ZifferLeer{\,}
\ifx\textrm\undefined
  \def\ZifferStrich{\hbox{-\kern0.1em-}}
\else
  \def\ZifferStrich{\textrm{-\kern0.1em-}}
\fi

\mathchardef\ziffer@CommaMy="013B
\mathchardef\ziffer@CommaOri="613B
\mathchardef\ziffer@DotOri="013A
\mathchardef\ziffer@MinusOri="2200
{\ZifferAn
 \catcode`\,=\active\gdef,{\begingroup\obeyspaces\futurelet\n\ziffer@ccheck}
 \catcode`\.=\active\gdef.{\begingroup\obeyspaces\futurelet\n\ziffer@dcheck}
 \catcode`\-=\active\gdef-{\begingroup\obeyspaces\futurelet\n\ziffer@mcheck}}
\newcommand{\EuroZiffer}{%
  \def\ziffer@ccheck{\ziffer@check\ziffer@CommaMy\ziffer@CommaOri}%
  \def\ziffer@dcheck{\ziffer@check\ZifferLeer\ziffer@DotOri}%
  }
\DeclareOption{euro}{\EuroZiffer}
\newcommand{\AngloZiffer}{%
  \def\ziffer@dcheck{\ziffer@check\ziffer@CommaMy\ziffer@CommaOri}%
  \def\ziffer@ccheck{\ziffer@check\ZifferLeer\ziffer@CommaOri}%
  }
\DeclareOption{anglo}{\AngloZiffer}
\def\ziffer@mcheck{\ifx\n-\def\n-{\endgroup\ZifferStrich}%
   \else\def\n{\endgroup\ziffer@MinusOri}\fi\n}
\def\ziffer@check#1#2{%
  \ifx\n1\endgroup#1\else
    \ifx\n2\endgroup#1\else
      \ifx\n3\endgroup#1\else
        \ifx\n4\endgroup#1\else
          \ifx\n5\endgroup#1\else
            \ifx\n6\endgroup#1\else
              \ifx\n7\endgroup#1\else
                \ifx\n8\endgroup#1\else
                  \ifx\n9\endgroup#1\else
                    \ifx\n0\endgroup#1\else
                      \endgroup#2%
                    \fi
                  \fi
                \fi
              \fi
            \fi
          \fi
        \fi
      \fi
    \fi
  \fi}
\ZifferPunktAn
\makeatother
\ExecuteOptions{anglo}
\ProcessOptions
\endinput</pre></body></html>