%%
%% This is file `alphalph.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% alphalph.dtx  (with options: `package')
%% 
%% This file is part of the package `alphalph' for use with LaTeX2e.
%% 
%% Function: Selecting shipout output pages.
%% 
%% Copyright (C) 1999 Heiko Oberdiek.
%% 
%% This program can be redistributed and/or modified
%% under the terms of the LaTeX Project Public License
%% distributed from CTAN archives in directory
%% macros/latex/base/lppl.txt; either version 1 of
%% the License, or (at your option) any later version.
%% 
%% Please send error reports and suggestions for improvements to
%%   Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de>.
%% 
\ifx\ProvidesPackage\UnDeFiNeD
\begingroup\def\x#1#2#3[#4]#5{\endgroup\csname fi\endcsname
\immediate\write-1{Package: #3 #4 }}\x
\else
\ProvidesPackage{alphalph}%
  [1999/04/13 v1.1 Converting numbers to letters (HO)]
\fi
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
\expandafter\edef\csname aa@atcode\endcsname{\the\catcode`\@ }
\catcode`\@=11
\long\def\@ReturnAfterElseFi#1\else#2\fi{\fi#1}
\long\def\@ReturnAfterFi#1\fi{\fi#1}
\def\aa@alph#1{%
  \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
    @%
  \fi
}
\def\aa@Alph#1{%
  \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
    @%
  \fi
}
\def\alphalph{\aa@callmake\aa@alph}
\def\AlphAlph{\aa@callmake\aa@Alph}
\def\aa@callmake#1#2{%
  \expandafter\aa@make\expandafter{\number#2}#1%
}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname numexpr\endcsname\relax
\def\aa@make#1#2{%
  \ifnum#1<1
  \else
    \@ReturnAfterFi{%
      \aa@process1;#1;1..#2%
    }%
  \fi
}
\def\aa@process#1;#2;{%
  \ifnum#1=#2
    \expandafter\aa@getresult
  \else
    \@ReturnAfterFi{%
      \expandafter\aa@process\number\aa@inc{#1}\aa@alphinc{;#2;}%
    }%
  \fi
}
\def\aa@getresult#1..#2{%
  \aa@@getresult!#2#1..%
}
\def\aa@@getresult#1!#2#3.{%
  \ifx\\#3\\%
    \@ReturnAfterElseFi{#1}% ready
  \else
    \@ReturnAfterFi{%
      \expandafter\expandafter\expandafter\expandafter
      \expandafter\expandafter\expandafter
      \aa@@getresult
      \expandafter\expandafter\expandafter\expandafter
      #2{#3}#1!#2%
    }%
  \fi
}
\def\aa@inc#1{%
  \ifnum#1<9
    \aa@nextdigit{#1}%
  \else
    \aa@reverse#1!!%
  \fi
}
\def\aa@nextdigit#1{\ifcase#1 1\or2\or3\or4\or5\or6\or7\or8\or9\fi}
\def\aa@reverse#1#2!#3!{%
  \ifx\\#2\\%
    \aa@addone#1#3!!%
  \else
    \@ReturnAfterFi{%
      \aa@reverse#2!#1#3!%
    }%
  \fi
}
\def\aa@addone#1#2!#3!{%
  \ifnum#1<9
    \expandafter\aa@lastreverse\number\aa@nextdigit#1 #2!#3!%
  \else
    \@ReturnAfterFi{%
      \ifx\\#2\\%
        10#3%
      \else
        \@ReturnAfterFi{%
          \aa@addone#2!0#3!%
        }%
      \fi
    }%
  \fi
}
\def\aa@lastreverse#1#2!#3!{%
  \ifx\\#2\\%
    #1#3%
  \else
    \@ReturnAfterFi{%
      \aa@lastreverse#2!#1#3!%
    }%
  \fi
}
\def\aa@alphinc#1#2.{%
  \ifx\\#2\\%
    \@ReturnAfterElseFi{%
      #11..% ready
    }%
  \else
    \@ReturnAfterFi{%
      \ifnum#2<26
        \@ReturnAfterElseFi{%
          \expandafter\aa@alphinclast\expandafter
            {\number\aa@inc{#2}}{#1}%
        }%
      \else
        \@ReturnAfterFi{%
          \aa@alphinc{#11.}%
        }%
      \fi
    }%
  \fi
}
\def\aa@alphinclast#1#2{#2#1.}
\else
\def\aa@make#1#2{%
  \ifnum#1<1
  \else
    \@ReturnAfterFi{%
      \aa@eprocess#1;#2%
    }%
  \fi
}
\def\aa@eprocess#1;#2{%
  \ifnum#1<27
    \@ReturnAfterElseFi{%
      #2{#1}%
    }%
  \else
    \@ReturnAfterFi{%
      \expandafter\aa@eprocess\number\numexpr(#1-14)/26%
        \expandafter\expandafter\expandafter;%
        \expandafter\expandafter\expandafter#2%
        #2{\numexpr#1-((#1-14)/26)*26}%
    }%
  \fi
}
\fi
\catcode`\@=\aa@atcode
\endinput
%%
%% End of file `alphalph.sty'.
