summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/alphalph
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-12-10 22:16:17 +0000
committerKarl Berry <karl@freefriends.org>2019-12-10 22:16:17 +0000
commit0b29f1d9bb37fb5c793896273962d8e746a56a3c (patch)
tree3d5678315493186086cc879a0816983d40ba8294 /Master/texmf-dist/tex/generic/alphalph
parent4ac108c6b82d5f25fdbc5fa73c69d4383b04c761 (diff)
alphalph split from oberdiek (10dec19)
git-svn-id: svn://tug.org/texlive/trunk@53087 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/alphalph')
-rw-r--r--Master/texmf-dist/tex/generic/alphalph/alphalph.sty474
1 files changed, 474 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/alphalph/alphalph.sty b/Master/texmf-dist/tex/generic/alphalph/alphalph.sty
new file mode 100644
index 00000000000..8e3d6aae274
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/alphalph/alphalph.sty
@@ -0,0 +1,474 @@
+%%
+%% This is file `alphalph.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% alphalph.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Project: alphalph
+%% Version: 2019/12/09 v2.6
+%%
+%% Copyright (C)
+%% 1999, 2006-2008, 2010, 2011 Heiko Oberdiek
+%% 2016-2019 Oberdiek Package Support Group
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version. This version of this license is in
+%% https://www.latex-project.org/lppl/lppl-1-3c.txt
+%% and the latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainers of this work are
+%% Heiko Oberdiek and the Oberdiek Package Support Group
+%% https://github.com/ho-tex/alphalph/issues
+%%
+%%
+%% The Base Interpreter refers to any `TeX-Format',
+%% because some files are installed in TDS:tex/generic//.
+%%
+%% This work consists of the main source file alphalph.dtx
+%% and the derived files
+%% alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv,
+%% alphalph-test1.tex, alphalph-test2.tex, alphalph-test3.tex.
+%%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \expandafter\let\expandafter\x\csname ver@alphalph.sty\endcsname
+ \ifx\x\relax % plain-TeX, first loading
+ \else
+ \def\empty{}%
+ \ifx\x\empty % LaTeX, first loading,
+ % variable is initialized, but \ProvidesPackage not yet seen
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{alphalph}{The package is already loaded}%
+ \aftergroup\endinput
+ \fi
+ \fi
+\endgroup%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode40=12 % (
+ \catcode41=12 % )
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode47=12 % /
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode91=12 % [
+ \catcode93=12 % ]
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\@undefined
+ \xdef#1{#3}%
+ \fi
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@alphalph.sty\endcsname
+\ProvidesPackage{alphalph}%
+ [2019/12/09 v2.6 Convert numbers to letters (HO)]%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \def\x{\endgroup
+ \expandafter\edef\csname AlPh@AtEnd\endcsname{%
+ \endlinechar=\the\endlinechar\relax
+ \catcode13=\the\catcode13\relax
+ \catcode32=\the\catcode32\relax
+ \catcode35=\the\catcode35\relax
+ \catcode61=\the\catcode61\relax
+ \catcode64=\the\catcode64\relax
+ \catcode123=\the\catcode123\relax
+ \catcode125=\the\catcode125\relax
+ }%
+ }%
+\x\catcode61\catcode48\catcode32=10\relax%
+\catcode13=5 % ^^M
+\endlinechar=13 %
+\catcode35=6 % #
+\catcode64=11 % @
+\catcode123=1 % {
+\catcode125=2 % }
+\def\TMP@EnsureCode#1#2{%
+ \edef\AlPh@AtEnd{%
+ \AlPh@AtEnd
+ \catcode#1=\the\catcode#1\relax
+ }%
+ \catcode#1=#2\relax
+}
+\TMP@EnsureCode{33}{12}% !
+\TMP@EnsureCode{39}{12}% '
+\TMP@EnsureCode{40}{12}% (
+\TMP@EnsureCode{41}{12}% )
+\TMP@EnsureCode{43}{12}% +
+\TMP@EnsureCode{44}{12}% ,
+\TMP@EnsureCode{46}{12}% .
+\TMP@EnsureCode{47}{12}% /
+\TMP@EnsureCode{59}{12}% ;
+\TMP@EnsureCode{60}{12}% <
+\TMP@EnsureCode{62}{12}% >
+\TMP@EnsureCode{91}{12}% [
+\TMP@EnsureCode{93}{12}% ]
+\TMP@EnsureCode{96}{12}% `
+\TMP@EnsureCode{124}{12}% |
+\edef\AlPh@AtEnd{\AlPh@AtEnd\noexpand\endinput}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname RequirePackage\endcsname\relax
+ \input infwarerr.sty\relax
+ \input intcalc.sty\relax
+\else
+ \RequirePackage{infwarerr}[2007/09/09]%
+ \RequirePackage{intcalc}[2007/09/09]%
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname numexpr\endcsname\relax
+ \catcode124=9 % '!': ignore
+ \catcode43=14 % '+': comment
+\else
+ \catcode124=14 % '!': comment
+ \catcode43=9 % '+': ignore
+\fi
+\def\AlPh@Error#1{%
+ \begingroup
+ \escapechar=92 % backslash
+ \@PackageError{alphalph}{#1}\@ehc
+ \endgroup
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname @ifdefinable\endcsname\relax
+ \def\AlPh@IfDefinable#1#2{%
+ \ifcase\ifx#1\@undefined\else\ifx#1\relax\else1\fi\fi0 %
+ #2%
+ \else
+ \AlPh@Error{%
+ Command \string#1 already defined%
+ }%
+ \fi
+ }%
+\else
+ \let\AlPh@IfDefinable\@ifdefinable
+\fi
+\long\def\@ReturnAfterElseFi#1\else#2\fi{\fi#1}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\expandafter\ifx\csname @gobblefour\endcsname\relax
+ \long\def\@gobblefour#1#2#3#4{}%
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname kernel@ifnextchar\endcsname\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname @ifnextchar\endcsname\relax
+ \def\AlPh@IfOptArg#1#2{%
+ \def\AlPh@TempA{#1}%
+ \def\AlPh@TempB{#2}%
+ \futurelet\AlPh@Token\AlPh@IfOptArgNext
+ }%
+ \let\AlPh@BracketLeft=[%]
+ \def\AlPh@IfOptArgNext{%
+ \ifx\AlPh@Token\AlPh@BracketLeft
+ \expandafter\AlPh@TempA
+ \else
+ \expandafter\AlPh@TempB
+ \fi
+ }%
+ \else
+ \def\AlPh@IfOptArg{\@ifnextchar[}%]
+ \fi
+\else
+ \def\AlPh@IfOptArg{\kernel@ifnextchar[}%]
+\fi
+\def\alphalph@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
+ \AlPh@ctrerr
+ @%
+ \fi
+}
+\def\alphalph@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
+ \AlPh@ctrerr
+ @%
+ \fi
+}
+\def\AlPh@ctrerr{}
+\def\AlPh@GetNumberOfSymbols#1{%
+ \AlPh@TestNumber1!{#1}%
+ \ifAlPh@Unavailable
+ \def\AlPh@Number{0}%
+ \AlPh@Error{No symbols found}%
+ \else
+ \def\AlPh@Number{1}%
+ \AlPh@ExpSearch2!{#1}%
+ \fi
+}
+\let\ifAlPh@Unavailable\iffalse
+\def\AlPh@Unavailabletrue{%
+ \global\let\ifAlPh@Unavailable\iftrue
+}
+\def\AlPh@Unavailablefalse{%
+ \global\let\ifAlPh@Unavailable\iffalse
+}
+\def\AlPh@TestNumber#1!#2{%
+ \AlPh@Unavailablefalse
+ \begingroup
+ \setbox0=\hbox{%
+ \begingroup % color
+ \let\@ctrerr\AlPh@Unavailabletrue
+ \let\AlPh@ctrerr\AlPh@Unavailabletrue
+ #2{#1}%
+ \endgroup
+ }%
+ \ifdim\wd0=0pt %
+ \AlPh@Unavailabletrue
+ \fi
+ \endgroup
+}
+\def\AlPh@ExpSearch#1!#2{%
+ \let\AlPh@Next\relax
+ \AlPh@TestNumber#1!{#2}%
+ \ifAlPh@Unavailable
+ \expandafter\AlPh@BinSearch\AlPh@Number!#1!{#2}%
+ \else
+ \def\AlPh@Number{#1}%
+ \ifnum#1>1073741823 %
+ \AlPh@TestNumber2147483647!{#2}%
+ \ifAlPh@Unavailable
+ \AlPh@BinSearch#1!2147483647!{#2}%
+ \else
+ \def\AlPh@Number{0}%
+ \AlPh@Error{%
+ Maximal symbol number not found%
+ }%
+ \fi
+ \else
+ \def\AlPh@Next{%
+ \expandafter\AlPh@ExpSearch\number\intcalcShl{#1}!{#2}%
+ }%
+ \fi
+ \fi
+ \AlPh@Next
+}
+\def\AlPh@BinSearch#1!#2!#3{%
+ \expandafter\AlPh@ProcessBinSearch
+ \number\intcalcShr{\intcalcAdd{#1}{#2}}!%
+ #1!#2!{#3}%
+}
+\def\AlPh@ProcessBinSearch#1!#2!#3!#4{%
+ \let\AlPh@Next\relax
+ \ifnum#1>#2 %
+ \ifnum#1<#3 %
+ \AlPh@TestNumber#1!{#4}%
+ \ifAlPh@Unavailable
+ \def\AlPh@Next{%
+ \AlPh@BinSearch#2!#1!{#4}%
+ }%
+ \else
+ \def\AlPh@Next{%
+ \AlPh@BinSearch#1!#3!{#4}%
+ }%
+ \fi
+ \else
+ \def\AlPh@Number{#2}%
+ \fi
+ \else
+ \def\AlPh@Number{#2}%
+ \fi
+ \AlPh@Next
+}
+\def\AlPh@CheckPositive#1!#2{%
+ \ifnum#1<1 %
+ \expandafter\@gobblefour
+ \fi
+ #2{#1}%
+}
+\def\AlPh@Method@alph#1#2#3{%
+ \expandafter\AlPh@CheckPositive
+| \number#3!%
++ \the\numexpr#3!%
+ \AlPh@ProcessAlph
+ {#1}{#2}%
+}
+\def\AlPh@ProcessAlph#1#2#3{%
+ \ifnum#1>#2 %
+ \@ReturnAfterElseFi{%
+ \expandafter\AlPh@StepAlph\number
+ \intcalcInc{%
+ \intcalcMod{\intcalcDec{#1}}{#2}%
+ }%
+ \expandafter!\number
+ \intcalcDiv{\intcalcDec{#1}}{#2}%
+ !{#2}{#3}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ #3{#1}%
+ }%
+ \fi
+}
+\def\AlPh@StepAlph#1!#2!#3#4{%
+ \AlPh@ProcessAlph{#2}{#3}{#4}%
+ #4{#1}%
+}
+\def\AlPh@Method@wrap#1#2#3{%
+ \expandafter\AlPh@CheckPositive
+| \number#3!%
++ \the\numexpr#3!%
+ \AlPh@ProcessWrap
+ {#1}{#2}%
+}
+\def\AlPh@ProcessWrap#1#2#3{%
+ \ifnum#1>#2 %
+ \@ReturnAfterElseFi{%
+ \expandafter\AlPh@StepWrap\number
+ \intcalcInc{\intcalcMod{\intcalcDec{#1}}{#2}}%
+ !{#3}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ #3{#1}%
+ }%
+ \fi
+}
+\def\AlPh@StepWrap#1!#2{%
+ #2{#1}%
+}
+\def\AlPh@Method@mult#1#2#3{%
+ \expandafter\AlPh@CheckPositive
+| \number#3!%
++ \the\numexpr#3!%
+ \AlPh@ProcessMult
+ {#1}{#2}%
+}
+\def\AlPh@ProcessMult#1#2#3{%
+ \ifnum#1>#2 %
+ \@ReturnAfterElseFi{%
+ \expandafter\AlPh@StepMult\romannumeral
+ \intcalcInc{\intcalcDiv{\intcalcDec{#1}}{#2}}%
+ 000%
+ \expandafter!\number
+ \intcalcInc{\intcalcMod{\intcalcDec{#1}}{#2}}%
+ !{#3}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ #3{#1}%
+ }%
+ \fi
+}
+\def\AlPh@StepMult#1#2!#3!#4{%
+ \ifx\\#2\\%
+ \else
+ \@ReturnAfterFi{%
+ \AlPh@StepMult#2!#3!{#4}%
+ }%
+ \fi
+ #4{#3}%
+}
+\AlPh@IfDefinable\newalphalph{%
+ \def\newalphalph#1{%
+ \AlPh@IfOptArg{%
+ \AlPh@newalphalph{#1}%
+ }{%
+ \AlPh@newalphalph{#1}[alph]%
+ }%
+ }%
+}
+\def\AlPh@newalphalph#1[#2]#3#4{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname AlPh@Method@#2\endcsname\relax
+ \AlPh@Error{%
+ Unknown method %
+| `#2'%
++ `\detokenize{#2}'%
+ }%
+ \else
+ \ifx\\#4\\%
+ \AlPh@GetNumberOfSymbols{#3}%
+ \ifcase\AlPh@Number
+ \else
+ \begingroup
+ \escapechar=92 % backslash
+ \@PackageInfo{alphalph}{%
+ Number of symbols for \string#1 is \AlPh@Number
+ }%
+ \endgroup
+ \expandafter\AlPh@NewAlphAlph
+ \csname AlPh@Method@#2\expandafter\endcsname
+ \AlPh@Number!{#1}{#3}%
+ \fi
+ \else
+ \expandafter\AlPh@NewAlphAlph
+ \csname AlPh@Method@#2\expandafter\endcsname
+| \number#4!%
++ \the\numexpr#4!%
+ {#1}{#3}%
+ \fi
+ \fi
+}%
+\def\AlPh@NewAlphAlph#1#2!#3#4{%
+ \AlPh@IfDefinable#3{%
+ \ifnum#2>0 %
+ \def#3{#1{#2}{#4}}%
+ \else
+ \AlPh@Error{%
+ Definition of \string#3 failed,\MessageBreak
+ because number of symbols (#2) is not positive%
+ }%
+ \fi
+ }%
+}
+\newalphalph\AlphAlph\alphalph@Alph{26}
+\newalphalph\alphalph\alphalph@alph{26}
+\AlPh@AtEnd%
+\endinput
+%%
+%% End of file `alphalph.sty'.