diff options
96 files changed, 7 insertions, 26835 deletions
diff --git a/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-bundle.bib b/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-bundle.bib index c08ab940243..1062c31745e 100644 --- a/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-bundle.bib +++ b/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-bundle.bib @@ -5,20 +5,6 @@ version={1.5}, url={https://ctan.org/pkg/aliascnt}, } -@manual{oberdiek:auxhook, - title={The auxhook package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.4}, - url={https://ctan.org/pkg/auxhook}, -} -@manual{oberdiek:bigintcalc, - title={The bigintcalc package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.4}, - url={https://ctan.org/pkg/bigintcalc}, -} @manual{oberdiek:bmpsize, title={The bmpsize package}, author={Heiko Oberdiek}, @@ -82,13 +68,6 @@ version={1.1}, url={https://ctan.org/pkg/eolgrab}, } -@manual{oberdiek:etexcmds, - title={The etexcmds package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.6}, - url={https://ctan.org/pkg/etexcmds}, -} @manual{oberdiek:fibnum, title={The fibnum package}, author={Heiko Oberdiek}, @@ -103,13 +82,6 @@ version={0.5}, url={https://ctan.org/pkg/flags}, } -@manual{oberdiek:gettitlestring, - title={The gettitlestring package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.5}, - url={https://ctan.org/pkg/gettitlestring}, -} @manual{oberdiek:holtxdoc, title={The holtxdoc package}, author={Heiko Oberdiek}, @@ -124,13 +96,6 @@ version={1.3}, url={https://ctan.org/pkg/hopatch}, } -@manual{oberdiek:hycolor, - title={The hycolor package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.8}, - url={https://ctan.org/pkg/hycolor}, -} @manual{oberdiek:hypbmsec, title={The hypbmsec package}, author={Heiko Oberdiek}, @@ -187,34 +152,6 @@ version={1.7}, url={https://ctan.org/pkg/iflang}, } -@manual{oberdiek:intcalc, - title={The intcalc package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.2}, - url={https://ctan.org/pkg/intcalc}, -} -@manual{oberdiek:kvdefinekeys, - title={The kvdefinekeys package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.4}, - url={https://ctan.org/pkg/kvdefinekeys}, -} -@manual{oberdiek:kvsetkeys, - title={The kvsetkeys package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.17}, - url={https://ctan.org/pkg/kvsetkeys}, -} -@manual{oberdiek:ltxcmds, - title={The ltxcmds package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.23}, - url={https://ctan.org/pkg/ltxcmds}, -} @manual{oberdiek:pagegrid, title={The pagegrid package}, author={Heiko Oberdiek}, @@ -292,13 +229,6 @@ version={1.1}, url={https://ctan.org/pkg/protecteddef}, } -@manual{oberdiek:refcount, - title={The refcount package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={3.5}, - url={https://ctan.org/pkg/refcount}, -} @manual{oberdiek:resizegather, title={The resizegather package}, author={Heiko Oberdiek}, @@ -334,13 +264,6 @@ version={1.5}, url={https://ctan.org/pkg/settobox}, } -@manual{oberdiek:soulutf8, - title={The soulutf8 package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.1}, - url={https://ctan.org/pkg/soulutf8}, -} @manual{oberdiek:stackrel, title={The stackrel package}, author={Heiko Oberdiek}, @@ -390,10 +313,4 @@ version={1.6}, url={https://ctan.org/pkg/twoopt}, } -@manual{oberdiek:uniquecounter, - title={The uniquecounter package}, - author={Heiko Oberdiek}, - date={2016-05-16}, - version={1.3}, - url={https://ctan.org/pkg/uniquecounter}, -} + diff --git a/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-source.bib b/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-source.bib index 36f546aa532..428ae118c0c 100644 --- a/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-source.bib +++ b/Master/texmf-dist/bibtex/bib/oberdiek/oberdiek-source.bib @@ -3,7 +3,7 @@ title={Document management -- Portable document format -- Part 1: PDF 1.7}, date={2008-07-01}, edition=1, - url={https://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf}, + url={https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf}, urldate={2011-11-25}, } @manual{pdftex-manual, diff --git a/Master/texmf-dist/doc/latex/oberdiek/README.txt b/Master/texmf-dist/doc/latex/oberdiek/README.txt index 1a01bea3650..b5fb9d51e3f 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/README.txt +++ b/Master/texmf-dist/doc/latex/oberdiek/README.txt @@ -1,4 +1,4 @@ -README 2019/12/09 +README 2019/12/15 This file describes the directory CTAN:macros/latex/contrib/oberdiek/ diff --git a/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf b/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf Binary files differindex 2710d52efd1..a40b98bd76f 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/aliascnt.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf b/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf Binary files differdeleted file mode 100644 index 91dc509bc1c..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/alphalph.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf b/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf Binary files differdeleted file mode 100644 index a15cc6be14a..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/auxhook.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/bigintcalc.pdf b/Master/texmf-dist/doc/latex/oberdiek/bigintcalc.pdf Binary files differdeleted file mode 100644 index a1a19b5c49f..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/bigintcalc.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/bitset.pdf b/Master/texmf-dist/doc/latex/oberdiek/bitset.pdf Binary files differdeleted file mode 100644 index 297aada2e40..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/bitset.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf b/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf Binary files differindex e18c07f58df..1463b4f0c51 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/bmpsize.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf b/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf Binary files differdeleted file mode 100644 index 1b110407579..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/catchfile.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf b/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf Binary files differindex e81a9f16946..cb0e956e73a 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/centernot.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf b/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf Binary files differindex 172148fceea..fed6fccba99 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/chemarr.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf b/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf Binary files differindex ecca7ecf833..659c2f2d319 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/classlist.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf b/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf Binary files differindex e10037aed6d..a4f1d516870 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/colonequals.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf b/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf Binary files differindex 9bb4fbc40ba..744a511eb2c 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/dvipscol.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/engord.pdf b/Master/texmf-dist/doc/latex/oberdiek/engord.pdf Binary files differindex 8eeae27be3d..785f67e11c2 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/engord.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/engord.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/enparen.pdf b/Master/texmf-dist/doc/latex/oberdiek/enparen.pdf Binary files differindex 35289c78910..98574b2b3d9 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/enparen.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/enparen.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/eolgrab.pdf b/Master/texmf-dist/doc/latex/oberdiek/eolgrab.pdf Binary files differindex 821556a722e..2291a3681d5 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/eolgrab.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/eolgrab.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf b/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf Binary files differdeleted file mode 100644 index eb9473f9108..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/etexcmds.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/fibnum.pdf b/Master/texmf-dist/doc/latex/oberdiek/fibnum.pdf Binary files differindex f8c79dad837..e0cec4c3809 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/fibnum.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/fibnum.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/flags.pdf b/Master/texmf-dist/doc/latex/oberdiek/flags.pdf Binary files differindex 9f83f6937ef..9d3060952bb 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/flags.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/flags.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/gettitlestring.pdf b/Master/texmf-dist/doc/latex/oberdiek/gettitlestring.pdf Binary files differdeleted file mode 100644 index dfaf666d88a..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/gettitlestring.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf b/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf Binary files differindex a21413b3592..2aaf2082672 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/holtxdoc.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hopatch.pdf b/Master/texmf-dist/doc/latex/oberdiek/hopatch.pdf Binary files differindex 8dc4c732677..d18e0e5b4a3 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hopatch.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hopatch.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf b/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf Binary files differdeleted file mode 100644 index b608d36b0e3..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/hycolor.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf Binary files differindex 74f70c400ef..ed31889a280 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hypbmsec.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf Binary files differindex 68c34af72ff..0a7600a791a 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hypcap.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf Binary files differindex fa890946b10..03af206eb94 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hypdestopt.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf Binary files differindex 0ce0880828e..4e869281759 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hypdoc.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hypgotoe.pdf b/Master/texmf-dist/doc/latex/oberdiek/hypgotoe.pdf Binary files differindex 28a110e6439..9de9b30ab4b 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hypgotoe.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hypgotoe.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/hyphsubst.pdf b/Master/texmf-dist/doc/latex/oberdiek/hyphsubst.pdf Binary files differindex c158c7221e7..ecd41340e97 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/hyphsubst.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/hyphsubst.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf b/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf Binary files differindex 1f35b1f8c91..76c7db50328 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/ifdraft.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf b/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf Binary files differindex 4ca258cfed9..ab0c138b604 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/iflang.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/intcalc.pdf b/Master/texmf-dist/doc/latex/oberdiek/intcalc.pdf Binary files differdeleted file mode 100644 index 7a28f6ffb17..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/intcalc.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvdefinekeys.pdf b/Master/texmf-dist/doc/latex/oberdiek/kvdefinekeys.pdf Binary files differdeleted file mode 100644 index 810c2fbebcf..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/kvdefinekeys.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex deleted file mode 100644 index a92b4487249..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys-example.tex +++ /dev/null @@ -1,93 +0,0 @@ -%% -%% This is file `kvsetkeys-example.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% kvsetkeys.dtx (with options: `example') -%% -%% This is a generated file. -%% -%% Project: kvsetkeys -%% Version: 2016/05/16 v1.17 -%% -%% Copyright (C) -%% 2006, 2007, 2009-2012 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/oberdiek/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 kvsetkeys.dtx -%% and the derived files -%% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv, -%% kvsetkeys-example.tex, kvsetkeys-test1.tex, -%% kvsetkeys-test2.tex, kvsetkeys-test3.tex, -%% kvsetkeys-test4.tex. -%% -\documentclass{article} -\usepackage[T1]{fontenc} -\usepackage{kvsetkeys} -\usepackage{keyval} - -\makeatletter -\newcommand*{\tag}[2][]{% - % #1: attributes - % #2: tag name - \begingroup - \toks@={}% - \let\@endslash\@empty - \kvsetkeys{tag}{#1}% - \texttt{% - \textless #2\the\toks@\@endslash\textgreater - }% - \endgroup -} -\kv@set@family@handler{tag}{% - % #1: key - % #2: value - \toks@\expandafter{% - \the\toks@ - \space - #1=\string"#2\string"% - }% -} -\define@key{tag}{/}[]{% - \def\@endslash{/}% -} -\makeatother - -\begin{document} -\begin{tabbing} - \mbox{}\qquad\=\qquad\=\kill - \tag{html}\\ - \>\dots\\ - \>\tag[border=1]{table}\\ - \>\>\tag[width=200, span=3, /]{colgroup}\\ - \>\>\dots\\ - \>\tag{/table}\\ - \>\dots\\ - \tag{/html}\\ -\end{tabbing} -\end{document} -%% \section{Installation} -\endinput -%% -%% End of file `kvsetkeys-example.tex'. diff --git a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf b/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf Binary files differdeleted file mode 100644 index 71e0f55877a..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/kvsetkeys.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/ltxcmds.pdf b/Master/texmf-dist/doc/latex/oberdiek/ltxcmds.pdf Binary files differdeleted file mode 100644 index 9efe9c4031f..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/ltxcmds.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf b/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf Binary files differindex c664986df53..857ca0904c4 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/oberdiek.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pagegrid.pdf b/Master/texmf-dist/doc/latex/oberdiek/pagegrid.pdf Binary files differindex cf9f9072ec9..94d92f93a2e 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pagegrid.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pagegrid.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf b/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf Binary files differindex a8ad281ae5d..f6f3b696622 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pagesel.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf Binary files differindex 758cccf4c2d..e2743fdbb00 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcol.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf Binary files differindex c9c70c032c9..885efa68f9b 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolfoot.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf Binary files differindex c93a4f537f7..957d5052b84 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparallel.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf Binary files differindex acc877258ff..26312b422ff 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcolparcolumns.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf Binary files differindex 922be507eae..459de0522ff 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pdfcrypt.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf Binary files differdeleted file mode 100644 index b722009b2f4..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfescape.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/pdfrender.pdf b/Master/texmf-dist/doc/latex/oberdiek/pdfrender.pdf Binary files differindex 1f121b5bcc1..685c28bfd4c 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/pdfrender.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/pdfrender.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/picture.pdf b/Master/texmf-dist/doc/latex/oberdiek/picture.pdf Binary files differdeleted file mode 100644 index f2a35652976..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/picture.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/protecteddef.pdf b/Master/texmf-dist/doc/latex/oberdiek/protecteddef.pdf Binary files differindex 64cbbdcc0c0..4b813bdad5a 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/protecteddef.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/protecteddef.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf b/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf Binary files differdeleted file mode 100644 index d2e118959e9..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/refcount.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/resizegather.pdf b/Master/texmf-dist/doc/latex/oberdiek/resizegather.pdf Binary files differindex 140e92db203..9a9a30c3803 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/resizegather.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/resizegather.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/rotchiffre.pdf b/Master/texmf-dist/doc/latex/oberdiek/rotchiffre.pdf Binary files differindex 6797d5b214a..cd4a9903e20 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/rotchiffre.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/rotchiffre.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/scrindex.pdf b/Master/texmf-dist/doc/latex/oberdiek/scrindex.pdf Binary files differindex b25becaf6e5..9e22cb51c01 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/scrindex.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/scrindex.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf b/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf Binary files differdeleted file mode 100644 index 21478e37be1..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/selinput.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf Binary files differindex 0470b00a372..4e413060895 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/setouterhbox.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf b/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf Binary files differindex 117a435aa49..d4f498fbe94 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/settobox.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdf b/Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdf Binary files differdeleted file mode 100644 index 05b4fef2525..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/soulutf8.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf b/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf Binary files differindex 88e47f65e64..52015ac0314 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/stackrel.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/stampinclude.pdf b/Master/texmf-dist/doc/latex/oberdiek/stampinclude.pdf Binary files differindex c3954d3d8eb..a8082d4f501 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/stampinclude.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/stampinclude.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf b/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf Binary files differindex 212e19eaea5..82415daa741 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/tabularht.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf b/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf Binary files differindex 99ffc78cd9b..967d697a317 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/tabularkv.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf b/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf Binary files differindex a603248f11f..7d1663343ef 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/telprint.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/thepdfnumber.pdf b/Master/texmf-dist/doc/latex/oberdiek/thepdfnumber.pdf Binary files differindex 72c69e06575..3b371ff7277 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/thepdfnumber.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/thepdfnumber.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf b/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf Binary files differindex 55d9590d357..fca056eda1b 100644 --- a/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf +++ b/Master/texmf-dist/doc/latex/oberdiek/twoopt.pdf diff --git a/Master/texmf-dist/doc/latex/oberdiek/uniquecounter-example.tex b/Master/texmf-dist/doc/latex/oberdiek/uniquecounter-example.tex deleted file mode 100644 index 39f0cf1ce2f..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/uniquecounter-example.tex +++ /dev/null @@ -1,70 +0,0 @@ -%% -%% This is file `uniquecounter-example.tex', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% uniquecounter.dtx (with options: `example') -%% -%% This is a generated file. -%% -%% Project: uniquecounter -%% Version: 2016/05/16 v1.3 -%% -%% Copyright (C) -%% 2009, 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/oberdiek/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 uniquecounter.dtx -%% and the derived files -%% uniquecounter.sty, uniquecounter.pdf, uniquecounter.ins, -%% uniquecounter.drv, uniquecounter-example.tex, -%% uniquecounter-test1.tex, uniquecounter-test2.tex, -%% uniquecounter-test3.tex. -%% -\documentclass{minimal} -\usepackage{uniquecounter} -\UniqueCounterNew{anchor} -\makeatletter -\newcommand*{\DefNewAnchorName}[2]{% - % #1 is unique counter value - % #2 is name of anchor - \@namedef{anchor@#2}{a#1}% -} -\newcommand*{\NewAnchorName}[1]{% - \UniqueCounterCall{anchor}\DefNewAnchorName{#1}% -} -\newcommand*{\PrintAnchorName}[1]{% - \@nameuse{anchor@#1}% -} -\begin{document} - \NewAnchorName{Top}% - \NewAnchorName{Left}% - \noindent - Top: \PrintAnchorName{Top}\\% - Left: \PrintAnchorName{Left}% -\end{document} -%% \section{Installation} -\endinput -%% -%% End of file `uniquecounter-example.tex'. diff --git a/Master/texmf-dist/doc/latex/oberdiek/uniquecounter.pdf b/Master/texmf-dist/doc/latex/oberdiek/uniquecounter.pdf Binary files differdeleted file mode 100644 index 722768852bb..00000000000 --- a/Master/texmf-dist/doc/latex/oberdiek/uniquecounter.pdf +++ /dev/null diff --git a/Master/texmf-dist/source/latex/oberdiek/README.txt b/Master/texmf-dist/source/latex/oberdiek/README.txt index 1a01bea3650..b5fb9d51e3f 100644 --- a/Master/texmf-dist/source/latex/oberdiek/README.txt +++ b/Master/texmf-dist/source/latex/oberdiek/README.txt @@ -1,4 +1,4 @@ -README 2019/12/09 +README 2019/12/15 This file describes the directory CTAN:macros/latex/contrib/oberdiek/ diff --git a/Master/texmf-dist/source/latex/oberdiek/auxhook.dtx b/Master/texmf-dist/source/latex/oberdiek/auxhook.dtx deleted file mode 100644 index 6a9674bcca6..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/auxhook.dtx +++ /dev/null @@ -1,607 +0,0 @@ -% \iffalse meta-comment -% -% File: auxhook.dtx -% Version: 2016/05/16 v1.4 -% Info: Hooks for auxiliary files -% -% Copyright (C) -% 2006, 2007, 2009, 2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/issues -% -% This work consists of the main source file auxhook.dtx -% and the derived files -% auxhook.sty, auxhook.pdf, auxhook.ins, auxhook.drv. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/auxhook.dtx -% CTAN:macros/latex/contrib/oberdiek/auxhook.pdf -% -% Unpacking: -% (a) If auxhook.ins is present: -% tex auxhook.ins -% (b) Without auxhook.ins: -% tex auxhook.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{auxhook.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If auxhook.drv is present: -% latex auxhook.drv -% (b) Without auxhook.drv: -% latex auxhook.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex auxhook.dtx -% makeindex -s gind.ist auxhook.idx -% pdflatex auxhook.dtx -% makeindex -s gind.ist auxhook.idx -% pdflatex auxhook.dtx -% -% Installation: -% TDS:tex/latex/oberdiek/auxhook.sty -% TDS:doc/latex/oberdiek/auxhook.pdf -% TDS:source/latex/oberdiek/auxhook.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: auxhook -Version: 2016/05/16 v1.4 - -Copyright (C) - 2006, 2007, 2009, 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/oberdiek/issues - - -This work consists of the main source file auxhook.dtx -and the derived files - auxhook.sty, auxhook.pdf, auxhook.ins, auxhook.drv. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{auxhook.ins}{\from{auxhook.dtx}{install}}% - \file{auxhook.drv}{\from{auxhook.dtx}{driver}}% - \usedir{tex/latex/oberdiek}% - \file{auxhook.sty}{\from{auxhook.dtx}{package}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* auxhook.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `auxhook.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{auxhook.drv}% - [2016/05/16 v1.4 Hooks for auxiliary files (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{auxhook.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{auxhook.drv} -% -% \title{The \xpackage{auxhook} package} -% \date{2016/05/16 v1.4} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% Package \xpackage{auxhook} provides hooks for adding stuff at -% the begin of \xfile{.aux} files. -% \end{abstract} -% -% \tableofcontents -% -% \section{User interface} -% -% There are two kinds of \xfile{.aux} files, the main \xfile{.aux} file -% and the \xfile{.aux} file that belongs to an included file, specified -% by \cs{include}. -% -% Some packages write macros in the auxiliary files. -% If the user stops using the package, these macros will usually -% cause error messages because of unknown commands. Prominent example -% is package \xpackage{babel}'s \cs{select@language}. -% -% But such a package could be written more cooperative. It can -% also provide a definition in the auxiliary file (\cs{providecommand}) -% that silently disables the macros of the package -% if the package is no longer in use. -% -% In case of the main auxiliary file, \cs{AtBeginDocument} can be used -% for this purpose. Especially if several packages are involved, the -% order cannot be controlled always (e.g., see package -% \xpackage{hypdestopt} that hooks into \xpackage{hyperref}'s macros). -% And there isn't any hook for the auxiliary files of the \cs{include} -% feature. -% -% Thus this package patches \LaTeX's macros \cs{document} and -% \cs{@include} to add the hooks where the auxiliary files -% are opend and the first line with \cs{relax} is written. -% -% The patching can fail, if these macros are redefined by some -% other package. If the other package still uses the original -% definition, then load package \xpackage{auxhook} earlier. -% (With \cs{RequirePackage} the package also can be loaded before -% the class). If the redefinition doesn't use the original meaning, -% then you can try to load package \xpackage{auxhook} afterwards, -% but you need luck that the patch succeeds. -% -% The hooks are macros: -% \begin{description} -% \item[\cs{@beginmainauxhook}:] Start of the main auxiliary file. -% The hook is called after the first line with \cs{relax} is written. -% \item[\cs{@beginpartauxhook}:] The same for the auxiliary files -% that belongs to the files that are included by \cs{include}. -% \end{description} -% If you want to add something to these hooks, you can use -% \cs{g@addto@macro} from \LaTeX's kernel. But the package provides -% macros to add code that adds a line to the auxiliary file: -% -% \begin{declcs}{AddLineBeginMainAux}\,\M{line}\\ -% \cs{AddLineBeginPartAux}\,\M{line}\\ -% \cs{AddLineBeginAux}\,\M{line} -% \end{declcs} -% The \meta{line} is added at the begin of the main auxiliary file -% by \cs{AddLineBeginMainAux} and at the begin of the auxiliary files -% of included files by \cs{AddLineBeginPartAux}. \cs{AddLineBeginAux} writes -% in both kinds of auxiliary files. -% -% Examples, see packages \xpackage{hypdestopt} (\cite{hypdestopt}) and -% \xpackage{zref} (\cite{zref}). -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \subsection{Identification} -% -% \begin{macrocode} -%<*package> -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{auxhook}% - [2016/05/16 v1.4 Hooks for auxiliary files (HO)]% -% \end{macrocode} -% -% \subsection{Hook setup} -% -% \begin{macro}{\@beginmainauxhook} -% The hook for the main auxiliary file, initially empty. -% \begin{macrocode} -\providecommand*{\@beginmainauxhook}{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@beginpartauxhook} -% The hook for auxiliary files of included files, initially empty. -% \begin{macrocode} -\providecommand*{\@beginpartauxhook}{} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\ifx\AtBeginDocument\@firstofone - \global\let\@beginmainauxhook\relax -\else - \g@addto@macro{\@beginmainauxhook}{% - \global\let\@beginmainauxhook\relax - }% -\fi -% \end{macrocode} -% -% \subsection{User macros} -% -% \begin{macro}{\AddLineBeginMainAux} -% \begin{macrocode} -\newcommand{\AddLineBeginMainAux}[1]{% - \ifx\@beginmainauxhook\relax - \if@filesw - \PackageInfo{auxhook}{% - \@backslashchar AddLineBeginMainAux comes a little late,% - \MessageBreak - because the main .aux file is already opened% - }% - \immediate\write\@mainaux{#1}% - \fi - \else - \g@addto@macro\@beginmainauxhook{% - \immediate\write\@mainaux{#1}% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\AtBeginPartAuxLine} -% \begin{macrocode} -\newcommand{\AddLineBeginPartAux}[1]{% - \g@addto@macro\@beginpartauxhook{% - \immediate\write\@partaux{#1}% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\AddLineBeginAux} -% \begin{macrocode} -\newcommand{\AddLineBeginAux}[1]{% - \AddLineBeginMainAux{#1}% - \AddLineBeginPartAux{#1}% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Patches} -% -% \subsubsection{\cs{document}} -% -% \begin{macrocode} -\begingroup - \@ifundefined{beamer@origdocument}{% - \def\auxhook@document{\document}% - }{% - \def\auxhook@document{\beamer@origdocument}% - }% - \long\def\y#1\immediate\write\@mainaux#2#3\auxhook@nil{% - \toks@{% - #1\immediate\write\@mainaux{#2}% - \@beginmainauxhook - #3% - }% - \expandafter\xdef\auxhook@document{\the\toks@}% - \endgroup - }% - \long\def\x#1\immediate\write\@mainaux#2#3\auxhook@nil{% - \toks@{#3}% - \edef\x{\the\toks@}% - \ifx\x\@empty - \PackageWarningNoLine{auxhook}{% - Cannot patch \expandafter\string\auxhook@document,% - \MessageBreak - using \string\AtBeginDocument\space instead% - }% - \endgroup - \AtBeginDocument{% - \if@filesw - \@beginmainauxhook - \fi - }% - \else - \expandafter\expandafter\expandafter\y\auxhook@document - \auxhook@nil - \fi - }% -\expandafter\expandafter\expandafter\x\auxhook@document - \immediate\write\@mainaux{}\auxhook@nil -% \end{macrocode} -% -% \subsubsection{\cs{@include}} -% -% \begin{macrocode} -\begingroup - \long\def\y#1\immediate\write\@partaux#2#3\auxhook@nil#4{% - \endgroup - \def#4##1 {% - #1\immediate\write\@partaux{#2}% - \@beginpartauxhook - #3% - }% - }% - \long\def\x#1\immediate\write\@partaux#2#3\auxhook@nil#4{% - \toks@{#3}% - \edef\x{\the\toks@}% - \ifx\x\@empty - \PackageWarningNoLine{auxhook}{% - Cannot patch \string#4,\MessageBreak - patch dropped% - }% - \endgroup - \else - \expandafter\y#4{##1} \auxhook@nil#4% - \fi - }% -\@ifundefined{ReFiCh@org@include}{% - \expandafter\x\@include{#1} % - \immediate\write\@partaux{}\auxhook@nil\@include -}{% - \expandafter\x\ReFiCh@org@include{#1} % - \immediate\write\@partaux{}\auxhook@nil\ReFiCh@org@include -}% -% \end{macrocode} -% -% \begin{macrocode} -%</package> -% \end{macrocode} -% -% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{auxhook}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/auxhook.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/auxhook.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex auxhook.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% auxhook.sty & tex/latex/oberdiek/auxhook.sty\\ -% auxhook.pdf & doc/latex/oberdiek/auxhook.pdf\\ -% auxhook.dtx & source/latex/oberdiek/auxhook.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{auxhook.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex auxhook.dtx -%makeindex -s gind.ist auxhook.idx -%pdflatex auxhook.dtx -%makeindex -s gind.ist auxhook.idx -%pdflatex auxhook.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% -% \bibitem{hypdestopt} -% Heiko Oberdiek: \textit{The \xpackage{hypdestopt} package}; -% 2006/05/30 v1.0; -% \CTANpkg{hypdestopt}. -% -% \bibitem{hyperref} -% Sebastian Rahtz, Heiko Oberdiek: -% \textit{The \xpackage{hyperref} package}; -% 2006/08/16 v6.75c; -% \CTANpkg{hyperref}. -% -% \bibitem{zref} -% Heiko Oberdiek: \textit{The \xpackage{zref} package}; -% 2006/05/25 v1.2; -% \CTANpkg{zref}. -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2006/05/31 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2007/04/06 v1.1} -% \item -% Fix for class \xclass{beamer}. -% \end{Version} -% \begin{Version}{2009/12/14 v1.2} -% \item -% Support for package \xpackage{rerunfilecheck} added (\cs{@include}). -% \end{Version} -% \begin{Version}{2011/03/04 v1.3} -% \item -% \cs{AddLineBeginMainAux} also supports write requests after -% the main \xext{aux} file is opened. -% \end{Version} -% \begin{Version}{2016/05/16 v1.4} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/bigintcalc.dtx b/Master/texmf-dist/source/latex/oberdiek/bigintcalc.dtx deleted file mode 100644 index 40fa56ed1da..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/bigintcalc.dtx +++ /dev/null @@ -1,3561 +0,0 @@ -% \iffalse meta-comment -% -% File: bigintcalc.dtx -% Version: 2016/05/16 v1.4 -% Info: Expandable calculations on big integers -% -% Copyright (C) -% 2007, 2011, 2012 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 bigintcalc.dtx -% and the derived files -% bigintcalc.sty, bigintcalc.pdf, bigintcalc.ins, bigintcalc.drv, -% bigintcalc-test1.tex, bigintcalc-test2.tex, -% bigintcalc-test3.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/bigintcalc.dtx -% CTAN:macros/latex/contrib/oberdiek/bigintcalc.pdf -% -% Unpacking: -% (a) If bigintcalc.ins is present: -% tex bigintcalc.ins -% (b) Without bigintcalc.ins: -% tex bigintcalc.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{bigintcalc.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If bigintcalc.drv is present: -% latex bigintcalc.drv -% (b) Without bigintcalc.drv: -% latex bigintcalc.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex bigintcalc.dtx -% makeindex -s gind.ist bigintcalc.idx -% pdflatex bigintcalc.dtx -% makeindex -s gind.ist bigintcalc.idx -% pdflatex bigintcalc.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/bigintcalc.sty -% TDS:doc/latex/oberdiek/bigintcalc.pdf -% TDS:source/latex/oberdiek/bigintcalc.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: bigintcalc -Version: 2016/05/16 v1.4 - -Copyright (C) - 2007, 2011, 2012 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/oberdiek/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 bigintcalc.dtx -and the derived files - bigintcalc.sty, bigintcalc.pdf, bigintcalc.ins, bigintcalc.drv, - bigintcalc-test1.tex, bigintcalc-test2.tex, - bigintcalc-test3.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{bigintcalc.ins}{\from{bigintcalc.dtx}{install}}% - \file{bigintcalc.drv}{\from{bigintcalc.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{bigintcalc.sty}{\from{bigintcalc.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{bigintcalc-test1.tex}{\from{bigintcalc.dtx}{test1}}% -% \file{bigintcalc-test2.tex}{\from{bigintcalc.dtx}{test2,etex}}% -% \file{bigintcalc-test3.tex}{\from{bigintcalc.dtx}{test2,noetex}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* bigintcalc.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `bigintcalc.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{bigintcalc.drv}% - [2016/05/16 v1.4 Expandable calculations on big integers (HO)]% -\documentclass{ltxdoc} -\usepackage{wasysym} -\let\iint\relax -\let\iiint\relax -\usepackage[fleqn]{amsmath} - -\DeclareMathOperator{\opInv}{Inv} -\DeclareMathOperator{\opAbs}{Abs} -\DeclareMathOperator{\opSgn}{Sgn} -\DeclareMathOperator{\opMin}{Min} -\DeclareMathOperator{\opMax}{Max} -\DeclareMathOperator{\opCmp}{Cmp} -\DeclareMathOperator{\opOdd}{Odd} -\DeclareMathOperator{\opInc}{Inc} -\DeclareMathOperator{\opDec}{Dec} -\DeclareMathOperator{\opAdd}{Add} -\DeclareMathOperator{\opSub}{Sub} -\DeclareMathOperator{\opShl}{Shl} -\DeclareMathOperator{\opShr}{Shr} -\DeclareMathOperator{\opMul}{Mul} -\DeclareMathOperator{\opSqr}{Sqr} -\DeclareMathOperator{\opFac}{Fac} -\DeclareMathOperator{\opPow}{Pow} -\DeclareMathOperator{\opDiv}{Div} -\DeclareMathOperator{\opMod}{Mod} -\DeclareMathOperator{\opInt}{Int} -\DeclareMathOperator{\opODD}{ifodd} - -\newcommand*{\Def}{% - \ensuremath{% - \mathrel{\mathop{:}}=% - }% -} -\newcommand*{\op}[1]{% - \textsf{#1}% -} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{bigintcalc.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{bigintcalc.drv} -% -% \title{The \xpackage{bigintcalc} package} -% \date{2016/05/16 v1.4} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% This package provides expandable arithmetic operations -% with big integers that can exceed \TeX's number limits. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \subsection{Introduction} -% -% Package \xpackage{bigintcalc} defines arithmetic operations -% that deal with big integers. Big integers can be given -% either as explicit integer number or as macro code -% that expands to an explicit number. \emph{Big} means that -% there is no limit on the size of the number. Big integers -% may exceed \TeX's range limitation of -2147483647 and 2147483647. -% Only memory issues will limit the usable range. -% -% In opposite to package \xpackage{intcalc} -% unexpandable command tokens are not supported, even if -% they are valid \TeX\ numbers like count registers or -% commands created by \cs{chardef}. Nevertheless they may -% be used, if they are prefixed by \cs{number}. -% -% Also \eTeX's \cs{numexpr} expressions are not supported -% directly in the manner of package \xpackage{intcalc}. -% However they can be given if \cs{the}\cs{numexpr} -% or \cs{number}\cs{numexpr} are used. -% -% The operations have the form of macros that take one or -% two integers as parameter and return the integer result. -% The macro name is a three letter operation name prefixed -% by the package name, e.g. \cs{bigintcalcAdd}|{10}{43}| returns -% |53|. -% -% The macros are fully expandable, exactly two expansion -% steps generate the result. Therefore the operations -% may be used nearly everywhere in \TeX, even inside -% \cs{csname}, file names, or other -% expandable contexts. -% -% \subsection{Conditions} -% -% \subsubsection{Preconditions} -% -% \begin{itemize} -% \item -% Arguments can be anything that expands to a number that consists -% of optional signs and digits. -% \item -% The arguments and return values must be sound. -% Zero as divisor or factorials of negative numbers will cause errors. -% \end{itemize} -% -% \subsubsection{Postconditions} -% -% Additional properties of the macros apart from calculating -% a correct result (of course \smiley): -% \begin{itemize} -% \item -% The macros are fully expandable. Thus they can -% be used inside \cs{edef}, \cs{csname}, -% for example. -% \item -% Furthermore exactly two expansion steps calculate the result. -% \item -% The number consists of one optional minus sign and one or more -% digits. The first digit is larger than zero for -% numbers that consists of more than one digit. -% -% In short, the number format is exactly the same as -% \cs{number} generates, but without its range limitation. -% And the tokens (minus sign, digits) -% have catcode 12 (other). -% \item -% Call by value is simulated. First the arguments are -% converted to numbers. Then these numbers are used -% in the calculations. -% -% Remember that arguments -% may contain expensive macros or \eTeX\ expressions. -% This strategy avoids multiple evaluations of such -% arguments. -% \end{itemize} -% -% \subsection{Error handling} -% -% Some errors are detected by the macros, example: division by zero. -% In this cases an undefined control sequence is called and causes -% a TeX error message, example: \cs{BigIntCalcError:DivisionByZero}. -% The name of the control sequence contains -% the reason for the error. The \TeX\ error may be ignored. -% Then the operation returns zero as result. -% Because the macros are supposed to work in expandible contexts. -% An traditional error message, however, is not expandable and -% would break these contexts. -% -% \subsection{Operations} -% -% Some definition equations below use the function $\opInt$ -% that converts a real number to an integer. The number -% is truncated that means rounding to zero: -% \begin{gather*} -% \opInt(x) \Def -% \begin{cases} -% \lfloor x\rfloor & \text{if $x\geq0$}\\ -% \lceil x\rceil & \text{otherwise} -% \end{cases} -% \end{gather*} -% -% \subsubsection{\op{Num}} -% -% \begin{declcs}{bigintcalcNum} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcNum} converts its argument to a normalized integer -% number without unnecessary leading zeros or signs. -% The result matches the regular expression: -%\begin{quote} -%\begin{verbatim} -%0|-?[1-9][0-9]* -%\end{verbatim} -%\end{quote} -% -% \subsubsection{\op{Inv}, \op{Abs}, \op{Sgn}} -% -% \begin{declcs}{bigintcalcInv} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcInv} switches the sign. -% \begin{gather*} -% \opInv(x) \Def -x -% \end{gather*} -% -% \begin{declcs}{bigintcalcAbs} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcAbs} returns the absolute value -% of integer \meta{x}. -% \begin{gather*} -% \opAbs(x) \Def \vert x\vert -% \end{gather*} -% -% \begin{declcs}{bigintcalcSgn} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcSgn} encodes the sign of \meta{x} as number. -% \begin{gather*} -% \opSgn(x) \Def -% \begin{cases} -% -1& \text{if $x<0$}\\ -% 0& \text{if $x=0$}\\ -% 1& \text{if $x>0$} -% \end{cases} -% \end{gather*} -% These return values can easily be distinguished by \cs{ifcase}: -%\begin{quote} -%\begin{verbatim} -%\ifcase\bigintcalcSgn{<x>} -% $x=0$ -%\or -% $x>0$ -%\else -% $x<0$ -%\fi -%\end{verbatim} -%\end{quote} -% -% \subsubsection{\op{Min}, \op{Max}, \op{Cmp}} -% -% \begin{declcs}{bigintcalcMin} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcMin} returns the smaller of the two integers. -% \begin{gather*} -% \opMin(x,y) \Def -% \begin{cases} -% x & \text{if $x<y$}\\ -% y & \text{otherwise} -% \end{cases} -% \end{gather*} -% -% \begin{declcs}{bigintcalcMax} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcMax} returns the larger of the two integers. -% \begin{gather*} -% \opMax(x,y) \Def -% \begin{cases} -% x & \text{if $x>y$}\\ -% y & \text{otherwise} -% \end{cases} -% \end{gather*} -% -% \begin{declcs}{bigintcalcCmp} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcCmp} encodes the comparison result as number: -% \begin{gather*} -% \opCmp(x,y) \Def -% \begin{cases} -% -1 & \text{if $x<y$}\\ -% 0 & \text{if $x=y$}\\ -% 1 & \text{if $x>y$} -% \end{cases} -% \end{gather*} -% These values can be distinguished by \cs{ifcase}: -%\begin{quote} -%\begin{verbatim} -%\ifcase\bigintcalcCmp{<x>}{<y>} -% $x=y$ -%\or -% $x>y$ -%\else -% $x<y$ -%\fi -%\end{verbatim} -%\end{quote} -% -% \subsubsection{\op{Odd}} -% -% \begin{declcs}{bigintcalcOdd} \M{x} -% \end{declcs} -% \begin{gather*} -% \opOdd(x) \Def -% \begin{cases} -% 1 & \text{if $x$ is odd}\\ -% 0 & \text{if $x$ is even} -% \end{cases} -% \end{gather*} -% -% \subsubsection{\op{Inc}, \op{Dec}, \op{Add}, \op{Sub}} -% -% \begin{declcs}{bigintcalcInc} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcInc} increments \meta{x} by one. -% \begin{gather*} -% \opInc(x) \Def x + 1 -% \end{gather*} -% -% \begin{declcs}{bigintcalcDec} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcDec} decrements \meta{x} by one. -% \begin{gather*} -% \opDec(x) \Def x - 1 -% \end{gather*} -% -% \begin{declcs}{bigintcalcAdd} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcAdd} adds the two numbers. -% \begin{gather*} -% \opAdd(x, y) \Def x + y -% \end{gather*} -% -% \begin{declcs}{bigintcalcSub} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcSub} calculates the difference. -% \begin{gather*} -% \opSub(x, y) \Def x - y -% \end{gather*} -% -% \subsubsection{\op{Shl}, \op{Shr}} -% -% \begin{declcs}{bigintcalcShl} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcShl} implements shifting to the left that -% means the number is multiplied by two. -% The sign is preserved. -% \begin{gather*} -% \opShl(x) \Def x*2 -% \end{gather*} -% -% \begin{declcs}{bigintcalcShr} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcShr} implements shifting to the right. -% That is equivalent to an integer division by two. -% The sign is preserved. -% \begin{gather*} -% \opShr(x) \Def \opInt(x/2) -% \end{gather*} -% -% \subsubsection{\op{Mul}, \op{Sqr}, \op{Fac}, \op{Pow}} -% -% \begin{declcs}{bigintcalcMul} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcMul} calculates the product of -% \meta{x} and \meta{y}. -% \begin{gather*} -% \opMul(x,y) \Def x*y -% \end{gather*} -% -% \begin{declcs}{bigintcalcSqr} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcSqr} returns the square product. -% \begin{gather*} -% \opSqr(x) \Def x^2 -% \end{gather*} -% -% \begin{declcs}{bigintcalcFac} \M{x} -% \end{declcs} -% Macro \cs{bigintcalcFac} returns the factorial of \meta{x}. -% Negative numbers are not permitted. -% \begin{gather*} -% \opFac(x) \Def x!\qquad\text{for $x\geq0$} -% \end{gather*} -% ($0! = 1$) -% -% \begin{declcs}{bigintcalcPow} M{x} M{y} -% \end{declcs} -% Macro \cs{bigintcalcPow} calculates the value of \meta{x} to the -% power of \meta{y}. The error ``division by zero'' is thrown -% if \meta{x} is zero and \meta{y} is negative. -% permitted: -% \begin{gather*} -% \opPow(x,y) \Def -% \opInt(x^y)\qquad\text{for $x\neq0$ or $y\geq0$} -% \end{gather*} -% ($0^0 = 1$) -% -% \subsubsection{\op{Div}, \op{Mul}} -% -% \begin{declcs}{bigintcalcDiv} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcDiv} performs an integer division. -% Argument \meta{y} must not be zero. -% \begin{gather*} -% \opDiv(x,y) \Def \opInt(x/y)\qquad\text{for $y\neq0$} -% \end{gather*} -% -% \begin{declcs}{bigintcalcMod} \M{x} \M{y} -% \end{declcs} -% Macro \cs{bigintcalcMod} gets the remainder of the integer -% division. The sign follows the divisor \meta{y}. -% Argument \meta{y} must not be zero. -% \begin{gather*} -% \opMod(x,y) \Def x\mathrel{\%}y\qquad\text{for $y\neq0$} -% \end{gather*} -% The result ranges: -% \begin{gather*} -% -\vert y\vert < \opMod(x,y) \leq 0\qquad\text{for $y<0$}\\ -% 0 \leq \opMod(x,y) < y\qquad\text{for $y\geq0$} -% \end{gather*} -% -% \subsection{Interface for programmers} -% -% If the programmer can ensure some more properties about -% the arguments of the operations, then the following -% macros are a little more efficient. -% -% In general numbers must obey the following constraints: -% \begin{itemize} -% \item Plain number: digit tokens only, no command tokens. -% \item Non-negative. Signs are forbidden. -% \item Delimited by exclamation mark. Curly braces -% around the number are not allowed and will -% break the code. -% \end{itemize} -% -% \begin{declcs}{BigIntCalcOdd} \meta{number} |!| -% \end{declcs} -% |1|/|0| is returned if \meta{number} is odd/even. -% -% \begin{declcs}{BigIntCalcInc} \meta{number} |!| -% \end{declcs} -% Incrementation. -% -% \begin{declcs}{BigIntCalcDec} \meta{number} |!| -% \end{declcs} -% Decrementation, positive number without zero. -% -% \begin{declcs}{BigIntCalcAdd} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Addition, $A\geq B$. -% -% \begin{declcs}{BigIntCalcSub} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Subtraction, $A\geq B$. -% -% \begin{declcs}{BigIntCalcShl} \meta{number} |!| -% \end{declcs} -% Left shift (multiplication with two). -% -% \begin{declcs}{BigIntCalcShr} \meta{number} |!| -% \end{declcs} -% Right shift (integer division by two). -% -% \begin{declcs}{BigIntCalcMul} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Multiplication, $A\geq B$. -% -% \begin{declcs}{BigIntCalcDiv} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Division operation. -% -% \begin{declcs}{BigIntCalcMod} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Modulo operation. -% -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Reload check and package identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@bigintcalc.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{bigintcalc}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@bigintcalc.sty\endcsname -\ProvidesPackage{bigintcalc}% - [2016/05/16 v1.4 Expandable calculations on big integers (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname BIC@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\BIC@AtEnd{% - \BIC@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{36}{14}% $ (comment!) -\TMP@EnsureCode{38}{14}% & (comment!) -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{11}% : (letter!) -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{63}{14}% ? (comment!) -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\BIC@AtEnd{\BIC@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname BIC@TestMode\endcsname\relax -\else - \catcode63=9 % ? (ignore) -\fi -? \let\BIC@@TestMode\BIC@TestMode -% \end{macrocode} -% -% \subsection{\eTeX\ detection} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname numexpr\endcsname\relax - \catcode36=9 % $ (ignore) -\else - \catcode38=9 % & (ignore) -\fi -% \end{macrocode} -% -% \subsection{Help macros} -% -% \begin{macro}{\BIC@Fi} -% \begin{macrocode} -\let\BIC@Fi\fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AfterFi} -% \begin{macrocode} -\def\BIC@AfterFi#1#2\BIC@Fi{\fi#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AfterFiFi} -% \begin{macrocode} -\def\BIC@AfterFiFi#1#2\BIC@Fi{\fi\fi#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AfterFiFiFi} -% \begin{macrocode} -\def\BIC@AfterFiFiFi#1#2\BIC@Fi{\fi\fi\fi#1}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@Space} -% \begin{macrocode} -\begingroup - \def\x#1{\endgroup - \let\BIC@Space= #1% - }% -\x{ } -% \end{macrocode} -% \end{macro} -% -% \subsection{Expand number} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{pdftexcmds}[2007/11/11]% -\else - \RequirePackage{pdftexcmds}[2007/11/11]% -\fi -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdf@escapehex\endcsname\relax -% \end{macrocode} -% -% \begin{macro}{\BIC@Expand} -% \begin{macrocode} - \def\BIC@Expand#1{% - \romannumeral0% - \BIC@@Expand#1!\@nil{}% - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Expand} -% \begin{macrocode} - \def\BIC@@Expand#1#2\@nil#3{% - \expandafter\ifcat\noexpand#1\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - {% - \expandafter\BIC@@Expand#1#2\@nil{#3}% - }{% - \ifx#1!% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - { #3}{% - \BIC@@Expand#2\@nil{#3#1}% - }% - }% - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@firstoftwo} -% \begin{macrocode} - \expandafter\ifx\csname @firstoftwo\endcsname\relax - \long\def\@firstoftwo#1#2{#1}% - \fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@secondoftwo} -% \begin{macrocode} - \expandafter\ifx\csname @secondoftwo\endcsname\relax - \long\def\@secondoftwo#1#2{#2}% - \fi -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\else -% \end{macrocode} -% \begin{macro}{\BIC@Expand} -% \begin{macrocode} - \def\BIC@Expand#1{% - \romannumeral0\expandafter\expandafter\expandafter\BIC@Space - \pdf@unescapehex{% - \expandafter\expandafter\expandafter - \BIC@StripHexSpace\pdf@escapehex{#1}20\@nil - }% - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@StripHexSpace} -% \begin{macrocode} - \def\BIC@StripHexSpace#120#2\@nil{% - #1% - \ifx\\#2\\% - \else - \BIC@AfterFi{% - \BIC@StripHexSpace#2\@nil - }% - \BIC@Fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\fi -% \end{macrocode} -% -% \subsection{Normalize expanded number} -% -% \begin{macro}{\BIC@Normalize} -% |#1|: result sign\\ -% |#2|: first token of number -% \begin{macrocode} -\def\BIC@Normalize#1#2{% - \ifx#2-% - \ifx\\#1\\% - \BIC@AfterFiFi{% - \BIC@Normalize-% - }% - \else - \BIC@AfterFiFi{% - \BIC@Normalize{}% - }% - \fi - \else - \ifx#2+% - \BIC@AfterFiFi{% - \BIC@Normalize{#1}% - }% - \else - \ifx#20% - \BIC@AfterFiFiFi{% - \BIC@NormalizeZero{#1}% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@NormalizeDigits#1#2% - }% - \fi - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@NormalizeZero} -% \begin{macrocode} -\def\BIC@NormalizeZero#1#2{% - \ifx#2!% - \BIC@AfterFi{ 0}% - \else - \ifx#20% - \BIC@AfterFiFi{% - \BIC@NormalizeZero{#1}% - }% - \else - \BIC@AfterFiFi{% - \BIC@NormalizeDigits#1#2% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@NormalizeDigits} -% \begin{macrocode} -\def\BIC@NormalizeDigits#1!{ #1} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Num}} -% -% \begin{macro}{\bigintcalcNum} -% \begin{macrocode} -\def\bigintcalcNum#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Normalize - \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter}% - \BIC@Expand{#1}!% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Inv}, \op{Abs}, \op{Sgn}} -% -% -% \begin{macro}{\bigintcalcInv} -% \begin{macrocode} -\def\bigintcalcInv#1{% - \romannumeral0\expandafter\expandafter\expandafter\BIC@Space - \bigintcalcNum{-#1}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\bigintcalcAbs} -% \begin{macrocode} -\def\bigintcalcAbs#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Abs - \bigintcalcNum{#1}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Abs} -% \begin{macrocode} -\def\BIC@Abs#1{% - \ifx#1-% - \expandafter\BIC@Space - \else - \expandafter\BIC@Space - \expandafter#1% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\bigintcalcSgn} -% \begin{macrocode} -\def\bigintcalcSgn#1{% - \number - \expandafter\expandafter\expandafter\BIC@Sgn - \bigintcalcNum{#1}! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Sgn} -% \begin{macrocode} -\def\BIC@Sgn#1#2!{% - \ifx#1-% - -1% - \else - \ifx#10% - 0% - \else - 1% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Cmp}, \op{Min}, \op{Max}} -% -% \begin{macro}{\bigintcalcCmp} -% \begin{macrocode} -\def\bigintcalcCmp#1#2{% - \number - \expandafter\expandafter\expandafter\BIC@Cmp - \bigintcalcNum{#2}!{#1}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Cmp} -% \begin{macrocode} -\def\BIC@Cmp#1!#2{% - \expandafter\expandafter\expandafter\BIC@@Cmp - \bigintcalcNum{#2}!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Cmp} -% \begin{macrocode} -\def\BIC@@Cmp#1#2!#3#4!{% - \ifx#1-% - \ifx#3-% - \BIC@AfterFiFi{% - \BIC@@Cmp#4!#2!% - }% - \else - \BIC@AfterFiFi{% - -1 % - }% - \fi - \else - \ifx#3-% - \BIC@AfterFiFi{% - 1 % - }% - \else - \BIC@AfterFiFi{% - \BIC@CmpLength#1#2!#3#4!#1#2!#3#4!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@PosCmp} -% \begin{macrocode} -\def\BIC@PosCmp#1!#2!{% - \BIC@CmpLength#1!#2!#1!#2!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@CmpLength} -% \begin{macrocode} -\def\BIC@CmpLength#1#2!#3#4!{% - \ifx\\#2\\% - \ifx\\#4\\% - \BIC@AfterFiFi\BIC@CmpDiff - \else - \BIC@AfterFiFi{% - \BIC@CmpResult{-1}% - }% - \fi - \else - \ifx\\#4\\% - \BIC@AfterFiFi{% - \BIC@CmpResult1% - }% - \else - \BIC@AfterFiFi{% - \BIC@CmpLength#2!#4!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@CmpResult} -% \begin{macrocode} -\def\BIC@CmpResult#1#2!#3!{#1 } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@CmpDiff} -% \begin{macrocode} -\def\BIC@CmpDiff#1#2!#3#4!{% - \ifnum#1<#3 % - \BIC@AfterFi{% - -1 % - }% - \else - \ifnum#1>#3 % - \BIC@AfterFiFi{% - 1 % - }% - \else - \ifx\\#2\\% - \BIC@AfterFiFiFi{% - 0 % - }% - \else - \BIC@AfterFiFiFi{% - \BIC@CmpDiff#2!#4!% - }% - \fi - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\bigintcalcMin} -% \begin{macrocode} -\def\bigintcalcMin#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@MinMax - \bigintcalcNum{#1}!-!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\bigintcalcMax} -% \begin{macrocode} -\def\bigintcalcMax#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@MinMax - \bigintcalcNum{#1}!!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@MinMax} -% |#1|: $x$\\ -% |#2|: sign for comparison\\ -% |#3|: $y$ -% \begin{macrocode} -\def\BIC@MinMax#1!#2!#3{% - \expandafter\expandafter\expandafter\BIC@@MinMax - \bigintcalcNum{#3}!#1!#2!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@MinMax} -% |#1|: $y$\\ -% |#2|: $x$\\ -% |#3|: sign for comparison -% \begin{macrocode} -\def\BIC@@MinMax#1!#2!#3!{% - \ifnum\BIC@@Cmp#1!#2!=#31 % - \BIC@AfterFi{ #1}% - \else - \BIC@AfterFi{ #2}% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Odd}} -% -% \begin{macro}{\bigintcalcOdd} -% \begin{macrocode} -\def\bigintcalcOdd#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Odd - \bigintcalcAbs{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcOdd} -% \begin{macrocode} -\def\BigIntCalcOdd#1!{% - \romannumeral0% - \BIC@Odd#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Odd} -% |#1|: $x$ -% \begin{macrocode} -\def\BIC@Odd#1#2{% - \ifx#2!% - \ifodd#1 % - \BIC@AfterFiFi{ 1}% - \else - \BIC@AfterFiFi{ 0}% - \fi - \else - \expandafter\BIC@Odd\expandafter#2% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Inc}, \op{Dec}} -% -% \begin{macro}{\bigintcalcInc} -% \begin{macrocode} -\def\bigintcalcInc#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@IncSwitch - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@IncSwitch} -% \begin{macrocode} -\def\BIC@IncSwitch#1#2!{% - \ifcase\BIC@@Cmp#1#2!-1!% - \BIC@AfterFi{ 0}% - \or - \BIC@AfterFi{% - \BIC@Inc#1#2!{}% - }% - \else - \BIC@AfterFi{% - \expandafter-\romannumeral0% - \BIC@Dec#2!{}% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\bigintcalcDec} -% \begin{macrocode} -\def\bigintcalcDec#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@DecSwitch - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DecSwitch} -% \begin{macrocode} -\def\BIC@DecSwitch#1#2!{% - \ifcase\BIC@Sgn#1#2! % - \BIC@AfterFi{ -1}% - \or - \BIC@AfterFi{% - \BIC@Dec#1#2!{}% - }% - \else - \BIC@AfterFi{% - \expandafter-\romannumeral0% - \BIC@Inc#2!{}% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BigIntCalcInc} -% \begin{macrocode} -\def\BigIntCalcInc#1!{% - \romannumeral0\BIC@Inc#1!{}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcDec} -% \begin{macrocode} -\def\BigIntCalcDec#1!{% - \romannumeral0\BIC@Dec#1!{}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@Inc} -% \begin{macrocode} -\def\BIC@Inc#1#2!#3{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@@Inc1#1#3!{}% - }% - \else - \BIC@AfterFi{% - \BIC@Inc#2!{#1#3}% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Inc} -% \begin{macrocode} -\def\BIC@@Inc#1#2#3!#4{% - \ifcase#1 % - \ifx\\#3\\% - \BIC@AfterFiFi{ #2#4}% - \else - \BIC@AfterFiFi{% - \BIC@@Inc0#3!{#2#4}% - }% - \fi - \else - \ifnum#2<9 % - \BIC@AfterFiFi{% -& \expandafter\BIC@@@Inc\the\numexpr#2+1\relax -$ \expandafter\expandafter\expandafter\BIC@@@Inc -$ \ifcase#2 \expandafter1% -$ \or\expandafter2% -$ \or\expandafter3% -$ \or\expandafter4% -$ \or\expandafter5% -$ \or\expandafter6% -$ \or\expandafter7% -$ \or\expandafter8% -$ \or\expandafter9% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi - 0#3!{#4}% - }% - \else - \BIC@AfterFiFi{% - \BIC@@@Inc01#3!{#4}% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@Inc} -% \begin{macrocode} -\def\BIC@@@Inc#1#2#3!#4{% - \ifx\\#3\\% - \ifnum#2=1 % - \BIC@AfterFiFi{ 1#1#4}% - \else - \BIC@AfterFiFi{ #1#4}% - \fi - \else - \BIC@AfterFi{% - \BIC@@Inc#2#3!{#1#4}% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@Dec} -% \begin{macrocode} -\def\BIC@Dec#1#2!#3{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@@Dec1#1#3!{}% - }% - \else - \BIC@AfterFi{% - \BIC@Dec#2!{#1#3}% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Dec} -% \begin{macrocode} -\def\BIC@@Dec#1#2#3!#4{% - \ifcase#1 % - \ifx\\#3\\% - \BIC@AfterFiFi{ #2#4}% - \else - \BIC@AfterFiFi{% - \BIC@@Dec0#3!{#2#4}% - }% - \fi - \else - \ifnum#2>0 % - \BIC@AfterFiFi{% -& \expandafter\BIC@@@Dec\the\numexpr#2-1\relax -$ \expandafter\expandafter\expandafter\BIC@@@Dec -$ \ifcase#2 -$? \BigIntCalcError:ThisCannotHappen% -$ \or\expandafter0% -$ \or\expandafter1% -$ \or\expandafter2% -$ \or\expandafter3% -$ \or\expandafter4% -$ \or\expandafter5% -$ \or\expandafter6% -$ \or\expandafter7% -$ \or\expandafter8% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi - 0#3!{#4}% - }% - \else - \BIC@AfterFiFi{% - \BIC@@@Dec91#3!{#4}% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@Dec} -% \begin{macrocode} -\def\BIC@@@Dec#1#2#3!#4{% - \ifx\\#3\\% - \ifcase#1 % - \ifx\\#4\\% - \BIC@AfterFiFiFi{ 0}% - \else - \BIC@AfterFiFiFi{ #4}% - \fi - \else - \BIC@AfterFiFi{ #1#4}% - \fi - \else - \BIC@AfterFi{% - \BIC@@Dec#2#3!{#1#4}% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Add}, \op{Sub}} -% -% \begin{macro}{\bigintcalcAdd} -% \begin{macrocode} -\def\bigintcalcAdd#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Add - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Add} -% \begin{macrocode} -\def\BIC@Add#1!#2{% - \expandafter\expandafter\expandafter - \BIC@AddSwitch\bigintcalcNum{#2}!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\bigintcalcSub} -% \begin{macrocode} -\def\bigintcalcSub#1#2{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Add - \bigintcalcNum{-#2}!{#1}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@AddSwitch} -% Decision table for \cs{BIC@AddSwitch}. -% \begin{quote} -% \begin{tabular}[t]{@{}|l|l|l|l|l|@{}} -% \hline -% $x<0$ & $y<0$ & $-x>-y$ & $-$ & $\opAdd(-x,-y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opAdd(-y,-x)$\\ -% \cline{2-5} -% & else & $-x> y$ & $-$ & $\opSub(-x, y)$\\ -% \cline{3-5} -% & & $-x= y$ & & $0$\\ -% \cline{3-5} -% & & else & $+$ & $\opSub( y,-x)$\\ -% \hline -% else & $y<0$ & $ x>-y$ & $+$ & $\opSub( x,-y)$\\ -% \cline{3-5} -% & & $ x=-y$ & & $0$\\ -% \cline{3-5} -% & & else & $-$ & $\opSub(-y, x)$\\ -% \cline{2-5} -% & else & $ x> y$ & $+$ & $\opAdd( x, y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opAdd( y, x)$\\ -% \hline -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\BIC@AddSwitch#1#2!#3#4!{% - \ifx#1-% x < 0 - \ifx#3-% y < 0 - \expandafter-\romannumeral0% - \ifnum\BIC@PosCmp#2!#4!=1 % -x > -y - \BIC@AfterFiFiFi{% - \BIC@AddXY#2!#4!!!% - }% - \else % -x <= -y - \BIC@AfterFiFiFi{% - \BIC@AddXY#4!#2!!!% - }% - \fi - \else % y >= 0 - \ifcase\BIC@PosCmp#2!#3#4!% -x = y - \BIC@AfterFiFiFi{ 0}% - \or % -x > y - \expandafter-\romannumeral0% - \BIC@AfterFiFiFi{% - \BIC@SubXY#2!#3#4!!!% - }% - \else % -x <= y - \BIC@AfterFiFiFi{% - \BIC@SubXY#3#4!#2!!!% - }% - \fi - \fi - \else % x >= 0 - \ifx#3-% y < 0 - \ifcase\BIC@PosCmp#1#2!#4!% x = -y - \BIC@AfterFiFiFi{ 0}% - \or % x > -y - \BIC@AfterFiFiFi{% - \BIC@SubXY#1#2!#4!!!% - }% - \else % x <= -y - \expandafter-\romannumeral0% - \BIC@AfterFiFiFi{% - \BIC@SubXY#4!#1#2!!!% - }% - \fi - \else % y >= 0 - \ifnum\BIC@PosCmp#1#2!#3#4!=1 % x > y - \BIC@AfterFiFiFi{% - \BIC@AddXY#1#2!#3#4!!!% - }% - \else % x <= y - \BIC@AfterFiFiFi{% - \BIC@AddXY#3#4!#1#2!!!% - }% - \fi - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BigIntCalcAdd} -% \begin{macrocode} -\def\BigIntCalcAdd#1!#2!{% - \romannumeral0\BIC@AddXY#1!#2!!!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcSub} -% \begin{macrocode} -\def\BigIntCalcSub#1!#2!{% - \romannumeral0\BIC@SubXY#1!#2!!!% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@AddXY} -% \begin{macrocode} -\def\BIC@AddXY#1#2!#3#4!#5!#6!{% - \ifx\\#2\\% - \ifx\\#3\\% - \BIC@AfterFiFi{% - \BIC@DoAdd0!#1#5!#60!% - }% - \else - \BIC@AfterFiFi{% - \BIC@DoAdd0!#1#5!#3#6!% - }% - \fi - \else - \ifx\\#4\\% - \ifx\\#3\\% - \BIC@AfterFiFiFi{% - \BIC@AddXY#2!{}!#1#5!#60!% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@AddXY#2!{}!#1#5!#3#6!% - }% - \fi - \else - \BIC@AfterFiFi{% - \BIC@AddXY#2!#4!#1#5!#3#6!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DoAdd} -% |#1|: carry\\ -% |#2|: reverted result\\ -% |#3#4|: reverted $x$\\ -% |#5#6|: reverted $y$ -% \begin{macrocode} -\def\BIC@DoAdd#1#2!#3#4!#5#6!{% - \ifx\\#4\\% - \BIC@AfterFi{% -& \expandafter\BIC@Space -& \the\numexpr#1+#3+#5\relax#2% -$ \expandafter\expandafter\expandafter\BIC@AddResult -$ \BIC@AddDigit#1#3#5#2% - }% - \else - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@DoAdd - \BIC@AddDigit#1#3#5#2!#4!#6!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AddResult} -% \begin{macrocode} -$ \def\BIC@AddResult#1{% -$ \ifx#10% -$ \expandafter\BIC@Space -$ \else -$ \expandafter\BIC@Space\expandafter#1% -$ \fi -$ }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AddDigit} -% |#1|: carry\\ -% |#2|: digit of $x$\\ -% |#3|: digit of $y$ -% \begin{macrocode} -\def\BIC@AddDigit#1#2#3{% - \romannumeral0% -& \expandafter\BIC@@AddDigit\the\numexpr#1+#2+#3!% -$ \expandafter\BIC@@AddDigit\number% -$ \csname -$ BIC@AddCarry% -$ \ifcase#1 % -$ #2% -$ \else -$ \ifcase#2 1\or2\or3\or4\or5\or6\or7\or8\or9\or10\fi -$ \fi -$ \endcsname#3!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@AddDigit} -% \begin{macrocode} -\def\BIC@@AddDigit#1!{% - \ifnum#1<10 % - \BIC@AfterFi{ 0#1}% - \else - \BIC@AfterFi{ #1}% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AddCarry0} -% \begin{macrocode} -$ \expandafter\def\csname BIC@AddCarry0\endcsname#1{#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AddCarry10} -% \begin{macrocode} -$ \expandafter\def\csname BIC@AddCarry10\endcsname#1{1#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@AddCarry[1-9]} -% \begin{macrocode} -$ \def\BIC@Temp#1#2{% -$ \expandafter\def\csname BIC@AddCarry#1\endcsname##1{% -$ \ifcase##1 #1\or -$ #2% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi -$ }% -$ }% -$ \BIC@Temp 0{1\or2\or3\or4\or5\or6\or7\or8\or9}% -$ \BIC@Temp 1{2\or3\or4\or5\or6\or7\or8\or9\or10}% -$ \BIC@Temp 2{3\or4\or5\or6\or7\or8\or9\or10\or11}% -$ \BIC@Temp 3{4\or5\or6\or7\or8\or9\or10\or11\or12}% -$ \BIC@Temp 4{5\or6\or7\or8\or9\or10\or11\or12\or13}% -$ \BIC@Temp 5{6\or7\or8\or9\or10\or11\or12\or13\or14}% -$ \BIC@Temp 6{7\or8\or9\or10\or11\or12\or13\or14\or15}% -$ \BIC@Temp 7{8\or9\or10\or11\or12\or13\or14\or15\or16}% -$ \BIC@Temp 8{9\or10\or11\or12\or13\or14\or15\or16\or17}% -$ \BIC@Temp 9{10\or11\or12\or13\or14\or15\or16\or17\or18}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@SubXY} -% Preconditions: -% \begin{itemize} -% \item $x > y$, $x \geq 0$, and $y >= 0$ -% \item digits($x$) = digits($y$) -% \end{itemize} -% \begin{macrocode} -\def\BIC@SubXY#1#2!#3#4!#5!#6!{% - \ifx\\#2\\% - \ifx\\#3\\% - \BIC@AfterFiFi{% - \BIC@DoSub0!#1#5!#60!% - }% - \else - \BIC@AfterFiFi{% - \BIC@DoSub0!#1#5!#3#6!% - }% - \fi - \else - \ifx\\#4\\% - \ifx\\#3\\% - \BIC@AfterFiFiFi{% - \BIC@SubXY#2!{}!#1#5!#60!% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@SubXY#2!{}!#1#5!#3#6!% - }% - \fi - \else - \BIC@AfterFiFi{% - \BIC@SubXY#2!#4!#1#5!#3#6!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DoSub} -% |#1|: carry\\ -% |#2|: reverted result\\ -% |#3#4|: reverted x\\ -% |#5#6|: reverted y -% \begin{macrocode} -\def\BIC@DoSub#1#2!#3#4!#5#6!{% - \ifx\\#4\\% - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@SubResult - \BIC@SubDigit#1#3#5#2% - }% - \else - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@DoSub - \BIC@SubDigit#1#3#5#2!#4!#6!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@SubResult} -% \begin{macrocode} -\def\BIC@SubResult#1{% - \ifx#10% - \expandafter\BIC@SubResult - \else - \expandafter\BIC@Space\expandafter#1% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@SubDigit} -% |#1|: carry\\ -% |#2|: digit of $x$\\ -% |#3|: digit of $y$ -% \begin{macrocode} -\def\BIC@SubDigit#1#2#3{% - \romannumeral0% -& \expandafter\BIC@@SubDigit\the\numexpr#2-#3-#1!% -$ \expandafter\BIC@@AddDigit\number -$ \csname -$ BIC@SubCarry% -$ \ifcase#1 % -$ #3% -$ \else -$ \ifcase#3 1\or2\or3\or4\or5\or6\or7\or8\or9\or10\fi -$ \fi -$ \endcsname#2!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@SubDigit} -% \begin{macrocode} -& \def\BIC@@SubDigit#1!{% -& \ifnum#1<0 % -& \BIC@AfterFi{% -& \expandafter\BIC@Space -& \expandafter1\the\numexpr#1+10\relax -& }% -& \else -& \BIC@AfterFi{ 0#1}% -& \BIC@Fi -& }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@SubCarry0} -% \begin{macrocode} -$ \expandafter\def\csname BIC@SubCarry0\endcsname#1{#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@SubCarry10}% -% \begin{macrocode} -$ \expandafter\def\csname BIC@SubCarry10\endcsname#1{1#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@SubCarry[1-9]} -% \begin{macrocode} -$ \def\BIC@Temp#1#2{% -$ \expandafter\def\csname BIC@SubCarry#1\endcsname##1{% -$ \ifcase##1 #2% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi -$ }% -$ }% -$ \BIC@Temp 1{19\or0\or1\or2\or3\or4\or5\or6\or7\or8}% -$ \BIC@Temp 2{18\or19\or0\or1\or2\or3\or4\or5\or6\or7}% -$ \BIC@Temp 3{17\or18\or19\or0\or1\or2\or3\or4\or5\or6}% -$ \BIC@Temp 4{16\or17\or18\or19\or0\or1\or2\or3\or4\or5}% -$ \BIC@Temp 5{15\or16\or17\or18\or19\or0\or1\or2\or3\or4}% -$ \BIC@Temp 6{14\or15\or16\or17\or18\or19\or0\or1\or2\or3}% -$ \BIC@Temp 7{13\or14\or15\or16\or17\or18\or19\or0\or1\or2}% -$ \BIC@Temp 8{12\or13\or14\or15\or16\or17\or18\or19\or0\or1}% -$ \BIC@Temp 9{11\or12\or13\or14\or15\or16\or17\or18\or19\or0}% -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Shl}, \op{Shr}} -% -% \begin{macro}{\bigintcalcShl} -% \begin{macrocode} -\def\bigintcalcShl#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Shl - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Shl} -% \begin{macrocode} -\def\BIC@Shl#1#2!{% - \ifx#1-% - \BIC@AfterFi{% - \expandafter-\romannumeral0% -& \BIC@@Shl#2!!% -$ \BIC@AddXY#2!#2!!!% - }% - \else - \BIC@AfterFi{% -& \BIC@@Shl#1#2!!% -$ \BIC@AddXY#1#2!#1#2!!!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcShl} -% \begin{macrocode} -\def\BigIntCalcShl#1!{% - \romannumeral0% -& \BIC@@Shl#1!!% -$ \BIC@AddXY#1!#1!!!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Shl} -% \begin{macrocode} -& \def\BIC@@Shl#1#2!{% -& \ifx\\#2\\% -& \BIC@AfterFi{% -& \BIC@@@Shl0!#1% -& }% -& \else -& \BIC@AfterFi{% -& \BIC@@Shl#2!#1% -& }% -& \BIC@Fi -& }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@Shl} -% |#1|: carry\\ -% |#2|: result\\ -% |#3#4|: reverted number -% \begin{macrocode} -& \def\BIC@@@Shl#1#2!#3#4!{% -& \ifx\\#4\\% -& \BIC@AfterFi{% -& \expandafter\BIC@Space -& \the\numexpr#3*2+#1\relax#2% -& }% -& \else -& \BIC@AfterFi{% -& \expandafter\BIC@@@@Shl\the\numexpr#3*2+#1!#2!#4!% -& }% -& \BIC@Fi -& }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@@Shl} -% \begin{macrocode} -& \def\BIC@@@@Shl#1!{% -& \ifnum#1<10 % -& \BIC@AfterFi{% -& \BIC@@@Shl0#1% -& }% -& \else -& \BIC@AfterFi{% -& \BIC@@@Shl#1% -& }% -& \BIC@Fi -& }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\bigintcalcShr} -% \begin{macrocode} -\def\bigintcalcShr#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Shr - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Shr} -% \begin{macrocode} -\def\BIC@Shr#1#2!{% - \ifx#1-% - \expandafter-\romannumeral0% - \BIC@AfterFi{% - \BIC@@Shr#2!% - }% - \else - \BIC@AfterFi{% - \BIC@@Shr#1#2!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcShr} -% \begin{macrocode} -\def\BigIntCalcShr#1!{% - \romannumeral0% - \BIC@@Shr#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Shr} -% \begin{macrocode} -\def\BIC@@Shr#1#2!{% - \ifcase#1 % - \BIC@AfterFi{ 0}% - \or - \ifx\\#2\\% - \BIC@AfterFiFi{ 0}% - \else - \BIC@AfterFiFi{% - \BIC@@@Shr#1#2!!% - }% - \fi - \else - \BIC@AfterFi{% - \BIC@@@Shr0#1#2!!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@Shr} -% |#1|: carry\\ -% |#2#3|: number\\ -% |#4|: result -% \begin{macrocode} -\def\BIC@@@Shr#1#2#3!#4!{% - \ifx\\#3\\% - \ifodd#1#2 % - \BIC@AfterFiFi{% -& \expandafter\BIC@ShrResult\the\numexpr(#1#2-1)/2\relax -$ \expandafter\expandafter\expandafter\BIC@ShrResult -$ \csname BIC@ShrDigit#1#2\endcsname - #4!% - }% - \else - \BIC@AfterFiFi{% -& \expandafter\BIC@ShrResult\the\numexpr#1#2/2\relax -$ \expandafter\expandafter\expandafter\BIC@ShrResult -$ \csname BIC@ShrDigit#1#2\endcsname - #4!% - }% - \fi - \else - \ifodd#1#2 % - \BIC@AfterFiFi{% -& \expandafter\BIC@@@@Shr\the\numexpr(#1#2-1)/2\relax1% -$ \expandafter\expandafter\expandafter\BIC@@@@Shr -$ \csname BIC@ShrDigit#1#2\endcsname - #3!#4!% - }% - \else - \BIC@AfterFiFi{% -& \expandafter\BIC@@@@Shr\the\numexpr#1#2/2\relax0% -$ \expandafter\expandafter\expandafter\BIC@@@@Shr -$ \csname BIC@ShrDigit#1#2\endcsname - #3!#4!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ShrResult} -% \begin{macrocode} -& \def\BIC@ShrResult#1#2!{ #2#1}% -$ \def\BIC@ShrResult#1#2#3!{ #3#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@@Shr} -% |#1|: new digit\\ -% |#2|: carry\\ -% |#3|: remaining number\\ -% |#4|: result -% \begin{macrocode} -\def\BIC@@@@Shr#1#2#3!#4!{% - \BIC@@@Shr#2#3!#4#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ShrDigit[00-19]} -% \begin{macrocode} -$ \def\BIC@Temp#1#2#3#4{% -$ \expandafter\def\csname BIC@ShrDigit#1#2\endcsname{#3#4}% -$ }% -$ \BIC@Temp 0000% -$ \BIC@Temp 0101% -$ \BIC@Temp 0210% -$ \BIC@Temp 0311% -$ \BIC@Temp 0420% -$ \BIC@Temp 0521% -$ \BIC@Temp 0630% -$ \BIC@Temp 0731% -$ \BIC@Temp 0840% -$ \BIC@Temp 0941% -$ \BIC@Temp 1050% -$ \BIC@Temp 1151% -$ \BIC@Temp 1260% -$ \BIC@Temp 1361% -$ \BIC@Temp 1470% -$ \BIC@Temp 1571% -$ \BIC@Temp 1680% -$ \BIC@Temp 1781% -$ \BIC@Temp 1890% -$ \BIC@Temp 1991% -% \end{macrocode} -% \end{macro} -% -% \subsection{\cs{BIC@Tim}} -% -% \begin{macro}{\BIC@Tim} -% Macro \cs{BIC@Tim} implements ``Number \emph{tim}es digit''.\\ -% |#1|: plain number without sign\\ -% |#2|: digit -\def\BIC@Tim#1!#2{% - \romannumeral0% - \ifcase#2 % 0 - \BIC@AfterFi{ 0}% - \or % 1 - \BIC@AfterFi{ #1}% - \or % 2 - \BIC@AfterFi{% - \BIC@Shl#1!% - }% - \else % 3-9 - \BIC@AfterFi{% - \BIC@@Tim#1!!#2% - }% - \BIC@Fi -} -% \begin{macrocode} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Tim} -% |#1#2|: number\\ -% |#3|: reverted number -% \begin{macrocode} -\def\BIC@@Tim#1#2!{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@ProcessTim0!#1% - }% - \else - \BIC@AfterFi{% - \BIC@@Tim#2!#1% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessTim} -% |#1|: carry\\ -% |#2|: result\\ -% |#3#4|: reverted number\\ -% |#5|: digit -% \begin{macrocode} -\def\BIC@ProcessTim#1#2!#3#4!#5{% - \ifx\\#4\\% - \BIC@AfterFi{% - \expandafter\BIC@Space -& \the\numexpr#3*#5+#1\relax -$ \romannumeral0\BIC@TimDigit#3#5#1% - #2% - }% - \else - \BIC@AfterFi{% - \expandafter\BIC@@ProcessTim -& \the\numexpr#3*#5+#1% -$ \romannumeral0\BIC@TimDigit#3#5#1% - !#2!#4!#5% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@ProcessTim} -% |#1#2|: carry?, new digit\\ -% |#3|: new number\\ -% |#4|: old number\\ -% |#5|: digit -% \begin{macrocode} -\def\BIC@@ProcessTim#1#2!{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@ProcessTim0#1% - }% - \else - \BIC@AfterFi{% - \BIC@ProcessTim#1#2% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@TimDigit} -% |#1|: digit 0--9\\ -% |#2|: digit 3--9\\ -% |#3|: carry 0--9 -% \begin{macrocode} -$ \def\BIC@TimDigit#1#2#3{% -$ \ifcase#1 % 0 -$ \BIC@AfterFi{ #3}% -$ \or % 1 -$ \BIC@AfterFi{% -$ \expandafter\BIC@Space -$ \number\csname BIC@AddCarry#2\endcsname#3 % -$ }% -$ \else -$ \ifcase#3 % -$ \BIC@AfterFiFi{% -$ \expandafter\BIC@Space -$ \number\csname BIC@MulDigit#2\endcsname#1 % -$ }% -$ \else -$ \BIC@AfterFiFi{% -$ \expandafter\BIC@Space -$ \romannumeral0% -$ \expandafter\BIC@AddXY -$ \number\csname BIC@MulDigit#2\endcsname#1!% -$ #3!!!% -$ }% -$ \fi -$ \BIC@Fi -$ }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@MulDigit[3-9]} -% \begin{macrocode} -$ \def\BIC@Temp#1#2{% -$ \expandafter\def\csname BIC@MulDigit#1\endcsname##1{% -$ \ifcase##1 0% -$ \or ##1% -$ \or #2% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi -$ }% -$ }% -$ \BIC@Temp 3{6\or9\or12\or15\or18\or21\or24\or27}% -$ \BIC@Temp 4{8\or12\or16\or20\or24\or28\or32\or36}% -$ \BIC@Temp 5{10\or15\or20\or25\or30\or35\or40\or45}% -$ \BIC@Temp 6{12\or18\or24\or30\or36\or42\or48\or54}% -$ \BIC@Temp 7{14\or21\or28\or35\or42\or49\or56\or63}% -$ \BIC@Temp 8{16\or24\or32\or40\or48\or56\or64\or72}% -$ \BIC@Temp 9{18\or27\or36\or45\or54\or63\or72\or81}% -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Mul}} -% -% \begin{macro}{\bigintcalcMul} -% \begin{macrocode} -\def\bigintcalcMul#1#2{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Mul - \bigintcalcNum{#1}!{#2}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Mul} -% \begin{macrocode} -\def\BIC@Mul#1!#2{% - \expandafter\expandafter\expandafter\BIC@MulSwitch - \bigintcalcNum{#2}!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@MulSwitch} -% Decision table for \cs{BIC@MulSwitch}. -% \begin{quote} -% \begin{tabular}[t]{@{}|l|l|l|l|l|@{}} -% \hline -% $x=0$ &\multicolumn{3}{l}{} &$0$\\ -% \hline -% $x>0$ & $y=0$ &\multicolumn2l{}&$0$\\ -% \cline{2-5} -% & $y>0$ & $ x> y$ & $+$ & $\opMul( x, y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul( y, x)$\\ -% \cline{2-5} -% & $y<0$ & $ x>-y$ & $-$ & $\opMul( x,-y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul(-y, x)$\\ -% \hline -% $x<0$ & $y=0$ &\multicolumn2l{}&$0$\\ -% \cline{2-5} -% & $y>0$ & $-x> y$ & $-$ & $\opMul(-x, y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul( y,-x)$\\ -% \cline{2-5} -% & $y<0$ & $-x>-y$ & $+$ & $\opMul(-x,-y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul(-y,-x)$\\ -% \hline -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\BIC@MulSwitch#1#2!#3#4!{% - \ifcase\BIC@Sgn#1#2! % x = 0 - \BIC@AfterFi{ 0}% - \or % x > 0 - \ifcase\BIC@Sgn#3#4! % y = 0 - \BIC@AfterFiFi{ 0}% - \or % y > 0 - \ifnum\BIC@PosCmp#1#2!#3#4!=1 % x > y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#1#2!#3#4!% - }% - \else % x <= y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#3#4!#1#2!% - }% - \fi - \else % y < 0 - \expandafter-\romannumeral0% - \ifnum\BIC@PosCmp#1#2!#4!=1 % x > -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#1#2!#4!% - }% - \else % x <= -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#4!#1#2!% - }% - \fi - \fi - \else % x < 0 - \ifcase\BIC@Sgn#3#4! % y = 0 - \BIC@AfterFiFi{ 0}% - \or % y > 0 - \expandafter-\romannumeral0% - \ifnum\BIC@PosCmp#2!#3#4!=1 % -x > y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#2!#3#4!% - }% - \else % -x <= y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#3#4!#2!% - }% - \fi - \else % y < 0 - \ifnum\BIC@PosCmp#2!#4!=1 % -x > -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#2!#4!% - }% - \else % -x <= -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#4!#2!% - }% - \fi - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcMul} -% \begin{macrocode} -\def\BigIntCalcMul#1!#2!{% - \romannumeral0% - \BIC@ProcessMul0!#1!#2!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessMul} -% |#1|: result\\ -% |#2|: number $x$\\ -% |#3#4|: number $y$ -% \begin{macrocode} -\def\BIC@ProcessMul#1!#2!#3#4!{% - \ifx\\#4\\% - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@Space - \bigintcalcAdd{\BIC@Tim#2!#3}{#10}% - }% - \else - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@ProcessMul - \bigintcalcAdd{\BIC@Tim#2!#3}{#10}!#2!#4!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Sqr}} -% -% \begin{macro}{\bigintcalcSqr} -% \begin{macrocode} -\def\bigintcalcSqr#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Sqr - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Sqr} -% \begin{macrocode} -\def\BIC@Sqr#1{% - \ifx#1-% - \expandafter\BIC@@Sqr - \else - \expandafter\BIC@@Sqr\expandafter#1% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@Sqr} -% \begin{macrocode} -\def\BIC@@Sqr#1!{% - \BIC@ProcessMul0!#1!#1!% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Fac}} -% -% \begin{macro}{\bigintcalcFac} -% \begin{macrocode} -\def\bigintcalcFac#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Fac - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Fac} -% \begin{macrocode} -\def\BIC@Fac#1#2!{% - \ifx#1-% - \BIC@AfterFi{ 0\BigIntCalcError:FacNegative}% - \else - \ifnum\BIC@PosCmp#1#2!13!<0 % - \ifcase#1#2 % - \BIC@AfterFiFiFi{ 1}% 0! - \or\BIC@AfterFiFiFi{ 1}% 1! - \or\BIC@AfterFiFiFi{ 2}% 2! - \or\BIC@AfterFiFiFi{ 6}% 3! - \or\BIC@AfterFiFiFi{ 24}% 4! - \or\BIC@AfterFiFiFi{ 120}% 5! - \or\BIC@AfterFiFiFi{ 720}% 6! - \or\BIC@AfterFiFiFi{ 5040}% 7! - \or\BIC@AfterFiFiFi{ 40320}% 8! - \or\BIC@AfterFiFiFi{ 362880}% 9! - \or\BIC@AfterFiFiFi{ 3628800}% 10! - \or\BIC@AfterFiFiFi{ 39916800}% 11! - \or\BIC@AfterFiFiFi{ 479001600}% 12! -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \else - \BIC@AfterFiFi{% - \BIC@ProcessFac#1#2!479001600!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessFac} -% |#1|: $n$\\ -% |#2|: result -% \begin{macrocode} -\def\BIC@ProcessFac#1!#2!{% - \ifnum\BIC@PosCmp#1!12!=0 % - \BIC@AfterFi{ #2}% - \else - \BIC@AfterFi{% - \expandafter\BIC@@ProcessFac - \romannumeral0\BIC@ProcessMul0!#2!#1!% - !#1!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@ProcessFac} -% |#1|: result\\ -% |#2|: $n$ -% \begin{macrocode} -\def\BIC@@ProcessFac#1!#2!{% - \expandafter\BIC@ProcessFac - \romannumeral0\BIC@Dec#2!{}% - !#1!% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Pow}} -% -% \begin{macro}{\bigintcalcPow} -% |#1|: basis\\ -% |#2|: power -% \begin{macrocode} -\def\bigintcalcPow#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Pow - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Pow} -% |#1|: basis\\ -% |#2|: power -% \begin{macrocode} -\def\BIC@Pow#1!#2{% - \expandafter\expandafter\expandafter\BIC@PowSwitch - \bigintcalcNum{#2}!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@PowSwitch} -% |#1#2|: power $y$\\ -% |#3#4|: basis $x$\\ -% Decision table for \cs{BIC@PowSwitch}. -% \begin{quote} -% \def\M#1{\multicolumn{#1}{l}{}}% -% \begin{tabular}[t]{@{}|l|l|l|l|@{}} -% \hline -% $y=0$ & \M{2} & $1$\\ -% \hline -% $y=1$ & \M{2} & $x$\\ -% \hline -% $y=2$ & $x<0$ & \M{1} & $\opMul(-x,-x)$\\ -% \cline{2-4} -% & else & \M{1} & $\opMul(x,x)$\\ -% \hline -% $y<0$ & $x=0$ & \M{1} & DivisionByZero\\ -% \cline{2-4} -% & $x=1$ & \M{1} & $1$\\ -% \cline{2-4} -% & $x=-1$ & $\opODD(y)$ & $-1$\\ -% \cline{3-4} -% & & else & $1$\\ -% \cline{2-4} -% & else ($\string|x\string|>1$) & \M{1} & $0$\\ -% \hline -% $y>2$ & $x=0$ & \M{1} & $0$\\ -% \cline{2-4} -% & $x=1$ & \M{1} & $1$\\ -% \cline{2-4} -% & $x=-1$ & $\opODD(y)$ & $-1$\\ -% \cline{3-4} -% & & else & $1$\\ -% \cline{2-4} -% & $x<-1$ ($x<0$) & $\opODD(y)$ & $-\opPow(-x,y)$\\ -% \cline{3-4} -% & & else & $\opPow(-x,y)$\\ -% \cline{2-4} -% & else ($x>1$) & \M{1} & $\opPow(x,y)$\\ -% \hline -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\BIC@PowSwitch#1#2!#3#4!{% - \ifcase\ifx\\#2\\% - \ifx#100 % y = 0 - \else\ifx#111 % y = 1 - \else\ifx#122 % y = 2 - \else4 % y > 2 - \fi\fi\fi - \else - \ifx#1-3 % y < 0 - \else4 % y > 2 - \fi - \fi - \BIC@AfterFi{ 1}% y = 0 - \or % y = 1 - \BIC@AfterFi{ #3#4}% - \or % y = 2 - \ifx#3-% x < 0 - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#4!#4!% - }% - \else % x >= 0 - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#3#4!#3#4!% - }% - \fi - \or % y < 0 - \ifcase\ifx\\#4\\% - \ifx#300 % x = 0 - \else\ifx#311 % x = 1 - \else3 % x > 1 - \fi\fi - \else - \ifcase\BIC@MinusOne#3#4! % - 3 % |x| > 1 - \or - 2 % x = -1 -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \fi - \BIC@AfterFiFi{ 0\BigIntCalcError:DivisionByZero}% x = 0 - \or % x = 1 - \BIC@AfterFiFi{ 1}% x = 1 - \or % x = -1 - \ifcase\BIC@ModTwo#2! % even(y) - \BIC@AfterFiFiFi{ 1}% - \or % odd(y) - \BIC@AfterFiFiFi{ -1}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % |x| > 1 - \BIC@AfterFiFi{ 0}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % y > 2 - \ifcase\ifx\\#4\\% - \ifx#300 % x = 0 - \else\ifx#311 % x = 1 - \else4 % x > 1 - \fi\fi - \else - \ifx#3-% - \ifcase\BIC@MinusOne#3#4! % - 3 % x < -1 - \else - 2 % x = -1 - \fi - \else - 4 % x > 1 - \fi - \fi - \BIC@AfterFiFi{ 0}% x = 0 - \or % x = 1 - \BIC@AfterFiFi{ 1}% x = 1 - \or % x = -1 - \ifcase\BIC@ModTwo#1#2! % even(y) - \BIC@AfterFiFiFi{ 1}% - \or % odd(y) - \BIC@AfterFiFiFi{ -1}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % x < -1 - \ifcase\BIC@ModTwo#1#2! % even(y) - \BIC@AfterFiFiFi{% - \BIC@PowRec#4!#1#2!1!% - }% - \or % odd(y) - \expandafter-\romannumeral0% - \BIC@AfterFiFiFi{% - \BIC@PowRec#4!#1#2!1!% - }% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % x > 1 - \BIC@AfterFiFi{% - \BIC@PowRec#3#4!#1#2!1!% - }% -? \else\BigIntCalcError:ThisCannotHappen% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Help macros} -% -% \begin{macro}{\BIC@ModTwo} -% Macro \cs{BIC@ModTwo} expects a number without sign -% and returns digit |1| or |0| if the number is odd or even. -% \begin{macrocode} -\def\BIC@ModTwo#1#2!{% - \ifx\\#2\\% - \ifodd#1 % - \BIC@AfterFiFi1% - \else - \BIC@AfterFiFi0% - \fi - \else - \BIC@AfterFi{% - \BIC@ModTwo#2!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\BIC@MinusOne} -% Macro \cs{BIC@MinusOne} expects a number and returns -% digit |1| if the number equals minus one and returns |0| otherwise. -% \begin{macrocode} -\def\BIC@MinusOne#1#2!{% - \ifx#1-% - \BIC@@MinusOne#2!% - \else - 0% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@MinusOne} -% \begin{macrocode} -\def\BIC@@MinusOne#1#2!{% - \ifx#11% - \ifx\\#2\\% - 1% - \else - 0% - \fi - \else - 0% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Recursive calculation} -% -% \begin{macro}{\BIC@PowRec} -%\begin{quote} -%\begin{verbatim} -%Pow(x, y) { -% PowRec(x, y, 1) -%} -%PowRec(x, y, r) { -% if y == 1 then -% return r -% else -% ifodd y then -% return PowRec(x*x, y div 2, r*x) % y div 2 = (y-1)/2 -% else -% return PowRec(x*x, y div 2, r) -% fi -% fi -%} -%\end{verbatim} -%\end{quote} -% |#1|: $x$ (basis)\\ -% |#2#3|: $y$ (power)\\ -% |#4|: $r$ (result) -% \begin{macrocode} -\def\BIC@PowRec#1!#2#3!#4!{% - \ifcase\ifx#21\ifx\\#3\\0 \else1 \fi\else1 \fi % y = 1 - \ifnum\BIC@PosCmp#1!#4!=1 % x > r - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#1!#4!% - }% - \else - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#4!#1!% - }% - \fi - \or - \ifcase\BIC@ModTwo#2#3! % even(y) - \BIC@AfterFiFi{% - \expandafter\BIC@@PowRec\romannumeral0% - \BIC@@Shr#2#3!% - !#1!#4!% - }% - \or % odd(y) - \ifnum\BIC@PosCmp#1!#4!=1 % x > r - \BIC@AfterFiFiFi{% - \expandafter\BIC@@@PowRec\romannumeral0% - \BIC@ProcessMul0!#1!#4!% - !#1!#2#3!% - }% - \else - \BIC@AfterFiFiFi{% - \expandafter\BIC@@@PowRec\romannumeral0% - \BIC@ProcessMul0!#1!#4!% - !#1!#2#3!% - }% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@PowRec} -% |#1|: $y/2$\\ -% |#2|: $x$\\ -% |#3|: new $r$ ($r$ or $r*x$) -% \begin{macrocode} -\def\BIC@@PowRec#1!#2!#3!{% - \expandafter\BIC@PowRec\romannumeral0% - \BIC@ProcessMul0!#2!#2!% - !#1!#3!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@@PowRec} -% |#1|: $r*x$ -% |#2|: $x$ -% |#3|: $y$ -% \begin{macrocode} -\def\BIC@@@PowRec#1!#2!#3!{% - \expandafter\BIC@@PowRec\romannumeral0% - \BIC@@Shr#3!% - !#2!#1!% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Div}} -% -% \begin{macro}{\bigintcalcDiv} -% |#1|: $x$\\ -% |#2|: $y$ (divisor) -% \begin{macrocode} -\def\bigintcalcDiv#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Div - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Div} -% |#1|: $x$\\ -% |#2|: $y$ -% \begin{macrocode} -\def\BIC@Div#1!#2{% - \expandafter\expandafter\expandafter\BIC@DivSwitchSign - \bigintcalcNum{#2}!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcDiv} -% \begin{macrocode} -\def\BigIntCalcDiv#1!#2!{% - \romannumeral0% - \BIC@DivSwitchSign#2!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivSwitchSign} -% Decision table for \cs{BIC@DivSwitchSign}. -% \begin{quote} -% \begin{tabular}{@{}|l|l|l|@{}} -% \hline -% $y=0$ & \multicolumn{1}{l}{} & DivisionByZero\\ -% \hline -% $y>0$ & $x=0$ & $0$\\ -% \cline{2-3} -% & $x>0$ & DivSwitch$(+,x,y)$\\ -% \cline{2-3} -% & $x<0$ & DivSwitch$(-,-x,y)$\\ -% \hline -% $y<0$ & $x=0$ & $0$\\ -% \cline{2-3} -% & $x>0$ & DivSwitch$(-,x,-y)$\\ -% \cline{2-3} -% & $x<0$ & DivSwitch$(+,-x,-y)$\\ -% \hline -% \end{tabular} -% \end{quote} -% |#1|: $y$ (divisor)\\ -% |#2|: $x$ -% \begin{macrocode} -\def\BIC@DivSwitchSign#1#2!#3#4!{% - \ifcase\BIC@Sgn#1#2! % y = 0 - \BIC@AfterFi{ 0\BigIntCalcError:DivisionByZero}% - \or % y > 0 - \ifcase\BIC@Sgn#3#4! % x = 0 - \BIC@AfterFiFi{ 0}% - \or % x > 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch{}#3#4!#1#2!% - }% - \else % x < 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch-#4!#1#2!% - }% - \fi - \else % y < 0 - \ifcase\BIC@Sgn#3#4! % x = 0 - \BIC@AfterFiFi{ 0}% - \or % x > 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch-#3#4!#2!% - }% - \else % x < 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch{}#4!#2!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivSwitch} -% Decision table for \cs{BIC@DivSwitch}. -% \begin{quote} -% \begin{tabular}{@{}|l|l|l|@{}} -% \hline -% $y=x$ & \multicolumn{1}{l}{} & sign $1$\\ -% \hline -% $y>x$ & \multicolumn{1}{l}{} & $0$\\ -% \hline -% $y<x$ & $y=1$ & sign $x$\\ -% \cline{2-3} -% & $y=2$ & sign Shr$(x)$\\ -% \cline{2-3} -% & $y=4$ & sign Shr(Shr$(x)$)\\ -% \cline{2-3} -% & else & sign ProcessDiv$(x,y)$\\ -% \hline -% \end{tabular} -% \end{quote} -% |#1|: sign\\ -% |#2|: $x$\\ -% |#3#4|: $y$ ($y\ne 0$) -% \begin{macrocode} -\def\BIC@DivSwitch#1#2!#3#4!{% - \ifcase\BIC@PosCmp#3#4!#2!% y = x - \BIC@AfterFi{ #11}% - \or % y > x - \BIC@AfterFi{ 0}% - \else % y < x - \ifx\\#1\\% - \else - \expandafter-\romannumeral0% - \fi - \ifcase\ifx\\#4\\% - \ifx#310 % y = 1 - \else\ifx#321 % y = 2 - \else\ifx#342 % y = 4 - \else3 % y > 2 - \fi\fi\fi - \else - 3 % y > 2 - \fi - \BIC@AfterFiFi{ #2}% y = 1 - \or % y = 2 - \BIC@AfterFiFi{% - \BIC@@Shr#2!% - }% - \or % y = 4 - \BIC@AfterFiFi{% - \expandafter\BIC@@Shr\romannumeral0% - \BIC@@Shr#2!!% - }% - \or % y > 2 - \BIC@AfterFiFi{% - \BIC@DivStartX#2!#3#4!!!% - }% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessDiv} -% |#1#2|: $x$\\ -% |#3#4|: $y$\\ -% |#5|: collect first digits of $x$\\ -% |#6|: corresponding digits of $y$ -% \begin{macrocode} -\def\BIC@DivStartX#1#2!#3#4!#5!#6!{% - \ifx\\#4\\% - \BIC@AfterFi{% - \BIC@DivStartYii#6#3#4!{#5#1}#2=!% - }% - \else - \BIC@AfterFi{% - \BIC@DivStartX#2!#4!#5#1!#6#3!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivStartYii} -% |#1|: $y$\\ -% |#2|: $x$, |=| -% \begin{macrocode} -\def\BIC@DivStartYii#1!{% - \expandafter\BIC@DivStartYiv\romannumeral0% - \BIC@Shl#1!% - !#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivStartYiv} -% |#1|: $2y$\\ -% |#2|: $y$\\ -% |#3|: $x$, |=| -% \begin{macrocode} -\def\BIC@DivStartYiv#1!{% - \expandafter\BIC@DivStartYvi\romannumeral0% - \BIC@Shl#1!% - !#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivStartYvi} -% |#1|: $4y$\\ -% |#2|: $2y$\\ -% |#3|: $y$\\ -% |#4|: $x$, |=| -% \begin{macrocode} -\def\BIC@DivStartYvi#1!#2!{% - \expandafter\BIC@DivStartYviii\romannumeral0% - \BIC@AddXY#1!#2!!!% - !#1!#2!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivStartYviii} -% |#1|: $6y$\\ -% |#2|: $4y$\\ -% |#3|: $2y$\\ -% |#4|: $y$\\ -% |#5|: $x$, |=| -% \begin{macrocode} -\def\BIC@DivStartYviii#1!#2!{% - \expandafter\BIC@DivStart\romannumeral0% - \BIC@Shl#2!% - !#1!#2!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivStart} -% |#1|: $8y$\\ -% |#2|: $6y$\\ -% |#3|: $4y$\\ -% |#4|: $2y$\\ -% |#5|: $y$\\ -% |#6|: $x$, |=| -% \begin{macrocode} -\def\BIC@DivStart#1!#2!#3!#4!#5!#6!{% - \BIC@ProcessDiv#6!!#5!#4!#3!#2!#1!=% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessDiv} -% |#1#2#3|: $x$, |=|\\ -% |#4|: result\\ -% |#5|: $y$\\ -% |#6|: $2y$\\ -% |#7|: $4y$\\ -% |#8|: $6y$\\ -% |#9|: $8y$ -% \begin{macrocode} -\def\BIC@ProcessDiv#1#2#3!#4!#5!{% - \ifcase\BIC@PosCmp#5!#1!% y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#41}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#41!#5!% - }% - \fi - \or % y > #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#40}}% - \else - \ifx\\#4\\% - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv{#1#2}#3!!#5!% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv{#1#2}#3!#40!#5!% - }% - \fi - \fi - \else % y < #1 - \BIC@AfterFi{% - \BIC@@ProcessDiv{#1}#2#3!#4!#5!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivCleanup} -% |#1|: result\\ -% |#2|: garbage -% \begin{macrocode} -\def\BIC@DivCleanup#1#2={ #1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@@ProcessDiv} -% \begin{macrocode} -\def\BIC@@ProcessDiv#1#2#3!#4!#5!#6!#7!{% - \ifcase\BIC@PosCmp#7!#1!% 4y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#44}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#44!#5!#6!#7!% - }% - \fi - \or % 4y > #1 - \ifcase\BIC@PosCmp#6!#1!% 2y = #1 - \ifx#2=% - \BIC@AfterFiFiFi{\BIC@DivCleanup{#42}}% - \else - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv#2#3!#42!#5!#6!#7!% - }% - \fi - \or % 2y > #1 - \ifx#2=% - \BIC@AfterFiFiFi{\BIC@DivCleanup{#41}}% - \else - \BIC@AfterFiFiFi{% - \BIC@DivSub#1!#5!#2#3!#41!#5!#6!#7!% - }% - \fi - \else % 2y < #1 - \BIC@AfterFiFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#6!!!% - !#2#3!#4!#5!23% - #6!#7!% - }% - \fi - \else % 4y < #1 - \BIC@AfterFi{% - \BIC@@@ProcessDiv{#1}#2#3!#4!#5!#6!#7!% - }% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@DivSub} -% Next token group: |#1|-|#2| and next digit |#3|. -% \begin{macrocode} -\def\BIC@DivSub#1!#2!#3{% - \expandafter\BIC@ProcessDiv\expandafter{% - \romannumeral0% - \BIC@SubXY#1!#2!!!% - #3% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessDivII} -% |#1|: $x'-2y$\\ -% |#2#3|: remaining $x$, |=|\\ -% |#4|: result\\ -% |#5|: $y$\\ -% |#6|: first possible result digit\\ -% |#7|: second possible result digit -% \begin{macrocode} -\def\BIC@ProcessDivII#1!#2#3!#4!#5!#6#7{% - \ifcase\BIC@PosCmp#5!#1!% y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#4#7}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#4#7!#5!% - }% - \fi - \or % y > #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#4#6}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv{#1#2}#3!#4#6!#5!% - }% - \fi - \else % y < #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#4#7}}% - \else - \BIC@AfterFiFi{% - \BIC@DivSub#1!#5!#2#3!#4#7!#5!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ProcessDivIV} -% |#1#2#3|: $x$, |=|, $x>4y$\\ -% |#4|: result\\ -% |#5|: $y$\\ -% |#6|: $2y$\\ -% |#7|: $4y$\\ -% |#8|: $6y$\\ -% |#9|: $8y$ -% \begin{macrocode} -\def\BIC@@@ProcessDiv#1#2#3!#4!#5!#6!#7!#8!#9!{% - \ifcase\BIC@PosCmp#8!#1!% 6y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#46}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#46!#5!#6!#7!#8!#9!% - }% - \fi - \or % 6y > #1 - \BIC@AfterFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#7!!!% - !#2#3!#4!#5!45% - #6!#7!#8!#9!% - }% - \else % 6y < #1 - \ifcase\BIC@PosCmp#9!#1!% 8y = #1 - \ifx#2=% - \BIC@AfterFiFiFi{\BIC@DivCleanup{#48}}% - \else - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv#2#3!#48!#5!#6!#7!#8!#9!% - }% - \fi - \or % 8y > #1 - \BIC@AfterFiFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#8!!!% - !#2#3!#4!#5!67% - #6!#7!#8!#9!% - }% - \else % 8y < #1 - \BIC@AfterFiFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#9!!!% - !#2#3!#4!#5!89% - #6!#7!#8!#9!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\op{Mod}} -% -% \begin{macro}{\bigintcalcMod} -% |#1|: $x$\\ -% |#2|: $y$ -% \begin{macrocode} -\def\bigintcalcMod#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Mod - \bigintcalcNum{#1}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@Mod} -% |#1|: $x$\\ -% |#2|: $y$ -% \begin{macrocode} -\def\BIC@Mod#1!#2{% - \expandafter\expandafter\expandafter\BIC@ModSwitchSign - \bigintcalcNum{#2}!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BigIntCalcMod} -% \begin{macrocode} -\def\BigIntCalcMod#1!#2!{% - \romannumeral0% - \BIC@ModSwitchSign#2!#1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ModSwitchSign} -% Decision table for \cs{BIC@ModSwitchSign}. -% \begin{quote} -% \begin{tabular}{@{}|l|l|l|@{}} -% \hline -% $y=0$ & \multicolumn{1}{l}{} & DivisionByZero\\ -% \hline -% $y>0$ & $x=0$ & $0$\\ -% \cline{2-3} -% & else & ModSwitch$(+,x,y)$\\ -% \hline -% $y<0$ & \multicolumn{1}{l}{} & ModSwitch$(-,-x,-y)$\\ -% \hline -% \end{tabular} -% \end{quote} -% |#1#2|: $y$\\ -% |#3#4|: $x$ -% \begin{macrocode} -\def\BIC@ModSwitchSign#1#2!#3#4!{% - \ifcase\ifx\\#2\\% - \ifx#100 % y = 0 - \else1 % y > 0 - \fi - \else - \ifx#1-2 % y < 0 - \else1 % y > 0 - \fi - \fi - \BIC@AfterFi{ 0\BigIntCalcError:DivisionByZero}% - \or % y > 0 - \ifcase\ifx\\#4\\\ifx#300 \else1 \fi\else1 \fi % x = 0 - \BIC@AfterFiFi{ 0}% - \else - \BIC@AfterFiFi{% - \BIC@ModSwitch{}#3#4!#1#2!% - }% - \fi - \else % y < 0 - \ifcase\ifx\\#4\\% - \ifx#300 % x = 0 - \else1 % x > 0 - \fi - \else - \ifx#3-2 % x < 0 - \else1 % x > 0 - \fi - \fi - \BIC@AfterFiFi{ 0}% - \or % x > 0 - \BIC@AfterFiFi{% - \BIC@ModSwitch--#3#4!#2!% - }% - \else % x < 0 - \BIC@AfterFiFi{% - \BIC@ModSwitch-#4!#2!% - }% - \fi - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ModSwitch} -% Decision table for \cs{BIC@ModSwitch}. -% \begin{quote} -% \begin{tabular}{@{}|l|l|l|@{}} -% \hline -% $y=1$ & \multicolumn{1}{l}{} & $0$\\ -% \hline -% $y=2$ & ifodd$(x)$ & sign $1$\\ -% \cline{2-3} -% & else & $0$\\ -% \hline -% $y>2$ & $x<0$ & -% $z\leftarrow x-(x/y)*y;\quad (z<0)\mathbin{?}z+y\mathbin{:}z$\\ -% \cline{2-3} -% & $x>0$ & $x - (x/y) * y$\\ -% \hline -% \end{tabular} -% \end{quote} -% |#1|: sign\\ -% |#2#3|: $x$\\ -% |#4#5|: $y$ -% \begin{macrocode} -\def\BIC@ModSwitch#1#2#3!#4#5!{% - \ifcase\ifx\\#5\\% - \ifx#410 % y = 1 - \else\ifx#421 % y = 2 - \else2 % y > 2 - \fi\fi - \else2 % y > 2 - \fi - \BIC@AfterFi{ 0}% y = 1 - \or % y = 2 - \ifcase\BIC@ModTwo#2#3! % even(x) - \BIC@AfterFiFi{ 0}% - \or % odd(x) - \BIC@AfterFiFi{ #11}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % y > 2 - \ifx\\#1\\% - \else - \expandafter\BIC@Space\romannumeral0% - \expandafter\BIC@ModMinus\romannumeral0% - \fi - \ifx#2-% x < 0 - \BIC@AfterFiFi{% - \expandafter\expandafter\expandafter\BIC@ModX - \bigintcalcSub{#2#3}{% - \bigintcalcMul{#4#5}{\bigintcalcDiv{#2#3}{#4#5}}% - }!#4#5!% - }% - \else % x > 0 - \BIC@AfterFiFi{% - \expandafter\expandafter\expandafter\BIC@Space - \bigintcalcSub{#2#3}{% - \bigintcalcMul{#4#5}{\bigintcalcDiv{#2#3}{#4#5}}% - }% - }% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ModMinus} -% \begin{macrocode} -\def\BIC@ModMinus#1{% - \ifx#10% - \BIC@AfterFi{ 0}% - \else - \BIC@AfterFi{ -#1}% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\BIC@ModX} -% |#1#2|: $z$\\ -% |#3|: $x$ -% \begin{macrocode} -\def\BIC@ModX#1#2!#3!{% - \ifx#1-% z < 0 - \BIC@AfterFi{% - \expandafter\BIC@Space\romannumeral0% - \BIC@SubXY#3!#2!!!% - }% - \else % z >= 0 - \BIC@AfterFi{ #1#2}% - \BIC@Fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\BIC@AtEnd% -% \end{macrocode} -% -% \begin{macrocode} -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{bigintcalc}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/bigintcalc.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/bigintcalc.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex bigintcalc.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% bigintcalc.sty & tex/generic/oberdiek/bigintcalc.sty\\ -% bigintcalc.pdf & doc/latex/oberdiek/bigintcalc.pdf\\ -% bigintcalc.dtx & source/latex/oberdiek/bigintcalc.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{bigintcalc.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex bigintcalc.dtx -%makeindex -s gind.ist bigintcalc.idx -%pdflatex bigintcalc.dtx -%makeindex -s gind.ist bigintcalc.idx -%pdflatex bigintcalc.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2007/09/27 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2007/11/11 v1.1} -% \item -% Use of package \xpackage{pdftexcmds} for \LuaTeX\ support. -% \end{Version} -% \begin{Version}{2011/01/30 v1.2} -% \item -% Already loaded package files are not input in \hologo{plainTeX}. -% \end{Version} -% \begin{Version}{2012/04/08 v1.3} -% \item -% Fix: \xpackage{pdftexcmds} wasn't loaded in case of \hologo{LaTeX}. -% \end{Version} -% \begin{Version}{2016/05/16 v1.4} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/etexcmds.dtx b/Master/texmf-dist/source/latex/oberdiek/etexcmds.dtx deleted file mode 100644 index 236169a3af9..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/etexcmds.dtx +++ /dev/null @@ -1,730 +0,0 @@ -% \iffalse meta-comment -% -% File: etexcmds.dtx -% Version: 2016/05/16 v1.6 -% Info: Avoid name clashes with e-TeX commands -% -% Copyright (C) -% 2007, 2010, 2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 etexcmds.dtx -% and the derived files -% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv, -% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex, -% etexcmds-test4.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/etexcmds.dtx -% CTAN:macros/latex/contrib/oberdiek/etexcmds.pdf -% -% Unpacking: -% (a) If etexcmds.ins is present: -% tex etexcmds.ins -% (b) Without etexcmds.ins: -% tex etexcmds.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{etexcmds.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If etexcmds.drv is present: -% latex etexcmds.drv -% (b) Without etexcmds.drv: -% latex etexcmds.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex etexcmds.dtx -% makeindex -s gind.ist etexcmds.idx -% pdflatex etexcmds.dtx -% makeindex -s gind.ist etexcmds.idx -% pdflatex etexcmds.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/etexcmds.sty -% TDS:doc/latex/oberdiek/etexcmds.pdf -% TDS:source/latex/oberdiek/etexcmds.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: etexcmds -Version: 2016/05/16 v1.6 - -Copyright (C) - 2007, 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/oberdiek/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 etexcmds.dtx -and the derived files - etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv, - etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex, - etexcmds-test4.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{etexcmds.ins}{\from{etexcmds.dtx}{install}}% - \file{etexcmds.drv}{\from{etexcmds.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{etexcmds.sty}{\from{etexcmds.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{etexcmds-test1.tex}{\from{etexcmds.dtx}{test1}}% -% \file{etexcmds-test2.tex}{\from{etexcmds.dtx}{test2}}% -% \file{etexcmds-test3.tex}{\from{etexcmds.dtx}{test3}}% -% \file{etexcmds-test4.tex}{\from{etexcmds.dtx}{test4}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* etexcmds.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `etexcmds.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{etexcmds.drv}% - [2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{etexcmds.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{etexcmds.drv} -% -% \title{The \xpackage{etexcmds} package} -% \date{2016/05/16 v1.6} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% New primitive commands are introduced in \eTeX. Sometimes the -% names collide with existing macros. This package solves this -% name clashes by adding a prefix to \eTeX's commands. For example, -% \eTeX's \cs{unexpanded} is provided as \cs{etex@unexpanded}. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \subsection{\cs{unexpanded}} -% -% \begin{declcs}{etex@unexpanded} -% \end{declcs} -% New primitive commands are introduced in \eTeX. Unhappily -% \cs{unexpanded} collides with a macro in Con\TeX t with the -% same name. This also affects the \LaTeX\ world. For example, -% package \xpackage{m-ch-de} loads \xfile{base/syst-gen.tex} -% that redefines \cs{unexpanded}. Thus this package defines -% \cs{etex@unexpanded} to get rid of the name clash. -% -% \begin{declcs}{ifetex@unexpanded} -% \end{declcs} -% Package \xpackage{etexcmds} can be loaded even if \eTeX\ is not -% present or \cs{unexpanded} cannot be found. The switch -% \cs{ifetex@unexpanded} tells whether it is safe to use -% \cs{etex@unexpanded}. -% The switch is true (\cs{iftrue}) only if the -% primitive \cs{unexpanded} has been found and \cs{etex@unexpanded} -% is available. -% -% \subsection{\cs{expanded}} -% -% Probably \cs{expanded} will be added in \pdfTeX\ 1.50 and -% \LuaTeX. Again Con\TeX t defines this as macro. -% Therefore version 1.2 of this packages also provides -% \cs{etex@expanded} and \cs{ifetex@unexpanded}. -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Reload check and package identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@etexcmds.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{etexcmds}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@etexcmds.sty\endcsname -\ProvidesPackage{etexcmds}% - [2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname etexcmds@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\etexcmds@AtEnd{% - \etexcmds@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\etexcmds@AtEnd{% - \etexcmds@AtEnd - \escapechar\the\escapechar\relax - \noexpand\endinput -} -\escapechar=92 % backslash -% \end{macrocode} -% -% \subsection{Provide \cs{newif}} -% -% \begin{macro}{\etexcmds@newif} -% \begin{macrocode} -\def\etexcmds@newif#1{% - \expandafter\edef\csname etex@#1false\endcsname{% - \let - \expandafter\noexpand\csname ifetex@#1\endcsname - \noexpand\iffalse - }% - \expandafter\edef\csname etex@#1true\endcsname{% - \let - \expandafter\noexpand\csname ifetex@#1\endcsname - \noexpand\iftrue - }% - \csname etex@#1false\endcsname -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Load package \xpackage{infwarerr}} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{infwarerr}[2007/09/09]% - \TMP@RequirePackage{ifluatex}[2010/03/01]% -\else - \RequirePackage{infwarerr}[2007/09/09]% - \RequirePackage{ifluatex}[2010/03/01]% -\fi -% \end{macrocode} -% -% \subsection{\cs{unexpanded}} -% -% \begin{macro}{\ifetex@unexpanded} -% \begin{macrocode} -\etexcmds@newif{unexpanded} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\etex@unexpanded} -% \begin{macrocode} -\begingroup -\edef\x{\string\unexpanded}% -\edef\y{\meaning\unexpanded}% -\ifx\x\y - \endgroup - \let\etex@unexpanded\unexpanded - \etex@unexpandedtrue -\else - \edef\y{\meaning\normalunexpanded}% - \ifx\x\y - \endgroup - \let\etex@unexpanded\normalunexpanded - \etex@unexpandedtrue - \else - \edef\y{\meaning\@@unexpanded}% - \ifx\x\y - \endgroup - \let\etex@unexpanded\@@unexpanded - \etex@unexpandedtrue - \else - \ifluatex - \ifnum\luatexversion<36 % - \else - \begingroup - \directlua{% - tex.enableprimitives('etex@',{'unexpanded'})% - }% - \global\let\etex@unexpanded\etex@unexpanded - \endgroup - \fi - \fi - \edef\y{\meaning\etex@unexpanded}% - \ifx\x\y - \endgroup - \etex@unexpandedtrue - \else - \endgroup - \@PackageInfoNoLine{etexcmds}{% - Could not find \string\unexpanded.\MessageBreak - That can mean that you are not using e-TeX or% - \MessageBreak - that some package has redefined \string\unexpanded.% - \MessageBreak - In the latter case, load this package earlier% - }% - \etex@unexpandedfalse - \fi - \fi - \fi -\fi -% \end{macrocode} -% \end{macro} -% -% \subsection{\cs{expanded}} -% -% \begin{macro}{\ifetex@expanded} -% \begin{macrocode} -\etexcmds@newif{expanded} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\etex@expanded} -% \begin{macrocode} -\begingroup -\edef\x{\string\expanded}% -\edef\y{\meaning\expanded}% -\ifx\x\y - \endgroup - \let\etex@expanded\expanded - \etex@expandedtrue -\else - \edef\y{\meaning\normalexpanded}% - \ifx\x\y - \endgroup - \let\etex@expanded\normalexpanded - \etex@expandedtrue - \else - \edef\y{\meaning\@@expanded}% - \ifx\x\y - \endgroup - \let\etex@expanded\@@expanded - \etex@expandedtrue - \else - \ifluatex - \ifnum\luatexversion<36 % - \else - \begingroup - \directlua{% - tex.enableprimitives('etex@',{'expanded'})% - }% - \global\let\etex@expanded\etex@expanded - \endgroup - \fi - \fi - \edef\y{\meaning\etex@expanded}% - \ifx\x\y - \endgroup - \etex@expandedtrue - \else - \endgroup - \@PackageInfoNoLine{etexcmds}{% - Could not find \string\expanded.\MessageBreak - That can mean that you are not using pdfTeX 1.50 or% - \MessageBreak - that some package has redefined \string\expanded.% - \MessageBreak - In the latter case, load this package earlier% - }% - \etex@expandedfalse - \fi - \fi - \fi -\fi -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\etexcmds@AtEnd% -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{etexcmds}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/etexcmds.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/etexcmds.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex etexcmds.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% etexcmds.sty & tex/generic/oberdiek/etexcmds.sty\\ -% etexcmds.pdf & doc/latex/oberdiek/etexcmds.pdf\\ -% etexcmds.dtx & source/latex/oberdiek/etexcmds.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{etexcmds.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex etexcmds.dtx -%makeindex -s gind.ist etexcmds.idx -%pdflatex etexcmds.dtx -%makeindex -s gind.ist etexcmds.idx -%pdflatex etexcmds.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2007/05/06 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2007/09/09 v1.1} -% \item -% Documentation for \cs{ifetex@unexpanded} added. -% \item -% Catcode section rewritten. -% \end{Version} -% \begin{Version}{2007/12/12 v1.2} -% \item -% \cs{etex@expanded} added. -% \end{Version} -% \begin{Version}{2010/01/28 v1.3} -% \item -% Compatibility to \hologo{iniTeX} added. -% \end{Version} -% \begin{Version}{2011/01/30 v1.4} -% \item -% Already loaded package files are not input in \hologo{plainTeX}. -% \end{Version} -% \begin{Version}{2011/02/16 v1.5} -% \item -% Using \hologo{LuaTeX}'s \texttt{tex.enableprimitives} if available. -% \end{Version} -% \begin{Version}{2016/05/16 v1.6} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/gettitlestring.dtx b/Master/texmf-dist/source/latex/oberdiek/gettitlestring.dtx deleted file mode 100644 index 724ed7fecc4..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/gettitlestring.dtx +++ /dev/null @@ -1,811 +0,0 @@ -% \iffalse meta-comment -% -% File: gettitlestring.dtx -% Version: 2016/05/16 v1.5 -% Info: Cleanup title references -% -% Copyright (C) -% 2009, 2010 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 gettitlestring.dtx -% and the derived files -% gettitlestring.sty, gettitlestring.pdf, gettitlestring.ins, -% gettitlestring.drv, gettitlestring-test1.tex, -% gettitlestring-test2.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/gettitlestring.dtx -% CTAN:macros/latex/contrib/oberdiek/gettitlestring.pdf -% -% Unpacking: -% (a) If gettitlestring.ins is present: -% tex gettitlestring.ins -% (b) Without gettitlestring.ins: -% tex gettitlestring.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{gettitlestring.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If gettitlestring.drv is present: -% latex gettitlestring.drv -% (b) Without gettitlestring.drv: -% latex gettitlestring.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex gettitlestring.dtx -% makeindex -s gind.ist gettitlestring.idx -% pdflatex gettitlestring.dtx -% makeindex -s gind.ist gettitlestring.idx -% pdflatex gettitlestring.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/gettitlestring.sty -% TDS:doc/latex/oberdiek/gettitlestring.pdf -% TDS:source/latex/oberdiek/gettitlestring.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: gettitlestring -Version: 2016/05/16 v1.5 - -Copyright (C) - 2009, 2010 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/oberdiek/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 gettitlestring.dtx -and the derived files - gettitlestring.sty, gettitlestring.pdf, gettitlestring.ins, - gettitlestring.drv, gettitlestring-test1.tex, - gettitlestring-test2.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{gettitlestring.ins}{\from{gettitlestring.dtx}{install}}% - \file{gettitlestring.drv}{\from{gettitlestring.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{gettitlestring.sty}{\from{gettitlestring.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{gettitlestring-test1.tex}{\from{gettitlestring.dtx}{test1}}% -% \file{gettitlestring-test2.tex}{\from{gettitlestring.dtx}{test2}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* gettitlestring.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `gettitlestring.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{gettitlestring.drv}% - [2016/05/16 v1.5 Cleanup title references (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{gettitlestring.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{gettitlestring.drv} -% -% \title{The \xpackage{gettitlestring} package} -% \date{2016/05/16 v1.5} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% The \LaTeX\ package addresses packages that are dealing with -% references to titles (\cs{section}, \cs{caption}, \dots). -% The package tries to remove \cs{label} and other -% commands from title strings. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \subsection{Macros} -% -% \begin{declcs}{GetTitleStringSetup} \M{key value list} -% \end{declcs} -% The options are given as comma separated key value pairs. -% See section \ref{sec:options}. -% -% \begin{declcs}{GetTitleString} \M{text}\\ -% \cs{GetTitleStringExpand} \M{text}\\ -% \cs{GetTitleStringNonExpand} \M{text} -% \end{declcs} -% Macro \cs{GetTitleString} tries to remove unwanted stuff from \meta{text} -% the result is stored in Macro \cs{GetTitleStringResult}. -% Two methods are available: -% \begin{description} -% \item[\cs{GetTitleStringExpand}:] -% The \meta{text} is expanded in a context where the unwanted -% macros are redefined to remove themselves. -% This is the method used in packages \xpackage{titleref}~\cite{titleref}, -% \xpackage{zref-titleref}~\cite{zref} -% or class \xclass{memoir}~\cite{memoir}. -% \cs{protect} is supported, but fragile material might break. -% \item[\cs{GetTitleStringNonExpand}:] -% The \meta{text} is not expanded. Thus the removal of unwanted -% material is more difficult. It is especially removed at the -% start of the \meta{text} and spaces are removed from the end. -% Currently only \cs{label} is removed in the whole string, -% if it is not hidden inside curly braces or part of macro -% definitions. Thus the removal of unwanted stuff might not be -% complete, but fragile material will not break. -% (But the result string can break at a later time, of course). -% \end{description} -% Option \xoption{expand} controls which method is used by -% macro \cs{GetTitleString}. -% -% \begin{declcs}{GetTitleStringDisableCommands} \M{code} -% \end{declcs} -% The \meta{code} is called right before the -% text is expanded in \cs{GetTitleStringExpand}. -% Additional definitions can be given for macros that -% should be removed. -% Keep in mind that expansion means that the definitions -% must work in expandable context. Macros like -% \cs{@ifstar} or \cs{@ifnextchar} or optional arguments -% will not work. The macro names in \meta{code} may contain -% the at sign |@|, it has catcode 11 (letter). -% -% \subsection{Options}\label{sec:options} -% -% \begin{description} -% \item[\xoption{expand}:] Boolean option, takes values |true| or |false|. -% No value means |true|. The option specifies the method to remove -% unwanted stuff from the title string, see below. -% \end{description} -% Options can be set at the following places: -% \begin{itemize} -% \item \cs{usepackage} -% \item Configuration file \xfile{gettitlestring.cfg}. -% \item \cs{GetTitleStringSetup} -% \end{itemize} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% \begin{macrocode} -%<*package> -% \end{macrocode} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@gettitlestring.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{gettitlestring}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@gettitlestring.sty\endcsname -\ProvidesPackage{gettitlestring}% - [2016/05/16 v1.5 Cleanup title references (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname GTS@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\GTS@AtEnd{% - \GTS@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\GTS@AtEnd{\GTS@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{Options} -% -% \begin{macrocode} -\RequirePackage{kvoptions}[2009/07/17] -\SetupKeyvalOptions{% - family=gettitlestring,% - prefix=GTS@% -} -\newcommand*{\GetTitleStringSetup}{% - \setkeys{gettitlestring}% -} -\DeclareBoolOption{expand} -\InputIfFileExists{gettitlestring.cfg}{}{} -\ProcessKeyvalOptions*\relax -% \end{macrocode} -% -% \subsection{\cs{GetTitleString}} -% -% \begin{macro}{\GetTitleString} -% \begin{macrocode} -\newcommand*{\GetTitleString}{% - \ifGTS@expand - \expandafter\GetTitleStringExpand - \else - \expandafter\GetTitleStringNonExpand - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\GetTitleStringExpand} -% \begin{macrocode} -\newcommand{\GetTitleStringExpand}[1]{% - \def\GetTitleStringResult{#1}% - \begingroup - \GTS@DisablePredefinedCmds - \GTS@DisableHook - \edef\x{\endgroup - \noexpand\def\noexpand\GetTitleStringResult{% - \GetTitleStringResult - }% - }% - \x -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\GetTitleString} -% \begin{macrocode} -\newcommand{\GetTitleStringNonExpand}[1]{% - \def\GetTitleStringResult{#1}% - \global\let\GTS@GlobalString\GetTitleStringResult - \begingroup - \GTS@RemoveLeft - \GTS@RemoveRight - \endgroup - \let\GetTitleStringResult\GTS@GlobalString -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Expand method} -% -% \begin{macro}{\GTS@DisablePredefinedCmds} -% \begin{macrocode} -\def\GTS@DisablePredefinedCmds{% - \let\label\@gobble - \let\zlabel\@gobble - \let\zref@label\@gobble - \let\zref@labelbylist\@gobbletwo - \let\zref@labelbyprops\@gobbletwo - \let\index\@gobble - \let\glossary\@gobble - \let\markboth\@gobbletwo - \let\@mkboth\@gobbletwo - \let\markright\@gobble - \let\phantomsection\@empty - \def\addcontentsline{\expandafter\@gobble\@gobbletwo}% - \let\raggedright\@empty - \let\raggedleft\@empty - \let\centering\@empty - \let\protect\@unexpandable@protect - \let\enit@format\@empty % package enumitem -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\GTS@DisableHook} -% \begin{macrocode} -\providecommand*{\GTS@DisableHook}{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\GetTitleStringDisableCommands} -% \begin{macrocode} -\def\GetTitleStringDisableCommands{% - \begingroup - \makeatletter - \GTS@DisableCommands -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\GTS@DisableCommands} -% \begin{macrocode} -\long\def\GTS@DisableCommands#1{% - \toks0=\expandafter{\GTS@DisableHook}% - \toks2={#1}% - \xdef\GTS@GlobalString{\the\toks0 \the\toks2}% - \endgroup - \let\GTS@DisableHook\GTS@GlobalString -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Non-expand method} -% -% \begin{macrocode} -\def\GTS@RemoveLeft{% - \toks@\expandafter\expandafter\expandafter{% - \expandafter\GTS@Car\GTS@GlobalString{}{}{}{}\GTS@Nil - }% - \edef\GTS@Token{\the\toks@}% - \GTS@PredefinedLeftCmds - \expandafter\futurelet\expandafter\GTS@Token - \expandafter\GTS@TestLeftSpace\GTS@GlobalString\GTS@Nil - \GTS@End -} -\def\GTS@End{} -\long\def\GTS@TestLeft#1#2{% - \def\GTS@temp{#1}% - \ifx\GTS@temp\GTS@Token - \toks@\expandafter\expandafter\expandafter{% - \expandafter#2\GTS@GlobalString\GTS@Nil - }% - \expandafter\GTS@TestLeftEnd - \fi -} -\long\def\GTS@TestLeftEnd#1\GTS@End{% - \xdef\GTS@GlobalString{\the\toks@}% - \GTS@RemoveLeft -} -\long\def\GTS@Car#1#2\GTS@Nil{#1} -\long\def\GTS@Cdr#1#2\GTS@Nil{#2} -\long\def\GTS@CdrTwo#1#2#3\GTS@Nil{#3} -\long\def\GTS@CdrThree#1#2#3#4\GTS@Nil{#4} -\long\def\GTS@CdrFour#1#2#3#4#5\GTS@Nil{#5} -\long\def\GTS@TestLeftSpace#1\GTS@Nil{% - \ifx\GTS@Token\@sptoken - \toks@\expandafter{% - \romannumeral-0\GTS@GlobalString - }% - \expandafter\GTS@TestLeftEnd - \fi -} -% \end{macrocode} -% \begin{macro}{\GTS@PredefinedLeftCmds} -% \begin{macrocode} -\def\GTS@PredefinedLeftCmds{% - \GTS@TestLeft\Hy@phantomsection\GTS@Cdr - \GTS@TestLeft\Hy@SectionAnchor\GTS@Cdr - \GTS@TestLeft\Hy@SectionAnchorHref\GTS@CdrTwo - \GTS@TestLeft\label\GTS@CdrTwo - \GTS@TestLeft\zlabel\GTS@CdrTwo - \GTS@TestLeft\index\GTS@CdrTwo - \GTS@TestLeft\glossary\GTS@CdrTwo - \GTS@TestLeft\markboth\GTS@CdrThree - \GTS@TestLeft\@mkboth\GTS@CdrThree - \GTS@TestLeft\addcontentsline\GTS@CdrFour - \GTS@TestLeft\enit@format\GTS@Cdr % package enumitem -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\def\GTS@RemoveRight{% - \toks@{}% - \expandafter\GTS@TestRightLabel\GTS@GlobalString - \label{}\GTS@Nil\@nil - \GTS@RemoveRightSpace -} -\begingroup - \def\GTS@temp#1{\endgroup - \def\GTS@RemoveRightSpace{% - \expandafter\GTS@TestRightSpace\GTS@GlobalString - \GTS@Nil#1\GTS@Nil\@nil - }% - }% -\GTS@temp{ } -\def\GTS@TestRightSpace#1 \GTS@Nil#2\@nil{% - \ifx\relax#2\relax - \else - \gdef\GTS@GlobalString{#1}% - \expandafter\GTS@RemoveRightSpace - \fi -} -\def\GTS@TestRightLabel#1\label#2#3\GTS@Nil#4\@nil{% - \def\GTS@temp{#3}% - \ifx\GTS@temp\@empty - \expandafter\gdef\expandafter\GTS@GlobalString\expandafter{% - \the\toks@ - #1% - }% - \expandafter\@gobble - \else - \expandafter\@firstofone - \fi - {% - \toks@\expandafter{\the\toks@#1}% - \GTS@TestRightLabel#3\GTS@Nil\@nil - }% -} -% \end{macrocode} -% -% \begin{macrocode} -\GTS@AtEnd% -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{gettitlestring}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/gettitlestring.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/gettitlestring.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex gettitlestring.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% gettitlestring.sty & tex/generic/oberdiek/gettitlestring.sty\\ -% gettitlestring.pdf & doc/latex/oberdiek/gettitlestring.pdf\\ -% gettitlestring.dtx & source/latex/oberdiek/gettitlestring.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{gettitlestring.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex gettitlestring.dtx -%makeindex -s gind.ist gettitlestring.idx -%pdflatex gettitlestring.dtx -%makeindex -s gind.ist gettitlestring.idx -%pdflatex gettitlestring.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% -% \bibitem{memoir} -% Peter Wilson, Lars Madsen: -% \textit{The Memoir Class}; -% 2009/11/17 v1.61803398c; -% \CTANpkg{memoir} -% -% \bibitem{titleref} -% Donald Arsenau: -% \textit{Titleref.sty}; -% 2001/04/05 ver 3.1; -% \CTANpkg{titleref} -% -% \bibitem{zref} -% Heiko Oberdiek: -% \textit{The \xpackage{zref} package}; -% 2009/12/08 v2.7; -% \CTANpkg{zref} -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2009/12/08 v1.0} -% \item -% The first version. -% \end{Version} -% \begin{Version}{2009/12/12 v1.1} -% \item -% Short info shortened. -% \end{Version} -% \begin{Version}{2009/12/13 v1.2} -% \item -% Forgotten third argument for \cs{InputIfFileExists} added. -% \end{Version} -% \begin{Version}{2009/12/18 v1.3} -% \item -% \cs{Hy@SectionAnchorHref} added for filtering -% (hyperref 2009/12/18 v6.79w). -% \end{Version} -% \begin{Version}{2010/12/03 v1.4} -% \item -% Support of package \xpackage{enumitem}: removing -% \cs{enit@format} from title string (problem report by GL). -% \end{Version} -% \begin{Version}{2016/05/16 v1.5} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/hycolor.dtx b/Master/texmf-dist/source/latex/oberdiek/hycolor.dtx deleted file mode 100644 index d55a7091537..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/hycolor.dtx +++ /dev/null @@ -1,1624 +0,0 @@ -% \iffalse meta-comment -% -% File: hycolor.dtx -% Version: 2016/05/16 v1.8 -% Info: Color options for hyperref/bookmark -% -% Copyright (C) -% 2007-2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/issues -% -% This work consists of the main source file hycolor.dtx -% and the derived files -% hycolor.sty, hycolor.pdf, hycolor.ins, hycolor.drv, -% xcolor-patch.sty, hycolor-test1.tex, hycolor-test2.tex, -% hycolor-test3.tex, hycolor-test-xcol1.tex, -% hycolor-test-xcol2.tex, hycolor-test-xcol3.tex, -% hycolor-test-xcol4.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/hycolor.dtx -% CTAN:macros/latex/contrib/oberdiek/hycolor.pdf -% -% Unpacking: -% (a) If hycolor.ins is present: -% tex hycolor.ins -% (b) Without hycolor.ins: -% tex hycolor.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{hycolor.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If hycolor.drv is present: -% latex hycolor.drv -% (b) Without hycolor.drv: -% latex hycolor.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex hycolor.dtx -% makeindex -s gind.ist hycolor.idx -% pdflatex hycolor.dtx -% makeindex -s gind.ist hycolor.idx -% pdflatex hycolor.dtx -% -% Installation: -% TDS:tex/latex/oberdiek/hycolor.sty -% TDS:tex/latex/oberdiek/xcolor-patch.sty -% TDS:doc/latex/oberdiek/hycolor.pdf -% TDS:source/latex/oberdiek/hycolor.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: hycolor -Version: 2016/05/16 v1.8 - -Copyright (C) - 2007-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/oberdiek/issues - - -This work consists of the main source file hycolor.dtx -and the derived files - hycolor.sty, hycolor.pdf, hycolor.ins, hycolor.drv, - xcolor-patch.sty, hycolor-test1.tex, hycolor-test2.tex, - hycolor-test3.tex, hycolor-test-xcol1.tex, - hycolor-test-xcol2.tex, hycolor-test-xcol3.tex, - hycolor-test-xcol4.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{hycolor.ins}{\from{hycolor.dtx}{install}}% - \file{hycolor.drv}{\from{hycolor.dtx}{driver}}% - \usedir{tex/latex/oberdiek}% - \file{hycolor.sty}{\from{hycolor.dtx}{package}}% - \file{xcolor-patch.sty}{\from{hycolor.dtx}{xcolor}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{hycolor-test1.tex}{\from{hycolor.dtx}{test,test1}}% -% \file{hycolor-test2.tex}{\from{hycolor.dtx}{test,test2}}% -% \file{hycolor-test3.tex}{\from{hycolor.dtx}{test,test3}}% -% \file{hycolor-test-xcol1.tex}{\from{hycolor.dtx}{test-xcolor,xcol1}}% -% \file{hycolor-test-xcol2.tex}{\from{hycolor.dtx}{test-xcolor,xcol2}}% -% \file{hycolor-test-xcol3.tex}{\from{hycolor.dtx}{test-xcolor,xcol3}}% -% \file{hycolor-test-xcol4.tex}{\from{hycolor.dtx}{test-xcolor-fbox}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* files into a directory searched by TeX:} -\Msg{*} -\Msg{* hycolor.sty, xcolor-patch.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `hycolor.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{hycolor.drv}% - [2016/05/16 v1.8 Color options for hyperref/bookmark (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\usepackage[ruled]{algorithm2e} - -\makeatletter -\newcommand*{\makedefaultH}[1]{% - \expandafter\edef\csname #1\endcsname{% - \noexpand\@protected@testopt - \expandafter\noexpand\csname#1\endcsname - \expandafter\noexpand\csname - \expandafter\string\csname#1\endcsname\endcsname - {H}% - }% -} -\makeatother -\makedefaultH{algorithm} -\makedefaultH{procedure} -\makedefaultH{function} - -\SetKwInput{KwParam}{Param} -\newcommand*{\Param}[2]{% - \KwParam{\ArgSty{#1} (#2)}% -} -\newcommand*{\Dat}[1]{% - \texttt{\upshape#1}% -} -\newcommand*{\Var}[1]{% - \ArgSty{#1}% -} -\newcommand*{\Gets}{% - \ensuremath{\leftarrow}% - \ % -} - -\makeatletter -\newcommand*{\bs}{\texttt{\@backslashchar}} -\makeatother -\begin{document} - \DocInput{hycolor.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{hycolor.drv} -% -% \title{The \xpackage{hycolor} package} -% \date{2016/05/16 v1.8} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% Package \xpackage{hycolor} implements the color option stuff that -% is used by packages \xpackage{hyperref} and \xpackage{bookmark}. -% It is not intended as package for the user. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% The package \xpackage{hycolor} implements color options -% for packages \xpackage{hyperref} and \xpackage{bookmark}. -% -% Package \xpackage{xcolor} provides macros for extracting -% color values and converting color data to other color models. -% If this package is loaded, the full range of color specifications -% of packages \xpackage{color} and \xpackage{xcolor} are supported -% including the optional argument for the color model. -% \begin{quote} -% |\hypersetup{linkbordercolor=red}%| needs \xpackage{xcolor}\\ -% |\hypersetup{linkbordercolor=[named]{red}}%| needs \xpackage{xcolor}\\ -% |\hypersetup{linkbordercolor=[rgb]{1,0,0}}|\\ -% \end{quote} -% -% Without package \xpackage{xcolor} some of the options only -% support some models, if they are given directly, e.g.: -% \begin{quote} -% |\bookmarksetup{color=[rgb]{1,0,0}}| -% \end{quote} -% -% Because of compatibility some options of \xpackage{hyperref} -% also support space separated RGB values: -% \begin{quote} -% |\hypersetup{linkbordercolor=1 0 0}%| is the same as\\ -% |\hypersetup{linkbordercolor=[rgb]{1,0,0}}| -% \end{quote} -% -% Coloring is optional, it can be turned off by using an empty -% value: -% \begin{quote} -% |\hypersetup{linkbordercolor={}}| -% \end{quote} -% -% The PDF specification knows some kind of an emtpy color setting -% without values. This applies to form field colors. The new -% A virtual color model \texttt{empty} is introduced for this -% purpose, e.g. -% \begin{quote} -% |\TextField[backgroundcolor={[empty]{}}, ...]{...}%| or\\ -% |\TextField[{backgroundcolor=[empty]{}, ...}]{...}| -% \end{quote} -% PDF specification 1.7 also allows this for border link colors. -% But this isn't currently supported by this package, because -% the tested viewers (AR7/Linux, xpdf 3.00, ghostscript 8.54) -% don't support this yet. In contrary ghostscript generates an -% error message. -% -% \subsection{Summary} -% -% \begin{quote} -% \begin{tabular}{@{}llll@{}} -% Color option & Models without \xpackage{xcolor} -% & RGB color & Model empty\\ -% \hline -% |BKM.color| & |gray|, |rgb| & no & no\\ -% |Hyp.*color| & all & no & no\\ -% |Hyp.*bordercolor| & |gray|, |rgb| & yes & no\\ -% |Field.*color| & |gray|, |rgb|, |cmyk| & yes & yes\\ -% |AtFi.color| & |gray|, |rgb| & yes & no\\ -% \end{tabular} -% \end{quote} -% ``RGB color'' means that the color value can be given as -% space separated RGB numbers (real numbers in the range -% from 0 to 1). -% Explanation of the color option prefixes: -% \begin{quote} -% \begin{tabular}{@{}ll@{}} -% Prefix & Explanation\\ -% \hline -% |BKM| & Package \xpackage{bookmark}\\ -% |Hyp| & Package \xpackage{hyperref}: -% package options or |\hypersetup|\\ -% |Field| & Package \xpackage{hyperref}: -% Form field options\\ -% |AtFi| & Package \xpackage{attachfile2}: option \xoption{color}\\ -% \end{tabular} -% \end{quote} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{hycolor}% - [2016/05/16 v1.8 Color options for hyperref/bookmark (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\RequirePackage{xcolor-patch}[2016/05/16] -% \end{macrocode} -% -% \subsection{Normalization} -% -% \subsubsection{Sanitize value of color option} -% -% \begin{procedure} -% \Param{cmd}{macro} -% \Param{value}{value of color option} -% \BlankLine -% \KwResult{\ArgSty{value} is expanded, sanitized, and -% stored in macro \ArgSty{cmd}.} -% \caption{DefSanitized(cmd, value)} -% \BlankLine -% Initialize active characters\; -% \ArgSty{cmd} := Expand \ArgSty{value}\; -% Sanitize \ArgSty{cmd}\; -% \end{procedure} -% \emph{Sanitization} means that the string does not contain any -% macros or special tokens. It consists of characters with -% catcode 12 (other). The only exception is the space with -% catcode 10 (space). -% \begin{macro}{\HyColor@DefSanitized} -% \begin{macrocode} -\begingroup - \catcode`\!=13 % - \catcode`\:=13 % - \catcode`\-=13 % - \catcode`\+=13 % - \catcode`\;=13 % - \catcode`\"=13 % - \catcode`\>=13 % - \edef\x{% - \def\noexpand!{\string!}% - \def\noexpand:{\string:}% - \def\noexpand-{\string-}% - \def\noexpand+{\string+}% - \def\noexpand;{\string;}% - \def\noexpand"{\string"}% - \def\noexpand>{\string>}% - }% - \def\y#1{\endgroup - \def\HyColor@DefSanitized##1##2{% - \begingroup - \csname @safe@activestrue\endcsname - #1% - \edef\x{\endgroup - \def\noexpand##1{##2}% - }% - \x - \@onelevel@sanitize##1% - }% - }% -\expandafter\y\expandafter{\x} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Normalize result} -% -% \begin{procedure} -% \Param{value}{Sanitized explicit number} -% \Param{cmd}{Macro that stores result} -% \BlankLine -% \KwResult{\ArgSty{cmd} contains normalized number} -% \caption{NormalizeNum(value, cmd)} -% \BlankLine -% \uIf{\Var{value}\,\Dat{pt} $<$ \Dat{0pt}}{ -% \ArgSty{cmd} \Gets \Dat{0}\; -% } -% \uElseIf{number before dot of \Var{value} $<$ \Dat{1}}{ -% \Var{cmd} \Gets number after dot of \Var{value}\; -% \Var{cmd} \Gets strip trailing zeros from \Var{cmd}\; -% \If{dot remains only}{ -% \Var{cmd} \Gets \Dat{0}\; -% } -% } -% \Else{ -% \Var{cmd} \Gets \Dat{1}\; -% } -% \end{procedure} -% The number is limited to the range between 0.0 and 1.0 and -% formatted as short PDF number without leading or trailing zeros. -% The precision of the number isn't changed. -% \begin{macro}{\HyColor@NormalizeNum} -% \begin{macrocode} -\def\HyColor@NormalizeNum#1#2{% - \ifdim#1pt<\z@ - \def#2{0}% - \else - \edef#2{\zap@space#1 \@empty}% - \expandafter\HyColor@CheckDot#2..\@nil#2% - \fi -} -\def\HyColor@CheckDot#1.#2.#3\@nil#4{% - \ifnum0#1<\@ne - \ifx\\#2\\% - \def#4{0}% - \else - \edef#4{\HyColor@ReverseString#2\@nil{}}% - \edef#4{\expandafter\HyColor@StripLeadingZeros#4\@empty}% - \ifx#4\@empty - \def#4{0}% - \else - \edef#4{.\expandafter\HyColor@ReverseString#4\@nil{}}% - \fi - \fi - \else - \def#4{1}% - \fi -} -\def\HyColor@ReverseString#1#2\@nil#3{% - \ifx\\#2\\% - #1#3% - \else - \@ReturnAfterFi{% - \HyColor@ReverseString#2\@nil{#1#3}% - }% - \fi -} -\long\def\@ReturnAfterFi#1\fi{\fi#1} -\def\HyColor@StripLeadingZeros#1{% - \ifx#10% - \expandafter\HyColor@StripLeadingZeros - \else - #1% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\HyColor@NormalizeCommaRGB} -% \begin{macrocode} -\def\HyColor@NormalizeCommaRGB#1,#2,#3\@nil#4{% - \HyColor@NormalizeNum{#1}\HyColor@temp - \let#4\HyColor@temp - \HyColor@NormalizeNum{#2}\HyColor@temp - \edef#4{#4 \HyColor@temp}% - \HyColor@NormalizeNum{#3}\HyColor@temp - \edef#4{#4 \HyColor@temp}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\HyColor@NormalizeCommaCMYK} -% \begin{macrocode} -\def\HyColor@NormalizeCommaCMYK#1,#2,#3,#4\@nil#5{% - \HyColor@NormalizeNum{#1}\HyColor@temp - \let#5\HyColor@temp - \HyColor@NormalizeNum{#2}\HyColor@temp - \edef#5{#5 \HyColor@temp}% - \HyColor@NormalizeNum{#3}\HyColor@temp - \edef#5{#5 \HyColor@temp}% - \HyColor@NormalizeNum{#4}\HyColor@temp - \edef#5{#5 \HyColor@temp}% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Main algorithm for color options} -% -% \begin{procedure} -% \Param{key}{name of color option} -% \Param{value}{value of color option} -% \Param{cmd}{macro that stores result} -% \BlankLine -% \KwResult{Macro \ArgSty{cmd} contains the calculated -% color specification string or has the meaning of \cs{relax} -% if the color must not set} -% \caption{MainColorOptionAlgorithm(key, value, cmd)} -% \BlankLine -% DefSanitized(\ArgSty{temp}, \ArgSty{value})\; -% Call option specific algorithm(\ArgSty{key}, \ArgSty{temp}, \ArgSty{cmd})\; -% \end{procedure} -% -% \subsection{Package \xpackage{bookmark}} -% -% Since v0.8 2007/03/27 package \xpackage{bookmark} only provides -% one color option \xoption{color}. Because option \xoption{rgbcolor} -% can easily given as color specification in model rgb: -% \begin{quote} -% |rgbcolor=|\meta{r} \meta{g} \meta{b} $\equiv$ -% |color=[rgb]{|\meta{r}|,|\meta{g}|,|\meta{b}|}| -% \end{quote} -% Package \xpackage{bookmark} stores the result in macro \cs{BKM@color}. -% The empty string is interpreted as \emph{no color}. -% -% \begin{procedure} -% \Param{value}{value of option \xoption{color}} -% \Param{cmd}{macro for result} -% \Param{package}{package name for error message} -% \Param{option}{option name for error message} -% \caption{BookmarkColor(value, cmd, package, option)} -% \BlankLine -% \Switch{\Var{value}}{ -% \Case{empty}{ -% \Var{cmd} \Gets no color\; -% } -% \Case{with model}{ -% \eIf{with xcolor}{ -% \Var{cmd} \Gets ConvertToRGB(\Var{model}, \Var{values})\; -% }{ -% \uIf{model $=$ rgb}{ -% \Var{cmd} \Gets \Var{values} as normalized values\; -% } -% \uElseIf{model $=$ gray}{ -% \Var{cmd} \Gets \Var{values} as normalized tripled values\; -% } -% \Else{ -% error\; -% } -% } -% } -% \Other{ -% \eIf{with xcolor}{ -% (\Var{model}, \Var{values} \Gets get model and values\; -% \Var{cmd} \Gets ConvertToRGB(\Var{model}, \Var{values})\; -% }{ -% error\; -% } -% } -% } -% \end{procedure} -% -% \begin{macrocode} -\def\HyColor@BookmarkColor#1#2#3#4{% - \HyColor@IfModel{#1}{% - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - \else - \ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum - \expandafter{\HyColor@values}#2% - \edef#2{#2 #2 #2}% - \else - \let#2\@empty - \HyColor@ErrorModelNoXcolor{#3}{#4}% - \fi - \fi - }% - }{% - \let#2\HyColor@values - \ifx#2\@empty - \else - \HyColor@IfXcolor{% - \extractcolorspec{#1}#2% - \expandafter\convertcolorspec#2\HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \let#2\@empty - \HyColor@ErrorSpecNoXcolor{#3}{#4}% - }% - \fi - }% -} -% \end{macrocode} -% \begin{macrocode} -\def\HyColor@ErrorModelNoXcolor#1#2{% - \PackageError{#1}{% - Color model `\HyColor@model' is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `#2=[\HyColor@model]{\HyColor@values}'% - }\@ehc -} -% \end{macrocode} -% \begin{macrocode} -\def\HyColor@ErrorSpecNoXcolor#1#2{% - \PackageError{#1}{% - This color specification is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `#2=\HyColor@values'% - }\@ehc -} -% \end{macrocode} -% -% \begin{macrocode} -\def\HyColor@IfModel#1{% - \@ifnextchar[{% - \HyColor@WithModel - }{% - \HyColor@WithoutModel - }% - #1\@nil -} -\def\HyColor@WithModel[#1]#2\@nil{% - \HyColor@DefSanitized\HyColor@model{#1}% - \HyColor@DefSanitized\HyColor@values{#2}% - \@firstoftwo -} -\def\HyColor@WithoutModel#1\@nil{% - \let\HyColor@model\relax - \HyColor@DefSanitized\HyColor@values{#1}% - \@secondoftwo -} -% \end{macrocode} -% -% \subsection{Utils} -% -% \begin{macro}{\@ReturnAfterFi} -% \begin{macrocode} -\long\def\@ReturnAfterFi#1\fi{\fi#1} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\HyColor@IfXcolor} -% \begin{macrocode} -\def\HyColor@IfXcolor{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \expandafter\@secondoftwo - \else - \expandafter\@firstoftwo - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\def\HyColor@model@empty{empty} -\@onelevel@sanitize\HyColor@model@empty -\def\HyColor@model@gray{gray} -\@onelevel@sanitize\HyColor@model@gray -\def\HyColor@model@rgb{rgb} -\@onelevel@sanitize\HyColor@model@rgb -\def\HyColor@model@cmyk{cmyk} -\@onelevel@sanitize\HyColor@model@cmyk -\def\HyColor@model@Gray{Gray} -\@onelevel@sanitize\HyColor@model@Gray -% \end{macrocode} -% -% \subsection{Package \xpackage{hyperref}} -% -% \subsubsection{Options \xoption{Hyp.*color}} -% -% \begin{macrocode} -\def\HyColor@UseColor#1{% - \ifx#1\relax - \else - \ifx#1\@empty - \else - \expandafter\HyColor@@UseColor#1\@nil - \fi - \fi -} -\def\HyColor@@UseColor{% - \@ifnextchar[\HyColor@@@UseColor\HyColor@@@@UseColor -} -\def\HyColor@@@UseColor[#1]#2\@nil{% - \color[{#1}]{#2}% -} -\def\HyColor@@@@UseColor#1\@nil{% - \color{#1}% -} -% \end{macrocode} -% -% \begin{procedure} -% \Param{value}{value of the option} -% \Param{cmd}{macro for result} -% \caption{HyperrefColor(value, cmd)} -% \BlankLine -% \Switch{\Var{value}}{ -% \Case{empty}{ -% \Var{cmd} \Gets no color\; -% } -% \Case{with model}{ -% Call \cs{color} with model\; -% } -% \Case{without model}{ -% Call \cs{color} without model\; -% } -% } -% \end{procedure} -% -% \begin{macrocode} -\def\HyColor@HyperrefColor#1#2{% - \HyColor@IfModel{#1}{% - \edef#2{[{\HyColor@model}]{\HyColor@values}}% - }{% - \let#2\HyColor@values - \ifx#2\@empty - \let#2\relax - \fi - }% -} -% \end{macrocode} -% -% \subsubsection{Generic algorithm} -% -% \begin{procedure} -% \small -% \Param{value}{value of the option} -% \Param{cmd}{macro for result} -% \Param{package}{package name for error message} -% \Param{option}{option name for error message} -% \caption{Algorithm X0134(value, cmd, package, option)} -% \BlankLine -% \Switch{\Var{value}}{ -% \Case{empty}{ -% \Var{cmd} \Gets no color\; -% } -% \Case{with model}{ -% \Switch{\Var{model}}{ -% \Case{empty}{ -% \Var{cmd} \Gets ""\; -% } -% \Case{gray, rgb, cmyk}{ -% \Var{cmd} \Gets \Var{output}()\; -% } -% \Case{Gray}{ -% \eIf{with xcolor}{ -% (\Var{model}, \Var{values}) \Gets convert to gray\; -% }{ -% error(\Var{package}, \Var{option}, "Missing xcolor"), -% \Var{cmd} \Gets no color\; -% } -% } -% \Else{ -% \eIf{with xcolor}{ -% (\Var{model}, \Var{values}) \Gets convert to rgb\; -% \Var{cmd} \Gets \Var{output}()\; -% }{ -% error(\Var{package}, \Var{option}, "Missing xcolor"), -% \Var{cmd} \Gets no color\; -% } -% } -% } -% } -% \Case{rgb values}{ -% (\Var{model}, \Var{values}) \Gets ("rgb", (r,g,b))\; -% \Var{cmd} \Gets \Var{output}()\; -% } -% \Case{without model}{ -% \eIf{with xcolor}{ -% (\Var{model}, \Var{values}) \Gets -% get model and values(\Var{value})\; -% \Switch{\Var{model}}{ -% \Case{gray, rgb, cmyk}{ -% \Var{cmd} \Gets \Var{output}()\; -% } -% \Case{Gray}{ -% (\Var{model}, \Var{values}) \Gets convert to gray\; -% \Var{cmd} \Gets \Var{output}()\; -% } -% \Else{ -% (\Var{model}, \Var{values}) \Gets convert to rgb\; -% \Var{cmd} \Gets \Var{output}()\; -% } -% } -% }{ -% error(\Var{package}, \Var{option}, "Missing xcolor"), -% \Var{cmd} \Gets no color\; -% } -% } -% } -% \end{procedure} -% -% \begin{macro}{\HyColor@XZeroOneThreeFour} -% \begin{macrocode} -\def\HyColor@XZeroOneThreeFour#1#2#3#4{% - \HyColor@IfModel{#1}{% - \ifx\HyColor@model\HyColor@model@empty - \let#2\@empty - \else\ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum - \expandafter{\HyColor@values}#2% - \else\ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@cmyk - \expandafter\HyColor@NormalizeCommaCMYK\HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@Gray - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@gray#2% - \expandafter\HyColor@NormalizeNum\expandafter{#2}#2% - \let\HyColor@model\HyColor@model@gray - }{% - \let#2\relax - \HyColor@ErrorModelNoXcolor{#3}{#4}% - }% - \else - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - \let\HyColor@model\HyColor@model@rgb - }{% - \let#2\relax - \HyColor@ErrorModelNoXcolor{#3}{#4}% - }% - \fi\fi\fi\fi\fi - }{% - \let#2\HyColor@values - \ifx#2\@empty - \let#2\relax - \else - \expandafter\HyColor@IfRGB\expandafter{\HyColor@values}{% - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - }{% - \HyColor@IfXcolor{% - \expandafter\extractcolorspec\expandafter{\HyColor@values}#2% - \edef\HyColor@model{\expandafter\@firstoftwo#2}% - \edef\HyColor@values{\expandafter\@secondoftwo#2}% - \ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum\expandafter - {\HyColor@values}#2% - \else\ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB - \HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@cmyk - \expandafter\HyColor@NormalizeCommaCMYK - \HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@Gray - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@gray#2% - \expandafter\HyColor@NormalizeNum\expandafter - {\HyColor@values}#2% - \let\HyColor@model\HyColor@model@gray - \else - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - \let\HyColor@model\HyColor@model@rgb - \fi\fi\fi\fi - }{% - \let#2\relax - \HyColor@ErrorSpecNoXcolor{#3}{#4}% - }% - }% - \fi - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Field options} -% -% \begin{macro}{\HyColor@FieldBColor} -% \begin{macrocode} -\let\HyColor@FieldBColor\HyColor@XZeroOneThreeFour -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\HyColor@FieldColor} -% \begin{macrocode} -\def\HyColor@FieldColor#1#2#3#4{% - \let\HyColor@model\@empty - \HyColor@XZeroOneThreeFour{#1}{#2}{#3}{#4}% - \ifx#2\relax - \let#2\@empty - \else - \ifx#2\@empty - \else - \ifx\HyColor@model\HyColor@model@gray - \edef#2{#2 g}% - \else\ifx\HyColor@model\HyColor@model@rgb - \edef#2{#2 rg}% - \else\ifx\HyColor@model\HyColor@model@cmyk - \edef#2{#2 k}% - \else - \PackageError{#3}{Internal error: unsupported color model}\@ehc - \fi\fi\fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Detection for naked RGB values} -% -% \begin{macro}{\HyColor@IfRGB} -% \begin{macrocode} -\newif\ifHyColor@result -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfmatch\endcsname\relax - \expandafter\@firstoftwo -\else - \expandafter\@secondoftwo -\fi -{% - \begingroup - \def\x#1{\endgroup - \def\HyColor@IfRGB##1{% - \HyColor@@IfRGB##1#1#1#1\@nil - }% - }% - \x{ }% - \edef\HyColor@TwoSpaces{\space\space}% - \def\HyColor@@IfRGB#1 #2 #3 #4\@nil{% - \HyColor@resulttrue - \def\HyColor@temp{#4}% - \ifx\HyColor@temp\HyColor@TwoSpaces - \HyColor@CheckNum{#1}% - \ifHyColor@result - \HyColor@CheckNum{#2}% - \ifHyColor@result - \HyColor@CheckNum{#3}% - \fi - \fi - \else - \HyColor@resultfalse - \fi - \ifHyColor@result - \let\HyColor@model\HyColor@model@rgb - \edef\HyColor@values{#1,#2,#3}% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }% - \def\HyColor@zero{0}% - \def\HyColor@one{1}% - \def\HyColor@dot{.}% - \def\HyColor@CheckNum#1{% - \def\HyColor@temp{#1}% - \ifx\HyColor@temp\@empty - \HyColor@resultfalse - \else - \edef\HyColor@temp{\@car#1\@nil}% - \ifx\HyColor@temp\HyColor@zero - \else - \ifx\HyColor@temp\HyColor@one - \else - \ifx\HyColor@temp\HyColor@dot - \else - \HyColor@resultfalse - \fi - \fi - \fi - \fi - }% -}{% - \def\HyColor@MatchNum{% - (0*1\string\.0*|0*1|0+\string\.?[0-9]*|\string\.[0-9]+)% - }% - \def\HyColor@IfRGB#1{% - \ifnum\pdfmatch{^\HyColor@MatchNum\space\HyColor@MatchNum - \space\HyColor@MatchNum$}{#1}>\z@ - \let\HyColor@model\HyColor@model@rgb - \edef\HyColor@values{% - \expandafter\strip@prefix\pdflastmatch1,% - \expandafter\strip@prefix\pdflastmatch2,% - \expandafter\strip@prefix\pdflastmatch3% - }% - \HyColor@resulttrue - \expandafter\@firstoftwo - \else - \HyColor@resultfalse - \expandafter\@secondoftwo - \fi - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Options \xoption{*bordercolor}} -% -% \begin{procedure} -% \Param{value}{value of the option} -% \Param{cmd}{macro for result} -% \Param{package, option}{package and option for error message} -% \caption{HyperrefBorderColor(value, cmd, package, option)} -% \BlankLine -% \Switch{\Var{value}}{ -% \Case{empty}{ -% \Var{cmd} \Gets no color\; -% } -% \Case{with model}{ -% \eIf{with xcolor}{ -% (\Var{model}, \Var{values}) \Gets convert to rgb\; -% \Var{cmd} \Gets output values\; -% }{ -% \Switch{\Var{model}}{ -% \Case{rgb, gray}{ -% \Var{cmd} \Gets output values\; -% } -% \Else{ -% error(\Var{package}, \Var{option}, "Missing xcolor")\; -% \Var{cmd} \Gets no color\; -% } -% } -% } -% } -% \Case{rgb values}{ -% \Var{cmd} \Gets output values\; -% } -% \Case{without model}{ -% \eIf{with xcolor}{ -% (\Var{model}, \Var{values}) \Gets convert to rgb\; -% \Var{cmd} \Gets output values\; -% }{ -% error(\Var{package}, \Var{option}, "Missing xcolor"); -% \Var{cmd} \Gets no color\; -% } -% } -% } -% \end{procedure} -% -% \begin{macro}{\HyColor@HyperrefBorderColor} -% \begin{macrocode} -\def\HyColor@HyperrefBorderColor#1#2#3#4{% - \HyColor@IfModel{#1}{% - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - \else - \ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum - \expandafter{\HyColor@values}#2% - \edef#2{#2 #2 #2}% - \else - \let#2\relax - \HyColor@ErrorModelNoXcolor{#3}{#4}% - \fi - \fi - }% - }{% - \let#2\HyColor@values - \ifx#2\@empty - \let#2\relax - \else - \expandafter\HyColor@IfRGB\expandafter{\HyColor@values}{% - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - }{% - \HyColor@IfXcolor{% - \extractcolorspec{#1}#2% - \expandafter\convertcolorspec#2\HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \let#2\relax - \HyColor@ErrorSpecNoXcolor{#3}{#4}% - }% - }% - \fi - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Package \xpackage{attachfile2}} -% -% Before PDF-1.7 only RGB values are permitted in annotations. -% Since PDF-1.7 the color entry in annotations understands -% several color models, depending on the size of the color array: -% \begin{itemize} -% \item Zero entries: means transparent, not useful for -% file attachments. AR7/Linux and AR8/Linux show black instead. -% \item One entry: color model `gray'. -% \item Three entries: color model `rgb'. -% \item Four entries: color model `cmyk'. -% \end{itemize} -% An empty color specification is interpreted as ``no color''. -% -% \begin{macro}{\HyColor@DetectPdfVersion} -% \begin{macrocode} -\def\HyColor@DetectPdfVersion{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname Hy@pdfversion\endcsname\relax - \global\chardef\HyColor@PdfVersion=0 % - \else - \global\chardef\HyColor@PdfVersion=\Hy@pdfversion\relax - \fi - \global\let\HyColor@DetectPdfVersion\relax -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\HyColor@SpaceToComma} -% \begin{macrocode} -\def\HyColor@SpaceToComma#1 #2\@nil{% - #1% - \ifx\relax#2\relax - \expandafter\@gobble - \else - ,% - \expandafter\@firstofone - \fi - {% - \HyColor@SpaceToComma#2\@nil - }% -}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\HyColor@AttachfileColor} -% \begin{macrocode} -\def\HyColor@AttachfileColor#1#2#3#4#5#6{% - \def#2{#1}% - \ifx#2\@empty - \let#3\@gobble - \let#4\@empty - \else - \HyColor@resultfalse - \HyColor@XZeroOneThreeFour{#1}#3{#5}{#6}% - \ifHyColor@result - \edef#2{% - [rgb]{\expandafter\HyColor@SpaceToComma#3 \@nil}% - }% - \fi - \ifx\HyColor@model\HyColor@model@rgb - \edef#4{/C[#3]}% hash-ok - \edef#3##1{% - #3 % - \noexpand\csname atfi@SETRGBCOLOR##1\noexpand\endcsname - }% - \else - \ifx\HyColor@model\HyColor@model@gray - \HyColor@DetectPdfVersion - \ifnum\HyColor@PdfVersion<7 % - \edef#4{/C[#3 #3 #3]}% hash-ok - \else - \edef#4{/C[#3]}% hash-ok - \fi - \edef#3##1{% - #3 % - \noexpand\csname atfi@SETGRAYCOLOR##1\noexpand\endcsname - }% - \else - \ifx\HyColor@model\HyColor@model@cmyk - \HyColor@DetectPdfVersion - \ifnum\HyColor@PdfVersion<7 % - \HyColor@IfModel{#1}{% - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#4% - \expandafter\HyColor@NormalizeCommaRGB#4\@nil#4% - \edef#4{/C[#4]}% hash-ok - }{% - \let#4\@empty - \HyColor@ErrorModelNoXcolor{#5}{#6}% - }% - }{% - \HyColor@IfXcolor{% - \extractcolorspec{#1}#4% - \expandafter\convertcolorspec#4% - \HyColor@model@rgb#4% - \expandafter\HyColor@NormalizeCommaRGB#4\@nil#4% - \edef#4{/C[#4]}% hash-ok - }{% - \let#4\@empty - \HyColor@ErrorSpecNoXcolor{#5}{#6}% - }% - }% - \else - \edef#4{/C[#3]}% hash-ok - \fi - \edef#3##1{% - #3 % - \noexpand\csname atfi@SETCMYKCOLOR##1\noexpand\endcsname - }% - \else - \ifx\HyColor@model\HyColor@model@empty - \PackageError{#5}{% - Color model `empty' is not permitted for option `#6'% - }\@ehc - \let#2\@empty - \let#3\@gobble - \let#4\@empty - \else - \ifx\HyColor@model\relax % (missing xcolor) - \let#3\@gobble - \let#4\@empty - \else - \PackageError{#5}{% - Internal error: unsupported color model% - }\@ehc - \fi - \fi - \fi - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -%</package> -% \end{macrocode} -% -% \subsection{Patch for package \xpackage{xcolor}} -% -% Because the test files triggered a bug in package \xpackage{xcolor} -% of version 2007/01/21 v2.11. -% I contacted the author of \xpackage{xcolor} Uwe Kern. He responded -% with a test version 2007/03/27 v2.12a00 that fixes the problem. -% However, apparently he did not found the time for an official -% release yet. Thus I have reluctantly written the following -% patch package using the fixes of v2.12a00. -% -% The patch is immediately applied if package \xpackage{xcolor} -% is already loaded. -% Otherwise the patch is delayed using \cs{AfterPackage} if -% package \xpackage{scrlfile} is loaded. As last resort -% \cs{AtBeginDocument} is used. -% \begin{macrocode} -%<*xcolor> -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{xcolor-patch}[2016/05/16 xcolor patch] -% \end{macrocode} -% \begin{macrocode} -\RequirePackage{hopatch}[2016/05/16] -\hopatch@AfterPackage{xcolor}{% -% \end{macrocode} -% \begin{macro}{\XC@ifxcase} -% \begin{macrocode} - \long\def\reserved@a#1#2#3{% - \long\def\@@tmp##1##2{% - \ifx#1##1% - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\@@tmp - \fi - }% - \@@tmp#2#1{#3}\@nnil\the\toks@ - }% - \ifx\XC@ifxcase\reserved@a - \long\def\XC@ifxcase#1#2#3{% - \long\def\XC@if@##1##2{% - \ifx#1##1% - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\XC@if@ - \fi - }% - \XC@if@#2#1{#3}\@nnil - \the\toks@ - }% - \fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\XC@ifcase} -% \begin{macrocode} - \long\def\reserved@a#1#2#3{% - \long\def\@@tmp##1##2{% - \@expandtwoargs\in@{,#1,}{,##1,}% - \ifin@ - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\@@tmp - \fi - }% - \@@tmp#2{#1}{#3}\@nnil - \the\toks@ - }% - \ifx\XC@ifcase\reserved@a - \long\def\XC@ifcase#1#2#3{% - \long\def\XC@if@##1##2{% - \@expandtwoargs\in@{,#1,}{,##1,}% - \ifin@ - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\XC@if@ - \fi - }% - \XC@if@#2{#1}{#3}\@nnil - \the\toks@ - }% - \fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\XC@cnv@gray} -% \begin{macrocode} - \def\reserved@a#1,{% - \XC@ifxcase\tm{% - \XC@mod@rgb{% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@cmy{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@cmyk{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{0,0,0,\@@tmp}% - }% - \XC@mod@RGB{% - \edef\@@scl{\rangeRGB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@HTML{% - \edef\@@scl{\@cclv}% - \XC@calcM{#1}\@@tmp - \XC@calcH\@@tmp\@@tmp - \edef\@@tmp{\@@tmp\@@tmp\@@tmp}% - }% - \XC@mod@HSB{% - \edef\@@scl{\rangeHSB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - \XC@mod@Gray{% - \edef\@@scl{\rangeGray}% - \XC@calcM{#1}\@@tmp - }% - }% - {% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - }% - \ifx\XC@cnv@gray\reserved@a - \def\XC@cnv@gray#1,{% - \XC@ifxcase\tm{% - \XC@mod@rgb{% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@gray{}% - \XC@mod@cmy{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@cmyk{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{0,0,0,\@@tmp}% - }% - \XC@mod@RGB{% - \edef\@@scl{\rangeRGB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@HTML{% - \edef\@@scl{\@cclv}% - \XC@calcM{#1}\@@tmp - \XC@calcH\@@tmp\@@tmp - \edef\@@tmp{\@@tmp\@@tmp\@@tmp}% - }% - \XC@mod@HSB{% - \edef\@@scl{\rangeHSB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - \XC@mod@Gray{% - \edef\@@scl{\rangeGray}% - \XC@calcM{#1}\@@tmp - }% - }% - {% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - }% - \fi -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Fix fragile \cs{@frameb@x}} -% -% \cs{fbox} becomes fragile, because the internal \cs{@frameb@x} -% is redefined by package \xpackage{xcolor}. The redefinition is -% no longer robust. Test file: -%\begin{quote} -%\begin{verbatim} -%\documentclass{article} -%\usepackage{xcolor} -%\makeatletter -%\protected@edef\x{\fbox{abc}} -%\@@end -%\end{verbatim} -%\end{quote} -% \begin{macrocode} - \@ifundefined{XC@frameb@x }{% - \expandafter\let\csname XC@frameb@x \endcsname\XC@frameb@x - \edef\XC@frameb@x{% - \noexpand\protect - \expandafter\noexpand\csname XC@frameb@x \endcsname - }% - \expandafter\ifx\csname XC@frameb@x \endcsname\@frameb@x - \let\@frameb@x\XC@frameb@x - \fi - }{}% -} -% \end{macrocode} -% \begin{macrocode} -%</xcolor> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{hycolor}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/hycolor.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/hycolor.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex hycolor.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% hycolor.sty & tex/latex/oberdiek/hycolor.sty\\ -% xcolor-patch.sty & tex/latex/oberdiek/xcolor-patch.sty\\ -% hycolor.pdf & doc/latex/oberdiek/hycolor.pdf\\ -% hycolor.dtx & source/latex/oberdiek/hycolor.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{hycolor.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex hycolor.dtx -%makeindex -s gind.ist hycolor.idx -%pdflatex hycolor.dtx -%makeindex -s gind.ist hycolor.idx -%pdflatex hycolor.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2007/04/09 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2007/04/11 v1.1} -% \item -% Line ends sanitized. -% \end{Version} -% \begin{Version}{2008/07/29 v1.2} -% \item -% Support for package \xpackage{attachfile2} added. -% \end{Version} -% \begin{Version}{2008/08/01 v1.3} -% \item -% Patch package \xpackage{xcolor-patch} added that fixes bugs in -% package \xpackage{xcolor} to get the test files running. -% \end{Version} -% \begin{Version}{2008/09/08 v1.4} -% \item -% Fix added to package \xpackage{xcolor-patch}: -% Fragile \cs{@frameb@x} (used in \cs{fbox}) is made robust. -% \end{Version} -% \begin{Version}{2009/10/02 v1.5} -% \item -% Doku fixes (Herbert Voss). -% \end{Version} -% \begin{Version}{2009/12/12 v1.6} -% \item -% Short info shortened. -% \end{Version} -% \begin{Version}{2011/01/30 v1.7} -% \item -% Package \xpackage{xcolor-patch} uses package \xpackage{hopatch}. -% \end{Version} -% \begin{Version}{2016/05/16 v1.8} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/intcalc.dtx b/Master/texmf-dist/source/latex/oberdiek/intcalc.dtx deleted file mode 100644 index 245cc21812b..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/intcalc.dtx +++ /dev/null @@ -1,3287 +0,0 @@ -% \iffalse meta-comment -% -% File: intcalc.dtx -% Version: 2016/05/16 v1.2 -% Info: Expandable calculations with integers -% -% Copyright (C) -% 2007 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 intcalc.dtx -% and the derived files -% intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv, -% intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex, -% intcalc-test4.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/intcalc.dtx -% CTAN:macros/latex/contrib/oberdiek/intcalc.pdf -% -% Unpacking: -% (a) If intcalc.ins is present: -% tex intcalc.ins -% (b) Without intcalc.ins: -% tex intcalc.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{intcalc.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If intcalc.drv is present: -% latex intcalc.drv -% (b) Without intcalc.drv: -% latex intcalc.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex intcalc.dtx -% makeindex -s gind.ist intcalc.idx -% pdflatex intcalc.dtx -% makeindex -s gind.ist intcalc.idx -% pdflatex intcalc.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/intcalc.sty -% TDS:doc/latex/oberdiek/intcalc.pdf -% TDS:source/latex/oberdiek/intcalc.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: intcalc -Version: 2016/05/16 v1.2 - -Copyright (C) - 2007 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/oberdiek/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 intcalc.dtx -and the derived files - intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv, - intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex, - intcalc-test4.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{intcalc.ins}{\from{intcalc.dtx}{install}}% - \file{intcalc.drv}{\from{intcalc.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{intcalc.sty}{\from{intcalc.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{intcalc-test1.tex}{\from{intcalc.dtx}{test1}}% -% \file{intcalc-test2.tex}{\from{intcalc.dtx}{test2,etex}}% -% \file{intcalc-test3.tex}{\from{intcalc.dtx}{test2,noetex}}% -% \file{intcalc-test4.tex}{\from{intcalc.dtx}{test4,etex}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* intcalc.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `intcalc.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{intcalc.drv}% - [2016/05/16 v1.2 Expandable calculations with integers (HO)]% -\documentclass{ltxdoc} -\usepackage{wasysym} -\let\iint\relax -\let\iiint\relax -\usepackage[fleqn]{amsmath} - -\DeclareMathOperator{\opInv}{Inv} -\DeclareMathOperator{\opAbs}{Abs} -\DeclareMathOperator{\opSgn}{Sgn} -\DeclareMathOperator{\opMin}{Min} -\DeclareMathOperator{\opMax}{Max} -\DeclareMathOperator{\opCmp}{Cmp} -\DeclareMathOperator{\opInc}{Inc} -\DeclareMathOperator{\opDec}{Dec} -\DeclareMathOperator{\opAdd}{Add} -\DeclareMathOperator{\opSub}{Sub} -\DeclareMathOperator{\opShl}{Shl} -\DeclareMathOperator{\opShr}{Shr} -\DeclareMathOperator{\opMul}{Mul} -\DeclareMathOperator{\opSqr}{Sqr} -\DeclareMathOperator{\opFac}{Fac} -\DeclareMathOperator{\opPow}{Pow} -\DeclareMathOperator{\opDiv}{Div} -\DeclareMathOperator{\opMod}{Mod} -\DeclareMathOperator{\opInt}{Int} -\DeclareMathOperator{\opOdd}{ifodd} - -\newcommand*{\Def}{% - \ensuremath{% - \mathrel{\mathop{:}}=% - }% -} -\newcommand*{\op}[1]{% - \textsf{#1}% -} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{intcalc.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{intcalc.drv} -% -% \title{The \xpackage{intcalc} package} -% \date{2016/05/16 v1.2} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% This package provides expandable arithmetic operations -% with integers. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \subsection{Introduction} -% -% Package \xpackage{intcalc} defines arithmetic operations -% that deal with integers. Integers mean numbers in \TeX. -% The same restrictions apply, the range is limited to -% [-2147483647, 2147483647]. -% -% The operations have the form of macros that take one or -% two integers as parameter and return the integer result. -% The macro name is a three letter operation name prefixed -% by the package name, e.g. \cs{intcalcAdd}|{10}{43}| returns -% |53|. -% -% The macros are fully expandable, exactly two expansion -% steps generate the result. Therefore the operations -% may be used nearly everywhere in \TeX, even inside -% \cs{number}, \cs{csname}, file names, or other -% expandable contexts. -% -% The package contains two implementations of the operations. -% If \eTeX\ is detected then the macros are implemented -% using its features (\cs{numexpr}). Otherwise the slower -% implementation without \eTeX's help is choosen. -% -% \subsection{Conditions} -% -% \subsubsection{Preconditions} -% -% \begin{itemize} -% \item -% Arguments can be anything that \TeX\ interprets as ``number''. -% Examples: plain numbers, count or length register, macros -% that expands to a number. -% \item -% The arguments are limited to the range -% -2147483647 until 2147483647. These numbers belong to the range. -% Note that some operations -% have additionals restrictions to the range. -% \item -% The argument may be expressions that \cs{numexpr} -% understands if \eTeX\ is available. -% \item -% The resulting number must fit in the allowed range. -% \end{itemize} -% -% \subsubsection{Postconditions} -% -% Additional properties of the macros apart from calculating -% a correct result (of course \smiley): -% \begin{itemize} -% \item -% The macros are fully expandable. Thus they can -% be used inside \cs{edef}, \cs{csname}, after \cs{number}, -% for example. -% \item -% Furthermore exactly two expansion steps calculate the result. -% \item -% The number consists of one optional minus sign and one to -% ten digits. The first digit is larger than zero for -% numbers that consists of more than one digit. -% -% In short, the number format is exactly the same as -% \cs{number} generates. And the tokens (minus sign, digits) -% have catcode 12 (other). -% \item -% Call by value is simulated. First the arguments are -% converted to numbers. Then these numbers are used -% in the calculations. -% -% Remember that arguments -% may contain expensive macros or \eTeX\ expressions. -% This strategy avoids multiple evaluations of such -% arguments. -% \end{itemize} -% -% \subsection{Error handling} -% -% There are two kinds of errors if a precondition is violated: -% Some errors are detected by the macros, example: division by zero. -% In this cases an undefined control sequence is called and causes -% a TeX error message, example: \cs{IntCalcError:DivisionByZero}. -% The name of the control sequence contains -% the reason for the error. The \TeX\ error may be ignored. -% Then the operation returns zero as result. -% Because the macros are supposed to work in expandible contexts. -% An traditional error message, however, is not expandable and -% would break these contexts. -% -% If a number exceeds the range of -2147483647 until 2147483647, then -% \TeX\ throws an error ``Number too big'' and recovers by -% using biggest allowed value. -% Example for the negative number -3000000000 is replaced -% by -2147483647. -% -% \subsection{Operations} -% -% Some definition equations below use the function $\opInt$ -% that converts a real number to an integer. The number -% is truncated that means rounding to zero: -% \begin{gather*} -% \opInt(x) \Def -% \begin{cases} -% \lfloor x\rfloor & \text{if $x\geq0$}\\ -% \lceil x\rceil & \text{otherwise} -% \end{cases} -% \end{gather*} -% -% \subsubsection{\op{Num}} -% -% \begin{declcs}{intcalcNum} \M{x} -% \end{declcs} -% Macro \cs{intcalcNum} converts its argument to a normalized integer -% number without unnecessary leading zeros or signs. -% The result matches the regular expression: -%\begin{quote} -%\begin{verbatim} -%0|-?[1-9][0-9]* -%\end{verbatim} -%\end{quote} -% -% \subsubsection{\op{Inv}, \op{Abs}, \op{Sgn}} -% -% \begin{declcs}{intcalcInv} \M{x} -% \end{declcs} -% Macro \cs{intcalcInv} switches the sign. -% \begin{gather*} -% \opInv(x) \Def -x -% \end{gather*} -% -% \begin{declcs}{intcalcAbs} \M{x} -% \end{declcs} -% Macro \cs{intcalcAbs} returns the absolute value -% of integer \meta{x}. -% \begin{gather*} -% \opAbs(x) \Def \vert x\vert -% \end{gather*} -% -% \begin{declcs}{intcalcSgn} \M{x} -% \end{declcs} -% Macro \cs{intcalcSgn} encodes the sign of \meta{x} as number. -% \begin{gather*} -% \opSgn(x) \Def -% \begin{cases} -% -1& \text{if $x<0$}\\ -% 0& \text{if $x=0$}\\ -% 1& \text{if $x>0$} -% \end{cases} -% \end{gather*} -% These return values can easily be distinguished by \cs{ifcase}: -%\begin{quote} -%\begin{verbatim} -%\ifcase\intcalcSgn{<x>} -% $x=0$ -%\or -% $x>0$ -%\else -% $x<0$ -%\fi -%\end{verbatim} -%\end{quote} -% -% \subsubsection{\op{Min}, \op{Max}, \op{Cmp}} -% -% \begin{declcs}{intcalcMin} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcMin} returns the smaller of the two integers. -% \begin{gather*} -% \opMin(x,y) \Def -% \begin{cases} -% x & \text{if $x<y$}\\ -% y & \text{otherwise} -% \end{cases} -% \end{gather*} -% -% \begin{declcs}{intcalcMax} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcMax} returns the larger of the two integers. -% \begin{gather*} -% \opMax(x,y) \Def -% \begin{cases} -% x & \text{if $x>y$}\\ -% y & \text{otherwise} -% \end{cases} -% \end{gather*} -% -% \begin{declcs}{intcalcCmp} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcCmp} encodes the comparison result as number: -% \begin{gather*} -% \opCmp(x,y) \Def -% \begin{cases} -% -1 & \text{if $x<y$}\\ -% 0 & \text{if $x=y$}\\ -% 1 & \text{if $x>y$} -% \end{cases} -% \end{gather*} -% These values can be distinguished by \cs{ifcase}: -%\begin{quote} -%\begin{verbatim} -%\ifcase\intcalcCmp{<x>}{<y>} -% $x=y$ -%\or -% $x>y$ -%\else -% $x<y$ -%\fi -%\end{verbatim} -%\end{quote} -% -% \subsubsection{\op{Inc}, \op{Dec}, \op{Add}, \op{Sub}} -% -% \begin{declcs}{intcalcInc} \M{x} -% \end{declcs} -% Macro \cs{intcalcInc} increments \meta{x} by one. -% \begin{gather*} -% \opInc(x) \Def x + 1 -% \end{gather*} -% -% \begin{declcs}{intcalcDec} \M{x} -% \end{declcs} -% Macro \cs{intcalcDec} decrements \meta{x} by one. -% \begin{gather*} -% \opDec(x) \Def x - 1 -% \end{gather*} -% -% \begin{declcs}{intcalcAdd} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcAdd} adds the two numbers. -% \begin{gather*} -% \opAdd(x, y) \Def x + y -% \end{gather*} -% -% \begin{declcs}{intcalcSub} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcSub} calculates the difference. -% \begin{gather*} -% \opSub(x, y) \Def x - y -% \end{gather*} -% -% \subsubsection{\op{Shl}, \op{Shr}} -% -% \begin{declcs}{intcalcShl} \M{x} -% \end{declcs} -% Macro \cs{intcalcShl} implements shifting to the left that -% means the number is multiplied by two. Overflow is possible. -% The sign is preserved. -% \begin{gather*} -% \opShl(x) \Def x*2 -% \end{gather*} -% -% \begin{declcs}{intcalcShr} \M{x} -% \end{declcs} -% Macro \cs{intcalcShr} implements shifting to the right. -% That is equivalent to an integer division by two. -% The sign is preserved. -% \begin{gather*} -% \opShr(x) \Def \opInt(x/2) -% \end{gather*} -% -% \subsubsection{\op{Mul}, \op{Sqr}, \op{Fac}, \op{Pow}} -% -% \begin{declcs}{intcalcMul} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcMul} calculates the product of -% \meta{x} and \meta{y}. -% \begin{gather*} -% \opMul(x,y) \Def x*y -% \end{gather*} -% -% \begin{declcs}{intcalcSqr} \M{x} -% \end{declcs} -% Macro \cs{intcalcSqr} returns the square product. -% \begin{gather*} -% \opSqr(x) \Def x^2 -% \end{gather*} -% -% \begin{declcs}{intcalcFac} \M{x} -% \end{declcs} -% Macro \cs{intcalcFac} returns the factorial of \meta{x}. -% Negative numbers are not permitted. -% \begin{gather*} -% \opFac(x) \Def x!\qquad\text{for $x\geq0$} -% \end{gather*} -% ($0! = 1$) -% -% \begin{declcs}{intcalcPow} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcPow} calculates the value of \meta{x} to the -% power of \meta{y}. The error ``division by zero'' is thrown -% if \meta{x} is zero and \meta{y} is negative. -% permitted: -% \begin{gather*} -% \opPow(x,y) \Def -% \opInt(x^y)\qquad\text{for $x\neq0$ or $y\geq0$} -% \end{gather*} -% ($0^0 = 1$) -% -% \subsubsection{\op{Div}, \op{Mod}} -% -% \begin{declcs}{intcalcDiv} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcDiv} performs an integer division. -% Argument \meta{y} must not be zero. -% \begin{gather*} -% \opDiv(x,y) \Def \opInt(x/y)\qquad\text{for $y\neq0$} -% \end{gather*} -% -% \begin{declcs}{intcalcMod} \M{x} \M{y} -% \end{declcs} -% Macro \cs{intcalcMod} gets the remainder of the integer -% division. The sign follows the divisor \meta{y}. -% Argument \meta{y} must not be zero. -% \begin{gather*} -% \opMod(x,y) \Def x\mathrel{\%}y\qquad\text{for $y\neq0$} -% \end{gather*} -% The result ranges: -% \begin{gather*} -% -\vert y\vert < \opMod(x,y) \leq 0\qquad\text{for $y<0$}\\ -% 0 \leq \opMod(x,y) < y\qquad\text{for $y\geq0$} -% \end{gather*} -% -% \subsection{Interface for programmer} -% -% If the programmer can ensure some more properties about -% the arguments of the operations, then the following -% macros are a little more efficient. -% -% In general numbers must obey the following constraints: -% \begin{itemize} -% \item Plain number: digit tokens only, no command tokens. -% \item Non-negative. Signs are forbidden. -% \item Arguments and the result must fit in range |0..2147483647|. -% \item Delimited by exclamation mark. Curly braces -% around the number are not allowed and will -% break the code. -% \end{itemize} -% -% \begin{declcs}{IntCalcInc} \meta{number} |!| -% \end{declcs} -% Incrementation, range: |0..2147483646|. -% -% \begin{declcs}{IntCalcDec} \meta{number} |!| -% \end{declcs} -% Decrementation, range: |1..2147483647|. -% -% \begin{declcs}{IntCalcAdd} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Addition, $A\geq B$. -% -% \begin{declcs}{IntCalcSub} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Subtraction, $A\geq B$. -% -% \begin{declcs}{IntCalcShl} \meta{number} |!| -% \end{declcs} -% Left shift (multiplication with two), range: |0..1073741823|. -% -% \begin{declcs}{IntCalcShr} \meta{number} |!| -% \end{declcs} -% Right shift (integer division by two). -% -% \begin{declcs}{IntCalcMul} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Multiplication, $A\geq B$. -% -% \begin{declcs}{IntCalcDiv} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Division operation. -% -% \begin{declcs}{IntCalcMod} \meta{number A} |!| \meta{number B} |!| -% \end{declcs} -% Modulo operation. -% -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Reload check and package identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@intcalc.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{intcalc}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@intcalc.sty\endcsname -\ProvidesPackage{intcalc}% - [2016/05/16 v1.2 Expandable calculations with integers (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname InCa@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\InCa@AtEnd{% - \InCa@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{11}% : (letter!) -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{63}{14}% ? (comment!) -\edef\InCa@AtEnd{\InCa@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname InCa@TestMode\endcsname\relax -\else - \catcode63=9 % ? (ignore) -\fi -? \let\InCa@@TestMode\InCa@TestMode -% \end{macrocode} -% -% \subsection{Macros independent of \eTeX} -% -% \subsubsection{\op{Abs}, \op{Sgn}} -% -% \begin{macro}{\InCa@Abs} -% \begin{macrocode} -\def\InCa@Abs#1#2!{% - \ifx#1-% - #2% - \else - #1#2% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@Sgn} -% \begin{macrocode} -\def\InCa@Sgn#1#2!{% - \ifx#1-% - -1% - \else - \ifx#10% - 0% - \else - 1% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Min}, \op{Max}, \op{Cmp}} -% -% \begin{macro}{\InCa@Min} -% \begin{macrocode} -\def\InCa@Min#1!#2!{% - \ifnum#1<#2 % - #1% - \else - #2% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@Max} -% \begin{macrocode} -\def\InCa@Max#1!#2!{% - \ifnum#1>#2 % - #1% - \else - #2% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@Cmp} -% \begin{macrocode} -\def\InCa@Cmp#1!#2!{% - \ifnum#1=#2 % - 0% - \else - \ifnum#1<#2 % - -% - \fi - 1% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Fac}} -% -% \begin{macro}{\InCa@Fac} -% It does not make much sense to calculate the -% faculty by an general algorithm. The allowed -% range of arguments is too low because of the -% limited integer domain. -% \begin{macrocode} -\def\InCa@Fac#1!{% - \ifcase#1 1% 0! - \or 1% 1! - \or 2% 2! - \or 6% 3! - \or 24% 4! - \or 120% 5! - \or 720% 6! - \or 5040% 7! - \or 40320% 8! - \or 362880% 9! - \or 3628800% 10! - \or 39916800% 11! - \or 479001600% 12! - \else - \ifnum#1<\z@ - 0\IntCalcError:FacNegative% - \else - 0\IntCalcError:FacOverflow% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Implementation based on \eTeX} -% -% Only \cs{numexpr} is used from \eTeX. -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname numexpr\endcsname\relax -\else -% \end{macrocode} -% -% \subsubsection{\op{Num}} -% -% \begin{macro}{\intcalcNum} -% \begin{macrocode} - \def\intcalcNum#1{% - \the\numexpr#1\relax - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Inv}, \op{Abs}, \op{Sgn}} -% -% \begin{macro}{\intcalcInv} -% \begin{macrocode} - \def\intcalcInv#1{% - \number-\intcalcNum{#1} % - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcAbs} -% \begin{macrocode} - \def\intcalcAbs#1{% - \number\expandafter\InCa@Abs\the\numexpr#1! % - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcSgn} -% \begin{macrocode} - \def\intcalcSgn#1{% - \number\expandafter\InCa@Sgn\the\numexpr#1! % - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Min}, \op{Max}, \op{Cmp}} -% -% \begin{macro}{\intcalcMin} -% \begin{macrocode} - \def\intcalcMin#1#2{% - \number\expandafter\InCa@Min - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcMax} -% \begin{macrocode} - \def\intcalcMax#1#2{% - \number\expandafter\InCa@Max - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcCmp} -% \begin{macrocode} - \def\intcalcCmp#1#2{% - \number\expandafter\InCa@Cmp - \the\numexpr#1\expandafter!\the\numexpr#2! % - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Inc}, \op{Dec}} -% -% \begin{macro}{\intcalcInc} -% \begin{macrocode} - \def\intcalcInc#1{% - \the\numexpr#1+1\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcDec} -% \begin{macrocode} - \def\intcalcDec#1{% - \the\numexpr#1-1\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\IntCalcInc} -% \begin{macrocode} - \def\IntCalcInc#1!{% - \the\numexpr#1+1\relax - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcDec} -% \begin{macrocode} - \def\IntCalcDec#1!{% - \the\numexpr#1-1\relax - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Add}, \op{Sub}} -% -% \begin{macro}{\intcalcAdd} -% \begin{macrocode} - \def\intcalcAdd#1#2{% - \the\numexpr#1+(#2)\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcSub} -% \begin{macrocode} - \def\intcalcSub#1#2{% - \the\numexpr#1-(#2)\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\IntCalcAdd} -% \begin{macrocode} - \def\IntCalcAdd#1!#2!{% - \the\numexpr#1+#2\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\IntCalcSub} -% \begin{macrocode} - \def\IntCalcSub#1!#2!{% - \the\numexpr#1-#2\relax - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Shl}, \op{Shr}} -% -% \begin{macro}{\intcalcShl} -% \begin{macrocode} - \def\intcalcShl#1{% - \the\numexpr(#1)*2\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcShr} -% \begin{macrocode} - \def\intcalcShr#1{% - \number\expandafter\InCa@Shr\the\numexpr#1! % - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcShl} -% \begin{macrocode} - \def\IntCalcShl#1!{% - \the\numexpr#1*2\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\IntCalcShr} -% \begin{macrocode} - \def\IntCalcShr#1!{% - \the\numexpr\ifodd#1 (#1-1)\else#1\fi/2\relax - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Shr} -% \begin{macrocode} - \def\InCa@Shr#1#2!{% - \ifx#1-% - -\InCa@Shr#2!% - \else - \ifodd#1#2 % - \the\numexpr(#1#2-1)/2\relax - \else - \the\numexpr#1#2/2\relax - \fi - \fi - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Mul}, \op{Sqr}, \op{Fac}} -% -% \begin{macro}{\intcalcMul} -% \begin{macrocode} - \def\intcalcMul#1#2{% - \the\numexpr(#1)*(#2)\relax - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcMul} -% \begin{macrocode} - \def\IntCalcMul#1!#2!{% - \the\numexpr#1*#2\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcSqr} -% \begin{macrocode} - \def\intcalcSqr#1{% - \number\expandafter\InCa@Sqr\the\numexpr#1! % - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Sqr} -% \begin{macrocode} - \def\InCa@Sqr#1!{% - \the\numexpr#1*#1\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcFac} -% \begin{macrocode} - \def\intcalcFac#1{% - \number\expandafter\InCa@Fac\the\numexpr#1! % - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Pow}} -% -% \begin{macro}{\intcalcPow} -% \begin{macrocode} - \def\intcalcPow#1#2{% - \number\expandafter\InCa@Pow - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Pow} -% \begin{macrocode} - \def\InCa@Pow#1#2!#3#4!{% - \ifcase#3#4 % power = 0 - 1% - \or % power = 1 - #1#2% - \or % power = 2 - \the\numexpr#1#2*#1#2\relax - \else - \ifcase#1#2 % basis = 0, power <> 0 - 0% - \ifx#3-% power < 0 - 0\IntCalcError:DivisionByZero% - \fi - \or - 1% basis = 1 - \else - \ifnum#1#2=\m@ne % basis = -1 - \ifodd#3#4 % - -% - \fi - 1% - \else % |basis| > 1 - \ifx#3-% power < 0 - 0% - \else % power > 2 - \InCa@PowRec#1#2!#3#4!1!% - \fi - \fi - \fi - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@PowRec} -%\begin{quote} -%\begin{verbatim} -%Pow(b, p) { -% PowRec(b, p, 1) -%} -%PowRec(b, p, r) { -% if p == 1 then -% return r*b -% else -% ifodd p then -% return PowRec(b*b, (p-1)/2, r*b) % p div 2 = (p-1)/2 -% else -% return PowRec(b*b, (p-1)/2, r) -% fi -% fi -%} -%\end{verbatim} -%\end{quote} -% \begin{macrocode} - \def\InCa@PowRec#1!#2!#3!{% - \ifnum#2=\@ne - \the\numexpr#1*#3\relax - \else - \ifodd#2 % - \expandafter\InCa@PowRec - \the\numexpr#1*#1\expandafter!% - \the\numexpr(#2-1)/2\expandafter!% - \the\numexpr#1*#3\expandafter\expandafter\expandafter!% - \else - \expandafter\InCa@PowRec - \the\numexpr#1*#1\expandafter!% - \the\numexpr(#2-1)/2\expandafter!% - \number#3\expandafter\expandafter\expandafter!% - \fi - \fi - }% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Div}, \op{Mod}} -% -% \TeX's \cs{divide} truncates, -% \eTeX's \cs{numexpr} rounds the result of a division. -% The rounding method is called ``Symmetric Arithmetic Rounding'' -% or ``Round-Half-Up'' (``Kaufm\"annisches Runden'' in German): -% \begin{quote} -% | 1 = 3 divide 2 = 1.5 = numexpr 3/2 = 2|\\ -% |-1 = -3 divide 2 = -1.5 = numexpr -3/2 = -2| -% \end{quote} -% Macro \cs{intcalcDiv} follows \TeX\ and truncates. -% The calculation is done by the following formula: -% \begin{gather} -% \opDiv(X,Y) = (X - (Y-1)/2)/Y\qquad\text{for $X, Y > 0$} -% \end{gather} -% The operator `/' is \cs{numexpr}'s division. -% \begin{macro}{\intcalcDiv} -% \begin{macrocode} - \def\intcalcDiv#1#2{% - \number\expandafter\InCa@Div - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Div} -% \begin{macrocode} - \def\InCa@Div#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase#1 % - 0% - \else - \expandafter\InCa@@Div - \romannumeral 0% - \ifnum#1<\z@ - \expandafter-\number-#1% - \else - \expandafter+\number#1% - \fi - \expandafter!% - \romannumeral 0% - \ifnum#2<\z@ - \expandafter-\number-#2% - \else - \expandafter+\number#2% - \fi - !% - \fi - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcDiv} -% \begin{macrocode} - \def\InCa@Temp#1{% - \def\IntCalcDiv##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \the\numexpr(##1-(##2-1)/2)/##2\relax - \fi - \fi - #1% - }% - }% - \InCa@Temp{ }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@Div} -% \begin{macrocode} - \def\InCa@@Div#1#2!#3#4!{% - #1#3% - \the\numexpr(#2-(#4-1)/2)/#4\relax - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcMod} -% \begin{macrocode} - \def\intcalcMod#1#2{% - \number\expandafter\InCa@Mod - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Mod} -% \begin{macrocode} - \def\InCa@Mod#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase#1 % - 0% - \else - \expandafter\InCa@@Mod - \romannumeral 0% - \ifnum#1<\z@ - \expandafter-\number-#1% - \else - \expandafter+\number#1% - \fi - \expandafter!% - \romannumeral 0% - \ifnum#2<\z@ - \expandafter-\number-#2% - \else - \expandafter+\number#2% - \fi - !% - \fi - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcMod} -% \begin{macrocode} - \def\InCa@Temp#1{% - \def\IntCalcMod##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \the\numexpr##1-(##1-(##2-1)/2)/##2*##2\relax - \fi - \fi - #1% - }% - }% - \InCa@Temp{ }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@Mod} -% \begin{macrocode} - \def\InCa@@Mod#1#2!#3#4!{% - \if#3+% - \if#1+% - \the\numexpr#2-\InCa@@Div+#2!+#4!*#4\relax - \else - \expandafter\InCa@ModX - \the\numexpr-#2+\InCa@@Div+#2!+#4!*#4!#4!% - \fi - \else - -% - \if#1+% - \expandafter\InCa@ModX - \the\numexpr-#2+\InCa@@Div+#2!+#4!*#4!#4!% - \else - \the\numexpr#2-\InCa@@Div+#2!+#4!*#4\relax - \fi - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ModX} -% \begin{macrocode} - \def\InCa@ModX#1!#2!{% - \ifcase#1 % - 0% - \else - \the\numexpr#1+#2\relax - \fi - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} - \expandafter\InCa@AtEnd -\fi% -% \end{macrocode} -% -% \subsection{Implementation without \eTeX} -% -% \subsubsection{\op{Num}} -% -% \begin{macro}{\intcalcNum} -% \begin{macrocode} -\def\intcalcNum#1{% - \number\expandafter\InCa@FirstOfOne\number#1! % -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Inv}, \op{Abs}, \op{Sgn}} -% -% \begin{macro}{\intcalcInv} -% \begin{macrocode} -\def\intcalcInv#1{% - \number\expandafter\InCa@FirstOfOne\number-#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@FirstOfOne} -% \begin{macrocode} -\def\InCa@FirstOfOne#1!{#1} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcAbs} -% \begin{macrocode} -\def\intcalcAbs#1{% - \number\expandafter\InCa@Abs\number#1! % -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcSgn} -% \begin{macrocode} -\def\intcalcSgn#1{% - \number\expandafter\InCa@Sgn\number#1! % -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Min}, \op{Max}, \op{Cmp}} -% -% \begin{macro}{\intcalcMin} -% \begin{macrocode} -\def\intcalcMin#1#2{% - \number\expandafter\InCa@Min - \number\number#1\expandafter!\number#2! % -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcMax} -% \begin{macrocode} -\def\intcalcMax#1#2{% - \number\expandafter\InCa@Max - \number\number#1\expandafter!\number#2! % -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcCmp} -% \begin{macrocode} -\def\intcalcCmp#1#2{% - \number\expandafter\InCa@Cmp - \number\number#1\expandafter!\number#2! % -}% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Inc}, \op{Dec}} -% -% \begin{macro}{\intcalcInc} -% \begin{macrocode} -\def\intcalcInc#1{% - \number\expandafter\InCa@IncSwitch\number#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@IncSwitch} -% \begin{macrocode} -\def\InCa@IncSwitch#1#2!{% - \ifx#1-% - -% - \csname InCa@Empty% - \InCa@Dec#2!% - \else - \csname InCa@Empty% - \InCa@Inc#1#2!% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\intcalcDec} -% \begin{macrocode} -\def\intcalcDec#1{% - \number\expandafter\InCa@DecSwitch\number#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@DecSwitch} -% \begin{macrocode} -\def\InCa@DecSwitch#1#2!{% - \ifx#1-% - -% - \csname InCa@Empty% - \expandafter\InCa@Inc#2!% - \else - \ifx#10% - -1% - \else - \csname InCa@Empty% - \InCa@Dec#1#2!% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\IntCalcInc} -% \begin{macrocode} -\def\IntCalcInc#1!{% - \number\csname InCa@Empty\InCa@Inc#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcDec} -% \begin{macrocode} -\def\IntCalcDec#1!{% - \number\csname InCa@Empty\InCa@Dec#1! % -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@Inc} -% \begin{macrocode} -\def\InCa@Inc#1#2{% - \ifx#2!% - \csname InCa@IncDigit#1\endcsname1% - \else - \csname InCa@IncDigit#1% - \expandafter\InCa@Inc\expandafter#2% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@IncDigit[0-8]} -% \begin{macrocode} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@IncDigit#1\endcsname##1{% - \endcsname - 0% - \ifcase##1 % - #1% - \else - #2% - \fi - }% -} -\InCa@Temp 01 -\InCa@Temp 12 -\InCa@Temp 23 -\InCa@Temp 34 -\InCa@Temp 45 -\InCa@Temp 56 -\InCa@Temp 67 -\InCa@Temp 78 -\InCa@Temp 89 -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@IncDigit9} -% \begin{macrocode} -\expandafter\def\csname InCa@IncDigit9\endcsname#1{% - \expandafter\endcsname - \ifcase#1 % - 09% - \else - 10% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@Dec} -% \begin{macrocode} -\def\InCa@Dec#1#2{% - \ifx#2!% - \csname InCa@DecDigit#1\endcsname1% - \else - \csname InCa@DecDigit#1% - \expandafter\InCa@Dec\expandafter#2% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@DecDigit[1-9]} -% \begin{macrocode} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@DecDigit#1\endcsname##1{% - \endcsname - 0% - \ifcase##1 % - #1% - \else - #2% - \fi - }% -} -\InCa@Temp 98 -\InCa@Temp 87 -\InCa@Temp 76 -\InCa@Temp 65 -\InCa@Temp 54 -\InCa@Temp 43 -\InCa@Temp 32 -\InCa@Temp 21 -\InCa@Temp 10 -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@DecDigit0} -% \begin{macrocode} -\expandafter\def\csname InCa@DecDigit0\endcsname#1{% - \expandafter\endcsname - \ifcase#1 % - 00% - \else - 19% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Add}, \op{Sub}} -% -% \begin{macro}{\intcalcAdd} -% \begin{macrocode} -\def\intcalcAdd#1#2{% - \number - \expandafter\InCa@AddSwitch - \number\number#1\expandafter!% - \number#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\intcalcSub} -% \begin{macrocode} -\def\intcalcSub#1#2{% - \number - \expandafter\InCa@AddSwitch - \number\number#1\expandafter!% - \number-\number#2! % -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@AddSwitch} -% Decision table for \cs{InCa@AddSwitch}. -% The sign of negative numbers can be removed -% by a simple \cs{@gobble} -% instead of the more expensive |\number-|. -% \begin{quote} -% \begin{tabular}[t]{@{}|l|l|l|l|l|@{}} -% \hline -% $x<0$ & $y<0$ & $ x< y$ & $-$ & $\opAdd(-x,-y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opAdd(-y,-x)$\\ -% \cline{2-5} -% & else & $-x> y$ & $-$ & $\opSub(-x, y)$\\ -% \cline{3-5} -% & & else & $+$ & $\opSub( y,-x)$\\ -% \hline -% else & $y<0$ & $ x>-y$ & $+$ & $\opSub( x,-y)$\\ -% \cline{3-5} -% & & else & $-$ & $\opSub(-y, x)$\\ -% \cline{2-5} -% & else & $ x> y$ & $+$ & $\opAdd( x, y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opAdd( y, x)$\\ -% \hline -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\InCa@AddSwitch#1!#2!{% - \ifnum#1<\z@ - \ifnum#2<\z@ - -% - \ifnum#1<#2 % - \expandafter\InCa@Add\number-#1\expandafter!% - \@gobble#2!% - \else - \expandafter\InCa@Add\number-#2\expandafter!% - \@gobble#1!% - \fi - \else - \ifnum-#1>#2 % - -% - \expandafter\InCa@Sub\@gobble#1!#2!% - \else - \expandafter\InCa@Sub\number#2\expandafter!% - \@gobble#1!% - \fi - \fi - \else - \ifnum#2<\z@ - \ifnum#1>-#2 % - \expandafter\InCa@Sub\number#1\expandafter!% - \@gobble#2!% - \else - -% - \expandafter\InCa@Sub\@gobble#2!#1!% - \fi - \else - \ifnum#1>#2 % - \InCa@Add#1!#2!% - \else - \InCa@Add#2!#1!% - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcAdd} -% \begin{macrocode} -\def\IntCalcAdd#1!#2!{% - \number\InCa@Add#1!#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcSub} -% \begin{macrocode} -\def\IntCalcSub#1!#2!{% - \number\InCa@Sub#1!#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Space} -% \begin{macrocode} -\begingroup - \def\x#1{\endgroup - \let\InCa@Space= #1% - }% -\x{ } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Add} -% \begin{macrocode} -\def\InCa@Add#1!#2!{% - \ifcase#2 % - #1% - \else - \InCa@@Add#1!#2!000000000\InCa@Space - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Sub} -% \begin{macrocode} -\def\InCa@Sub#1!#2!{% - \ifnum#1=#2 % - 0% - \else - \InCa@@Sub#1!#2!000000000\InCa@Space - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@Add} -% \begin{macrocode} -\def\InCa@@Add#1!#2#3!{% - \ifx\InCa@Empty#3\InCa@Empty - \@ReturnAfterElseFi{% - \InCa@@@Add!!#1!#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@Add#1!#3!#2% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@Sub} -% \begin{macrocode} -\def\InCa@@Sub#1!#2#3!{% - \ifx\InCa@Empty#3\InCa@Empty - \@ReturnAfterElseFi{% - \InCa@@@Sub!!#1!#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@Sub#1!#3!#2% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@@@Add} -% \begin{macrocode} -\def\InCa@@@Add#1!#2!#3#4!#5{% - \ifx\InCa@Empty#4\InCa@Empty - \csname InCa@Empty% - \@ReturnAfterElseFi{% - \InCa@ProcessAdd#1#3!#5#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@@Add#1#3!#5#2!#4!% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@@Sub} -% \begin{macrocode} -\def\InCa@@@Sub#1!#2!#3#4!#5{% - \ifx\InCa@Empty#4\InCa@Empty - \csname @gobble% - \@ReturnAfterElseFi{% - \InCa@ProcessSub#1#3!#5#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@@Sub#1#3!#5#2!#4!% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@ProcessAdd} -% \begin{macrocode} -\def\InCa@ProcessAdd#1#2!#3#4{% - \ifx\InCa@Empty#2\InCa@Empty - \csname InCa@AddDigit#1\endcsname#3% - \romannumeral0#4% - \else - \csname InCa@AddDigit#1\csname InCa@DigitCarry#3% - \@ReturnAfterFi{% - \InCa@ProcessAdd#2!#4% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ProcessSub} -% \begin{macrocode} -\def\InCa@ProcessSub#1#2!#3#4{% - \ifx\InCa@Empty#2\InCa@Empty - \csname InCa@SubDigit#1\endcsname#3% - \romannumeral0#4% - \else - \csname InCa@SubDigit#1\csname InCa@DigitCarry#3% - \@ReturnAfterFi{% - \InCa@ProcessSub#2!#4% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@DigitCarry[0-9]} -% \begin{macrocode} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@DigitCarry#1\endcsname##1{% - \ifcase##1 % - \endcsname#1% - \else - \endcsname#2% - \fi - }% -} -\InCa@Temp 01 -\InCa@Temp 12 -\InCa@Temp 23 -\InCa@Temp 34 -\InCa@Temp 45 -\InCa@Temp 56 -\InCa@Temp 67 -\InCa@Temp 78 -\InCa@Temp 89 -\InCa@Temp 9{{10}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@AddDigit0} -% \begin{macrocode} -\expandafter\def\csname InCa@AddDigit0\endcsname#1{% - \ifnum#1>9 % - \endcsname10% - \else - \endcsname0#1% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@AddDigit[1-9]} -% \begin{macrocode} -\def\InCa@Temp#1#2#3{% - \expandafter\def\csname InCa@AddDigit#1\endcsname##1{% - \ifnum##1>#2 % - \endcsname 1% - \else - \endcsname 0% - \fi - \ifcase##1 #1% 0 - #3% - \else #1% 10 - \fi - }% -} -\InCa@Temp 18{% - \or 2% 1 - \or 3% 2 - \or 4% 3 - \or 5% 4 - \or 6% 5 - \or 7% 6 - \or 8% 7 - \or 9% 8 - \or 0% 9 -}% -\InCa@Temp 27{% - \or 3% 1 - \or 4% 2 - \or 5% 3 - \or 6% 4 - \or 7% 5 - \or 8% 6 - \or 9% 7 - \or 0% 8 - \or 1% 9 -}% -\InCa@Temp 36{% - \or 4% 1 - \or 5% 2 - \or 6% 3 - \or 7% 4 - \or 8% 5 - \or 9% 6 - \or 0% 7 - \or 1% 8 - \or 2% 9 -}% -\InCa@Temp 45{% - \or 5% 1 - \or 6% 2 - \or 7% 3 - \or 8% 4 - \or 9% 5 - \or 0% 6 - \or 1% 7 - \or 2% 8 - \or 3% 9 -}% -\InCa@Temp 54{% - \or 6% 1 - \or 7% 2 - \or 8% 3 - \or 9% 4 - \or 0% 5 - \or 1% 6 - \or 2% 7 - \or 3% 8 - \or 4% 9 -}% -\InCa@Temp 63{% - \or 7% 1 - \or 8% 2 - \or 9% 3 - \or 0% 4 - \or 1% 5 - \or 2% 6 - \or 3% 7 - \or 4% 8 - \or 5% 9 -}% -\InCa@Temp 72{% - \or 8% 1 - \or 9% 2 - \or 0% 3 - \or 1% 4 - \or 2% 5 - \or 3% 6 - \or 4% 7 - \or 5% 8 - \or 6% 9 -}% -\InCa@Temp 81{% - \or 9% 1 - \or 0% 2 - \or 1% 3 - \or 2% 4 - \or 3% 5 - \or 4% 6 - \or 5% 7 - \or 6% 8 - \or 7% 9 -}% -\InCa@Temp 90{% - \or 0% 1 - \or 1% 2 - \or 2% 3 - \or 3% 4 - \or 4% 5 - \or 5% 6 - \or 6% 7 - \or 7% 8 - \or 8% 9 -}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@SubDigit[0-9]} -% \begin{macrocode} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@SubDigit#1\endcsname##1{% - \ifnum##1>#1 % - \endcsname 1% - \else - \endcsname 0% - \fi - \ifcase##1 #1% 0 - #2% - \else #1% 10 - \fi - }% -} -\InCa@Temp 0{% - \or 9% 1 - \or 8% 2 - \or 7% 3 - \or 6% 4 - \or 5% 5 - \or 4% 6 - \or 3% 7 - \or 2% 8 - \or 1% 9 -} -\InCa@Temp 1{% - \or 0% 1 - \or 9% 2 - \or 8% 3 - \or 7% 4 - \or 6% 5 - \or 5% 6 - \or 4% 7 - \or 3% 8 - \or 2% 9 -} -\InCa@Temp 2{% - \or 1% 1 - \or 0% 2 - \or 9% 3 - \or 8% 4 - \or 7% 5 - \or 6% 6 - \or 5% 7 - \or 4% 8 - \or 3% 9 -} -\InCa@Temp 3{% - \or 2% 1 - \or 1% 2 - \or 0% 3 - \or 9% 4 - \or 8% 5 - \or 7% 6 - \or 6% 7 - \or 5% 8 - \or 4% 9 -} -\InCa@Temp 4{% - \or 3% 1 - \or 2% 2 - \or 1% 3 - \or 0% 4 - \or 9% 5 - \or 8% 6 - \or 7% 7 - \or 6% 8 - \or 5% 9 -} -\InCa@Temp 5{% - \or 4% 1 - \or 3% 2 - \or 2% 3 - \or 1% 4 - \or 0% 5 - \or 9% 6 - \or 8% 7 - \or 7% 8 - \or 6% 9 -} -\InCa@Temp 6{% - \or 5% 1 - \or 4% 2 - \or 3% 3 - \or 2% 4 - \or 1% 5 - \or 0% 6 - \or 9% 7 - \or 8% 8 - \or 7% 9 -} -\InCa@Temp 7{% - \or 6% 1 - \or 5% 2 - \or 4% 3 - \or 3% 4 - \or 2% 5 - \or 1% 6 - \or 0% 7 - \or 9% 8 - \or 8% 9 -} -\InCa@Temp 8{% - \or 7% 1 - \or 6% 2 - \or 5% 3 - \or 4% 4 - \or 3% 5 - \or 2% 6 - \or 1% 7 - \or 0% 8 - \or 9% 9 -} -\InCa@Temp 9{% - \or 8% 1 - \or 7% 2 - \or 6% 3 - \or 5% 4 - \or 4% 5 - \or 3% 6 - \or 2% 7 - \or 1% 8 - \or 0% 9 -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Shl}, \op{Shr}} -% -% \begin{macro}{\intcalcShl} -% \begin{macrocode} -\def\intcalcShl#1{% - \number\expandafter\InCa@ShlSwitch\number#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ShlSwitch} -% \begin{macrocode} -\def\InCa@ShlSwitch#1#2!{% - \ifx#1-% - -\csname InCa@Empty% - \InCa@Shl#2!% - \else - \csname InCa@Empty% - \InCa@Shl#1#2!% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcShl} -% \begin{macrocode} -\def\IntCalcShl#1!{% - \number - \csname InCa@Empty% - \InCa@Shl#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCal@ShlDigit} -% \begin{macrocode} -\def\InCa@Shl#1#2{% - \ifx#2!% - \csname InCa@ShlDigit#1\endcsname0% - \else - \csname InCa@ShlDigit#1% - \@ReturnAfterFi{% - \InCa@Shl#2% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ShlDigit0} -% \begin{macrocode} -\expandafter\def\csname InCa@ShlDigit0\endcsname{% - \endcsname0% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ShlDigit[1-9]} -% \begin{macrocode} -\def\InCa@Temp#1#2#3#4#5{% - \expandafter\def\csname InCa@ShlDigit#1\endcsname##1{% - \expandafter\endcsname - \ifcase##1 % - #2#3% - \else - #4#5% - \fi - }% -} -\InCa@Temp 10203 -\InCa@Temp 20405 -\InCa@Temp 30607 -\InCa@Temp 40809 -\InCa@Temp 51011 -\InCa@Temp 61213 -\InCa@Temp 71415 -\InCa@Temp 81617 -\InCa@Temp 91819 -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcShr} -% \begin{macrocode} -\def\intcalcShr#1{% - \number\expandafter\InCa@ShrSwitch\number#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ShrSwitch} -% \begin{macrocode} -\def\InCa@ShrSwitch#1#2!{% - \ifx#1-% - -\InCa@Shr#2!% - \else - \InCa@Shr#1#2!% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcShr} -% \begin{macrocode} -\def\IntCalcShr#1!{% - \number\InCa@Shr#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Shr} -% \begin{macrocode} -\def\InCa@Shr#1#2{% - \InCa@ShrDigit#1!% - \ifx#2!% - \else - \@ReturnAfterFi{% - \ifodd#1 % - \@ReturnAfterElseFi{% - \InCa@Shr{1#2}% - }% - \else - \expandafter\InCa@Shr\expandafter#2% - \fi - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\def\InCa@ShrDigit#1!{% - \ifcase#1 0% 0 - \or 0% 1 - \or 1% 2 - \or 1% 3 - \or 2% 4 - \or 2% 5 - \or 3% 6 - \or 3% 7 - \or 4% 8 - \or 4% 9 - \or 5% 10 - \or 5% 11 - \or 6% 12 - \or 6% 13 - \or 7% 14 - \or 7% 15 - \or 8% 16 - \or 8% 17 - \or 9% 18 - \or 9% 19 - \fi -} -% \end{macrocode} -% -% \subsubsection{\cs{InCa@Tim}} -% -% \begin{macro}{\InCa@Tim} -% Macro \cs{InCa@Tim} implements -% ``Number \emph{tim}es digit''. -% \begin{macrocode} -\def\InCa@Temp#1{% - \def\InCa@Tim##1##2{% - \number - \ifcase##2 % 0 - 0% - \or % 1 - ##1% - \else % 2-9 - \csname InCa@Empty% - \InCa@ProcessTim##2##1!% - \fi - #1% - }% -} -\InCa@Temp{ } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ProcessTim} -% \begin{macrocode} -\def\InCa@ProcessTim#1#2#3{% - \ifx#3!% - \csname InCa@TimDigit#2\endcsname#10% - \else - \csname InCa@TimDigit#2\csname InCa@Param#1% - \@ReturnAfterFi{% - \InCa@ProcessTim#1#3% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Param[0-9]} -% \begin{macrocode} -\def\InCa@Temp#1{% - \expandafter\def\csname InCa@Param#1\endcsname{% - \endcsname#1% - }% -} -\InCa@Temp 0% -\InCa@Temp 1% -\InCa@Temp 2% -\InCa@Temp 3% -\InCa@Temp 4% -\InCa@Temp 5% -\InCa@Temp 6% -\InCa@Temp 7% -\InCa@Temp 8% -\InCa@Temp 9% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@TimDigit0} -% \begin{macrocode} -\expandafter\def\csname InCa@TimDigit0\endcsname#1#2{% - \endcsname - 0#2% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@TimDigit1} -% \begin{macrocode} -\expandafter\def\csname InCa@TimDigit1\endcsname#1#2{% - \ifcase#2 % - \endcsname 0#1% - \else - \csname InCa@AddDigit#1\endcsname #2% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@TimDigit[2-9]} -% \begin{macrocode} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@TimDigit#1\endcsname##1{% - \expandafter\InCa@TimDigitCarry - \number - \ifcase##1 0% 0 - #2% - \fi - !% - }% -} -\InCa@Temp 2{% - \or 2% 1 - \or 4% 2 - \or 6% 3 - \or 8% 4 - \or 10% 5 - \or 12% 6 - \or 14% 7 - \or 16% 8 - \or 18% 9 -} -\InCa@Temp 3{% - \or 3% 1 - \or 6% 2 - \or 9% 3 - \or 12% 4 - \or 15% 5 - \or 18% 6 - \or 21% 7 - \or 24% 8 - \or 27% 9 -} -\InCa@Temp 4{% - \or 4% 1 - \or 8% 2 - \or 12% 3 - \or 16% 4 - \or 20% 5 - \or 24% 6 - \or 28% 7 - \or 32% 8 - \or 36% 9 -} -\InCa@Temp 5{% - \or 5% 1 - \or 10% 2 - \or 15% 3 - \or 20% 4 - \or 25% 5 - \or 30% 6 - \or 35% 7 - \or 40% 8 - \or 45% 9 -} -\InCa@Temp 6{% - \or 6% 1 - \or 12% 2 - \or 18% 3 - \or 24% 4 - \or 30% 5 - \or 36% 6 - \or 42% 7 - \or 48% 8 - \or 54% 9 -} -\InCa@Temp 7{% - \or 7% 1 - \or 14% 2 - \or 21% 3 - \or 28% 4 - \or 35% 5 - \or 42% 6 - \or 49% 7 - \or 56% 8 - \or 63% 9 -} -\InCa@Temp 8{% - \or 8% 1 - \or 16% 2 - \or 24% 3 - \or 32% 4 - \or 40% 5 - \or 48% 6 - \or 56% 7 - \or 64% 8 - \or 72% 9 -} -\InCa@Temp 9{% - \or 9% 1 - \or 18% 2 - \or 27% 3 - \or 36% 4 - \or 45% 5 - \or 54% 6 - \or 63% 7 - \or 72% 8 - \or 81% 9 -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@TimDigitCarry} -% \begin{macrocode} -\def\InCa@TimDigitCarry#1!{% - \ifnum#1<10 % - \csname InCa@AddDigit#1\expandafter\endcsname - \else - \@ReturnAfterFi{% - \InCa@@TimDigitCarry#1!% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@TimDigitCarry} -% \begin{macrocode} -\def\InCa@@TimDigitCarry#1#2!#3{% - \csname InCa@DigitCarry#1% - \csname InCa@AddDigit#2\endcsname #3% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Mul}} -% -% \begin{macro}{\intcalcMul} -% \begin{macrocode} -\def\intcalcMul#1#2{% - \number - \expandafter\InCa@MulSwitch - \number\number#1\expandafter!% - \number#2! % -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\InCa@MulSwitch} -% Decision table for \cs{InCa@MulSwitch}. -% \begin{quote} -% \begin{tabular}[t]{@{}|l|l|l|l|l|@{}} -% \hline -% $x<0$ & $y<0$ & $ x< y$ & $+$ & $\opMul(-x,-y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul(-y,-x)$\\ -% \cline{2-5} -% & else & $-x> y$ & $-$ & $\opMul(-x, y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul( y,-x)$\\ -% \hline -% else & $y<0$ & $ x>-y$ & $-$ & $\opMul( x,-y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul(-y, x)$\\ -% \cline{2-5} -% & else & $ x> y$ & $+$ & $\opMul( x, y)$\\ -% \cline{3-3}\cline{5-5} -% & & else & & $\opMul( y, x)$\\ -% \hline -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\InCa@MulSwitch#1!#2!{% - \ifnum#1<\z@ - \ifnum#2<\z@ - \ifnum#1<#2 % - \expandafter\InCa@Mul\number-#1\expandafter!% - \@gobble#2!% - \else - \expandafter\InCa@Mul\number-#2\expandafter!% - \@gobble#1!% - \fi - \else - -% - \ifnum-#1>#2 % - \expandafter\InCa@Mul\@gobble#1!#2!% - \else - \expandafter\InCa@Mul\number#2\expandafter!% - \@gobble#1!% - \fi - \fi - \else - \ifnum#2<\z@ - -% - \ifnum#1>-#2 % - \expandafter\InCa@Mul\number#1\expandafter!% - \@gobble#2!% - \else - \expandafter\InCa@Mul\@gobble#2!#1!% - \fi - \else - \ifnum#1>#2 % - \InCa@Mul#1!#2!% - \else - \InCa@Mul#2!#1!% - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcMul} -% \begin{macrocode} -\def\IntCalcMul#1!#2!{% - \number\InCa@Mul#1!#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Mul} -% \begin{macrocode} -\def\InCa@Mul#1!#2!{% - \ifcase#2 % - 0% - \or - #1% - \or - \csname InCa@Empty% - \expandafter\InCa@Shl#1!% - \else - \ifnum#2<10 % - \InCa@Tim{#1}#2% - \else - \InCa@ProcessMul!#2!#1!% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Mul} -% \begin{macrocode} -\def\InCa@ProcessMul#1!#2#3!#4!{% - \ifx\InCa@Empty#3\InCa@Empty - \expandafter\InCa@Add\number - #10\expandafter\expandafter\expandafter!% - \InCa@Tim{#4}#2!% - \else - \ifx\InCa@Empty#1\InCa@Empty - \expandafter\expandafter\expandafter\InCa@ProcessMul - \InCa@Tim{#4}#2!% - #3!#4!% - \else - \expandafter\InCa@ProcessMul\number - \expandafter\InCa@Add\number% - #10\expandafter\expandafter\expandafter!% - \InCa@Tim{#4}#2!!% - #3!#4!% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Sqr}, \op{Fac}} -% -% \begin{macro}{\intcalcSqr} -% \begin{macrocode} -\def\intcalcSqr#1{% - \number\expandafter\InCa@Sqr\number#1! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Sqr} -% \begin{macrocode} -\def\InCa@Sqr#1#2!{% - \ifx#1-% - \InCa@Mul#2!#2!% - \else - \InCa@Mul#1#2!#1#2!% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\intcalcFac} -% \begin{macrocode} -\def\intcalcFac#1{% - \number\expandafter\InCa@Fac\number#1! % -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Pow}} -% -% \begin{macro}{\intcalcPow} -% \begin{macrocode} -\def\intcalcPow#1#2{% - \number\expandafter\InCa@Pow - \number\number#1\expandafter!% - \number#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Pow} -% \begin{macrocode} -\def\InCa@Pow#1#2!#3#4!{% - \ifcase#3#4 % power = 0 - 1% - \or % power = 1 - #1#2% - \or % power = 2 - \ifx#1-% - \InCa@Mul#2!#2!% - \else - \InCa@Mul#1#2!#1#2!% - \fi - \else - \ifcase#1#2 % basis = 0, power <> 0 - 0% - \ifx#3-% power < 0 - 0\IntCalcError:DivisionByZero% - \fi - \or - 1% basis = 1 - \else - \ifnum#1#2=\m@ne % basis = -1 - \ifodd#3#4 % - -% - \fi - 1% - \else % |basis| > 1 - \ifx#3-% power < 0 - 0% - \else % power > 2 - \ifx#1-% basis < 0 - \ifodd#3#4 % - -% - \fi - \InCa@PowRec#2!#3#4!1!% - \else - \InCa@PowRec#1#2!#3#4!1!% - \fi - \fi - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@PowRec} -%\begin{quote} -%\begin{verbatim} -%Pow(b, p) { -% PowRec(b, p, 1) -%} -%PowRec(b, p, r) { -% if p == 1 then -% return r -% else -% ifodd p then -% return PowRec(b*b, p div 2, r*b) % p div 2 = (p-1)/2 -% else -% return PowRec(b*b, p div 2, r) -% fi -% fi -%} -%\end{verbatim} -%\end{quote} -% \begin{macrocode} -\def\InCa@PowRec#1!#2!#3!{% - \ifnum#2=\@ne - \ifnum#1>#3 % - \InCa@Mul#1!#3!% - \else - \InCa@Mul#3!#1!% - \fi - \else - \expandafter\InCa@PowRec - \number\InCa@Mul#1!#1!\expandafter!% - \number\intcalcShr{#2}\expandafter!% - \number - \ifodd#2 % - \ifnum#1>#3 % - \InCa@Mul#1!#3!% - \else - \InCa@Mul#3!#1!% - \fi - \else - #3% - \fi - \expandafter!% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Div}} -% -% \begin{macro}{\intcalcDiv} -% \begin{macrocode} -\def\intcalcDiv#1#2{% - \number\expandafter\InCa@Div - \number\number#1\expandafter!% - \number#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@Div} -% \begin{macrocode} -\def\InCa@Div#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase#1 % - 0% - \else - \expandafter\InCa@DivSwitch - \number#1\expandafter!% - \number#2!% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcDiv} -% \begin{macrocode} -\def\InCa@Temp#1{% - \def\IntCalcDiv##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \InCa@@Div##1!##2!% - \fi - \fi - #1% - }% -} -\InCa@Temp{ }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@DivSwitch} -% Decision table for \cs{InCa@DivSwitch}. -% \begin{quote} -% \begin{tabular}[t]{@{}|l|l|l|l|@{}} -% \hline -% $x<0$ & $y<0$ & $+$ & $\opDiv(-x,-y)$\\ -% \cline{2-4} -% & else & $-$ & $\opDiv(-x, y)$\\ -% \hline -% else & $y<0$ & $-$ & $\opDiv( x,-y)$\\ -% \cline{2-4} -% & else & $+$ & $\opDiv( x, y)$\\ -% \hline -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\InCa@DivSwitch#1!#2!{% - \ifnum#1<\z@ - \ifnum#2<\z@ - \expandafter\InCa@@Div\number-#1\expandafter!% - \@gobble#2!% - \else - -% - \expandafter\InCa@@Div\@gobble#1!#2!% - \fi - \else - \ifnum#2<\z@ - -% - \expandafter\InCa@@Div\number#1\expandafter!% - \@gobble#2!% - \else - \InCa@@Div#1!#2!% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@Div} -% \begin{macrocode} -\def\InCa@@Div#1!#2!{% - \ifnum#1>#2 % - \ifcase#2 % 0 already catched -? \IntCalcError:ThisCannotHappen% - \or % 1 - #1% - \or % 2 - \InCa@Shr#1!% - \else - \InCa@DivStart!#1!#2!#2!% - \fi - \else - \ifnum#1=#2 % - 1% - \else - 0% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@DivStart} -% \begin{macrocode} -\def\InCa@DivStart#1!#2#3!#4#5{% - \ifx#5!% - \@ReturnAfterElseFi{% - \InCa@DivStartI{#1#2}#3=!% - }% - \else - \@ReturnAfterFi{% - \InCa@DivStart{#1#2}!#3!#5% - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@StartI} -% \begin{macrocode} -\def\InCa@DivStartI#1!#2!{% - \expandafter\InCa@DivStartII - \number#2\expandafter\expandafter\expandafter!% - \intcalcShl{#2}!% - #1!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@StartII} -% \begin{macrocode} -\def\InCa@DivStartII#1!#2!{% - \expandafter\InCa@DivStartIII - \number#1\expandafter!% - \number#2\expandafter\expandafter\expandafter!% - \intcalcShl{#2}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@StartIII} -% \begin{macrocode} -\def\InCa@DivStartIII#1!#2!#3!{% - \expandafter\InCa@DivStartIV - \number#1\expandafter!% - \number#2\expandafter!% - \number#3\expandafter!% - \number\InCa@Add#3!#2!\expandafter\expandafter\expandafter!% - \intcalcShl{#3}!% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@StartIV} -% \begin{macrocode} -\def\InCa@DivStartIV#1!#2!#3!#4!#5!#6!{% - \InCa@ProcessDiv#6!#1!#2!#3!#4!#5!/% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ProcessDiv} -% \begin{macrocode} -\def\InCa@ProcessDiv#1#2#3!#4!#5!#6!#7!#8!#9/{% - #9% - \ifnum#1<#4 % 0 - 0% - \ifx#2=% - \else - \InCa@ProcessDiv{#1#2}#3!#4!#5!#6!#7!#8!% - \fi - \else % 1-9 - \ifnum#1<#5 % 1 - 1% - \ifx#2=% - \else - \expandafter\InCa@ProcessDiv\expandafter{% - \number\InCa@Sub#1!#4!% - #2% - }#3!#4!#5!#6!#7!#8!% - \fi - \else % 2-9 - \ifnum#1<#7 % 2 3 4 5 - \ifnum#1<#6 % 2 3 - \@ReturnAfterElseFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#5!!% - 23% - }% - \else % 4 5 - \@ReturnAfterFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#6!!% - 45% - }% - \fi - #2#3!#4!#5!#6!#7!#8!% - \else % 6 7 8 9 - \ifnum#1<#8 % 6 7 - \@ReturnAfterElseFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#7!!% - 67% - }% - \else % 8 9 - \@ReturnAfterFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#8!!% - 89% - }% - \fi - #2#3!#4!#5!#6!#7!#8!% - \fi - \fi - \fi - \ifx#2=% - \expandafter\@gobble - \fi - /% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@@ProcessDiv} -% \begin{macrocode} -\def\InCa@@ProcessDiv#1!#2#3#4#5!#6!{% - \ifnum#1<#6 % - #2% - \@ReturnAfterElseFi{% - \ifx#4=% - \expandafter\InCa@CleanupIV - \else - \@ReturnAfterFi{% - \InCa@ProcessDiv{#1#4}#5!#6!% - }% - \fi - }% - \else - #3% - \@ReturnAfterFi{% - \ifx#4=% - \expandafter\InCa@CleanupIV - \else - \@ReturnAfterFi{% - \expandafter\InCa@ProcessDiv\expandafter{% - \number\InCa@Sub#1!#6! % - #4% - }#5!#6!% - }% - \fi - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@CleanupIV} -% \begin{macrocode} -\def\InCa@CleanupIV#1!#2!#3!#4!{} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\op{Mod}} -% -% \begin{macro}{\intcalcMod} -% \begin{macrocode} -\def\intcalcMod#1#2{% - \number\expandafter\InCa@Mod - \number\number#1\expandafter!% - \number#2! % -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\intcalc@Mod} -% Pseudocode/decision table for \cs{intcalc@Mod}. -% \begin{quote} -% \begin{tabular}{@{}lll@{}} -% if & $y=0$ & DivisionByZero\\ -% elsif & $y<0$ & $-\opMod(-x,-y)$\\ -% elsif & $x=0$ & 0\\ -% elsif & $y=1$ & 0\\ -% elsif & $y=2$ & $\opOdd(x)\mathbin{?}1\mathbin{:}0$\\ -% elsif & $x<0$ & -% $z\leftarrow x-(x/y)*y;\quad (z<0)\mathbin{?}z+y\mathbin{:}z$\\ -% else & & $x-(x/y)*y$\\ -% \\ -% \end{tabular} -% \end{quote} -% \begin{macrocode} -\def\InCa@Mod#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifnum#2<\z@ - -% - \expandafter\InCa@Mod - \number-#1\expandafter!% - \number-#2!% - \else - \ifcase#1 % - 0% - \else - \ifcase#2 % 0 already catched -? \IntCalcError:ThisCannotHappen% - \or % 1 - 0% - \or % 2 - \ifodd#1 1\else 0\fi - \else - \ifnum#1<\z@ - \expandafter\InCa@ModShift - \number-% - \expandafter\InCa@Sub - \number\@gobble#1\expandafter!% - \number\intcalcMul{#2}{% - \expandafter\InCa@Div\@gobble#1!#2!% - }!% - !#2!% - \else - \expandafter\InCa@Sub\number#1\expandafter!% - \number\intcalcMul{#2}{\InCa@Div#1!#2!}!% - \fi - \fi - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IntCalcMod} -% \begin{macrocode} -\def\InCa@Temp#1{% - \def\IntCalcMod##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \ifcase##2 % 0 already catched -? \IntCalcError:ThisCannotHappen - \or % 1 - 0% - \or % 2 - \ifodd ##1 1\else 0\fi - \else - \expandafter\InCa@Sub\number##1\expandafter!% - \number\intcalcMul{##2}{\InCa@Div##1!##2!}!% - \fi - \fi - \fi - #1% - }% -} -\InCa@Temp{ }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\InCa@ModShift} -% \begin{macrocode} -\def\InCa@ModShift#1!#2!{% - \ifnum#1<\z@ - \expandafter\InCa@Sub\number#2\expandafter!% - \@gobble#1!% - \else - #1% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Help macros} -% -% \begin{macro}{\InCa@Empty} -% \begin{macrocode} -\def\InCa@Empty{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@gobble} -% \begin{macrocode} -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ReturnAfterFi} -% \begin{macrocode} -\long\def\@ReturnAfterFi#1\fi{\fi#1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@ReturnAfterElseFi} -% \begin{macrocode} -\long\def\@ReturnAfterElseFi#1\else#2\fi{\fi#1}% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\InCa@AtEnd% -% \end{macrocode} -% -% \begin{macrocode} -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{intcalc}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/intcalc.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/intcalc.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex intcalc.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% intcalc.sty & tex/generic/oberdiek/intcalc.sty\\ -% intcalc.pdf & doc/latex/oberdiek/intcalc.pdf\\ -% intcalc.dtx & source/latex/oberdiek/intcalc.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{intcalc.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex intcalc.dtx -%makeindex -s gind.ist intcalc.idx -%pdflatex intcalc.dtx -%makeindex -s gind.ist intcalc.idx -%pdflatex intcalc.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2007/09/09 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2007/09/27 v1.1} -% \item -% \cs{intcalcNum} added. -% \item -% \cs{intcalcShl} and \cs{intcalcShr} allow negative numbers. -% The sign is preserved. -% \item -% Reuse \cs{@gobble} instead of own macro \cs{IntCalc@Gobble}. -% \item -% Small fixes. -% \item -% Shorter internal prefix. -% \item -% Some programmer's interface. -% \end{Version} -% \begin{Version}{2016/05/16 v1.2} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/kvdefinekeys.dtx b/Master/texmf-dist/source/latex/oberdiek/kvdefinekeys.dtx deleted file mode 100644 index 3b864fc73b5..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/kvdefinekeys.dtx +++ /dev/null @@ -1,607 +0,0 @@ -% \iffalse meta-comment -% -% File: kvdefinekeys.dtx -% Version: 2016/05/16 v1.4 -% Info: Define keys -% -% Copyright (C) -% 2010, 2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 kvdefinekeys.dtx -% and the derived files -% kvdefinekeys.sty, kvdefinekeys.pdf, kvdefinekeys.ins, kvdefinekeys.drv, -% kvdefinekeys-test1.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/kvdefinekeys.dtx -% CTAN:macros/latex/contrib/oberdiek/kvdefinekeys.pdf -% -% Unpacking: -% (a) If kvdefinekeys.ins is present: -% tex kvdefinekeys.ins -% (b) Without kvdefinekeys.ins: -% tex kvdefinekeys.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{kvdefinekeys.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If kvdefinekeys.drv is present: -% latex kvdefinekeys.drv -% (b) Without kvdefinekeys.drv: -% latex kvdefinekeys.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex kvdefinekeys.dtx -% makeindex -s gind.ist kvdefinekeys.idx -% pdflatex kvdefinekeys.dtx -% makeindex -s gind.ist kvdefinekeys.idx -% pdflatex kvdefinekeys.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/kvdefinekeys.sty -% TDS:doc/latex/oberdiek/kvdefinekeys.pdf -% TDS:source/latex/oberdiek/kvdefinekeys.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: kvdefinekeys -Version: 2016/05/16 v1.4 - -Copyright (C) - 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/oberdiek/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 kvdefinekeys.dtx -and the derived files - kvdefinekeys.sty, kvdefinekeys.pdf, kvdefinekeys.ins, kvdefinekeys.drv, - kvdefinekeys-test1.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{kvdefinekeys.ins}{\from{kvdefinekeys.dtx}{install}}% - \file{kvdefinekeys.drv}{\from{kvdefinekeys.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{kvdefinekeys.sty}{\from{kvdefinekeys.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{kvdefinekeys-test1.tex}{\from{kvdefinekeys.dtx}{test1}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* kvdefinekeys.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `kvdefinekeys.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{kvdefinekeys.drv}% - [2016/05/16 v1.4 Define keys (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{kvdefinekeys.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{kvdefinekeys.drv} -% -% \title{The \xpackage{kvdefinekeys} package} -% \date{2016/05/16 v1.4} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% Package \xpackage{kvdefinekeys} provides \cs{kv@define@key} to define -% keys the same way as \xpackage{keyval}'s \cs{define@key}. However, it -% works also using \iniTeX. -% \end{abstract} -% -% \tableofcontents -% -% \def\M#1{\texttt{\{}\meta{#1}\texttt{\}}} -% -% \section{Documentation} -% -% \subsection{Motivation} -% -% \cs{kvsetkeys} serves as replacement for \xpackage{keyval}'s -% \cs{setkeys}. This package adds macros to define keys, closing -% the gap \cs{kvsetkeys} leaves. -% -% \begin{declcs}{kv@define@key}\,\M{family}\,\M{key}\,[\meta{default}]\,^^A -% \M{definition} -% \end{declcs} -% Macro \cs{kv@define@key} reimplements \xpackage{keyval}'s -% \cs{define@key}. Differences to the original: -% \begin{itemize} -% \item The defined keys also allow \cs{par} inside values. -% \item Shorthands of package \xpackage{babel} are supported in -% family and key names. -% \item Macro \cs{kv@define@key} is made robust if -% \hologo{eTeX}'s \cs{protected} or \hologo{LaTeX}'s -% \cs{DeclareRobustCommand} are found. -% \end{itemize} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \subsection{Identification} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@kvdefinekeys.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{kvdefinekeys}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@kvdefinekeys.sty\endcsname -\ProvidesPackage{kvdefinekeys}% - [2016/05/16 v1.4 Define keys (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname KVD@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\KVD@AtEnd{% - \KVD@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\KVD@AtEnd{\KVD@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{Package loading} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{ltxcmds}[2010/03/01]% -\else - \RequirePackage{ltxcmds}[2010/03/01]% -\fi -% \end{macrocode} -% -% -% \subsection{Provide key defining macro} -% -% \begin{macro}{\kv@define@key} -% \begin{macrocode} -\ltx@IfUndefined{protected}{% - \ltx@IfUndefined{DeclareRobustCommand}{% - \def\kv@define@key#1#2% - }{% - \DeclareRobustCommand*{\kv@define@key}[2]% - }% -}{% - \protected\def\kv@define@key#1#2% -}% -{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \edef\KVD@temp{\endgroup - \noexpand\KVD@DefineKey{#1}{#2}% - }% - \KVD@temp -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVD@DefineKey} -% \begin{macrocode} -\def\KVD@DefineKey#1#2{% - \ltx@ifnextchar[{% - \KVD@DefineKeyWithDefault{#1}{#2}% - }{% - \long\expandafter\def\csname KV@#1@#2\endcsname##1% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVD@DefineKeyWithDefault} -% \begin{macrocode} -\long\def\KVD@DefineKeyWithDefault#1#2[#3]{% - \expandafter\def\csname KV@#1@#2@default\expandafter\endcsname - \expandafter{% - \csname KV@#1@#2\endcsname{#3}% - }% - \long\expandafter\def\csname KV@#1@#2\endcsname##1% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\KVD@AtEnd% -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{kvdefinekeys}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/kvdefinekeys.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/kvdefinekeys.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex kvdefinekeys.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% kvdefinekeys.sty & tex/generic/oberdiek/kvdefinekeys.sty\\ -% kvdefinekeys.pdf & doc/latex/oberdiek/kvdefinekeys.pdf\\ -% kvdefinekeys.dtx & source/latex/oberdiek/kvdefinekeys.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{kvdefinekeys.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex kvdefinekeys.dtx -%makeindex -s gind.ist kvdefinekeys.idx -%pdflatex kvdefinekeys.dtx -%makeindex -s gind.ist kvdefinekeys.idx -%pdflatex kvdefinekeys.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% \bibitem{keyval} -% David Carlisle: -% \textit{The \xpackage{keyval} package}; -% 1999/03/16 v1.13; -% \CTAN{macros/latex/required/graphics/keyval.dtx}. -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2010/03/01 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2010/08/19 v1.1} -% \item -% Documentation fix, no code change. -% \end{Version} -% \begin{Version}{2011/01/30 v1.2} -% \item -% Already loaded package files are not input in \hologo{plainTeX}. -% \end{Version} -% \begin{Version}{2011/04/07 v1.3} -% \item -% Support for package \xpackage{babel}'s shorthands added. -% \item -% \cs{kv@define@key} is made robust if available. -% \end{Version} -% \begin{Version}{2016/05/16 v1.4} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx b/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx deleted file mode 100644 index 7bbd4fe568e..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx +++ /dev/null @@ -1,1686 +0,0 @@ -% \iffalse meta-comment -% -% File: kvsetkeys.dtx -% Version: 2016/05/16 v1.17 -% Info: Key value parser -% -% Copyright (C) -% 2006, 2007, 2009-2012 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 kvsetkeys.dtx -% and the derived files -% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv, -% kvsetkeys-example.tex, kvsetkeys-test1.tex, -% kvsetkeys-test2.tex, kvsetkeys-test3.tex, -% kvsetkeys-test4.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/kvsetkeys.dtx -% CTAN:macros/latex/contrib/oberdiek/kvsetkeys.pdf -% -% Unpacking: -% (a) If kvsetkeys.ins is present: -% tex kvsetkeys.ins -% (b) Without kvsetkeys.ins: -% tex kvsetkeys.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{kvsetkeys.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If kvsetkeys.drv is present: -% latex kvsetkeys.drv -% (b) Without kvsetkeys.drv: -% latex kvsetkeys.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex kvsetkeys.dtx -% makeindex -s gind.ist kvsetkeys.idx -% pdflatex kvsetkeys.dtx -% makeindex -s gind.ist kvsetkeys.idx -% pdflatex kvsetkeys.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/kvsetkeys.sty -% TDS:doc/latex/oberdiek/kvsetkeys.pdf -% TDS:doc/latex/oberdiek/kvsetkeys-example.tex -% TDS:source/latex/oberdiek/kvsetkeys.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: kvsetkeys -Version: 2016/05/16 v1.17 - -Copyright (C) - 2006, 2007, 2009-2012 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/oberdiek/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 kvsetkeys.dtx -and the derived files - kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv, - kvsetkeys-example.tex, kvsetkeys-test1.tex, - kvsetkeys-test2.tex, kvsetkeys-test3.tex, - kvsetkeys-test4.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{kvsetkeys.ins}{\from{kvsetkeys.dtx}{install}}% - \file{kvsetkeys.drv}{\from{kvsetkeys.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{kvsetkeys.sty}{\from{kvsetkeys.dtx}{package}}% - \usedir{doc/latex/oberdiek}% - \file{kvsetkeys-example.tex}{\from{kvsetkeys.dtx}{example}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{kvsetkeys-test1.tex}{\from{kvsetkeys.dtx}{test1}}% -% \file{kvsetkeys-test2.tex}{\from{kvsetkeys.dtx}{test2}}% -% \file{kvsetkeys-test3.tex}{\from{kvsetkeys.dtx}{test2,noetex}}% -% \file{kvsetkeys-test4.tex}{\from{kvsetkeys.dtx}{test4}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* kvsetkeys.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `kvsetkeys.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{kvsetkeys.drv}% - [2016/05/16 v1.17 Key value parser (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{kvsetkeys.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{kvsetkeys.drv} -% -% \title{The \xpackage{kvsetkeys} package} -% \date{2016/05/16 v1.17} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% Package \xpackage{kvsetkeys} provides \cs{kvsetkeys}, a variant -% of package \xpackage{keyval}'s \cs{setkeys}. It allows to specify -% a handler that deals with unknown options. Active commas and equal -% signs may be used (e.g. see \xpackage{babel}'s shorthands) and -% only one level of curly braces is removed from the values. -% \end{abstract} -% -% \tableofcontents -% -% \def\M#1{\texttt{\{}\meta{#1}\texttt{\}}} -% -% \section{Documentation} -% -% First I want to recommend the very good review article -% ``A guide to key-value methods'' by Joseph Wright \cite{tb94wright}. -% It introduces the different key-value packages and compares them. -% -% \subsection{Motivation} -% -% \cs{kvsetkeys} serves as replacement for \xpackage{keyval}'s -% \cs{setkeys}. It basically uses the same syntax. But the -% implementation is more robust and predictable: -% \begin{description} -% \item[Active syntax characters:] -% Comma `|,|' and the equals sign `|=|' are used inside -% key value lists as syntax characters. Package \xpackage{keyval} -% uses the catcode of the characters that is active during -% package loading, usually this is catcode 12 (other). -% But it can happen that the catcode setting of the syntax characters -% changes. Especially active characters are of interest, because -% some language adaptations uses them. For example, option \xoption{turkish} -% of package \xpackage{babel} uses the equals sign as active shorthand -% character. Therefore package \xpackage{kvsetkeys} deals with -% both catcode settings 12 (other) and 13 (active). -% \item[Brace removal:] -% Package \xpackage{keyval}'s \cs{setkeys} removes up to two -% levels of curly braces around the value in some unpredictable way: -%\begin{quote} -%|\setkeys{fam}{key={{value}}} || || | $\rightarrow$ |value|\\ -%|\setkeys{fam}{key={{{value}}}} | $\rightarrow$ |{value}|\\ -%|\setkeys{fam}{key= {{{value}}}}| $\rightarrow$ |{{value}}| -%\end{quote} -% This package \xpackage{kvsetkeys} follows a much stronger rule: -% Exactly one level of braces are removed from an item, if the -% item is surrounded by curly braces. An item can be a -% the key value pair, the key or the value. -%\begin{quote} -%|\kvsetkeys{fam}{key={value}} || | $\rightarrow$ |value|\\ -%|\kvsetkeys{fam}{key={{value}} | $\rightarrow$ |{value}|\\ -%|\kvsetkeys{fam}{key= {{value}}| $\rightarrow$ |{value}| -%\end{quote} -% \item[Arbitrary values:] Unmatched conditionals are supported. -% \end{description} -% -% Before I describe -% \cs{kvsetkeys} in more detail, first I want to explain, how -% this package deals with key value lists. For the package also -% provides low level interfaces that can be used by package authors. -% -% \subsection{Normalizing key value lists} -% -% \begin{declcs}{kv@normalize}\,\M{key value list} -% \end{declcs} -% If the user specifies key value lists, he usually prefers -% nice formatted source code, e.g.: -% \begin{quote} -%\begin{verbatim} -%\hypersetup{ -% pdftitle = {...}, -% pdfsubject = {...}, -% pdfauthor = {...}, -% pdfkeywords = {...}, -% ... -%} -%\end{verbatim} -% \end{quote} -% Thus there can be spaces around keys, around |=| or around the value. -% Also empty entries are possible by too many commas. Therefore these -% spaces and empty entries are silently removed by package \xpackage{keyval} -% and this package. Whereas the contents of the value can be protected -% by curly braces, especially if spaces or commas are used inside, -% a key name must not use spaces or other syntax characters. -% -% \cs{kv@normalize} takes a key value list and performs the cleanup: -% \begin{itemize} -% \item Spaces are removed. -% \item Syntax characters (comma and equal sign) that are active -% are replaced by the same characters with standard catcode. -% (Example: \xpackage{babel}'s language option \xoption{turkish} -% uses the equal sign as active shorthand character.) -% \end{itemize} -% The result is stored in \cs{kv@list}, e.g.: -% \begin{quote} -% |\kv@list| $\rightarrow$ |,pdftitle={...},pdfsubject={...},...,| -% \end{quote} -% Curly braces around values (or keys) remain untouched. -% \begin{description} -% \item[v1.3+:] -% One comma is added in front of the list and each pair ends with -% a comma. Thus an empty list consists of one comma, otherwise -% two commas encloses the list. Empty entries other than the first -% are removed. -% \item[v1.0 -- v1.2:] -% Empty entries are removed later. In fact it adds a comma at the begin -% and end to protect the last value and an easier implementation. -% \end{description} -% -% \subsection{Parsing key value lists} -% -% \begin{declcs}{kv@parse}\,\M{key value list}\,\M{processor} -% \end{declcs} -% It is easier to parse a normalized list, thus \cs{kv@parse} -% normalizes the list and calls \cs{kv@parse@normalized}. -% -% \begin{declcs}{kv@parse@normalized}\,\M{key value list}% -% \,\M{processor} -% \end{declcs} -% Now the key value list is split into single key value pairs. -% For further processing the key and value are given as arguments -% for the \meta{processor}: -% \begin{quote} -% \meta{processor}\,\M{key}\,\M{value} -% \end{quote} -% Also key and value are stored in macro names: -% \begin{itemize} -% \item \cs{kv@key} stores the key. -% \item \cs{kv@value} stores the value or if the value was not -% specified it has the meaning \cs{relax}. -% \end{itemize} -% The behaviour in pseudo code: -% \begin{quote} -% foreach (\meta{key}, \meta{value}) in (\meta{key value list})\\ -% \hspace*{1.5em}\cs{kv@key} := \meta{key}\\ -% \hspace*{1.5em}\cs{kv@value} := \meta{value}\\ -% \hspace*{1.5em}\meta{processor}\,\M{key}\,\M{value} -% \end{quote} -% -% \begin{declcs}{kv@break} -% \end{declcs} -% Since version 2011/03/03 v1.11 \cs{kv@break} can be -% called inside the \meta{processor} -% of \cs{kv@parse} or \cs{kv@parse@normalized}, then -% the processing is stopped and the following entries discarded. -% -% \subsection{Processing key value pairs} -% -% Key value pairs can be processed in many different ways. -% For example, the processor for \cs{kvsetkeys} works similar -% to \cs{setkeys} of package \xpackage{keyval}. There unknown -% keys raise an error. -% -% Package \xpackage{xkeyval} also knows a star form of \cs{setkeys} -% that stores unknown keys in an internal macro for further processing -% with \cs{setrmkeys} and similar macros. This feature is covered -% by processor \cs{kv@processor@known}. -% -% \subsubsection{Processing similar to \xpackage{keyval}} -% -% \begin{declcs}{kv@processor@default}\,\M{family}\,\M{key}\,\M{value} -% \end{declcs} -% There are many possiblities to process key value pairs. -% \cs{kv@processor@default} is the processor used in \cs{kvsetkeys}. -% It reimplements and extends the behaviour of -% \xpackage{keyval}'s \cs{setkeys}. -% In case of unknown keys \cs{setkeys} raise an error. -% This processer, however, calls a handler instead, if it -% is provided by the family. Both \meta{family} and \meta{key} -% may contain package \xpackage{babel}'s shorthands -% (since 2011/04/07 v1.13). -% -% Since 2011/10/18 v1.15 the family handler can reject the -% successful handling of a key by calling \cs{kv@handled@false}. -% -% Since 2016/05/16 v1.17 \cs{kv@processor@default} also defines -% macro \cs{kv@fam} with meaning \meta{family} for convenience. -% -% \subsubsection{Processing similar to \cs{setkeys*} of package \xpackage{xkeyval}} -% -% \begin{declcs}{kv@processor@known}\,\M{family}\,^^A -% \M{cmd}\,\M{key}\,\M{value} -% \end{declcs} -% The key value processor \cs{kv@processor@known} behaves similar -% to \cs{kv@processor@default}. If the \meta{key} exists in the -% \meta{family} its code is called, otherwise the family handler -% is tried. If the family handler is not set or cannot handle the -% key, the unknown key value pair is added to the macro \meta{cmd}. -% Since 2011/10/18 v1.15. -% -% The behaviour in pseudo code: -% \begin{quote} -% if \meta{key} exists\\ -% \hspace*{1.5em}call the keyval code of \meta{key}\\ -% else\\ -% \hspace*{1.5em}if \meta{handler} for \meta{family} exists\\ -% \hspace*{3em}handled = true\\ -% \hspace*{3em}\meta{handler}\,\M{key}\,\M{value}\\ -% \hspace*{3em}if handled\\ -% \hspace*{3em}else\\ -% \hspace*{4.5em}add \texttt{"}\M{key}\texttt{=}\M{value}\texttt{"} -% to \M{cmd}\\ -% \hspace*{3em}fi\\ -% \hspace*{1.5em}else\\ -% \hspace*{3em}add \texttt{"}\M{key}\texttt{=}\M{value}\texttt{"} -% to \M{cmd}\\ -% \hspace*{3em}raise unknown key error\\ -% \hspace*{1.5em}fi\\ -% fi -% \end{quote} -% -% Since 2016/05/16 v1.17 \cs{kv@processor@known} also defines -% macro \cs{kv@fam} with meaning \meta{family} for convenience. -% -% \subsection{Default family handler} -% -% \cs{kv@processor@default} calls \meta{handler}, the default -% handler for the family, if the key does not exist in the family. -% The handler is called with two arguments, the key and the value. -% It can be defined with \cs{kv@set@family@hander}: -% -% \begin{declcs}{kv@set@family@handler}\,\M{family}\,\M{handler definition} -% \end{declcs} -% This sets the default family handler for the keyval family -% \meta{family}. Inside \meta{handler definition} |#1| stands for -% the key and |#2| is the value. Also \cs{kv@key} and \cs{kv@value} -% can be used for the key and the value. If the value is not given, -% \cs{kv@value} has the meaning \cs{relax}. -% -% \begin{declcs}{kv@unset@family@handler}\,\M{family} -% \end{declcs} -% It removes the family handler for \meta{family}. -% Since 2011/10/18 v1.15. -% -% \subsection{Put it all together} -% -% \begin{declcs}{kvsetkeys}\,\M{family}\,\M{key value list} -% \end{declcs} -% Macro \cs{kvsetkeys} processes the \meta{key value list} with -% the standard processor \cs{kv@processor@default}: -% \begin{quote} -% \cs{kv@parse}\,\M{key value list}^^A -% \texttt{\{}\cs{kv@processor@default}\,\M{family}\texttt{\}} -% \end{quote} -% -% \begin{declcs}{kvsetknownkeys}\,\M{family}\,\M{cmd}\,\M{key value list} -% \end{declcs} -% Macro \cs{kvsetknownkeys} processes the \meta{key value list} -% with processor \cs{kv@processor@known}. All key value pairs -% with keys that are not known in \meta{family} are stored -% in macro \meta{cmd}. A previous contents of macro \meta{cmd} -% will be overwritten. If all keys can be handled, \meta{cmd} -% will be empty, otherwise it contains a key value list of -% unhandled key value pairs. -% Since 2011/10/18 v1.15. -% -% Pseudo code: -% \begin{quote} -% create macro \meta{cmdaux} with unique name (inside the current group)\\ -% \cs{def}\meta{cmdaux}\{\}\\ -% \cs{kv@parse}\,\M{key value list}^^A -% \texttt{\{}\cs{kv@processor@known}\,\M{family}\,\M{cmdaux}\texttt{\}}\\ -% \cs{let}\meta{cmd}=\meta{cmdaux} -% \end{quote} -% -% \begin{declcs}{kvsetkeys@expandafter}\,\M{family}\,\M{list cmd}\\ -% \cs{kvsetknownkeys@expandafter}\,\M{family}\,% -% \M{cmd}\,\M{list cmd} -% \end{declcs} -% Both macros behave like the counterparts without suffix -% |@expandafter|. The difference is that the key value list is -% given as macro that is expanded once. -% Since 2011/10/18 v1.15. -% -% Thus you can replace \cs{setkeys} of package \xpackage{keyval} -% by the key value parser of this package: -% \begin{quote} -% |\renewcommand*{\setkeys}{\kvsetkeys}|\\ -% or\\ -% |\let\setkeys\kvsetkeys| -% \end{quote} -% -% \subsection{Comma separated lists} -% -% Since version 2007/09/29 v1.3 this package also supports the normalizing -% and parsing of general comma separated lists. -% -% \begin{declcs}{comma@normalize}\,\M{comma list} -% \end{declcs} -% Macro \cs{comma@normalize} normalizes the comma separated list, -% removes spaces around commas. The result is put in macro \cs{comma@list}. -% -% \begin{declcs}{comma@parse}\,\M{comma list}\,\M{processor} -% \end{declcs} -% Macro \cs{comma@parse} first normalizes the comma separated list -% and then parses the list by calling \cs{comma@parse@normalized}. -% -% \begin{declcs}{comma@parse@normalized}\,\M{normalized comma list}^^A -% \,\M{processor} -% \end{declcs} -% The list is parsed. Empty entries are ignored. \meta{processor} -% is called for each non-empty entry with the entry as argument: -% \begin{quote} -% \meta{processor}|{|\meta{entry}|}| -% \end{quote} -% Also the entry is stored in the macro \cs{comma@entry}. -% -% \begin{declcs}{comma@break} -% \end{declcs} -% Since version 2011/03/03 v1.11 \cs{comma@break} can be -% called inside the \meta{processor} -% of \cs{comma@parse} or \cs{comma@parse@normalized}, then -% the processing is stopped and the following entries discarded. -% -% \section{Example} -% -% The following example prints a short piece of HTML code using -% the tabbing environment for indenting purpose and a key value -% syntax for specifying the attributes of an HTML tag. -% The example illustrates the use of a default family handler. -% \begin{macrocode} -%<*example> -\documentclass{article} -\usepackage[T1]{fontenc} -\usepackage{kvsetkeys} -\usepackage{keyval} - -\makeatletter -\newcommand*{\tag}[2][]{% - % #1: attributes - % #2: tag name - \begingroup - \toks@={}% - \let\@endslash\@empty - \kvsetkeys{tag}{#1}% - \texttt{% - \textless #2\the\toks@\@endslash\textgreater - }% - \endgroup -} -\kv@set@family@handler{tag}{% - % #1: key - % #2: value - \toks@\expandafter{% - \the\toks@ - \space - #1=\string"#2\string"% - }% -} -\define@key{tag}{/}[]{% - \def\@endslash{/}% -} -\makeatother - -\begin{document} -\begin{tabbing} - \mbox{}\qquad\=\qquad\=\kill - \tag{html}\\ - \>\dots\\ - \>\tag[border=1]{table}\\ - \>\>\tag[width=200, span=3, /]{colgroup}\\ - \>\>\dots\\ - \>\tag{/table}\\ - \>\dots\\ - \tag{/html}\\ -\end{tabbing} -\end{document} -%</example> -% \end{macrocode} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \subsection{Identification} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@kvsetkeys.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{kvsetkeys}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@kvsetkeys.sty\endcsname -\ProvidesPackage{kvsetkeys}% - [2016/05/16 v1.17 Key value parser (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname KVS@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\KVS@AtEnd{% - \KVS@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{36}{3}% $ -\TMP@EnsureCode{38}{4}% & -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{94}{7}% ^ (superscript) -\TMP@EnsureCode{96}{12}% ` -\TMP@EnsureCode{126}{13}% ~ (active) -\edef\KVS@AtEnd{\KVS@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{Package loading} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{infwarerr}[2007/09/09]% - \TMP@RequirePackage{etexcmds}[2010/01/28]% -\else - \RequirePackage{infwarerr}[2007/09/09]% - \RequirePackage{etexcmds}[2010/01/28]% -\fi -% \end{macrocode} -% -% \begin{macrocode} -\expandafter\ifx\csname toks@\endcsname\relax - \toksdef\toks@=0 % -\fi -% \end{macrocode} -% -% \subsection{Check for \eTeX} -% -% \cs{unexpanded}, \cs{ifcsname}, and \cs{unless} are used if found. -% \begin{macrocode} -\begingroup\expandafter\endgroup -\ifcase0\ifetex@unexpanded - \expandafter\ifx\csname ifcsname\endcsname\relax - \else - \expandafter\ifx\csname unless\endcsname\relax - \else - 1% - \fi - \fi - \fi - \catcode`\$=9 % ignore - \catcode`\&=14 % comment -\else % e-TeX - \catcode`\$=14 % comment - \catcode`\&=9 % ignore -\fi -% \end{macrocode} -% -% \subsection{Generic help macros} -% -% \begin{macro}{\KVS@Empty} -% \begin{macrocode} -\def\KVS@Empty{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@FirstOfTwo} -% \begin{macrocode} -\long\def\KVS@FirstOfTwo#1#2{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@SecondOfTwo} -% \begin{macrocode} -\long\def\KVS@SecondOfTwo#1#2{#2} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KVS@IfEmpty} -% \begin{macrocode} -\long\def\KVS@IfEmpty#1{% -& \edef\KVS@Temp{\etex@unexpanded{#1}}% -$ \begingroup -$ \toks@{#1}% -$ \edef\KVS@Temp{\the\toks@}% -$ \expandafter\endgroup - \ifx\KVS@Temp\KVS@Empty - \expandafter\KVS@FirstOfTwo - \else - \expandafter\KVS@SecondOfTwo - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Normalizing} -% -% \begin{macro}{\kv@normalize} -% \begin{macrocode} -\long\def\kv@normalize#1{% - \begingroup - \toks@{,#1,}% - \KVS@Comma - \KVS@SpaceComma - \KVS@CommaSpace - \KVS@CommaComma - \KVS@Equals - \KVS@SpaceEquals - \KVS@EqualsSpace - \xdef\KVS@Global{\the\toks@}% - \endgroup - \let\kv@list\KVS@Global -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\comma@normalize} -% \begin{macrocode} -\def\comma@normalize#1{% - \begingroup - \toks@{,#1,}% - \KVS@Comma - \KVS@SpaceComma - \KVS@CommaSpace - \KVS@CommaComma - \xdef\KVS@Global{\the\toks@}% - \endgroup - \let\comma@list\KVS@Global -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@Comma} -% Converts active commas into comma with catcode other. -% Also adds a comma at the end to protect the last value -% for next cleanup steps. -% \begin{macrocode} -\begingroup - \lccode`\,=`\,% - \lccode`\~=`\,% -\lowercase{\endgroup - \def\KVS@Comma{% - \toks@\expandafter{\expandafter}\expandafter - \KVS@@Comma\the\toks@~\KVS@Nil - }% - \long\def\KVS@@Comma#1~#2\KVS@Nil{% - \toks@\expandafter{\the\toks@#1}% - \KVS@IfEmpty{#2}{% - }{% - \KVS@@Comma,#2\KVS@Nil - }% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@SpaceComma} -% Removes spaces before the comma, may add commas at the end. -% \begin{macrocode} -\def\KVS@SpaceComma#1{% - \def\KVS@SpaceComma{% - \expandafter\KVS@@SpaceComma\the\toks@#1,\KVS@Nil - }% -} -\KVS@SpaceComma{ } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@@SpaceComma} -% \begin{macrocode} -\long\def\KVS@@SpaceComma#1 ,#2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@SpaceComma#1,#2\KVS@Nil - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@CommaSpace} -% Removes spaces after the comma, may add commas at the end. -% \begin{macrocode} -\def\KVS@CommaSpace{% - \expandafter\KVS@@CommaSpace\the\toks@, \KVS@Nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@@CommaSpace} -% \begin{macrocode} -\long\def\KVS@@CommaSpace#1, #2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@CommaSpace#1,#2\KVS@Nil - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@CommaComma} -% Replaces multiple commas by one comma. -% \begin{macrocode} -\def\KVS@CommaComma{% - \expandafter\KVS@@CommaComma\the\toks@,\KVS@Nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@@CommaComma} -% \begin{macrocode} -\long\def\KVS@@CommaComma#1,,#2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1,}% (!) - }{% - \KVS@@CommaComma#1,#2\KVS@Nil - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KVS@Equals} -% Converts active equals signs into catcode other characters. -% \begin{macrocode} -\begingroup - \lccode`\==`\=% - \lccode`\~=`\=% -\lowercase{\endgroup - \def\KVS@Equals{% - \toks@\expandafter{\expandafter}\expandafter - \KVS@@Equals\the\toks@~\KVS@Nil - }% - \long\def\KVS@@Equals#1~#2\KVS@Nil{% - \edef\KVS@Temp{\the\toks@}% - \ifx\KVS@Temp\KVS@Empty - \expandafter\KVS@FirstOfTwo - \else - \expandafter\KVS@SecondOfTwo - \fi - {% - \toks@{#1}% - }{% - \toks@\expandafter{\the\toks@=#1}% - }% - \KVS@IfEmpty{#2}{% - }{% - \KVS@@Equals#2\KVS@Nil - }% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@SpaceEquals} -% Removes spaces before the equals sign. -% \begin{macrocode} -\def\KVS@SpaceEquals#1{% - \def\KVS@SpaceEquals{% - \expandafter\KVS@@SpaceEquals\the\toks@#1=\KVS@Nil - }% -} -\KVS@SpaceEquals{ } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@@SpaceEquals} -% \begin{macrocode} -\long\def\KVS@@SpaceEquals#1 =#2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@SpaceEquals#1=#2\KVS@Nil - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@EqualsSpace} -% Removes spaces after the equals sign. -% \begin{macrocode} -\def\KVS@EqualsSpace{% - \expandafter\KVS@@EqualsSpace\the\toks@= \KVS@Nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@@EqualsSpace} -% \begin{macrocode} -\long\def\KVS@@EqualsSpace#1= #2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@EqualsSpace#1=#2\KVS@Nil - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Parsing key value lists} -% -% \begin{macro}{\kv@parse} -% Normalizes and parses the key value list. Also sets \cs{kv@list}. -% \begin{macrocode} -\long\def\kv@parse#1{% - \kv@normalize{#1}% - \expandafter\kv@parse@normalized\expandafter{\kv@list}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\kv@parse@normalized} -% |#1|: key value list\\ -% |#2|: processor -% \begin{macrocode} -\long\def\kv@parse@normalized#1#2{% - \KVS@Parse#1,\KVS@Nil{#2}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@Parse} -% |#1,#2|: key value list\\ -% |#3|: processor -% \begin{macrocode} -\long\def\KVS@Parse#1,#2\KVS@Nil#3{% - \KVS@IfEmpty{#1}{% - }{% - \KVS@Process#1=\KVS@Nil{#3}% - }% - \KVS@MaybeBreak - \KVS@IfEmpty{#2}{% - }{% - \KVS@Parse#2\KVS@Nil{#3}% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@Process} -% |#1|: key\\ -% |#2|: value, |=|\\ -% |#3|: processor -% \begin{macrocode} -\long\def\KVS@Process#1=#2\KVS@Nil#3{% - \let\KVS@MaybeBreak\relax - \def\kv@key{#1}% - \KVS@IfEmpty{#2}{% - \let\kv@value\relax - #3{#1}{}% - }{% - \KVS@@Process{#1}#2\KVS@Nil{#3}% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@@Process} -% |#1|: key\\ -% |#2|: value\\ -% |#3|: processor -% \begin{macrocode} -\long\def\KVS@@Process#1#2=\KVS@Nil#3{% -& \edef\kv@value{\etex@unexpanded{#2}}% -$ \begingroup -$ \toks@{#2}% -$ \xdef\KVS@Global{\the\toks@}% -$ \endgroup -$ \let\kv@value\KVS@Global - #3{#1}{#2}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@MaybeBreak} -% \begin{macrocode} -\let\KVS@MaybeBreak\relax -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@break} -% \begin{macrocode} -\def\KVS@break#1#2#3#4{% - \let\KVS@MaybeBreak\relax -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\kv@break} -% \begin{macrocode} -\def\kv@break{% - \let\KVS@MaybeBreak\KVS@break -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Parsing comma lists} -% -% \begin{macro}{\comma@parse} -% Normalizes and parses the key value list. Also sets \cs{comma@list}. -% \begin{macrocode} -\def\comma@parse#1{% - \comma@normalize{#1}% - \expandafter\comma@parse@normalized\expandafter{\comma@list}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\comma@parse@normalized} -% |#1|: comma list\\ -% |#2|: processor -% \begin{macrocode} -\def\comma@parse@normalized#1#2{% - \KVS@CommaParse#1,\KVS@Nil{#2}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@CommaParse} -% |#1,#2|: comma list\\ -% |#3|: processor -% \begin{macrocode} -\def\KVS@CommaParse#1,#2\KVS@Nil#3{% - \KVS@IfEmpty{#1}{% - }{% - \def\comma@entry{#1}% - #3{#1}% - }% - \KVS@MaybeBreak - \KVS@IfEmpty{#2}{% - }{% - \KVS@CommaParse#2\KVS@Nil{#3}% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\comma@break} -% \begin{macrocode} -\def\comma@break{% - \let\KVS@MaybeBreak\KVS@break -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Processing key value pairs} -% -% \begin{macro}{\kv@handled@false} -% The handler can call \cs{kv@handled@false} or -% \cs{kv@handled@true} so report failure or success. -% The default is success (compatibility for versions -% before 2011/10/18 v1.15). -% \begin{macrocode} -\def\kv@handled@false{% - \let\ifkv@handled@\iffalse -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\kv@handled@true} -% \begin{macrocode} -\def\kv@handled@true{% - \let\ifkv@handled@\iftrue -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ifkv@handled@} -% \begin{macrocode} -\kv@handled@true -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kv@processor@default} -% \begin{macrocode} -\def\kv@processor@default#1#2{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \edef\KVS@temp{\endgroup - \noexpand\KVS@ProcessorDefault{#1}{#2}% - }% - \KVS@temp -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@ProcessorDefault} -% \begin{macrocode} -\long\def\KVS@ProcessorDefault#1#2#3{% - \def\kv@fam{#1}% -& \unless\ifcsname KV@#1@#2\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#2\endcsname\relax -& \unless\ifcsname KVS@#1@handler\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KVS@#1@handler\endcsname\relax - \kv@error@unknownkey{#1}{#2}% - \else - \kv@handled@true - \csname KVS@#1@handler\endcsname{#2}{#3}% - \relax - \ifkv@handled@ - \else - \kv@error@unknownkey{#1}{#2}% - \fi - \fi - \else - \ifx\kv@value\relax -& \unless\ifcsname KV@#1@#2@default\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax - \kv@error@novalue{#1}{#2}% - \else - \csname KV@#1@#2@default\endcsname - \relax - \fi - \else - \csname KV@#1@#2\endcsname{#3}% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kv@processor@known} -% \begin{macrocode} -\def\kv@processor@known#1#2#3{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \edef\KVS@temp{\endgroup - \noexpand\KVS@ProcessorKnown{#1}\noexpand#2{#3}% - }% - \KVS@temp -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@ProcessorKnown} -% \begin{macrocode} -\long\def\KVS@ProcessorKnown#1#2#3#4{% - \def\kv@fam{#1}% -& \unless\ifcsname KV@#1@#3\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#3\endcsname\relax -& \unless\ifcsname KVS@#1@handler\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KVS@#1@handler\endcsname\relax - \KVS@AddUnhandled#2{#3}{#4}% - \else - \kv@handled@true - \csname KVS@#1@handler\endcsname{#3}{#4}% - \relax - \ifkv@handled@ - \else - \KVS@AddUnhandled#2{#3}{#4}% - \fi - \fi - \else - \ifx\kv@value\relax -& \unless\ifcsname KV@#1@#2@default\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#3@default\endcsname\relax - \kv@error@novalue{#1}{#3}% - \else - \csname KV@#1@#3@default\endcsname - \relax - \fi - \else - \csname KV@#1@#3\endcsname{#4}% - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@AddUnhandled} -% \begin{macrocode} -\long\def\KVS@AddUnhandled#1#2#3{% -& \edef#1{% -& \ifx#1\KVS@empty -& \else -& \etex@unexpanded{#1},% -& \fi -& \etex@unexpanded{{#2}={#3}}% -& }% -$ \begingroup -$ \ifx#1\KVS@empty -$ \toks@{{#2}={#3}}% -$ \else -$ \toks@\expandafter{#1,{#2}={#3}}% -$ \fi -$ \xdef\KVS@Global{\the\toks@}% -$ \endgroup -$ \let#1\KVS@Global -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kv@set@family@handler} -% \begin{macrocode} -\long\def\kv@set@family@handler#1#2{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \expandafter\endgroup - \expandafter\def\csname KVS@#1@handler\endcsname##1##2{#2}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kv@unset@family@handler} -% \begin{macrocode} -\long\def\kv@unset@family@handler#1#2{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \expandafter\endgroup - \expandafter\let\csname KVS@#1@handler\endcsname\@UnDeFiNeD -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Error handling} -% -% \begin{macro}{\kv@error@novalue} -% \begin{macrocode} -\def\kv@error@novalue{% - \kv@error@generic{No value specified for}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\kv@error@unknownkey} -% \begin{macrocode} -\def\kv@error@unknownkey{% - \kv@error@generic{Undefined}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\kv@error@generic} -% \begin{macrocode} -\def\kv@error@generic#1#2#3{% - \@PackageError{kvsetkeys}{% - #1 key `#3'% - }{% - The keyval family of the key `#3' is `#2'.\MessageBreak - The setting of the key is ignored because of the error.\MessageBreak - \MessageBreak - \@ehc - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Do it all} -% -% \begin{macro}{\kvsetkeys} -% \begin{macrocode} -\long\def\kvsetkeys#1#2{% - \kv@parse{#2}{\kv@processor@default{#1}}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kvsetkeys@expandafter} -% \begin{macrocode} -\def\kvsetkeys@expandafter#1#2{% - \expandafter\kv@parse\expandafter{#2}{% - \kv@processor@default{#1}% - }% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\KVS@cmd} -% \begin{macrocode} -\def\KVS@cmd{0}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@cmd@inc} -% \begin{macrocode} -\def\KVS@cmd@inc{% -& \edef\KVS@cmd{\the\numexpr\KVS@cmd+1}% -$ \begingroup -$ \count255=\KVS@cmd\relax -$ \advance\count255 by 1\relax -$ \edef\x{\endgroup -$ \noexpand\def\noexpand\KVS@cmd{\number\count255}% -$ }% -$ \x -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@cmd@dec} -% \begin{macrocode} -\def\KVS@cmd@dec{% -& \edef\KVS@cmd{\the\numexpr\KVS@cmd-1}% -$ \begingroup -$ \count255=\KVS@cmd\relax -$ \advance\count255 by -1\relax -$ \edef\x{\endgroup -$ \noexpand\def\noexpand\KVS@cmd{\number\count255}% -$ }% -$ \x -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@empty} -% \begin{macrocode} -\def\KVS@empty{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kvsetknownkeys} -% \begin{macrocode} -\def\kvsetknownkeys{% - \expandafter - \KVS@setknownkeys\csname KVS@cmd\KVS@cmd\endcsname{}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\KVS@setknownkeys} -% \begin{macrocode} -\long\def\KVS@setknownkeys#1#2#3#4#5{% - \let#1\KVS@empty - \KVS@cmd@inc - #2\kv@parse#2{#5}{\kv@processor@known{#3}#1}% - \KVS@cmd@dec - \let#4=#1% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\kvsetknownkeys@expandafter} -% \begin{macrocode} -\def\kvsetknownkeys@expandafter{% - \expandafter - \KVS@setknownkeys - \csname KVS@cmd\KVS@cmd\endcsname\expandafter -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\KVS@AtEnd% -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{kvsetkeys}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/kvsetkeys.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/kvsetkeys.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex kvsetkeys.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% kvsetkeys.sty & tex/generic/oberdiek/kvsetkeys.sty\\ -% kvsetkeys.pdf & doc/latex/oberdiek/kvsetkeys.pdf\\ -% kvsetkeys-example.tex & doc/latex/oberdiek/kvsetkeys-example.tex\\ -% kvsetkeys.dtx & source/latex/oberdiek/kvsetkeys.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{kvsetkeys.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex kvsetkeys.dtx -%makeindex -s gind.ist kvsetkeys.idx -%pdflatex kvsetkeys.dtx -%makeindex -s gind.ist kvsetkeys.idx -%pdflatex kvsetkeys.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% \bibitem{tb94wright} -% A guide to key-value methods, Joseph Wright, second draft for -% \href{https://www.tug.org/tugboat}{TUGBoat}, 2009-03-17. -% \url{https://www.texdev.net/uploads/2009/03/keyval.pdf} -% -% \bibitem{keyval} -% David Carlisle: -% \textit{The \xpackage{keyval} package}; -% 1999/03/16 v1.13; -% \CTANpkg{keyval}. -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2006/03/06 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2006/10/19 v1.1} -% \item -% Fix of \cs{kv@set@family@handler}. -% \item -% Example added. -% \end{Version} -% \begin{Version}{2007/09/09 v1.2} -% \item -% Using package \xpackage{infwarerr} for error messages. -% \item -% Catcode section rewritten. -% \end{Version} -% \begin{Version}{2007/09/29 v1.3} -% \item -% Normalizing and parsing of comma separated lists added. -% \item -% \cs{kv@normalize} rewritten. -% \item -% Robustness increased for normalizing and parsing, -% e.g. for values with unmatched conditionals. -% \item -% \eTeX\ is used if available. -% \item -% Tests added for normalizing and parsing. -% \end{Version} -% \begin{Version}{2009/07/19 v1.4} -% \item -% Bug fix for \cs{kv@normalize}: unwanted space removed (Florent Chervet). -% \end{Version} -% \begin{Version}{2009/07/30 v1.5} -% \item -% Documentation addition: recommendation for Joseph Wright's -% review article. -% \end{Version} -% \begin{Version}{2009/12/12 v1.6} -% \item -% Short info shortened. -% \end{Version} -% \begin{Version}{2009/12/22 v1.7} -% \item -% Internal optimization (\cs{KVS@CommaSpace}, \dots, \cs{KVS@EqualsSpace}). -% \end{Version} -% \begin{Version}{2010/01/28 v1.8} -% \item -% Compatibility to ini\TeX\ added. -% \end{Version} -% \begin{Version}{2010/03/01 v1.9} -% \item -% Support of \cs{par} inside values. -% \end{Version} -% \begin{Version}{2011/01/30 v1.10} -% \item -% Already loaded package files are not input in \hologo{plainTeX}. -% \end{Version} -% \begin{Version}{2011/03/03 v1.11} -% \item -% \cs{kv@break} and \cs{comma@break} added. -% \end{Version} -% \begin{Version}{2011/04/05 v1.12} -% \item -% Error message with recovery action in help message -% (request by GL). -% \end{Version} -% \begin{Version}{2011/04/07 v1.13} -% \item -% \cs{kv@processor@default} supports package \xpackage{babel}'s -% shorthands. -% \item -% \cs{kv@set@family@handler} with shorthand support. -% \end{Version} -% \begin{Version}{2011/06/15 v1.14} -% \item -% Some optimizations in token register uses (GL, HO). -% \end{Version} -% \begin{Version}{2011/10/18 v1.15} -% \item -% \cs{kv@processor@known} and \cs{kvsetknownkeys} added. -% \item -% \cs{kvsetkeys@expandafter} and \cs{kvsetknownkeys@expandafter} added. -% \item -% Family handler can report success or failure by \cs{kv@handled@true} -% or \cs{kv@handled@false}. -% \item -% \cs{kv@unset@family@handler} added. -% \end{Version} -% \begin{Version}{2012/04/25 v1.16} -% \item -% \cs{kv@processor@default} and \cs{kv@processor@known} define -% macro \cs{kv@fam} for convenience. -% \item -% Catcode section: Catcode setting for \texttt{+} added for \hologo{eTeX}. -% \end{Version} -% \begin{Version}{2016/05/16 v1.17} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/ltxcmds.dtx b/Master/texmf-dist/source/latex/oberdiek/ltxcmds.dtx deleted file mode 100644 index 7de6b53dfe0..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/ltxcmds.dtx +++ /dev/null @@ -1,2429 +0,0 @@ -% \iffalse meta-comment -% -% File: ltxcmds.dtx -% Version: 2016/05/16 v1.23 -% Info: LaTeX kernel commands for general use -% -% Copyright (C) -% 2009-2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 ltxcmds.dtx -% and the derived files -% ltxcmds.sty, ltxcmds.pdf, ltxcmds.ins, ltxcmds.drv, -% ltxcmds-test1.tex, ltxcmds-test-gobble.tex, -% ltxcmds-test-ifempty.tex, ltxcmds-test-zapspace.tex, -% ltxcmds-test-ifboxempty.tex, ltxcmds-test-nextchar.tex, -% ltxcmds-test-carcdr.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/ltxcmds.dtx -% CTAN:macros/latex/contrib/oberdiek/ltxcmds.pdf -% -% Unpacking: -% (a) If ltxcmds.ins is present: -% tex ltxcmds.ins -% (b) Without ltxcmds.ins: -% tex ltxcmds.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{ltxcmds.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If ltxcmds.drv is present: -% latex ltxcmds.drv -% (b) Without ltxcmds.drv: -% latex ltxcmds.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex ltxcmds.dtx -% makeindex -s gind.ist ltxcmds.idx -% pdflatex ltxcmds.dtx -% makeindex -s gind.ist ltxcmds.idx -% pdflatex ltxcmds.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/ltxcmds.sty -% TDS:doc/latex/oberdiek/ltxcmds.pdf -% TDS:source/latex/oberdiek/ltxcmds.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: ltxcmds -Version: 2016/05/16 v1.23 - -Copyright (C) - 2009-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/oberdiek/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 ltxcmds.dtx -and the derived files - ltxcmds.sty, ltxcmds.pdf, ltxcmds.ins, ltxcmds.drv, - ltxcmds-test1.tex, ltxcmds-test-gobble.tex, - ltxcmds-test-ifempty.tex, ltxcmds-test-zapspace.tex, - ltxcmds-test-ifboxempty.tex, ltxcmds-test-nextchar.tex, - ltxcmds-test-carcdr.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{ltxcmds.ins}{\from{ltxcmds.dtx}{install}}% - \file{ltxcmds.drv}{\from{ltxcmds.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{ltxcmds.sty}{\from{ltxcmds.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{ltxcmds-test1.tex}{\from{ltxcmds.dtx}{test1}}% -% \file{ltxcmds-test-gobble.tex}{\from{ltxcmds.dtx}{test-gobble}}% -% \file{ltxcmds-test-ifempty.tex}{\from{ltxcmds.dtx}{test-ifempty}}% -% \file{ltxcmds-test-zapspace.tex}{\from{ltxcmds.dtx}{test-zapspace}}% -% \file{ltxcmds-test-ifboxempty.tex}{\from{ltxcmds.dtx}{test-ifboxempty}}% -% \file{ltxcmds-test-nextchar.tex}{\from{ltxcmds.dtx}{test-nextchar}}% -% \file{ltxcmds-test-carcdr.tex}{\from{ltxcmds.dtx}{test-carcdr}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* ltxcmds.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `ltxcmds.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{ltxcmds.drv}% - [2016/05/16 v1.23 LaTeX kernel commands for general use (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\usepackage{zref-savepos} -\usepackage{paralist} -\hfuzz=1pt -\begin{document} - \DocInput{ltxcmds.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{ltxcmds.drv} -% -% \title{The \xpackage{ltxcmds} package} -% \date{2016/05/16 v1.23} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% The package \xpackage{ltxcmds} exports some utility macros -% from the \LaTeX\ kernel into a separate namespace and -% also provides them for other formats such as plain-\TeX. -% \end{abstract} -% -% \tableofcontents -% -% \newcounter{to} -% \renewcommand*{\theto}{to\arabic{to}} -% \newlength\tolength -% \tolength=\dimexpr .5\linewidth+\oddsidemargin+1in+15mm\relax -% \newcommand*{\TO}{^^A -% \quad -% \stepcounter{to}^^A -% \zsavepos\theto -% \ifdim\zposx\theto sp>0pt -% \ifdim\zposx\theto sp<\tolength -% \kern\dimexpr\tolength-\zposx\theto sp\relax -% \fi -% \fi -% $\rightarrow$\quad -% \ignorespaces -% } -% -% \section{Documentation} -% -% \subsection{Introduction} -% -% Many of my packages also support other formats such as plain-\TeX. -% Because I am rather familiar with the utility macros from -% \LaTeX's kernel (e.g. \cs{@gobble}, \cs{@firstoftwo}), I found -% myself rewriting them again and again, because they are lacking -% in plain-\TeX. -% -% Therefore this package provides often used macros and similar -% ones with the name prefix \cs{ltx@}. This avoids also faulty -% redefinitions. I remember an example where a package redefined -% \cs{@firstoftwo} with forgetting \cs{long}. -% -% \subsection{Numbers} -% -% \begin{declcs}{ltx@zero} \TO 0\\ -% \cs{ltx@one} \TO 1\\ -% \cs{ltx@two} \TO 2\\ -% \cs{ltx@cclv} \TO 255\\ -% \cs{ltx@minusone} \TO -1 -% \end{declcs} -% These commands are numbers 0, 1, 2, 255 and -1. They are not digits -% and a space is not gobbled afterwards. Macro \cs{ltx@minusone} -% is available since version 2010/12/12 v1.15. -% -% \subsection{Scratch registers} -% -% Following the conventions of \hologo{plainTeX} and \hologo{LaTeX} -% the first ten registers are free to use. Even numbered registers -% are for local, odd numbered for global use. -% -% \begin{declcs}{ltx@(Loc,Glob)(Toks,Dimen,Skip)(A,B,C,D,E)} -% \end{declcs} -% The name consists of the prefix \cs{ltx@}, then -% \texttt{Loc} or \texttt{Glob} for local or global usage follows. -% The register type is given by \texttt{Toks} for token register, -% \texttt{Dimen} for dimen register and \texttt{Skip} for skip -% register. As last part the registers are numbered from \texttt{A} -% to \texttt{E}. Example: \cs{ltx@LocToksA}. -% -% Since 2011/04/14 v1.19. -% -% \subsection{Argument killers} -% -% \begin{declcs}{ltx@gobble} \M{1} \TO\\ -% \cs{ltx@gobbletwo} \M{1} \M{2} \TO\\ -% \cs{ltx@gobblethree} \M{1} \M{2} \M{3} \TO\\ -% \cs{ltx@gobblefour} \M{1} \M{2} \M{3} \M{4} \TO -% \end{declcs} -% -% \begin{declcs}{ltx@GobbleNum} \M{num} \M{1} \M{2} \dots\space -% \M{\meta{num}} \TO -% \end{declcs} -% The first argument \meta{num} of macro \cs{ltx@GobbleNum} specifies, -% how many following arguments are eaten. Macro \cs{ltx@GobbleNum} -% is expandable in exact two expansion steps. -% -% \subsection{Argument grabbers} -% -% \begin{declcs}{ltx@firstofone} \M{1} \TO \meta{1}\\[1ex] -% \cs{ltx@firstoftwo} \M{1} \M{2} \TO \meta{1}\\ -% \cs{ltx@secondoftwo} \M{1} \M{2} \TO \meta{2}\\[1ex] -% \cs{ltx@firstofthree} \M{1} \M{2} \M{3} \TO \meta{1}\\ -% \cs{ltx@secondofthree} \M{1} \M{2} \M{3} \TO \meta{2}\\ -% \cs{ltx@thirdofthree} \M{1} \M{2} \M{3} \TO \meta{3}\\ -% \cs{ltx@firstoffour} \M{1} \M{2} \M{3} \M{4} \TO \meta{1}\\ -% \cs{ltx@secondoffour} \M{1} \M{2} \M{3} \M{4} \TO \meta{2}\\ -% \cs{ltx@thirdoffour} \M{1} \M{2} \M{3} \M{4} \TO \meta{3}\\ -% \cs{ltx@fourthoffour} \M{1} \M{2} \M{3} \M{4} \TO \meta{4} -% \end{declcs} -% Macros \cs{ltx@firstofthree}, \cs{ltx@secondofthree} -% and \cs{ltx@thirdofthree} were added in version -% 2010/11/12 v1.11. -% Macros \cs{ltx@firstoffour}, \dots, \cs{ltx@fourthoffour} -% were added in version 2011/02/04 v1.16. -% -% \subsection{List helpers} -% -% \begin{declcs}{ltx@carzero} \dots\ \cs{@nil} \TO\\ -% \cs{ltx@cdrzero} \dots\ \cs{@nil} \TO \dots -% \end{declcs} -% -% \begin{declcs}{ltx@car} \M{1} \dots\ \cs{@nil} \TO \meta{1}\\ -% \cs{ltx@cdr} \M{1} \dots\ \cs{@nil} \TO \dots -% \end{declcs} -% -% \begin{declcs}{ltx@cartwo} \M{1} \M{2} \dots\ \cs{@nil} -% \TO \meta{1}\meta{2}\\ -% \cs{ltx@carsecond} \M{1} \M{2} \dots\ \cs{@nil} \TO \meta{2}\\ -% \cs{ltx@cdrtwo} \M{1} \M{2} \dots\ \cs{@nil} \TO \dots -% \end{declcs} -% -% \begin{declcs}{ltx@carthree} \M{1} \M{2} \M{3} \dots\ \cs{@nil} -% \TO \meta{1}\meta{2}\meta{3}\\ -% \cs{ltx@carthird} \M{1} \M{2} \M{3} \dots\ \cs{@nil} -% \TO \meta{3}\\ -% \cs{ltx@cdrthree} \M{1} \M{2} \M{3} \dots\ \cs{@nil} \TO \dots -% \end{declcs} -% -% \begin{declcs}{ltx@carfour} \M{1} \M{2} \M{3} \M{4} \dots\ \cs{@nil} -% \TO \meta{1}\meta{2}\meta{3}\meta{4}\\ -% \cs{ltx@carfourth} \M{1} \M{2} \M{3} \M{4} \dots\ \cs{@nil} -% \TO \meta{4}\\ -% \cs{ltx@cdrfour} \M{1} \M{2} \M{3} \M{4} \dots\ \cs{@nil} \TO \dots -% \end{declcs} -% -% \begin{declcs}{ltx@CarNum} \M{num} \M{1} \dots\ \M{\meta{num}} -% \M{\meta{num}+1} \dots\ \cs{@nil}\\ -% \TO \M{1} \dots\ \M{\meta{num}} \dots\\ -% \cs{ltx@CarNumth} \M{num} \M{1} \dots\ \M{\meta{num}} -% \M{\meta{num}+1} \dots\ \cs{@nil}\\ -% \TO \M{\meta{num}} \dots\\ -% \cs{ltx@CdrNum} \M{num} \M{1} \dots\ \M{\meta{num}} -% \M{\meta{num}+1} \dots\ \cs{@nil}\\ -% \TO \M{\meta{num}+1} \dots -% \end{declcs} -% -% Macros with uppercase letters are expandable in two expansion steps. -% Changes in version 2016/05/16 v1.23: -% \begin{itemize} -% \item -% Macros \cs{ltx@carsecond}, \cs{ltx@carthird}, \cs{ltx@carfourth}, -% \cs{ltx@CarNumth} added. -% \item -% Macros \cs{ltx@cdr}, \cs{ltx@cdrtwo}, \cs{ltx@cdrthree}, \cs{ltx@cdrfour}, -% \cs{ltx@CdrNum} are expandable in two expansion steps and retain -% spaces and braces after the first gobbled arguments. -% \end{itemize} -% -% \subsection{Tail recursion} -% -% \begin{declcs}{ltx@ReturnAfterFi} \M{1} \cs{fi} \TO \cs{fi} \meta{1}\\ -% \cs{ltx@ReturnAfterElseFi} \M{1} \cs{else} \M{2} \cs{fi} -% \TO \cs{fi} \meta{1} -% \end{declcs} -% -% \subsection{Empty macro} -% -% \begin{declcs}{ltx@empty} \TO -% \end{declcs} -% -% \subsection{Characters} -% -% \begin{declcs}{ltx@space} \TO \verb*| |\\ -% \cs{ltx@percentchar} \TO \texttt{\%}\\ -% \cs{ltx@backslashchar} \TO -% \makeatletter\texttt{\@backslashchar}\\ -% \cs{ltx@hashchar} \TO \texttt{\#}\qquad(since v1.7)\\ -% \cs{ltx@leftbracechar} \TO \texttt{\textbraceleft}\qquad(since v1.8)\\ -% \cs{ltx@rightbracechar} \TO \texttt{\textbraceright}\qquad(since v1.8) -% \end{declcs} -% -% \subsection{Boolean switch} -% -% \begin{declcs}{ltx@newif} \M{cmd} -% \end{declcs} -% \cs{ltx@newif} defines a new boolean switch \meta{cmd} like \cs{newif}. -% Unlike \plainTeX's \cs{newif}, \cs{ltx@newif} is not \cs{outer}. -% The command \meta{cmd} must start with the two characters |if|. -% -% \begin{declcs}{ltx@newglobalif} \M{cmd} -% \end{declcs} -% \cs{ltx@newglobalif} defines a new boolean switch \meta{cmd} -% like \cs{ltx@newif}. However the switch setting commands, -% \meta{cmd} without the prefix |if| and followed by |true| or |false| -% are acting globally. -% -% \subsection{Command definitions} -% -% \begin{declcs}{ltx@ifundefined} \M{cmd} \M{yes} \M{no} -% \end{declcs} -% If \eTeX\ is available, \cs{ifcsname} is used that does -% not have the side effect of defining undefined commands -% with meaning of \cs{relax}. This command is always expandable. -% Change in version 1.1: Also the meaning \cs{relax} is -% always considered ``undefined''. -% -% \begin{declcs}{ltx@IfUndefined} \M{cmd} \M{yes} \M{no} -% \end{declcs} -% If \eTeX\ is available, \cs{ifcsname} is used that does -% not have the side effect of defining undefined commands -% with meaning of \cs{relax}. Also it always checks for -% the meaning of \cs{relax} and considers this as undefined. -% This macro is not expandable without \eTeX. -% -% \begin{declcs}{ltx@LocalExpandAfter} -% \end{declcs} -% It expands the token after the next token but in a local -% context. That is the difference to \cs{expandafter}. -% The local context discards the side effect of \cs{csname} -% and let the command undefined after the expansion step. -% -% \subsection{Stripping} -% -% \begin{declcs}{ltx@RemovePrefix}\\ -% \cs{ltx@StripPrefix} -% \end{declcs} -% All tokens up to and including the next available character -% `\textgreater' are thrown away. Usually it is used to strip -% the first part of the output of the commands \cs{meaning} -% or \cs{pdflastmatch}. Macro \cs{ltx@RemovePrefix} -% has the same meaning as \LaTeX's \cs{strip@prefix}, whereas -% macro \cs{ltx@StripPrefix} expands the next token -% once before stripping the prefix. -% -% \begin{declcs}{ltx@onelevel@sanitize} \M{macro} -% \end{declcs} -% Macro \cs{ltx@onelevel@sanitize} provides \hologo{LaTeX}'s -% \cs{@onelevel@sanitize}. The macro is expanded once and -% the contents is converted to characters with catcode 12 (other) -% and space tokens with catcode 10 (space). Then then sanitized -% contents is stored into the macro again. Since version 1.12. -% -% \subsection{File management} -% -% All macros in this section are expandable like -% the counterparts of the \LaTeX\ kernel. Also they -% can be used after the preamble. -% -% \subsubsection{File extensions} -% -% \begin{declcs}{ltx@clsextension}\\ -% \cs{ltx@pkgextension} -% \end{declcs} -% Macros \cs{ltx@clsextension} and \cs{ltx@styextension} -% stores the strings |cls| and |sty|. In opposite to \hologo{LaTeX}'s -% \cs{@clsextension} and \cs{@styextension} they can also be -% used after |\begin{document}|. -% -% \subsubsection{Load check} -% -% \begin{declcs}{ltx@ifclassloaded} \M{class} \M{yes} \M{no}\\ -% \cs{ltx@ifpackageloaded} \M{package} \M{yes} \M{no} -% \end{declcs} -% Macros \cs{ltx@ifclassloaded}\slash\cs{ltx@ifpackageloaded} -% execute \meta{yes}, if the \meta{class} or \meta{package} is loaded, -% otherwise \meta{no} is called. -% Both \meta{class} and \meta{package} are specified without -% extension. The macros can also be used after |\begin{document}|. -% -% \begin{declcs}{ltx@iffileloaded} \M{file} \M{yes} \M{no} -% \end{declcs} -% If \LaTeX's \cs{ProvidesFile} macro was called before -% using \meta{file} as argument, then \cs{ltx@iffileloaded} -% calls \meta{yes}, otherwise \meta{no}. -% Therefore it is possible -% that the \meta{file} is loaded, but \meta{no} is executed because -% of a missing \cs{ProvidesFile}. The \LaTeX\ kernel does not have -% a counterpart of \cs{ltx@iffileloaded}. -% -% Note that the file name used in \cs{ProvidesFile} and -% \cs{ltx@iffileloaded} must match. For example, if \TeX's -% default extension \xext{tex} was given in the first command, -% then it must also specified in the latter command and vice versa. -% -% \subsubsection{Version date check} -% -% \begin{declcs}{ltx@ifclasslater} \M{class} \M{date} \M{yes} \M{no}\\ -% \cs{ltx@ifpackagelater} \M{package} \M{date} \M{yes} \M{no}\\ -% \cs{ltx@iffilelater} \M{file} \M{date} \M{yes} \M{no} -% \end{declcs} -% If a \cs{ProvidesClass}\slash\cs{ProvidesPackage}\slash -% \cs{ProvidesFile} command with exact the same class\slash package\slash -% file was executed before with an optional -% argument that starts with a \LaTeX\ version date, then -% this version date is compared with the argument \meta{date}. -% If they are equal or if the version date is the later date, -% then \meta{yes} is called. In all other cases \meta{no} is executed. -% -% A \LaTeX\ date has the format |YYYY/MM/DD| with |YYYY| as year -% with four digits, |MM| as month with two digits and |DD| as day -% with two digits. If \pdfTeX's \cs{pdfmatch} is available, then -% it is used to detect the version date, to reject invalid -% date formats and to reject some invalid dates. -% Dates before 1994/01/01 are always invalid, because version -% dates are introduced with \LaTeXe\ in 1994. -% -% \subsection{Macro additions} -% -% \begin{declcs}{ltx@GlobalAppendToMacro} \M{cmd} \M{addition}\\ -% \cs{ltx@LocalAppendToMacro} \M{cmd} \M{addition} -% \end{declcs} -% The \meta{addition} is appended to the parameterless macro \meta{cmd}. -% If \meta{cmd} is undefined or has the meaning \cs{relax}, then -% it will be initialized as empty macro beforehand. Due to a bug \meta{addition} -% must not contain \cs{par} before version 2010/10/25 v1.9. -% -% \begin{declcs}{ltx@GlobalPrependToMacro} \M{cmd} \M{addition}\\ -% \cs{ltx@LocalPrependToMacro} \M{cmd} \M{addition} -% \end{declcs} -% The \meta{addition} is prepended to the parameterless macro \meta{cmd}. -% If \meta{cmd} is undefined or has the meaning \cs{relax}, then -% it will be initialized as empty macro beforehand. The macros -% were added in version 2011/08/22 v1.21. -% -% \subsection{Next character detection} -% -% \begin{declcs}{ltx@ifnextchar} \M{char} \M{yes} \M{no} -% \end{declcs} -% If next character is \meta{char} then \meta{yes} is called, -% otherwise \meta{no}. The character is not removed. -% Spaces are silently removed when looking for \meta{char} -% as \hologo{LaTeX}'s version \cs{kernel@ifnextchar} does. -% But there are also small differences: -% \begin{itemize} -% \item The space can be used as \meta{char}. In this case -% optional spaces before \meta{char} are not supported of course. -% \item If the optional space is a command that is a character -% (defined by \cs{let} or \cs{futurelet}), then -% \cs{kernel@ifnextchar} breaks with an \hologo{TeX} error. -% \cs{ltx@ifnextchar} silently removes this token as -% optional space. -% \end{itemize} -% Since 2010/03/01 v1.3. -% -% \begin{declcs}{ltx@ifnextchar@nospace} \M{char} \M{yes} \M{no} -% \end{declcs} -% Macro \cs{ltx@ifnextchar@nospace} behaves like -% macro \cs{ltx@ifnextchar} with the exception that -% optional spaces are not supported before \meta{char}. -% Since 2011/04/14 v1.19. -% -% \subsection{\cs{ltx@leavevmode}, \cs{ltx@mbox}} -% -% \begin{declcs}{ltx@leavevmode} -% \end{declcs} -% Macro \cs{ltx@leavevmode} calls \hologo{pdfTeX}'s \cs{quitvmode}. -% Otherwise \cs{leavevmode} is used and defined if it is necessary. -% -% \begin{declcs}{ltx@mbox} -% \end{declcs} -% Macro \cs{ltx@mbox} reimplements \cs{mbox} with two changes. -% Instead of \cs{leavevmode} it uses \cs{ltx@leavevmode} and -% stops right after \cs{hbox}. Especially it does not grab -% the argument and allows the extended syntax of \cs{hbox}. -% -% \subsection{Expandable test for emptiness} -% -% \begin{declcs}{ltx@ifempty} \M{stuff} \M{yes} \M{no} -% \end{declcs} -% Macro \cs{ltx@ifempty} checks in exact two expansion steps -% whether \meta{stuff} -% is empty or contains token. Depending on the result -% \meta{yes} or \meta{no} is executed. The token in \meta{stuff} -% may contain \cs{par} and unmatched conditionals (\cs{if}, \cs{else}, -% \cs{fi}, \dots). Since version 2010/11/12 v1.11. -% -% \begin{declcs}{ltx@ifblank} \M{stuff} \M{yes} \M{no} -% \end{declcs} -% Macro \cs{ltx@ifblank} tests in exact two expansion steps -% if \meta{stuff} is empty or contain only blank spaces. -% In this case argument \meta{yes} is called. If \meta{stuff} -% contains other tokens than spaces then \meta{no} is executed. -% Since version 2010/12/04 v1.13. -% -% \subsection{Stripping spaces} -% -% \begin{declcs}{ltx@zapspace} \M{stuff} -% \end{declcs} -% Macro \cs{ltx@zapspace} strips spaces from \meta{stuff} -% that are not hidden inside curly braces. Like \hologo{LaTeX}'s -% \cs{zap@space} it is expandable. Differences: -% \begin{itemize} -% \item -% Syntax: \cs{zap@space} also expects a space token -% and \cs{@empty} after \meta{stuff}. -% \item -% Macro \cs{ltx@zapspace} is expandable in exact two -% expansion steps. -% \item -% Macro \cs{ltx@zapspace} always retains curly braces. -% \item -% Macro \cs{zap@space} has a bug. It stops stripping spaces -% after a token group in curly braces if the first two tokens -% inside the group are equal. -% \item -% Macro \cs{ltx@zapspace} also works with \cs{par} -% and conditionals (\cs{if}, \cs{else}, \cs{fi}, \dots). -% \end{itemize} -% Macro \cs{ltx@zapspace} is available since version -% 2010/12/07 v1.14. -% -% \subsection{Check for emptiness of boxes} -% -% \begin{declcs}{ltx@IfBoxEmpty} \M{box register number} -% \M{yes} \M{no} -% \end{declcs} -% Macro \cs{ltx@IfBoxEmpty} calls \meta{yes} if -% the box exists (\cs{ifvoid} returns false) and the box -% does not contain any content. Otherwise if the box -% is void or contains something, then \meta{no} is executed. -% Thus being empty means that the box exists and is either -% an \cs{hbox} or a \cs{vbox} and may even have dimensions other than -% 0.0\,pt, but the box does not contain anything. -% Macro \cs{ltx@IfBoxEmpty} is available since 2010/02/04 v1.16. -% -% \begin{declcs}{ltx@IfBoxVoidOrEmpty} \M{box register number} -% \M{yes} \M{no} -% \end{declcs} -% Macro \cs{ltx@IfBoxVoidOrEmpty} calls \meta{yes} if -% the box is either void or does not contain any content. -% Otherwise \meta{no} is executed. -% Macro \cs{ltx@IfBoxVoidOrEmpty} is available since 2010/02/04 v1.16. -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \subsection{Identification} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@ltxcmds.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{ltxcmds}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@ltxcmds.sty\endcsname -\ProvidesPackage{ltxcmds}% - [2016/05/16 v1.23 LaTeX kernel commands for general use (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname LTXcmds@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\LTXcmds@AtEnd{% - \LTXcmds@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{36}{3}% $ -\TMP@EnsureCode{38}{4}% & -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{96}{12}% ` -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{94}{12}% ^ (superscript) (!) -\TMP@EnsureCode{124}{12}% | -\edef\LTXcmds@AtEnd{\LTXcmds@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{Numbers} -% -% \begin{macro}{\ltx@zero} -% \begin{macrocode} -\chardef\ltx@zero=0 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@one} -% \begin{macrocode} -\chardef\ltx@one=1 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@two} -% \begin{macrocode} -\chardef\ltx@two=2 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@active} -% \begin{macrocode} -\chardef\ltx@active=13 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@cclv} -% \begin{macrocode} -\chardef\ltx@cclv=255 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@minusone} -% \begin{macrocode} -\def\ltx@minusone{% - -\ltx@one -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Scratch registers} -% -% \begin{macro}{\ltx@LocToksA} -% \begin{macrocode} -\toksdef\ltx@LocToksA=0 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocToksB} -% \begin{macrocode} -\toksdef\ltx@LocToksB=2 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocToksC} -% \begin{macrocode} -\toksdef\ltx@LocToksC=4 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocToksD} -% \begin{macrocode} -\toksdef\ltx@LocToksD=6 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocToksE} -% \begin{macrocode} -\toksdef\ltx@LocToksE=8 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@GlobToksA} -% \begin{macrocode} -\toksdef\ltx@GlobToksA=1 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobToksB} -% \begin{macrocode} -\toksdef\ltx@GlobToksB=3 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobToksC} -% \begin{macrocode} -\toksdef\ltx@GlobToksC=5 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobToksD} -% \begin{macrocode} -\toksdef\ltx@GlobToksD=7 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobToksE} -% \begin{macrocode} -\toksdef\ltx@GlobToksE=9 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@LocDimenA} -% \begin{macrocode} -\dimendef\ltx@LocDimenA=0 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocDimenB} -% \begin{macrocode} -\dimendef\ltx@LocDimenB=2 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocDimenC} -% \begin{macrocode} -\dimendef\ltx@LocDimenC=4 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocDimenD} -% \begin{macrocode} -\dimendef\ltx@LocDimenD=6 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocDimenE} -% \begin{macrocode} -\dimendef\ltx@LocDimenE=8 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@GlobDimenA} -% \begin{macrocode} -\dimendef\ltx@GlobDimenA=1 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobDimenB} -% \begin{macrocode} -\dimendef\ltx@GlobDimenB=3 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobDimenC} -% \begin{macrocode} -\dimendef\ltx@GlobDimenC=5 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobDimenD} -% \begin{macrocode} -\dimendef\ltx@GlobDimenD=7 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobDimenE} -% \begin{macrocode} -\dimendef\ltx@GlobDimenE=9 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@LocSkipA} -% \begin{macrocode} -\skipdef\ltx@LocSkipA=0 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocSkipB} -% \begin{macrocode} -\skipdef\ltx@LocSkipB=2 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocSkipC} -% \begin{macrocode} -\skipdef\ltx@LocSkipC=4 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocSkipD} -% \begin{macrocode} -\skipdef\ltx@LocSkipD=6 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocSkipE} -% \begin{macrocode} -\skipdef\ltx@LocSkipE=8 % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@GlobSkipA} -% \begin{macrocode} -\skipdef\ltx@GlobSkipA=1 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobSkipB} -% \begin{macrocode} -\skipdef\ltx@GlobSkipB=3 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobSkipC} -% \begin{macrocode} -\skipdef\ltx@GlobSkipC=5 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobSkipD} -% \begin{macrocode} -\skipdef\ltx@GlobSkipD=7 % -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@GlobSkipE} -% \begin{macrocode} -\skipdef\ltx@GlobSkipE=9 % -% \end{macrocode} -% \end{macro} -% -% -% \subsection{Argument killers} -% -% \begin{macro}{\ltx@gobble} -% \begin{macrocode} -\long\def\ltx@gobble#1{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@gobbletwo} -% \begin{macrocode} -\long\def\ltx@gobbletwo#1#2{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@gobblethree} -% \begin{macrocode} -\long\def\ltx@gobblethree#1#2#3{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@gobblefour} -% \begin{macrocode} -\long\def\ltx@gobblefour#1#2#3#4{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@GobbleNum} -% \begin{macrocode} -\def\ltx@GobbleNum#1{% - \romannumeral - \csname ltx@zero% - \expandafter\LTXcmds@GobbleNum - \romannumeral\LTXcmds@num{#1}000{m\endcsname}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@GobbleNum} -% \begin{macrocode} -\def\LTXcmds@GobbleNum#1{% - \csname LTXcmds@G#1\LTXcmds@GobbleNum -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@Gm} -% \begin{macrocode} -\long\def\LTXcmds@Gm#1{% - \endcsname -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Argument grabbers} -% -% \begin{macro}{\ltx@firstofone} -% \begin{macrocode} -\long\def\ltx@firstofone#1{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@firstoftwo} -% \begin{macrocode} -\long\def\ltx@firstoftwo#1#2{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@secondoftwo} -% \begin{macrocode} -\long\def\ltx@secondoftwo#1#2{#2} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@firstofthree} -% \begin{macrocode} -\long\def\ltx@firstofthree#1#2#3{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@secondofthree} -% \begin{macrocode} -\long\def\ltx@secondofthree#1#2#3{#2} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@thirdofthree} -% \begin{macrocode} -\long\def\ltx@thirdofthree#1#2#3{#3}% -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@firstoffour} -% \begin{macrocode} -\long\def\ltx@firstoffour#1#2#3#4{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@secondoffour} -% \begin{macrocode} -\long\def\ltx@secondoffour#1#2#3#4{#2} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@thirdoffour} -% \begin{macrocode} -\long\def\ltx@thirdoffour#1#2#3#4{#3}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@fourthoffour} -% \begin{macrocode} -\long\def\ltx@fourthoffour#1#2#3#4{#4}% -% \end{macrocode} -% \end{macro} -% -% \subsection{List helpers} -% -% \begin{macro}{\ltx@carzero} -% \begin{macrocode} -\long\def\ltx@carzero#1\@nil{}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@cdrzero} -% \begin{macrocode} -\long\def\LTXcmds@cdrzero#1\@nil{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@cdrzero} -% \begin{macrocode} -\def\ltx@cdrzero{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@car} -% \begin{macrocode} -\long\def\ltx@car#1#2\@nil{#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@cdr} -% \begin{macrocode} -\long\def\ltx@cdr#1{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@cartwo} -% \begin{macrocode} -\long\def\ltx@cartwo#1#2#3\@nil{#1#2} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@carsecond} -% \begin{macrocode} -\long\def\ltx@carsecond#1#2#3\@nil{#2} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@cdrtwo} -% \begin{macrocode} -\long\def\ltx@cdrtwo#1#2{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@carthree} -% \begin{macrocode} -\long\def\ltx@carthree#1#2#3#4\@nil{#1#2#3} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@carthird} -% \begin{macrocode} -\long\def\ltx@carthird#1#2#3#4\@nil{#3} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@cdrthree} -% \begin{macrocode} -\long\def\ltx@cdrthree#1#2#3{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@carfour} -% \begin{macrocode} -\long\def\ltx@carfour#1#2#3#4#5\@nil{#1#2#3#4} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@carfourth} -% \begin{macrocode} -\long\def\ltx@carfourth#1#2#3#4#5\@nil{#4} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@cdrfour} -% \begin{macrocode} -\long\def\ltx@cdrfour#1#2#3#4{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@CarNum} -% \begin{macrocode} -\def\ltx@CarNum#1{% - \romannumeral - \csname LTXcmds@CarNumFinish% - \expandafter\LTXcmds@CarNum - \romannumeral\LTXcmds@num{#1}000{x\endcsname}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@CarNum} -% \begin{macrocode} -\def\LTXcmds@CarNum#1{% - \csname LTXcmds@C#1\LTXcmds@CarNum -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@Cm} -% \begin{macrocode} -\long\def\LTXcmds@Cm#1#2{% - \endcsname{#1#2}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@Cx} -% \begin{macrocode} -\def\LTXcmds@Cx#1{% - \endcsname{}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@CarNumFinish} -% \begin{macrocode} -\long\def\LTXcmds@CarNumFinish#1#2\@nil{% - \ltx@zero - #1% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@CarNumth} -% \begin{macrocode} -\def\ltx@CarNumth#1{% - \romannumeral - \expandafter\expandafter\expandafter - \LTXcmds@CarNumth - \ltx@GobbleNum{#1}{}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@CarNumth} -% \begin{macrocode} -\long\def\LTXcmds@CarNumth#1#2\@nil{% - \ltx@zero - #1% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@CdrNum} -% \begin{macrocode} -\def\ltx@CdrNum#1{% - \romannumeral% - \expandafter\expandafter\expandafter\ltx@cdrzero - \expandafter\expandafter\expandafter\ltx@zero - \ltx@GobbleNum{#1}% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Tail recursion} -% -% \begin{macro}{\ltx@ReturnAfterFi} -% \begin{macrocode} -\long\def\ltx@ReturnAfterFi#1\fi{\fi#1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@ReturnAfterElseFi} -% \begin{macrocode} -\long\def\ltx@ReturnAfterElseFi#1\else#2\fi{\fi#1} -% \end{macrocode} -% \end{macro} -% -% \subsection{Empty macro} -% -% \begin{macro}{\ltx@empty} -% \begin{macrocode} -\def\ltx@empty{} -% \end{macrocode} -% \end{macro} -% -% \subsection{Characters} -% -% \begin{macro}{\ltx@space} -% \begin{macrocode} -\def\ltx@space{ } -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@percentchar} -% \begin{macrocode} -\begingroup - \lccode`0=`\%\relax -\lowercase{\endgroup - \def\ltx@percentchar{0}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@backslashchar} -% \begin{macrocode} -\begingroup - \lccode`0=`\\\relax -\lowercase{\endgroup - \def\ltx@backslashchar{0}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@hashchar} -% \begin{macrocode} -\begingroup - \lccode`0=`\#\relax -\lowercase{\endgroup - \def\ltx@hashchar{0}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@leftbracechar} -% \begin{macrocode} -\begingroup - \lccode`0=`\{\relax -\lowercase{\endgroup - \def\ltx@leftbracechar{0}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@rightbracechar} -% \begin{macrocode} -\begingroup - \lccode`0=`\}\relax -\lowercase{\endgroup - \def\ltx@rightbracechar{0}% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Boolean switch} -% -% \begin{macro}{\ltx@newif} -% \begin{macrocode} -\def\ltx@newif#1{% - \begingroup - \escapechar=-1 % - \expandafter\endgroup - \expandafter\LTXcmds@newif\string#1\@nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@newif} -% \begin{macrocode} -\begingroup - \escapechar=-1 % -\expandafter\endgroup -\expandafter\def\expandafter\LTXcmds@newif\string\if#1\@nil{% - \expandafter\edef\csname#1true\endcsname{% - \let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iftrue - }% - \expandafter\edef\csname#1false\endcsname{% - \let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iffalse - }% - \csname#1false\endcsname -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@newglobalif} -% \begin{macrocode} -\def\ltx@newglobalif#1{% - \begingroup - \escapechar=-1 % - \expandafter\endgroup - \expandafter\LTXcmds@newglobalif\string#1\@nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@newglobalif} -% \begin{macrocode} -\begingroup - \escapechar=-1 % -\expandafter\endgroup -\expandafter -\def\expandafter\LTXcmds@newglobalif\string\if#1\@nil{% - \expandafter\edef\csname#1true\endcsname{% - \global\let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iftrue - }% - \expandafter\edef\csname#1false\endcsname{% - \global\let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iffalse - }% - \csname#1false\endcsname -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Command definitions} -% -% \begin{macro}{\ltx@LocalExpandAfter} -% \begin{macrocode} -\def\ltx@LocalExpandAfter{% - \begingroup - \expandafter\expandafter\expandafter - \endgroup - \expandafter -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\ltx@LocalExpandAfter -\ifx\csname ifcsname\endcsname\relax -% \end{macrocode} -% \begin{macro}{\ltx@ifundefined} -% \begin{macrocode} - \def\ltx@ifundefined#1{% - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\ltx@firstoftwo - \else - \expandafter\ltx@secondoftwo - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@IfUndefined} -% \begin{macrocode} - \def\ltx@IfUndefined#1{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\ltx@firstoftwo - \else - \expandafter\ltx@secondoftwo - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} - \expandafter\ltx@gobble -\else - \expandafter\ltx@firstofone -\fi -{% -% \end{macrocode} -% \begin{macro}{\ltx@ifundefined} -% \begin{macrocode} - \def\ltx@ifundefined#1{% - \ifcsname #1\endcsname - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\expandafter\expandafter\ltx@firstoftwo - \else - \expandafter\expandafter\expandafter\ltx@secondoftwo - \fi - \else - \expandafter\ltx@firstoftwo - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@IfUndefined} -% \begin{macrocode} - \let\ltx@IfUndefined\ltx@ifundefined -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -} -% \end{macrocode} -% -% \subsection{Stripping} -% -% \begin{macro}{\ltx@RemovePrefix} -% \begin{macrocode} -\def\ltx@RemovePrefix#1>{} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@StripPrefix} -% \begin{macrocode} -\def\ltx@StripPrefix{% - \expandafter\ltx@RemovePrefix -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@onelevel@sanitize} -% \begin{macrocode} -\def\ltx@onelevel@sanitize#1{% - \edef#1{% - \expandafter - \ltx@RemovePrefix\meaning#1% - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{File management} -% -% \subsubsection{File extensions} -% -% \begin{macro}{\ltx@clsextension} -% \begin{macrocode} -\def\ltx@clsextension{cls} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@pkgextension} -% \begin{macrocode} -\def\ltx@pkgextension{sty} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Load check} -% -% \begin{macro}{\ltx@iffileloaded} -% \begin{macrocode} -\def\ltx@iffileloaded#1{% - \ltx@ifundefined{ver@#1}\ltx@secondoftwo\ltx@firstoftwo -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@ifclassloaded} -% \begin{macrocode} -\def\ltx@ifclassloaded#1{% - \ltx@iffileloaded{#1.\ltx@clsextension}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@ifpackageloaded} -% \begin{macrocode} -\def\ltx@ifpackageloaded#1{% - \ltx@iffileloaded{#1.\ltx@pkgextension}% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Version date check} -% -% \begin{macro}{\ltx@iffilelater} -% \begin{macrocode} -\def\ltx@iffilelater#1#2{% - \ltx@iffileloaded{#1}{% - \expandafter\LTXcmds@IfLater\expandafter{% - \number - \expandafter\expandafter\expandafter\LTXcmds@ParseVersion - \expandafter\expandafter\expandafter{% - \csname ver@#1\endcsname - }% - \expandafter}\expandafter{% - \number - \expandafter\LTXcmds@ParseVersion\expandafter{#2}% - }% - }\ltx@secondoftwo -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@IfLater} -% \begin{macrocode} -\def\LTXcmds@IfLater#1#2{% - \ifcase 0% - \ifnum#1<19940101 % - \else - \ifnum#2<19940101 % - \else - \ifnum#2>#1 % - \else - 1% - \fi - \fi - \fi - \ltx@space - \expandafter\ltx@secondoftwo - \else - \expandafter\ltx@firstoftwo - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@ifclasslater} -% \begin{macrocode} -\def\ltx@ifclasslater#1{% - \ltx@iffilelater{#1.\ltx@clsextension}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@ifpackagelater} -% \begin{macrocode} -\def\ltx@ifpackagelater#1{% - \ltx@iffilelater{#1.\ltx@pkgextension}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\ltx@IfUndefined{pdfmatch}{% -% \end{macrocode} -% \begin{macro}{\LTXcmds@ParseVersion} -% \begin{macrocode} - \def\LTXcmds@ParseVersion#1{% - \LTXcmds@@ParseVersion#10000/00/00\@nil - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@@ParseVersion} -% \begin{macrocode} - \def\LTXcmds@@ParseVersion#1#2#3#4/#5#6/#7#8#9\@nil{% - #1#2#3#4#5#6#7#8% - }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -}{% -% \end{macrocode} -% \begin{macro}{\LTXcmds@ParseVersion} -% \begin{macrocode} - \def\LTXcmds@ParseVersion#1{% - \ifnum\pdfmatch{% - ^% - (199[4-9]|[2-9][0-9][0-9][0-9])/% - (0[1-9]|1[0-2])/% - (0[1-9]|[1-2][0-9]|3[0-1])% - }{#1}=1 % - \ltx@StripPrefix\pdflastmatch1 % - \ltx@StripPrefix\pdflastmatch2 % - \ltx@StripPrefix\pdflastmatch3 % - \else - 0% - \fi - }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -} -% \end{macrocode} -% -% \subsection{Macro additions} -% -% \begin{macro}{\ltx@GlobalAppendToMacro} -% \begin{macrocode} -\long\def\ltx@GlobalAppendToMacro#1#2{% - \ifx\ltx@undefined#1% - \let#1\ltx@empty - \else - \ifx\relax#1% - \let#1\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA\expandafter{#1#2}% - \xdef#1{\the\ltx@LocToksA}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocalAppendToMacro} -% \begin{macrocode} -\long\def\ltx@LocalAppendToMacro#1#2{% - \global\let\LTXcmds@gtemp#1% - \ifx\ltx@undefined\LTXcmds@gtemp - \global\let\LTXcmds@gtemp\ltx@empty - \else - \ifx\relax\LTXcmds@gtemp - \global\letLTXcmds@gtemp\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA\expandafter{\LTXcmds@gtemp#2}% - \xdef\LTXcmds@gtemp{\the\ltx@LocToksA}% - \endgroup - \let#1\LTXcmds@gtemp -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@GlobalPrependToMacro} -% \begin{macrocode} -\long\def\ltx@GlobalPrependToMacro#1#2{% - \ifx\ltx@undefined#1% - \let#1\ltx@empty - \else - \ifx\relax#1% - \let#1\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA{#2}% - \ltx@LocToksB\expandafter{#1}% - \xdef#1{\the\ltx@LocToksA\the\ltx@LocToksB}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@LocalPrependToMacro} -% \begin{macrocode} -\long\def\ltx@LocalPrependToMacro#1#2{% - \global\let\LTXcmds@gtemp#1% - \ifx\ltx@undefined\LTXcmds@gtemp - \global\let\LTXcmds@gtemp\ltx@empty - \else - \ifx\relax\LTXcmds@gtemp - \global\letLTXcmds@gtemp\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA{#2}% - \ltx@LocToksB\expandafter{\LTXcmds@gtemp}% - \xdef\LTXcmds@gtemp{\the\ltx@LocToksA\the\ltx@LocToksB}% - \endgroup - \let#1\LTXcmds@gtemp -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Next character detection} -% -% \begin{macro}{\ltx@ifnextchar} -% \begin{macrocode} -\long\def\ltx@ifnextchar#1#2#3{% - \begingroup - \let\LTXcmds@CharToken= #1\relax - \ltx@LocToksA{\endgroup#2}% - \ltx@LocToksB{\endgroup#3}% - \futurelet\LTXcmds@LetToken\LTXcmds@ifnextchar -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@ifnextchar} -% \begin{macrocode} -\def\LTXcmds@ifnextchar{% - \ifx\LTXcmds@LetToken\LTXcmds@CharToken - \the\expandafter\ltx@LocToksA - \else - \expandafter - \ifx\csname LTXcmds@LetToken\endcsname\LTXcmds@SpaceToken - \expandafter\expandafter\expandafter\LTXcmds@@ifnextchar - \else - \the\expandafter\expandafter\expandafter\ltx@LocToksB - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@@ifnextchar} -% \cs{futurelet} does not distinguish between a -% character and a command that is a character -% (defined by using \cs{let} or \cs{futurelet}). -% Therefore the space is catched by \cs{romannumeral} -% with negative character constant that gobbles one -% optional space. -% \begin{macrocode} -\def\LTXcmds@@ifnextchar{% - \expandafter\futurelet - \expandafter\LTXcmds@LetToken - \expandafter\LTXcmds@ifnextchar - \romannumeral-`\.% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@SpaceToken} -% \begin{macrocode} -\ltx@firstofone{\let\LTXcmds@SpaceToken= } % -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@ifnextchar@nospace} -% \begin{macrocode} -\long\def\ltx@ifnextchar@nospace#1#2#3{% - \begingroup - \let\LTXcmds@CharToken= #1\relax - \ltx@LocToksA{\endgroup#2}% - \ltx@LocToksB{\endgroup#3}% - \futurelet\LTXcmds@LetToken\LTXcmds@ifnextchar@nospace -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@ifnextchar@nospace} -% \begin{macrocode} -\def\LTXcmds@ifnextchar@nospace{% - \the - \ifx\LTXcmds@LetToken\LTXcmds@CharToken - \expandafter\ltx@LocToksA - \else - \expandafter\ltx@LocToksB - \fi -} -% \end{macrocode} -% \end{macro} -% \subsection{\cs{ltx@leavevmode}, \cs{ltx@mbox}} -% -% \begin{macro}{\ltx@leavevmode} -% \begin{macrocode} -\ltx@IfUndefined{quitvmode}{% - \ltx@IfUndefined{leavevmode}{% - \ltx@IfUndefined{voidb@x}{% - \ltx@IfUndefined{newbox}{% - \def\ltx@leavevmode{% - \begingroup - \setbox\ltx@zero=\hbox{}% - \begingroup - \setbox\ltx@zero=\hbox{\box\ltx@zero}% - \endgroup - \unhbox\ltx@zero - \endgroup - }% - }{% - \csname newbox\endcsname\LTXcmds@VoidBox - \ifvoid\LTXcmds@VoidBox - \else - \setbox\LTXcmds@VoidBox=\hbox{}% - \begingroup - \setbox\LTXcmds@VoidBox=\hbox{\box\LTXcmds@VoidBox}% - \endgroup - \fi - \def\ltx@leavevmode{\unhbox\LTXcmds@VoidBox}% - }% - }{% - \def\ltx@leavevmode{\unhbox\voidb@x}% - }% - }{% - \let\ltx@leavevmode\leavevmode - }% -}{% - \let\ltx@leavevmode\quitvmode -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@mbox} -% \begin{macrocode} -\def\ltx@mbox{% - \ltx@leavevmode - \hbox -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Help macros} -% -% \begin{macro}{\LTXcmds@num} -% \begin{macrocode} -\ltx@IfUndefined{numexpr}{% - \def\LTXcmds@num#1{% - \expandafter\ltx@firstofone\expandafter{% - \number#1% - }% - }% -}{% - \def\LTXcmds@num#1{% - \expandafter\ltx@firstofone\expandafter{% - \the\numexpr#1% - }% - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Expandable test for emptiness} -% -% \begin{macrocode} -\ltx@IfUndefined{detokenize}{% -% \end{macrocode} -% -% \subsubsection{Vanilla \hologo{TeX}} -% -% \begin{macro}{\ltx@ifempty} -% The macro is based on \cs{@ifempty} of Robert R. Schneck -% \cite{ifempty:schneck} -% and \cs{@ifnull} of Ulrich Diez \cite{ifnull:diez}. -% There are three cases to consider: -% \begin{compactenum} -% \item |#1| is empty, -% \item |#1| is not empty and the first token -% is not a begingroup character, -% \item |#1| starts with a begingroup character (catcode 1). -% \end{compactenum} -% \begin{macrocode} - \def\LTXcmds@temp#1{% - \long\def\ltx@ifempty##1{% - \romannumeral0% - \iffalse{\fi - \expandafter\ltx@gobble\expandafter{% - \expandafter{\string##1}% - \expandafter\ltx@gobble\string - }% - \expandafter\ltx@firstofthree\expandafter - {\iffalse}\fi - \expandafter#1\ltx@secondoftwo - }% - \expandafter#1\ltx@firstoftwo - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ltx@ifblank} -% \begin{macrocode} - \long\def\ltx@ifblank##1{% - \romannumeral0% - \iffalse{\fi - \expandafter\expandafter\expandafter\ltx@gobble - \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter{% - \expandafter\string\ltx@gobble##1.% - }% - \expandafter\ltx@gobble\string - }% - \expandafter\ltx@firstofthree\expandafter - {\iffalse}\fi - \expandafter#1\ltx@secondoftwo - }% - \expandafter#1\ltx@firstoftwo - }% - }% - \LTXcmds@temp{ }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -}{% -% \end{macrocode} -% -% \subsubsection{With \cs{detokenize}} -% -% Ahmed Musa provided \cs{ifstrempty} using \cs{detokenize} -% and \cs{pdfstrcmp} \cite{ifstrempty:musa}. Ulrich Diez, GL, -% Heiko Oberdiek -% improved it further by removing \cs{pdfstrcmp} and -% taking three arguments -% \cite{ifstrempty:diez1,ifstrempty:diez2,ifstrempty:diez3,^^A -% ifstrempty:gl,ifstrempty:ho}. -% -% \begin{macro}{\ltx@ifempty} -% \begin{macrocode} - \long\def\ltx@ifempty#1{% - \romannumeral% - \csname - LTXcmds@ifempty% - \ifcat$\detokenize{#1}$% - @% - \fi - \endcsname - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@ifempty@} -% \begin{macrocode} - \long\def\LTXcmds@ifempty@#1#2{0 #1}% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@ifempty} -% \begin{macrocode} - \long\def\LTXcmds@ifempty#1#2{0 #2}% -% \end{macrocode} -% \end{macro} -% -% \subsubsection{\cs{ltx@ifblank}} -% -% \begin{macro}{\ltx@ifblank} -% \begin{macrocode} - \long\def\ltx@ifblank#1{% - \romannumeral% - \csname - LTXcmds@ifempty% - \ifcat$\detokenize\expandafter{\ltx@gobble#1.}$% - @% - \fi - \endcsname - }% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -} -% \end{macrocode} -% -% \subsection{\cs{ltx@zapspace}} -% -% \begin{macro}{\ltx@zapspace} -% \begin{macrocode} -\long\def\ltx@zapspace#1{% - \romannumeral - \LTXcmds@zapspace\ltx@zero#1 \@nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\LTXcmds@zapspace} -% \begin{macrocode} -\long\def\LTXcmds@zapspace#1 #2\@nil{% - \ltx@ifempty{#2}{% - #1% - }{% - \LTXcmds@zapspace#1#2\@nil - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\cs{ltx@IfBoxEmpty}} -% -% In case of \hologo{eTeX} the test for an empty box -% is done via \cs{lastnodetype} as suggested -% by David Kastrup \cite{ifboxempty:dak}. -% \begin{macrocode} -\ltx@IfUndefined{lastnodetype}{% - \catcode`\$=9 % - \catcode`\&=14 % -}{% - \catcode`\$=14 % - \catcode`\&=9 % -} -% \end{macrocode} -% \begin{macro}{\ltx@IfBoxEmpty} -% \begin{macrocode} -\def\ltx@IfBoxEmpty#1{% - \ifvoid#1\relax - \expandafter\ltx@secondoftwo - \else -% \end{macrocode} -% Implementation using \hologo{eTeX}'s \cs{lastnodetype}. -% \begin{macrocode} -& \begingroup -& \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% -& \ifhmode\unhcopy\else\unvcopy\fi#1\relax -& \expandafter -& }% -& \expandafter\endgroup -& \ifnum\lastnodetype<\ltx@zero -& \expandafter\expandafter\expandafter\ltx@firstoftwo -& \else -& \expandafter\expandafter\expandafter\ltx@secondoftwo -& \fi -% \end{macrocode} -% Implementation without \hologo{eTeX} using a signature -% at the beginning of the test box. -% \begin{macrocode} -$ \begingroup -$ \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% -$ \penalty\ltx@one -$ \ifhmode\unhcopy\else\unvcopy\fi#1\relax -$ \expandafter -$ }% -$ \ifnum\lastpenalty=\ltx@one -% \end{macrocode} -% Box 0 has been changed and is restored by -% closing the group. -% \begin{macrocode} -$ \endgroup -$ \begingroup -$ \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% -$ \penalty\ltx@two -$ \ifhmode\unhcopy\else\unvcopy\fi#1\relax -$ \expandafter -$ }% -$ \ifnum\lastpenalty=\ltx@two -$ \def\next{\endgroup\expandafter\ltx@firstoftwo}% -$ \else -$ \def\next{\endgroup\expandafter\ltx@secondoftwo}% -$ \fi -$ \else -$ \def\next{\endgroup\expandafter\ltx@secondoftwo}% -$ \fi -$ \next - \fi -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ltx@IfBoxVoidOrEmpty} -% \begin{macrocode} -\def\ltx@IfBoxVoidOrEmpty#1{% - \ifvoid#1\relax - \expandafter\ltx@thirdoffour - \fi - \ltx@IfBoxEmpty{#1}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\LTXcmds@AtEnd% -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{ltxcmds}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/ltxcmds.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/ltxcmds.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex ltxcmds.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% ltxcmds.sty & tex/generic/oberdiek/ltxcmds.sty\\ -% ltxcmds.pdf & doc/latex/oberdiek/ltxcmds.pdf\\ -% ltxcmds.dtx & source/latex/oberdiek/ltxcmds.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{ltxcmds.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex ltxcmds.dtx -%makeindex -s gind.ist ltxcmds.idx -%pdflatex ltxcmds.dtx -%makeindex -s gind.ist ltxcmds.idx -%pdflatex ltxcmds.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% \raggedright -% -% \bibitem{ifempty:schneck} -% Robert R. Schneck: -% \textit{Re: \cs{ifempty} solution % -% (was Macro puzzle: maximally general \cs{ifempty})}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:3eef1ada_6@corp.newsgroups.com}, -% 2003-06-17.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/be03a159ec374895}} -% -% \bibitem{ifnull:diez} -% Ulrich Diez: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:ibk3t8$ee7$1@news.albasani.net}, -% 2010-11-12.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/803bd57221a04996}} -% -% \bibitem{ifstrempty:musa} -% Ahmed Musa: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:f5496afe-40ed-42bd-b629-a2419ecf7c0d@o14g2000prn.googlegroups.com}, -% 2010-12-03.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/fbf7d61a0c3a807d}} -% -% \bibitem{ifstrempty:diez1} -% Ulrich Diez: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:idbo94$uka$1@four.albasani.net}, -% 2010-12-03.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/0c230ee479487962}} -% -% \bibitem{ifstrempty:diez2} -% Ulrich Diez: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:idbpu4$cg1$1@news.albasani.net}, -% 2010-12-03.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/bbef4263390d647b}} -% -% \bibitem{ifstrempty:diez3} -% Ulrich Diez: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:idd4ga$r83$1@four.albasani.net}, -% 2010-12-04.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/00dfd1ec103cd272}} -% -% \bibitem{ifstrempty:gl} -% GL: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:4cfa2e27$0$7389$426a74cc@news.free.fr}, -% 2010-12-04.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/d3a75995c1cf267e}} -% -% \bibitem{ifstrempty:ho} -% Heiko Oberdiek: -% \textit{Re: TeX refuses to strip outer braces in argument}; -% newsgroup \xnewsgroup{comp.text.tex}, -% \url{news:iddhq1$3kj$1@news.eternal-september.org}, -% 2010-12-04.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/5f7a23e3ab70e347}} -% -% \bibitem{ifboxempty:dak} -% David Kastrup: -% \textit{How to detect if \cs{vbox} is empty}; -% newsgroup \xnewsgroup{comp.text.tex}, -% 2011-02-04.\\ -% {\small -% \url{https://groups.google.com/group/comp.text.tex/msg/8d3cb89496a4d86d}} -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2009/08/05 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2009/12/12 v1.1} -% \item -% Short title shortened. -% \item -% \cs{ltx@IfUndefined} added. -% \end{Version} -% \begin{Version}{2010/01/28 v1.2} -% \item -% \cs{ltx@RemovePrefix} and \cs{ltx@StripPrefix} added. -% \item -% \cs{ltx@ifclassloaded}, \cs{ltx@ifpackageloaded}, -% \cs{ltx@iffileloaded}, -% \cs{ltx@ifclasslater}, \cs{ltx@ifpackagelater}, -% \cs{ltx@iffilelater}, -% \cs{ltx@clsextension}, \cs{ltx@pkgextension} added. -% \item -% \cs{ltx@GlobalAppendToMacro}, \cs{ltx@LocalAppendToMacro} added. -% \end{Version} -% \begin{Version}{2010/03/01 v1.3} -% \item -% \cs{ltx@newif} added. -% \item -% \cs{ltx@ifnextchar} added. -% \item -% Numbers \cs{ltx@zero}, \cs{ltx@one}, \cs{ltx@two}, \cs{ltx@cclv} added. -% \end{Version} -% \begin{Version}{2010/03/09 v1.4} -% \item -% \cs{ltx@pkgextension} and \cs{ltx@clsextension} are hardcoded to -% avoid trouble with \cs{@onlypreamble}. -% \end{Version} -% \begin{Version}{2010/04/08 v1.5} -% \item -% \cs{ltx@cartwo}, \cs{ltx@cdrtwo}, -% \cs{ltx@carthree}, \cs{ltx@cdrthree}, -% \cs{ltx@carfour}, \cs{ltx@cdrfour} added. -% \item -% \cs{ltx@ReturnAfterFi} and \cs{ltx@ReturnAfterElseFi} fixed. -% \end{Version} -% \begin{Version}{2010/04/16 v1.6} -% \item -% \cs{ltx@leavevmode}, \cs{ltx@mbox} added. -% \end{Version} -% \begin{Version}{2010/04/26 v1.7} -% \item -% \cs{ltx@GobbleNum}, \cs{ltx@CdrNum}, \cs{ltx@CarNum} added. -% \item -% \cs{ltx@carzero}, \cs{ltx@cdrzero} added. -% \item -% \cs{ltx@hashchar} added. -% \end{Version} -% \begin{Version}{2010/09/11 v1.8} -% \item -% \cs{ltx@leftbracechar}, \cs{ltx@rightbracechar} added. -% \end{Version} -% \begin{Version}{2010/10/25 v1.9} -% \item -% \cs{ltx@LocalAppendToMacro} and \cs{ltx@GlobalAppendToMacro} are -% now \cs{long}. -% \end{Version} -% \begin{Version}{2010/10/31 v1.10} -% \item -% \cs{ltx@newglobalif} added. -% \end{Version} -% \begin{Version}{2010/11/12 v1.11} -% \item -% \cs{ltx@ifempty} added. -% \item -% \cs{ltx@firstofthree}, \cs{ltx@secondofthree}, \cs{ltx@thirdofthree} -% added. -% \end{Version} -% \begin{Version}{2010/12/02 v1.12} -% \item -% \cs{ltx@onelevel@sanitize} added. -% \item -% \cs{LTXcmds@num} fixed for the case with \cs{numexpr} -% (bug found by GL). -% \end{Version} -% \begin{Version}{2010/12/04 v1.13} -% \item -% \cs{ltx@ifblank} added. -% \item -% Optimization for \cs{ltx@ifempty}. -% \end{Version} -% \begin{Version}{2010/12/07 v1.14} -% \item -% \cs{ltx@zapspace} added. -% \end{Version} -% \begin{Version}{2010/12/12 v1.15} -% \item -% \cs{ltx@minusone} added. -% \end{Version} -% \begin{Version}{2011/02/04 v1.16} -% \item -% \cs{ltx@IfBoxEmpty} and \cs{ltx@IfBoxVoidOrEmpty} added. -% \item -% \cs{ltx@firstoffour}, \dots, \cs{ltx@fourthoffour} added. -% \end{Version} -% \begin{Version}{2011/02/05 v1.17} -% \item -% \cs{ltx@IfBoxEmpty}: an empty box may have non-zero dimensions. -% \end{Version} -% \begin{Version}{2011/03/16 v1.18} -% \item -% \cs{ltx@ifclasslater} fixed. -% \end{Version} -% \begin{Version}{2011/04/14 v1.19} -% \item -% \cs{ltx@ifnextchar}: detection of optional spaces modified. -% \item -% \cs{ltx(Loc,Glob)(Toks,Dimen,Skip)(A,B,C,D,E)} added. -% \end{Version} -% \begin{Version}{2011/04/18 v1.20} -% \item -% \cs{ltx@ifnextchar} with conditional support (thanks GL for -% bug report). -% \end{Version} -% \begin{Version}{2011/08/22 v1.21} -% \item -% \cs{ltx@GlobalPrependToMacro}, \cs{ltx@LocalPrependToMacro} added -% (feature request of Martin M\"unch). -% \end{Version} -% \begin{Version}{2011/11/09 v1.22} -% \item -% \cs{ltx@carsecond}, \cs{ltx@carthird}, \cs{ltx@carfourth}, -% \cs{ltx@CarNumth} added. -% \item -% \cs{ltx@cdrzero}, \cs{ltx@cdr}, \cs{ltx@cdrtwo}, cs{ltx@cdrthree}, -% \cs{ltx@cdrfour}, \cs{ltx@CdrNum} modified to retain braces and spaces. -% They are expandable in two expansion steps. -% \end{Version} -% \begin{Version}{2016/05/16 v1.23} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins index a0a0048ce07..5c1ac2e5c29 100644 --- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins +++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins @@ -1,5 +1,5 @@ % oberdiek.ins -% 2019/12/09 +% 2019/12/15 % % Copyright (C) % 1999, 2001, 2006 Heiko Oberdiek @@ -27,8 +27,6 @@ \input docstrip \batchinput{aliascnt.dtx} -\batchinput{auxhook.dtx} -\batchinput{bigintcalc.dtx} \batchinput{bmpsize.dtx} \batchinput{centernot.dtx} \batchinput{chemarr.dtx} @@ -38,13 +36,10 @@ \batchinput{engord.dtx} \batchinput{enparen.dtx} \batchinput{eolgrab.dtx} -\batchinput{etexcmds.dtx} \batchinput{fibnum.dtx} \batchinput{flags.dtx} -\batchinput{gettitlestring.dtx} \batchinput{holtxdoc.dtx} \batchinput{hopatch.dtx} -\batchinput{hycolor.dtx} \batchinput{hypbmsec.dtx} \batchinput{hypcap.dtx} \batchinput{hypdestopt.dtx} @@ -53,10 +48,6 @@ \batchinput{hyphsubst.dtx} \batchinput{ifdraft.dtx} \batchinput{iflang.dtx} -\batchinput{intcalc.dtx} -\batchinput{kvdefinekeys.dtx} -\batchinput{kvsetkeys.dtx} -\batchinput{ltxcmds.dtx} \batchinput{pagegrid.dtx} \batchinput{pagesel.dtx} \batchinput{pdfcol.dtx} @@ -66,13 +57,11 @@ \batchinput{pdfcrypt.dtx} \batchinput{pdfrender.dtx} \batchinput{protecteddef.dtx} -\batchinput{refcount.dtx} \batchinput{resizegather.dtx} \batchinput{rotchiffre.dtx} \batchinput{scrindex.dtx} \batchinput{setouterhbox.dtx} \batchinput{settobox.dtx} -\batchinput{soulutf8.dtx} \batchinput{stackrel.dtx} \batchinput{stampinclude.dtx} \batchinput{tabularht.dtx} @@ -80,7 +69,6 @@ \batchinput{telprint.dtx} \batchinput{thepdfnumber.dtx} \batchinput{twoopt.dtx} -\batchinput{uniquecounter.dtx} \Msg{} \Msg{********************************************************} diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex index 676c3ab28c0..f96a0cc7f62 100644 --- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex +++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex @@ -10,7 +10,7 @@ \newcommand*{\Author}{Heiko Oberdiek} \newcommand*{\Email}{ho-tex at tug.org} -\newcommand*{\Date}{2019/12/09} +\newcommand*{\Date}{2019/12/15} % Copyright (C) 2006-2016 by % Heiko Oberdiek @@ -176,12 +176,6 @@ \begin{overview} \entry{aliascnt}{Alias counters}% [\entrysep] -\entry{atveryend}{Hooks at the very end of document}% -[\entrysep] -\entry{auxhook}{Hooks for auxiliary files}% -[\entrysep] -\entry{bigintcalc}{Expandable calculations on big integers}% -[\entrysep] \entry{bmpsize}{Extract size/resolution from bitmap files}% [\entrysep] \entry{centernot}{Centers the not symbol horizontally}% @@ -200,20 +194,14 @@ [\entrysep] \entry{eolgrab}{Catch arguments delimited by end of line}% [\entrysep] -\entry{etexcmds}{Avoid name clashes with \hologo{eTeX} commands}% -[\entrysep] \entry{fibnum}{Fibonacci numbers}% [\entrysep] \entry{flags}{Setting/clearing of flags in bit fields}% [\entrysep] -\entry{gettitlestring}{Cleanup title references}% -[\entrysep] \entry{holtxdoc}{Private additional ltxdoc support}% [\entrysep] \entry{hopatch}{Wrapper for package hooks}% [\entrysep] -\entry{hycolor}{Color options for hyperref/bookmark}% -[\entrysep] \entry{hypbmsec}{Bookmarks in sectioning commands}% [\entrysep] \entry{hypcap}{Adjusting the anchors of captions}% @@ -230,14 +218,6 @@ [\entrysep] \entry{iflang}{Checks for the current language}% [\entrysep] -\entry{intcalc}{Expandable calculations with integers}% -[\entrysep] -\entry{kvdefinekeys}{Define keys}% -[\entrysep] -\entry{kvsetkeys}{Key value parser}% -[\entrysep] -\entry{ltxcmds}{\hologo{LaTeX} kernel commands for general use}% -[\entrysep] \entry{pagegrid}{Print page grid in background}% [\entrysep] \entry{pagesel}{Select pages of a document for output}% @@ -256,22 +236,16 @@ [\entrysep] \entry{protecteddef}{Define protected commands}% [\entrysep] -\entry{refcount}{Data extraction from label references}% -[\entrysep] \entry{resizegather}{Resize overly large equations}% [\entrysep] \entry{rotchiffre}{Perform simple rotation ciphers}% [\entrysep] \entry{scrindex}{Package index with \hologo{KOMAScript} classes}% [\entrysep] -\entry{selinput}{Semi-automatic input encoding detection}% -[\entrysep] \entry{setouterhbox}{Set hbox in outer horizontal mode}% [\entrysep] \entry{settobox}{Assign box dimensions to length registers}% [\entrysep] -\entry{soulutf8}{Permit use of UTF-8 characters in soul}% -[\entrysep] \entry{stackrel}{Adding subscript option to stackrel}% [\entrysep] \entry{stampinclude}{Include files based on time stamps}% @@ -285,8 +259,6 @@ \entry{thepdfnumber}{Print PDF numbers with minimal digits}% [\entrysep] \entry{twoopt}{Definitions with two optional arguments}% -[\entrysep] -\entry{uniquecounter}{Provide unlimited unique counter}% \end{overview} \section{Packages} @@ -301,24 +273,6 @@ share the same counter register and clear list. \tocinclude{aliascnt} \newpage -\subsection{\pkgsectformat{auxhook}} -\label{auxhook} -\begin{abstract} -Package \xpackage{auxhook} provides hooks for adding stuff at -the begin of \xfile{.aux} files. -\end{abstract} -\tocinclude{auxhook} - -\newpage -\subsection{\pkgsectformat{bigintcalc}} -\label{bigintcalc} -\begin{abstract} -This package provides expandable arithmetic operations -with big integers that can exceed \TeX's number limits. -\end{abstract} -\tocinclude{bigintcalc} - -\newpage \subsection{\pkgsectformat{bmpsize}} \label{bmpsize} \begin{abstract} @@ -412,17 +366,6 @@ to catch an argument that is delimited by the line end. \tocinclude{eolgrab} \newpage -\subsection{\pkgsectformat{etexcmds}} -\label{etexcmds} -\begin{abstract} -New primitive commands are introduced in \eTeX. Sometimes the -names collide with existing macros. This package solves this -name clashes by adding a prefix to \eTeX's commands. For example, -\eTeX's \cs{unexpanded} is provided as \cs{etex@unexpanded}. -\end{abstract} -\tocinclude{etexcmds} - -\newpage \subsection{\pkgsectformat{fibnum}} \label{fibnum} \begin{abstract} @@ -442,17 +385,6 @@ decimal number. Currently the bit field is limited to 31 bits. \tocinclude{flags} \newpage -\subsection{\pkgsectformat{gettitlestring}} -\label{gettitlestring} -\begin{abstract} -The \LaTeX\ package addresses packages that are dealing with -references to titles (\cs{section}, \cs{caption}, \dots). -The package tries to remove \cs{label} and other -commands from title strings. -\end{abstract} -\tocinclude{gettitlestring} - -\newpage \subsection{\pkgsectformat{holtxdoc}} \label{holtxdoc} \begin{abstract} @@ -474,16 +406,6 @@ own hooks. \tocinclude{hopatch} \newpage -\subsection{\pkgsectformat{hycolor}} -\label{hycolor} -\begin{abstract} -Package \xpackage{hycolor} implements the color option stuff that -is used by packages \xpackage{hyperref} and \xpackage{bookmark}. -It is not intended as package for the user. -\end{abstract} -\tocinclude{hycolor} - -\newpage \subsection{\pkgsectformat{hypbmsec}} \label{hypbmsec} \begin{abstract} @@ -568,47 +490,6 @@ based on macro \cs{languagename} or hyphenation patterns. \tocinclude{iflang} \newpage -\subsection{\pkgsectformat{intcalc}} -\label{intcalc} -\begin{abstract} -This package provides expandable arithmetic operations -with integers. -\end{abstract} -\tocinclude{intcalc} - -\newpage -\subsection{\pkgsectformat{kvdefinekeys}} -\label{kvdefinekeys} -\begin{abstract} -Package \xpackage{kvdefinekeys} provides \cs{kv@define@key} to define -keys the same way as \xpackage{keyval}'s \cs{define@key}. However, it -works also using \iniTeX. -\end{abstract} -\tocinclude{kvdefinekeys} - -\newpage -\subsection{\pkgsectformat{kvsetkeys}} -\label{kvsetkeys} -\begin{abstract} -Package \xpackage{kvsetkeys} provides \cs{kvsetkeys}, a variant -of package \xpackage{keyval}'s \cs{setkeys}. It allows to specify -a handler that deals with unknown options. Active commas and equal -signs may be used (e.g. see \xpackage{babel}'s shorthands) and -only one level of curly braces is removed from the values. -\end{abstract} -\tocinclude{kvsetkeys} - -\newpage -\subsection{\pkgsectformat{ltxcmds}} -\label{ltxcmds} -\begin{abstract} -The package \xpackage{ltxcmds} exports some utility macros -from the \LaTeX\ kernel into a separate namespace and -also provides them for other formats such as plain-\TeX. -\end{abstract} -\tocinclude{ltxcmds} - -\newpage \subsection{\pkgsectformat{pagegrid}} \label{pagegrid} \begin{abstract} @@ -699,20 +580,6 @@ Otherwise the macro is not made robust. \tocinclude{protecteddef} \newpage -\subsection{\pkgsectformat{refcount}} -\label{refcount} -\begin{abstract} -References are not numbers, however they often store numerical -data such as section or page numbers. \cs{ref} or \cs{pageref} -cannot be used for counter assignments or calculations because -they are not expandable, generate warnings, or can even be links. -The package provides expandable macros to extract the data -from references. Packages \xpackage{hyperref}, \xpackage{nameref}, -\xpackage{titleref}, and \xpackage{babel} are supported. -\end{abstract} -\tocinclude{refcount} - -\newpage \subsection{\pkgsectformat{resizegather}} \label{resizegather} \begin{abstract} @@ -766,17 +633,6 @@ to \LaTeX's \cs{settowidth} commands. \tocinclude{settobox} \newpage -\subsection{\pkgsectformat{soulutf8}} -\label{soulutf8} -\begin{abstract} -This package extends package \xpackage{soul} and adds some support -for UTF-8. Namely the input encodings \xfile{utf8.def} -from package \xpackage{inputenc} and -package \xpackage{ucs}'s \xfile{utf8x.def} are supported. -\end{abstract} -\tocinclude{soulutf8} - -\newpage \subsection{\pkgsectformat{stackrel}} \label{stackrel} \begin{abstract} @@ -846,14 +702,5 @@ optional arguments. \end{abstract} \tocinclude{twoopt} -\newpage -\subsection{\pkgsectformat{uniquecounter}} -\label{uniquecounter} -\begin{abstract} -This package provides a kind of counter that provides unique -number values. Several counters can be created by different names. -The numeric values are not limited. -\end{abstract} -\tocinclude{uniquecounter} \end{document} diff --git a/Master/texmf-dist/source/latex/oberdiek/refcount.dtx b/Master/texmf-dist/source/latex/oberdiek/refcount.dtx deleted file mode 100644 index b70bd4799e5..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/refcount.dtx +++ /dev/null @@ -1,1099 +0,0 @@ -% \iffalse meta-comment -% -% File: refcount.dtx -% Version: 2016/05/16 v3.5 -% Info: Data extraction from label references -% -% Copyright (C) -% 1998, 2000, 2006, 2008, 2010, 2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/issues -% -% This work consists of the main source file refcount.dtx -% and the derived files -% refcount.sty, refcount.pdf, refcount.ins, refcount.drv, -% refcount-test1.tex, refcount-test2.tex, refcount-test3.tex, -% refcount-test4.tex, refcount-test5.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/refcount.dtx -% CTAN:macros/latex/contrib/oberdiek/refcount.pdf -% -% Unpacking: -% (a) If refcount.ins is present: -% tex refcount.ins -% (b) Without refcount.ins: -% tex refcount.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{refcount.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If refcount.drv is present: -% latex refcount.drv -% (b) Without refcount.drv: -% latex refcount.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex refcount.dtx -% makeindex -s gind.ist refcount.idx -% pdflatex refcount.dtx -% makeindex -s gind.ist refcount.idx -% pdflatex refcount.dtx -% -% Installation: -% TDS:tex/latex/oberdiek/refcount.sty -% TDS:doc/latex/oberdiek/refcount.pdf -% TDS:source/latex/oberdiek/refcount.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: refcount -Version: 2016/05/16 v3.5 - -Copyright (C) - 1998, 2000, 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/oberdiek/issues - - -This work consists of the main source file refcount.dtx -and the derived files - refcount.sty, refcount.pdf, refcount.ins, refcount.drv, - refcount-test1.tex, refcount-test2.tex, refcount-test3.tex, - refcount-test4.tex, refcount-test5.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{refcount.ins}{\from{refcount.dtx}{install}}% - \file{refcount.drv}{\from{refcount.dtx}{driver}}% - \usedir{tex/latex/oberdiek}% - \file{refcount.sty}{\from{refcount.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{refcount-test1.tex}{\from{refcount.dtx}{test1}}% -% \file{refcount-test2.tex}{\from{refcount.dtx}{test2}}% -% \file{refcount-test3.tex}{\from{refcount.dtx}{test3}}% -% \file{refcount-test4.tex}{\from{refcount.dtx}{test3,test4}}% -% \file{refcount-test5.tex}{\from{refcount.dtx}{test5}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* refcount.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `refcount.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{refcount.drv}% - [2016/05/16 v3.5 Data extraction from label references (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{refcount.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{refcount.drv} -% -% \title{The \xpackage{refcount} package} -% \date{2016/05/16 v3.5} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% References are not numbers, however they often store numerical -% data such as section or page numbers. \cs{ref} or \cs{pageref} -% cannot be used for counter assignments or calculations because -% they are not expandable, generate warnings, or can even be links. -% The package provides expandable macros to extract the data -% from references. Packages \xpackage{hyperref}, \xpackage{nameref}, -% \xpackage{titleref}, and \xpackage{babel} are supported. -% \end{abstract} -% -% \tableofcontents -% -% \section{Usage} -% -% \subsection{Setting counters} -% -% The following commands are similar to \LaTeX's -% \cs{setcounter} and \cs{addtocounter}, -% but they extract the number value from a reference: -% \begin{quote} -% \cs{setcounterref}, \cs{addtocounterref}\\ -% \cs{setcounterpageref}, \cs{addtocounterpageref} -% \end{quote} -% They take two arguments: -% \begin{quote} -% \cs{...counter...ref} |{|\meta{\LaTeX\ counter}|}| -% |{|\meta{reference}|}| -% \end{quote} -% An undefined references produces the usual LaTeX warning -% and its value is assumed to be zero. -% Example: -% \begin{quote} -%\begin{verbatim} -%\newcounter{ctrA} -%\newcounter{ctrB} -%\refstepcounter{ctrA}\label{ref:A} -%\setcounterref{ctrB}{ref:A} -%\addtocounterpageref{ctrB}{ref:A} -%\end{verbatim} -% \end{quote} -% -% \subsection{Expandable commands} -% -% These commands that can be used in expandible contexts -% (inside calculations, \cs{edef}, \cs{csname}, \cs{write}, \dots): -% \begin{quote} -% \cs{getrefnumber}, \cs{getpagerefnumber} -% \end{quote} -% They take one argument, the reference: -% \begin{quote} -% \cs{get...refnumber} |{|\meta{reference}|}| -% \end{quote} -% The default for undefined references can be changed -% with macro \cs{setrefcountdefault}, for example this -% package calls: -% \begin{quote} -% \cs{setrefcountdefault}|{0}| -% \end{quote} -% -% Since version 2.0 of this package there is a new -% command: -% \begin{quote} -% \cs{getrefbykeydefault} |{|\meta{reference}|}| -% |{|\meta{key}|}| |{|\meta{default}|}| -% \end{quote} -% This generalized version allows the extraction -% of further properties of a reference than the -% two standard ones. Thus the following properties -% are supported, if they are available: -% \begin{quote} -% \begin{tabular}{@{}l|l|l@{}} -% Key & Description & Package\\ -% \hline -% \meta{empty} & same as \cs{ref} & \LaTeX\\ -% |page| & same as \cs{pageref} & \LaTeX\\ -% |title| & section and caption titles & \xpackage{titleref}\\ -% |name| & section and caption titles & \xpackage{nameref}\\ -% |anchor| & anchor name & \xpackage{hyperref}\\ -% |url| & url/file & \xpackage{hyperref}/\xpackage{xr} -% \end{tabular} -% \end{quote} -% -% Since version 3.2 the expandable macros described before -% in this section -% are expandable in exact two expansion steps. -% -% \subsection{Undefined references} -% -% Because warnings and assignments cannot be used in -% expandible contexts, undefined references do not -% produce a warning, their values are assumed to be zero. -% Example: -% \begin{quote} -%\begin{verbatim} -%\label{ref:here}% somewhere -%\refused{ref:here}% see below -%\ifodd\getpagerefnumber{ref:here}% -% reference is on an odd page -%\else -% reference is on an even page -%\fi -%\end{verbatim} -% \end{quote} -% -% In case of undefined references the user usually want's -% to be informed. Also \LaTeX\ prints a warning at -% the end of the \LaTeX\ run. To notify \LaTeX\ and -% get a normal warning, just use -% \begin{quote} -% \cs{refused} |{|\meta{reference}|}| -% \end{quote} -% outside the expanding context. Example, see above. -% -% \subsubsection{Check for undefined references} -% -% In version 3.2 macros were added, that test, whether references -% are defined. -% \begin{declcs}{IfRefUndefinedExpandable} \M{refname} \M{then} \M{else}\\ -% \cs{IfRefUndefinedBabel} \M{refname} \M{then} \M{else} -% \end{declcs} -% If the reference is not available and therefore undefined, then -% argument \meta{then} is executed, otherwise argument \meta{else} -% is called. Macro \cs{IfRefUndefinedExpandable} is expandable, -% but \meta{refname} must not contain babel shorthand characters. -% Macro \cs{IfRefUndefinedBabel} supports shorthand characters of -% babel, but it is not expandable. -% -% \subsection{Notes} -% -% \begin{itemize} -% \item -% The method of extracting the number in this -% package also works in cases, where the -% reference cannot be used directly, because -% a package such as \xpackage{hyperref} has added -% extra stuff (hyper link), so that the reference cannot -% be used as number any more. -% \item -% If the reference does not contain a number, -% assignments to a counter will fail of course. -% \end{itemize} -% -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@refcount.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{refcount}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@refcount.sty\endcsname -\ProvidesPackage{refcount}% - [2016/05/16 v3.5 Data extraction from label references (HO)]% -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname rc@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\rc@AtEnd{% - \rc@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{96}{12}% ` -\edef\rc@AtEnd{\rc@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{Loading packages} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax - \input infwarerr.sty\relax -\else - \RequirePackage{ltxcmds}[2011/11/09]% - \RequirePackage{infwarerr}[2010/04/08]% -\fi -% \end{macrocode} -% -% \subsection{Defining commands} -% -% \begin{macro}{\rc@IfDefinable} -% \begin{macrocode} -\ltx@IfUndefined{@ifdefinable}{% - \def\rc@IfDefinable#1{% - \ifx#1\ltx@undefined - \expandafter\ltx@firstofone - \else - \ifx#1\relax - \expandafter\expandafter\expandafter\ltx@firstofone - \else - \@PackageError{refcount}{% - Command \string#1 is already defined.\MessageBreak - It will not redefined by this package% - }\@ehc - \expandafter\expandafter\expandafter\ltx@gobble - \fi - \fi - }% -}{% - \let\rc@IfDefinable\@ifdefinable -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\rc@RobustDefOne} -% \begin{macro}{\rc@RobustDefZero} -% \begin{macrocode} -\ltx@IfUndefined{protected}{% - \ltx@IfUndefined{DeclareRobustCommand}{% - \def\rc@RobustDefOne#1#2#3#4{% - \rc@IfDefinable#3{% - #1\def#3##1{#4}% - }% - }% - \def\rc@RobustDefZero#1#2{% - \rc@IfDefinable#1{% - \def#1{#2}% - }% - }% - }{% - \def\rc@RobustDefOne#1#2#3#4{% - \rc@IfDefinable#3{% - \DeclareRobustCommand#2#3[1]{#4}% - }% - }% - \def\rc@RobustDefZero#1#2{% - \rc@IfDefinable#1{% - \DeclareRobustCommand#1{#2}% - }% - }% - }% -}{% - \def\rc@RobustDefOne#1#2#3#4{% - \rc@IfDefinable#3{% - \protected#1\def#3##1{#4}% - }% - }% - \def\rc@RobustDefZero#1#2{% - \rc@IfDefinable#1{% - \protected\def#1{#2}% - }% - }% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\rc@newcommand} -% \begin{macrocode} -\ltx@IfUndefined{newcommand}{% - \def\rc@newcommand*#1[#2]#3{% hash-ok - \rc@IfDefinable#1{% - \ifcase#2 % - \def#1{#3}% - \or - \def#1##1{#3}% - \or - \def#1##1##2{#3}% - \else - \rc@InternalError - \fi - }% - }% -}{% - \let\rc@newcommand\newcommand -} -% \end{macrocode} -% \end{macro} -% -% \subsection{\cs{setrefcountdefault}} -% -% \begin{macro}{\setrefcountdefault} -% \begin{macrocode} -\rc@RobustDefOne\long{}\setrefcountdefault{% - \def\rc@default{#1}% -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\setrefcountdefault{0} -% \end{macrocode} -% -% \subsection{\cs{refused}} -% -% \begin{macro}{\refused} -% \begin{macrocode} -\ltx@IfUndefined{G@refundefinedtrue}{% - \rc@RobustDefOne{}{*}\refused{% - \begingroup - \csname @safe@activestrue\endcsname - \ltx@IfUndefined{r@#1}{% - \protect\G@refundefinedtrue - \rc@WarningUndefined{#1}% - }{}% - \endgroup - }% -}{% - \rc@RobustDefOne{}{*}\refused{% - \begingroup - \csname @safe@activestrue\endcsname - \ltx@IfUndefined{r@#1}{% - \csname protect\expandafter\endcsname - \csname G@refundefinedtrue\endcsname - \rc@WarningUndefined{#1}% - }{}% - \endgroup - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@WarningUndefined} -% \begin{macrocode} -\ltx@IfUndefined{@latex@warning}{% - \def\rc@WarningUndefined#1{% - \ltx@ifundefined{thepage}{% - \def\thepage{\number\count0 }% - }{}% - \@PackageWarning{refcount}{% - Reference `#1' on page \thepage\space undefined% - }% - }% -}{% - \def\rc@WarningUndefined#1{% - \@latex@warning{% - Reference `#1' on page \thepage\space undefined% - }% - }% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Setting counters by reference data} -% -% \subsubsection{Generic setting} -% -% \begin{macro}{\rc@set} -% Generic command for -% |\|$\{$|set|$,$|addto|$\}$|counter|$\{$|page|$,\}$|ref|: -%\begin{quote} -%\begin{tabular}[t]{@{}l@{: }l@{}} -% |#1|& \cs{setcounter}, \cs{addtocounter}\\ -% |#2|& \cs{ltx@car} (for \cs{ref}), \cs{ltx@cartwo} (for \cs{pageref})\\ -% |#3|& \hologo{LaTeX} counter\\ -% |#4|& reference\\ -%\end{tabular} -%\end{quote} -% \begin{macrocode} -\def\rc@set#1#2#3#4{% - \begingroup - \csname @safe@activestrue\endcsname - \refused{#4}% - \expandafter\rc@@set\csname r@#4\endcsname{#1}{#2}{#3}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@@set} -%\begin{quote} -%\begin{tabular}[t]{@{}l@{: }l@{}} -% |#1|& \cs{r@<...>}\\ -% |#2|& \cs{setcounter}, \cs{addtocounter}\\ -% |#3|& \cs{ltx@car} (for \cs{ref}), \cs{ltx@carsecond} (for \cs{pageref})\\ -% |#4|& \hologo{LaTeX} counter\\ -%\end{tabular} -%\end{quote} -% \begin{macrocode} -\def\rc@@set#1#2#3#4{% - \ifx#1\relax - #2{#4}{\rc@default}% - \else - #2{#4}{% - \expandafter#3#1\rc@default\rc@default\@nil - }% - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{User commands} -% -% \begin{macro}{\setcounterref} -% \begin{macrocode} -\rc@RobustDefZero\setcounterref{% - \rc@set\setcounter\ltx@car -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\addtocounterref} -% \begin{macrocode} -\rc@RobustDefZero\addtocounterref{% - \rc@set\addtocounter\ltx@car -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\setcounterpageref} -% \begin{macrocode} -\rc@RobustDefZero\setcounterpageref{% - \rc@set\setcounter\ltx@carsecond -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\addtocounterpageref} -% \begin{macrocode} -\rc@RobustDefZero\addtocounterpageref{% - \rc@set\addtocounter\ltx@carsecond -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Extracting references} -% -% \begin{macro}{\getrefnumber} -% \begin{macrocode} -\rc@newcommand*{\getrefnumber}[1]{% - \romannumeral - \ltx@ifundefined{r@#1}{% - \expandafter\ltx@zero - \rc@default - }{% - \expandafter\expandafter\expandafter\rc@extract@ - \expandafter\expandafter\expandafter!% - \csname r@#1\expandafter\endcsname - \expandafter{\rc@default}\@nil - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\getpagerefnumber} -% \begin{macrocode} -\rc@newcommand*{\getpagerefnumber}[1]{% - \romannumeral - \ltx@ifundefined{r@#1}{% - \expandafter\ltx@zero - \rc@default - }{% - \expandafter\expandafter\expandafter\rc@extract@page - \expandafter\expandafter\expandafter!% - \csname r@#1\expandafter\expandafter\expandafter\endcsname - \expandafter\expandafter\expandafter{% - \expandafter\rc@default - \expandafter}\expandafter{\rc@default}\@nil - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\getrefbykeydefault} -% \begin{macrocode} -\rc@newcommand*{\getrefbykeydefault}[2]{% - \romannumeral - \expandafter\rc@getrefbykeydefault - \csname r@#1\expandafter\endcsname - \csname rc@extract@#2\endcsname -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@getrefbykeydefault} -%\begin{quote} -%\begin{tabular}[t]{@{}l@{: }l@{}} -% |#1|& \cs{r@<...>}\\ -% |#2|& \cs{rc@extract@<...>}\\ -% |#3|& default\\ -%\end{tabular} -%\end{quote} -% \begin{macrocode} -\long\def\rc@getrefbykeydefault#1#2#3{% - \ifx#1\relax - % reference is undefined - \ltx@ReturnAfterElseFi{% - \ltx@zero - #3% - }% - \else - \ltx@ReturnAfterFi{% - \ifx#2\relax - % extract method is missing - \ltx@ReturnAfterElseFi{% - \ltx@zero - #3% - }% - \else - \ltx@ReturnAfterFi{% - \expandafter - \rc@generic#1{#3}{#3}{#3}{#3}{#3}\@nil#2{#3}% - }% - \fi - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@generic} -%\begin{quote} -%\begin{tabular}[t]{@{}l@{: }l@{}} -% |#1|& first item in \cs{r@<...>}\\ -% |#2|& remaining items in \cs{r@<...>}\\ -% |#3|& \cs{rc@extract@<...>}\\ -% |#4|& default\\ -%\end{tabular} -%\end{quote} -% \begin{macrocode} -\long\def\rc@generic#1#2\@nil#3#4{% - #3{#1\TR@TitleReference\@empty{#4}\@nil}{#1}#2\@nil -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@extract@} -% \begin{macrocode} -\long\def\rc@extract@#1#2#3\@nil{% - \ltx@zero - #2% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@extract@page} -% \begin{macrocode} -\long\def\rc@extract@page#1#2#3#4\@nil{% - \ltx@zero - #3% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@extract@name} -% \begin{macrocode} -\long\def\rc@extract@name#1#2#3#4#5\@nil{% - \ltx@zero - #4% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@extract@anchor} -% \begin{macrocode} -\long\def\rc@extract@anchor#1#2#3#4#5#6\@nil{% - \ltx@zero - #5% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@extract@url} -% \begin{macrocode} -\long\def\rc@extract@url#1#2#3#4#5#6#7\@nil{% - \ltx@zero - #6% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@extract@title} -% \begin{macrocode} -\long\def\rc@extract@title#1#2\@nil{% - \rc@@extract@title#1% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\rc@@extract@title} -% \begin{macrocode} -\long\def\rc@@extract@title#1\TR@TitleReference#2#3#4\@nil{% - \ltx@zero - #3% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Macros for checking undefined references} -% -% \begin{macro}{\IfRefUndefinedExpandable} -% \begin{macrocode} -\rc@newcommand*{\IfRefUndefinedExpandable}[1]{% - \ltx@ifundefined{r@#1}\ltx@firstoftwo\ltx@secondoftwo -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\IfRefUndefinedBabel} -% \begin{macrocode} -\rc@RobustDefOne{}*\IfRefUndefinedBabel{% - \begingroup - \csname safe@actives@true\endcsname - \expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname r@#1\endcsname\relax - \expandafter\ltx@firstoftwo - \else - \expandafter\ltx@secondoftwo - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\rc@AtEnd% -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{refcount}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/refcount.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/refcount.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex refcount.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% refcount.sty & tex/latex/oberdiek/refcount.sty\\ -% refcount.pdf & doc/latex/oberdiek/refcount.pdf\\ -% refcount.dtx & source/latex/oberdiek/refcount.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{refcount.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex refcount.dtx -%makeindex -s gind.ist refcount.idx -%pdflatex refcount.dtx -%makeindex -s gind.ist refcount.idx -%pdflatex refcount.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{1998/04/08 v1.0} -% \item -% First public release, written as answer in the -% newsgroup \xnewsgroup{comp.text.tex}: -% \URL{``\link{Re: Adding a \cs{ref} to a counter?}''}^^A -% {https://groups.google.com/group/comp.text.tex/msg/c3f2a135ef5ee528} -% \end{Version} -% \begin{Version}{2000/09/07 v2.0} -% \item -% Documentation added. -% \item -% LPPL 1.2 -% \item -% Package rewritten, new commands added. -% \end{Version} -% \begin{Version}{2006/02/20 v3.0} -% \item -% Support for \xpackage{hyperref} and \xpackage{nameref} improved. -% \item -% Support for \xpackage{titleref} and \xpackage{babel}'s shorthands added. -% \item -% New: \cs{refused}, \cs{getrefbykeydefault} -% \end{Version} -% \begin{Version}{2008/08/11 v3.1} -% \item -% Code is not changed. -% \item -% URLs updated. -% \end{Version} -% \begin{Version}{2010/12/01 v3.2} -% \item -% \cs{IfRefUndefinedExpandable} and \cs{IfRefUndefinedBabel} added. -% \item -% \cs{getrefnumber}, \cs{getpagerefnumber}, \cs{getrefbykeydefault} -% are expandable in exact two expansion steps. -% \item -% Non-expandable macros are made robust. -% \item -% Test files added. -% \end{Version} -% \begin{Version}{2011/06/22 v3.3} -% \item -% Bug fix: \cs{rc@refused} is undefined for \cs{setcounterpageref} -% and similar macros. (Bug found by Marc van Dongen.) -% \end{Version} -% \begin{Version}{2011/10/16 v3.4} -% \item -% Bug fix: \cs{setcounterpageref} and \cs{addtocounterpageref} fixed. -% (Bug found by Staz.) -% \item -% Macros \cs{(set|addto)counter(page|)ref} are made robust. -% \end{Version} -% \begin{Version}{2016/05/16 v3.5} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/soulutf8.dtx b/Master/texmf-dist/source/latex/oberdiek/soulutf8.dtx deleted file mode 100644 index f5708e8ac2d..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/soulutf8.dtx +++ /dev/null @@ -1,1300 +0,0 @@ -% \iffalse meta-comment -% -% File: soulutf8.dtx -% Version: 2016/05/16 v1.1 -% Info: Permit use of UTF-8 characters in soul -% -% Copyright (C) -% 2007 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 soulutf8.dtx -% and the derived files -% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv, -% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex, -% soulutf8-test4.tex, soulutf8-test5.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/soulutf8.dtx -% CTAN:macros/latex/contrib/oberdiek/soulutf8.pdf -% -% Unpacking: -% (a) If soulutf8.ins is present: -% tex soulutf8.ins -% (b) Without soulutf8.ins: -% tex soulutf8.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{soulutf8.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If soulutf8.drv is present: -% latex soulutf8.drv -% (b) Without soulutf8.drv: -% latex soulutf8.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex soulutf8.dtx -% makeindex -s gind.ist soulutf8.idx -% pdflatex soulutf8.dtx -% makeindex -s gind.ist soulutf8.idx -% pdflatex soulutf8.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/soulutf8.sty -% TDS:doc/latex/oberdiek/soulutf8.pdf -% TDS:source/latex/oberdiek/soulutf8.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: soulutf8 2016/05/16 v1.1 Permit use of UTF-8 characters in soul (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: soulutf8 -Version: 2016/05/16 v1.1 - -Copyright (C) - 2007 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/oberdiek/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 soulutf8.dtx -and the derived files - soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv, - soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex, - soulutf8-test4.tex, soulutf8-test5.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{soulutf8.ins}{\from{soulutf8.dtx}{install}}% - \file{soulutf8.drv}{\from{soulutf8.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{soulutf8.sty}{\from{soulutf8.dtx}{package}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{soulutf8-test1.tex}{\from{soulutf8.dtx}{test1}}% -% \file{soulutf8-test2.tex}{\from{soulutf8.dtx}{test2,utf8}}% -% \file{soulutf8-test3.tex}{\from{soulutf8.dtx}{test3,utf8x}}% -% \file{soulutf8-test4.tex}{\from{soulutf8.dtx}{test4,utf8,noetex}}% -% \file{soulutf8-test5.tex}{\from{soulutf8.dtx}{test5,utf8x,noetex}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* soulutf8.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `soulutf8.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{soulutf8.drv}% - [2016/05/16 v1.1 Permit use of UTF-8 characters in soul (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{soulutf8.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{soulutf8.drv} -% -% \title{The \xpackage{soulutf8} package} -% \date{2016/05/16 v1.1} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% This package extends package \xpackage{soul} and adds some support -% for UTF-8. Namely the input encodings \xfile{utf8.def} -% from package \xpackage{inputenc} and -% package \xpackage{ucs}'s \xfile{utf8x.def} are supported. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% This package \xpackage{soulutf8} does not have own options and does not -% define new user commands. -% Any option is passed to package \xpackage{soul} \cite{soul} -% that is loaded first. -% Then some internal macros of \xpackage{soul} are redefined to add -% support for UTF-8. -% The following input encodings are supported: -% \begin{quote} -% \begin{tabular}{@{}lll@{}} -% \texttt{utf8} & \LaTeX\ base & -% \xfile{TDS:tex/latex/base/utf8.def} \cite{utf8}\\ -% \texttt{utf8x} & Package \xpackage{ucs} & -% \xfile{TDS:tex/latex/ucs/utf8x.def} \cite{ucs}\\ -% \end{tabular} -% \end{quote} -% UTF-8 byte sequences are added as token group to a word, even -% if these UTF-8 characters are some kind of hyphen or space. -% As exception the following three Unicode characters are handled specially: -% \begin{quote} -% \begin{tabular}{lll} -% Slot & Name & Action\\ -% \hline -% \texttt{U+00A0} & NO-BREAK SPACE & like |~|\\ -% \texttt{U+2013} & EN DASH & |--|\\ -% \texttt{U+2014} & EM DASH & |---| -% \end{tabular} -% -% \subsection{Patch} -% -% Also package \xpackage{soulutf8} tries to patch package \xpackage{soul} -% to improve its behaviour: -% \begin{itemize} -% \item -% A problem with additional levels of curly braces is fixed. -% As advantage more implicite kernings are detected. -% However, the result may be incompatible with the -% original behaviour of package \xpackage{soul} because -% of these respected implicite kernings. -% \item -% \eTeX\ , especially \cs{unexpanded} is supported. -% This allows a better protection of token groups -% (|\mbox{|\dots|}|, math, \dots). -% \end{itemize} -% \end{quote} -% -% \subsection{Future} -% -% Currently package \xpackage{soul} does not seem to be -% maintained. Nevertheless if there will be a new version that -% adds support for UTF-8, then this package may become -% obsolete. -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Reload check and package identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@soulutf8.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{soulutf8}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@soulutf8.sty\endcsname -\ProvidesPackage{soulutf8}% - [2016/05/16 v1.1 Permit use of UTF-8 characters in soul (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname SOuL@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\SOuL@AtEnd{% - \SOuL@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{10}{12}% ^^J -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{34}{12}% " -\TMP@EnsureCode{36}{3}% $ -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{12}% : -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{94}{7}% ^ -\TMP@EnsureCode{96}{12}% ` -\TMP@EnsureCode{126}\active % ~ -\TMP@EnsureCode{128}{12}% ^^80 -\TMP@EnsureCode{147}{12}% ^^93 -\TMP@EnsureCode{148}{12}% ^^94 -\TMP@EnsureCode{160}{12}% ^^a0 -\TMP@EnsureCode{194}{12}% ^^c2 -\TMP@EnsureCode{226}{12}% ^^e2 -\edef\SOuL@AtEnd{\SOuL@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \subsection{Loading packages} -% -% Package \xpackage{soul} uses \cs{documentclass} to detect \LaTeX. -% \begin{macrocode} -\ifx\documentclass\@undefined -% \end{macrocode} -% -% \subsubsection{\plainTeX} -% -% First we check, whether package \xpackage{soul} is already loaded. -% \begin{macrocode} - \expandafter\ifx\csname SOUL@\endcsname\relax -% \end{macrocode} -% In case of \plainTeX\ package \xpackage{soul} defines some -% macros in a simple manner that will break the definitions of -% \xfile{miniltx.tex}, for example. Therefore these macros -% are first saved and restored afterwards. -% \begin{macrocode} - \let\SOuL@orgDeclareRobustCommand\DeclareRobustCommand - \let\SOuL@orgnewcommand \newcommand - \let\SOuL@orgDeclareOption \DeclareOption - \let\SOuL@orgPackageError \PackageError - \def\SOuL@restorelatexcmds{% - \let\DeclareRobustCommand\SOuL@orgDeclareRobustCommand - \let\newcommand \SOuL@orgnewcommand - \let\DeclareOption \SOuL@orgDeclareOption - \let\PackageError \SOuL@orgPackageError - }% - \input soul.sty\relax - \SOuL@restorelatexcmds - \fi -% \end{macrocode} -% \begin{macro}{\SOUL@error} -% Package \xpackage{soul}'s use of \cs{PackageError} is replaced -% by \cs{@PackageError} of package \xpackage{infwarerr}. -% \begin{macrocode} - \input infwarerr.sty\relax - \let\SOuL@orgSOUL@error\SOUL@error - \def\SOUL@error{% - \begingroup - \let\PackageError\@PackageError - \SOuL@orgSOUL@error - \endgroup - }% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} - \input etexcmds.sty\relax -% \end{macrocode} -% \begin{macro}{\@onelevel@sanitize} -% Define \LaTeX's \cs{@onelevel@sanitize} if not already available. -% \begin{macrocode} - \expandafter\ifx\csname @onelevel@sanitize\endcsname\relax - \def\@onelevel@sanitize#1{% - \edef#1{% - \expandafter\strip@prefix\meaning#1% - }% - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\strip@prefix} -% \begin{macrocode} - \def\strip@prefix#1>{}% -% \end{macrocode} -% \end{macro} -% \begin{macrocode} - \fi -\else -% \end{macrocode} -% -% \subsubsection{\LaTeX} -% \begin{macrocode} - \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{soul}}% - \ProcessOptions\relax - \RequirePackage{soul}[2003/11/17]% - \RequirePackage{infwarerr}[2016/05/16]% - \RequirePackage{etexcmds}[2016/05/16]% -\fi -% \end{macrocode} -% -% \subsubsection{\eTeX} -% -% In \plainTeX\ command \cs{+} is an \emph{outer} macro. -% Therefore numbers are used to avoid problems. -% \begin{macrocode} -\ifetex@unexpanded - \catcode33=14 % '!': comment - \catcode43=9 % '+': ignore -\else - \catcode33=9 % '!': ignore - \catcode43=14 % '+': comment -\fi -% \end{macrocode} -% -% \subsection{Macro for redefinitions} -% -% \begin{macro}{\SOuL@redefine} -% \begin{macrocode} -\def\SOuL@redefine#1{% - \begingroup - \def\SOuL@cmd{#1}% - \afterassignment\SOuL@cmdcheck - \def\SOuL@temp -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOuL@cmdcheck} -% \begin{macrocode} -\def\SOuL@cmdcheck{% - \expandafter\ifx\SOuL@cmd\SOuL@temp - \else - \edef\SOuL@temp*{\expandafter\string\SOuL@cmd}% - \@PackageWarningNoLine{soulutf8}{% - Command \SOuL@temp* has changed.\MessageBreak - Supported versions of package `soul': 2003/11/17.\MessageBreak - Depending on the unknown changes the redefinition\MessageBreak - of \SOuL@temp* may not behave correctly% - }% - \fi - \expandafter\endgroup - \expandafter\def\SOuL@cmd -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Redefinition of \cs{SOUL@eval}} -% -% \begin{macro}{\SOUL@eval} -% Macro \cs{SOUL@eval} is redefined to add detection of -% the first byte of a UTF-8 sequence. Because \cs{SOUL@eval} -% is overwritten, a warning is issued, if the contents of -% \cs{SOUL@eval} is not as expected. -% \begin{macrocode} -\SOuL@redefine\SOUL@eval{% -% \end{macrocode} -% First the expected definition. -% \begin{macrocode} - \def\SOUL@n*##1{\SOUL@scan}% - \if\noexpand\SOUL@@\SOUL@spc - \else - \SOUL@ignorespacesfalse - \fi - \ifnum\SOUL@minus=\thr@@ - \SOUL@flushminus - \else\ifnum\SOUL@comma=\tw@ - \SOUL@flushcomma - \else\ifnum\SOUL@apo=\tw@ - \SOUL@flushapo - \else\ifnum\SOUL@grave=\tw@ - \SOUL@flushgrave - \fi\fi\fi\fi - \ifx\SOUL@@-\else\SOUL@flushminus\fi - \ifx\SOUL@@,\else\SOUL@flushcomma\fi - \ifx\SOUL@@'\else\SOUL@flushapo\fi - \ifx\SOUL@@`\else\SOUL@flushgrave\fi - \ifx\SOUL@@-% - \advance\SOUL@minus\@ne - \else\ifx\SOUL@@,% - \advance\SOUL@comma\@ne - \else\ifx\SOUL@@'% - \advance\SOUL@apo\@ne - \else\ifx\SOUL@@`% - \advance\SOUL@grave\@ne - \else - \SOUL@flushminus - \SOUL@flushcomma - \SOUL@flushapo - \SOUL@flushgrave - \ifx\SOUL@@\SOUL@stop - \def\SOUL@n*{% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - }% - \else\ifx\SOUL@@\par - \def\SOUL@n*\par{\par\leavevmode\SOUL@scan}% - \else\if\noexpand\SOUL@@\SOUL@spc - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \ifSOUL@ignorespaces - \else - \SOUL@everyspace{}% - \fi - \def\SOUL@n* {\SOUL@scan}% - \else\ifx\SOUL@@\\% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\unskip\nobreak\hfil\break}% - \SOUL@ignorespacestrue - \else\ifx\SOUL@@~% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\nobreak}% - \else\ifx\SOUL@@\slash - \SOUL@doword - \SOUL@eventuallyexhyphen{/}% - \SOUL@exhyphen{/}% - \else\ifx\SOUL@@\mbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\hbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\soulomit - \def\SOUL@n*\soulomit##1{% - \SOUL@doword - {\spaceskip\SOUL@spaceskip##1}% - \SOUL@scan - }% - \else\ifx\SOUL@@\break - \SOUL@doword - \break - \else\ifx\SOUL@@\linebreak - \SOUL@doword - \SOUL@everyspace{\linebreak}% - \else\ifcat\bgroup\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addgroup{}}% - \else\ifcat$\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addmath}% - \else - \def\SOUL@n*{\SOUL@dotoken}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi - \SOUL@n*% -}{% -% \end{macrocode} -% Now the redefined version follows. -% \begin{macrocode} - \def\SOUL@n*##1{\SOUL@scan}% - \if\noexpand\SOUL@@\SOUL@spc - \else - \SOUL@ignorespacesfalse - \fi - \ifnum\SOUL@minus=\thr@@ - \SOUL@flushminus - \else\ifnum\SOUL@comma=\tw@ - \SOUL@flushcomma - \else\ifnum\SOUL@apo=\tw@ - \SOUL@flushapo - \else\ifnum\SOUL@grave=\tw@ - \SOUL@flushgrave - \fi\fi\fi\fi - \ifx\SOUL@@-\else\SOUL@flushminus\fi - \ifx\SOUL@@,\else\SOUL@flushcomma\fi - \ifx\SOUL@@'\else\SOUL@flushapo\fi - \ifx\SOUL@@`\else\SOUL@flushgrave\fi - \ifx\SOUL@@-% - \advance\SOUL@minus\@ne - \else\ifx\SOUL@@,% - \advance\SOUL@comma\@ne - \else\ifx\SOUL@@'% - \advance\SOUL@apo\@ne - \else\ifx\SOUL@@`% - \advance\SOUL@grave\@ne - \else - \SOUL@flushminus - \SOUL@flushcomma - \SOUL@flushapo - \SOUL@flushgrave - \ifx\SOUL@@\SOUL@stop - \def\SOUL@n*{% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - }% - \else\ifx\SOUL@@\par - \def\SOUL@n*\par{\par\leavevmode\SOUL@scan}% - \else\if\noexpand\SOUL@@\SOUL@spc - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \ifSOUL@ignorespaces - \else - \SOUL@everyspace{}% - \fi - \def\SOUL@n* {\SOUL@scan}% - \else\ifx\SOUL@@\\% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\unskip\nobreak\hfil\break}% - \SOUL@ignorespacestrue - \else\ifx\SOUL@@~% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\nobreak}% - \else\ifx\SOUL@@\slash - \SOUL@doword - \SOUL@eventuallyexhyphen{/}% - \SOUL@exhyphen{/}% - \else\ifx\SOUL@@\mbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\hbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\soulomit - \def\SOUL@n*\soulomit##1{% - \SOUL@doword - {\spaceskip\SOUL@spaceskip##1}% - \SOUL@scan - }% - \else\ifx\SOUL@@\break - \SOUL@doword - \break - \else\ifx\SOUL@@\linebreak - \SOUL@doword - \SOUL@everyspace{\linebreak}% - \else\ifcat\bgroup\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addgroup{}}% - \else\ifcat$\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addmath}% - \else -% \end{macrocode} -% The current token is examined to detect the start of -% a UTF-8 sequence. -% \begin{macrocode} - \SOuL@analyzeutfviii - \ifcase\SOuL@octets - \SOuL@analyzeutfviiix - \fi - \ifcase\SOuL@octets - \def\SOUL@n*{\SOUL@dotoken}% - \or % 1 - \or % 2 - \def\SOUL@n*{\SOuL@addtwooctets}% - \or % 3 - \def\SOUL@n*{\SOuL@addthreeoctets}% - \or % 4 - \def\SOUL@n*{\SOuL@addfouroctets}% - \fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi - \SOUL@n*% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{UTF-8 analysis} -% -% \subsubsection{Help strings} -% -% \begin{macrocode} -\def\SOuL@defsanitizedstring#1#2{% - \expandafter\def\csname SOuL@string#1\endcsname{#2}% - \expandafter\@onelevel@sanitize\csname SOuL@string#1\endcsname -} -\SOuL@defsanitizedstring{UTFviii}{UTFviii@} -\SOuL@defsanitizedstring{octets}{@octets} -\SOuL@defsanitizedstring{two}{two} -\SOuL@defsanitizedstring{three}{three} -\SOuL@defsanitizedstring{four}{four} -\SOuL@defsanitizedstring{macrocolon}{macro:} -\SOuL@defsanitizedstring{csnameu}{csname u8-} -\SOuL@defsanitizedstring{undeferr}{utf@viii@undeferr} -\def\SOuL@stringendash{^^e2^^80^^93} -\def\SOuL@stringemdash{^^e2^^80^^94} -\def\SOuL@stringnobreakspace{^^c2^^a0} -\edef\SOuL@charhash{\string #} -\edef\SOuL@chartwo{\string 2} -\edef\SOuL@charthree{\string 3} -\def\SOuL@empty{} -% \end{macrocode} -% -% \subsubsection{Support for \xfile{utf8.def}} -% -% \begin{macro}{\SOuL@analyzeutfviii} -% \begin{macrocode} -\begingroup - \edef\x{\endgroup - \def\noexpand\SOuL@analyzeutfviii{% - \noexpand\expandafter\noexpand\SOuL@checkutfviii - \noexpand\meaning\noexpand\SOUL@@ - \SOuL@stringUTFviii\SOuL@stringoctets - \noexpand\@nil - }% - \def\noexpand\SOuL@checkutfviii - ##1\SOuL@stringUTFviii##2\SOuL@stringoctets##3\noexpand\@nil - }% -\x{% - \def\SOuL@temp{#2}% - \chardef\SOuL@octets=% - \ifx\SOuL@temp\SOuL@stringtwo - \tw@ - \else\ifx\SOuL@temp\SOuL@stringthree - \thr@@ - \else\ifx\SOuL@temp\SOuL@stringfour - 4 % - \else - \z@ - \fi\fi\fi -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Support for \xfile{utf8x.def}} -% -% \begin{macro}{\SOuL@analyzeutfviiix} -% \begin{macrocode} -\begingroup - \edef\x{\endgroup - \def\noexpand\SOuL@analyzeutfviiix{% - \noexpand\expandafter\noexpand\SOuL@checkutfviiix - \noexpand\meaning\noexpand\SOUL@@ - \SOuL@stringmacrocolon\SOuL@charhash1{}{}{}{}% - \SOuL@stringcsnameu\SOuL@stringundeferr - \noexpand\@nil - }% -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOuL@checkutfviiix} -% \begin{macrocode} - \def\noexpand\SOuL@checkutfviiix - ##1\SOuL@stringmacrocolon\SOuL@charhash1##2##3##4##5##6% - \SOuL@stringcsnameu##7\SOuL@stringundeferr##8\noexpand\@nil - }% -\x{% - \def\SOuL@temp{#7}% - \ifx\SOuL@temp\SOuL@empty - \chardef\SOuL@octets=\z@ - \else - \def\SOuL@temp{#5}% - \ifx\SOuL@temp\SOuL@charthree - \chardef\SOuL@octets=4 % - \else - \def\SOuL@temp{#3}% - \ifx\SOuL@temp\SOuL@chartwo - \chardef\SOuL@octets=\thr@@ - \else - \chardef\SOuL@octets=\tw@ - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Actions for UTF-8 sequences} -% -% \begin{macro}{\SOuL@addtwooctets} -% \begin{macrocode} -\def\SOuL@addtwooctets#1#2{% - \def\SOuL@temp{#1#2}% - \@onelevel@sanitize\SOuL@temp - \ifx\SOuL@temp\SOuL@stringnobreakspace - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\nobreak}% - \let\SOuL@next\SOUL@scan - \else - \def\SOuL@next{% -! \SOUL@addtoken{{\noexpand#1\noexpand#2}}% -+ \SOUL@addtoken{{\etex@unexpanded{#1#2}}}% - }% - \fi - \SOuL@next -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOuL@addthreeoctets} -% \begin{macrocode} -\def\SOuL@addthreeoctets#1#2#3{% - \def\SOuL@temp{#1#2#3}% - \@onelevel@sanitize\SOuL@temp - \ifx\SOuL@temp\SOuL@stringendash - \SOUL@doword - \SOUL@eventuallyexhyphen{-}% - \SOUL@exhyphen{--}% - \let\SOuL@next\SOUL@scan - \else - \ifx\SOuL@temp\SOuL@stringemdash - \SOUL@doword - \SOUL@eventuallyexhyphen{-}% - \SOUL@exhyphen{---}% - \let\SOuL@next\SOUL@scan - \else - \def\SOuL@next{% -! \SOUL@addtoken{{\noexpand#1\noexpand#2\noexpand#3}}% -+ \SOUL@addtoken{{\etex@unexpanded{#1#2#3}}}% - }% - \fi - \fi - \SOuL@next -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOuL@addfouroctets} -% \begin{macrocode} -\def\SOuL@addfouroctets#1#2#3#4{% -! \SOUL@addtoken{{\noexpand#1\noexpand#2\noexpand#3\noexpand#4}}% -+ \SOUL@addtoken{{\etex@unexpanded{#1#2#3#4}}}% -} -% \end{macrocode} -% \end{macro} -% -% \subsubsection{Redefinition of \cs{SOUL@splittoken}} -% -% \begin{macro}{\SOUL@splittoken} -% Macro \cs{SOUL@splittoken} separates the first token -% or token group from a word and redefines the word to contain -% the remaining tokens. However if the remaining tokens are -% a token group, then the curly braces will be removed and -% the token group is splitted by the next call of \cs{SOUL@splittoken}. -% The redefinition avoids the removal of curly braces around the -% remaining tokens. -% \begin{macrocode} -\SOuL@redefine\SOUL@splittoken#1#2\SOUL@stop{% - \global\SOUL@token={#1}% - \global\SOUL@word={#2}% -}#1{% - \global\SOUL@token={#1}% - \SOuL@remainingtoken\relax -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOuL@remainingtoken} -% \begin{macrocode} -\def\SOuL@remainingtoken#1\SOUL@stop{% - \global\SOUL@word=\expandafter{\@gobble#1}% -} -% \end{macrocode} -% \end{macro} -% -% \subsection{Patches} -% -% The fixed \cs{SOUL@splittoken} allows to remove the double -% sets of curly braces in other macros of package \xpackage{soul}. -% The benefit is that implicite kernings are more often detected -% and fixes a bug in package \xpackage{soul}. The disadvantage is -% incompatibility. The width of the resulting strings may change. -% \begin{macro}{\SOUL@flushcomma} -% \begin{macrocode} -\SOuL@redefine\SOUL@flushcomma{% - \ifcase\SOUL@comma - \or - \edef\x{\SOUL@word={\the\SOUL@word,}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{{,,}}}}\x - \fi - \SOUL@comma\z@ -}{% - \ifcase\SOUL@comma - \or - \edef\x{\SOUL@word={\the\SOUL@word,}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{,,}}}\x - \fi - \SOUL@comma\z@ -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOUL@flushapo} -% \begin{macrocode} -\SOuL@redefine\SOUL@flushapo{% - \ifcase\SOUL@apo - \or - \edef\x{\SOUL@word={\the\SOUL@word'}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{{''}}}}\x - \fi - \SOUL@apo\z@ -}{% - \ifcase\SOUL@apo - \or - \edef\x{\SOUL@word={\the\SOUL@word'}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{''}}}\x - \fi - \SOUL@apo\z@ -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOUL@flushgrave} -% \begin{macrocode} -\SOuL@redefine\SOUL@flushgrave{% - \ifcase\SOUL@grave - \or - \edef\x{\SOUL@word={\the\SOUL@word`}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{{``}}}}\x - \fi - \SOUL@grave\z@ -}{% - \ifcase\SOUL@grave - \or - \edef\x{\SOUL@word={\the\SOUL@word`}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{``}}}\x - \fi - \SOUL@grave\z@ -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOUL@addgroup} -% \begin{macrocode} -\SOuL@redefine\SOUL@addgroup#1#2{% - {% - \let\protect\noexpand - \edef\x{% - \global\SOUL@word={% - \the\SOUL@word - {{\noexpand#1#2}}% - }% - }% - \x - }% - \SOUL@scan -}#1#2{% - \begingroup - \let\protect\noexpand - \edef\x{\endgroup - \SOUL@word={% - \the\SOUL@word -! {\noexpand#1{#2}}% -+ {\etex@unexpanded{#1{#2}}}% - }% - }% - \x - \SOUL@scan -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOUL@addmath} -% \begin{macrocode} -\SOuL@redefine\SOUL@addmath$#1${% - {% - \let\protect\noexpand - \edef\x{% - \global\SOUL@word={% - \the\SOUL@word - {{\hbox{$#1$}}}% - }% - }% - \x - }% - \SOUL@scan -}$#1${% - \begingroup - \let\protect\noexpand - \edef\x{\endgroup - \SOUL@word={% - \the\SOUL@word -! {\hbox{$#1$}}% -+ {\etex@unexpanded{\hbox{$#1$}}}% - }% - }% - \x - \SOUL@scan -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\SOUL@addprotect} -% \begin{macrocode} -\SOuL@redefine\SOUL@addprotect#1#2{% - {% - \let\protect\noexpand - \edef\x{% - \global\SOUL@word={% - \the\SOUL@word - {{\hbox{#2}}}% - }% - }% - \x - }% - \SOUL@scan -}#1#2{% - \begingroup - \let\protect\noexpand - \edef\x{\endgroup - \SOUL@word={% - \the\SOUL@word -! {\hbox{#2}}% -+ {\etex@unexpanded{\hbox{#2}}}% - }% - }% - \x - \SOUL@scan -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\SOUL@addtoken} -% \begin{macrocode} -+ \SOuL@redefine\SOUL@addtoken#1{% -+ \edef\x{% -+ \SOUL@word={% -+ \the\SOUL@word -+ \noexpand#1% -+ }% -+ }% -+ \x -+ \SOUL@scan -+ }#1{% -+ \edef\x{% -+ \SOUL@word={% -+ \the\SOUL@word -+ \etex@unexpanded{#1}% -+ }% -+ }% -+ \x -+ \SOUL@scan -+ }% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\SOuL@AtEnd% -% \end{macrocode} -% -% \begin{macrocode} -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{soulutf8}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/soulutf8.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/soulutf8.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex soulutf8.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% soulutf8.sty & tex/generic/oberdiek/soulutf8.sty\\ -% soulutf8.pdf & doc/latex/oberdiek/soulutf8.pdf\\ -% soulutf8.dtx & source/latex/oberdiek/soulutf8.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{soulutf8.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex soulutf8.dtx -%makeindex -s gind.ist soulutf8.idx -%pdflatex soulutf8.dtx -%makeindex -s gind.ist soulutf8.idx -%pdflatex soulutf8.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{thebibliography}{9} -% -% \bibitem{soul} -% Melchior Franz: \textit{The \xpackage{soul} package}; -% 2003/11/17;\\ -% \CTANpkg{soul}. -% -% \bibitem{ucs} -% Dominique P. G. Unruh: \textit{\xpackage{ucs.sty} -- Unicode Support}; -% 2004/10/17;\\ -% \CTANpkg{unicode}. -% -% \bibitem{utf8} -% Frank Mittelbach, Chris Rowley: -% \textit{Providing some UTF-8 support via \xpackage{inputenc}}; -% 2006/03/30;\\ -% \CTAN{macros/latex/base/utf8ienc.dtx}. -% -% \end{thebibliography} -% -% \begin{History} -% \begin{Version}{2007/09/09 v1.0} -% \item -% First version. -% \end{Version} -% \begin{Version}{2016/05/16 v1.1} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/oberdiek/uniquecounter.dtx b/Master/texmf-dist/source/latex/oberdiek/uniquecounter.dtx deleted file mode 100644 index 172d0814353..00000000000 --- a/Master/texmf-dist/source/latex/oberdiek/uniquecounter.dtx +++ /dev/null @@ -1,694 +0,0 @@ -% \iffalse meta-comment -% -% File: uniquecounter.dtx -% Version: 2016/05/16 v1.3 -% Info: Provide unlimited unique counter -% -% Copyright (C) -% 2009, 2011 Heiko Oberdiek -% 2016-2019 Oberdiek Package Support Group -% https://github.com/ho-tex/oberdiek/issues -% -% 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/oberdiek/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 uniquecounter.dtx -% and the derived files -% uniquecounter.sty, uniquecounter.pdf, uniquecounter.ins, -% uniquecounter.drv, uniquecounter-example.tex, -% uniquecounter-test1.tex, uniquecounter-test2.tex, -% uniquecounter-test3.tex. -% -% Distribution: -% CTAN:macros/latex/contrib/oberdiek/uniquecounter.dtx -% CTAN:macros/latex/contrib/oberdiek/uniquecounter.pdf -% -% Unpacking: -% (a) If uniquecounter.ins is present: -% tex uniquecounter.ins -% (b) Without uniquecounter.ins: -% tex uniquecounter.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{uniquecounter.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If uniquecounter.drv is present: -% latex uniquecounter.drv -% (b) Without uniquecounter.drv: -% latex uniquecounter.dtx; ... -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Programm calls to get the documentation (example): -% pdflatex uniquecounter.dtx -% makeindex -s gind.ist uniquecounter.idx -% pdflatex uniquecounter.dtx -% makeindex -s gind.ist uniquecounter.idx -% pdflatex uniquecounter.dtx -% -% Installation: -% TDS:tex/generic/oberdiek/uniquecounter.sty -% TDS:doc/latex/oberdiek/uniquecounter.pdf -% TDS:doc/latex/oberdiek/uniquecounter-example.tex -% TDS:source/latex/oberdiek/uniquecounter.dtx -% -%<*ignore> -\begingroup - \catcode123=1 % - \catcode125=2 % - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\Msg{************************************************************************} -\Msg{* Installation} -\Msg{* Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)} -\Msg{************************************************************************} - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax -\preamble - -This is a generated file. - -Project: uniquecounter -Version: 2016/05/16 v1.3 - -Copyright (C) - 2009, 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/oberdiek/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 uniquecounter.dtx -and the derived files - uniquecounter.sty, uniquecounter.pdf, uniquecounter.ins, - uniquecounter.drv, uniquecounter-example.tex, - uniquecounter-test1.tex, uniquecounter-test2.tex, - uniquecounter-test3.tex. - -\endpreamble -\let\MetaPrefix\DoubleperCent - -\generate{% - \file{uniquecounter.ins}{\from{uniquecounter.dtx}{install}}% - \file{uniquecounter.drv}{\from{uniquecounter.dtx}{driver}}% - \usedir{tex/generic/oberdiek}% - \file{uniquecounter.sty}{\from{uniquecounter.dtx}{package}}% - \usedir{doc/latex/oberdiek}% - \file{uniquecounter-example.tex}{\from{uniquecounter.dtx}{example}}% -% \usedir{doc/latex/oberdiek/test}% -% \file{uniquecounter-test1.tex}{\from{uniquecounter.dtx}{test1}}% -% \file{uniquecounter-test2.tex}{\from{uniquecounter.dtx}{test2}}% -% \file{uniquecounter-test3.tex}{\from{uniquecounter.dtx}{test3}}% -} - -\catcode32=13\relax% active space -\let =\space% -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* file into a directory searched by TeX:} -\Msg{*} -\Msg{* uniquecounter.sty} -\Msg{*} -\Msg{* To produce the documentation run the file `uniquecounter.drv'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{uniquecounter.drv}% - [2016/05/16 v1.3 Provide unlimited unique counter (HO)]% -\documentclass{ltxdoc} -\usepackage{holtxdoc}[2011/11/22] -\begin{document} - \DocInput{uniquecounter.dtx}% -\end{document} -%</driver> -% \fi -% -% -% -% \GetFileInfo{uniquecounter.drv} -% -% \title{The \xpackage{uniquecounter} package} -% \date{2016/05/16 v1.3} -% \author{Heiko Oberdiek\thanks -% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}} -% -% \maketitle -% -% \begin{abstract} -% This package provides a kind of counter that provides unique -% number values. Several counters can be created by different names. -% The numeric values are not limited. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \begin{declcs}{UniqueCounterNew} \M{name} -% \end{declcs} -% Macro \cs{UniqueCounterNew} creates a new unique counter \meta{name}. -% An error is thrown, if the counter already exists. -% -% \begin{declcs}{UniqueCounterCall} \M{name} \M{code} -% \end{declcs} -% Macro \cs{UniqueCounterCall} calls the given \meta{code} with a new -% value of counter \meta{name} as argument. -% -% \begin{declcs}{UniqueCounterIncrement} \M{name} -% \end{declcs} -% Macro \cs{UniqueCounterIncrement} generates a new value for the counter -% \meta{name} -% by incrementing by one (globally). -% -% \begin{declcs}{UniqueCounterGet} \M{name} -% \end{declcs} -% Expandable macro \cs{UniqueCounterGet} returns the current value -% of counter \meta{name} -% -% \subsection{Example} -% -% \begin{macrocode} -%<*example> -\documentclass{minimal} -\usepackage{uniquecounter} -\UniqueCounterNew{anchor} -\makeatletter -\newcommand*{\DefNewAnchorName}[2]{% - % #1 is unique counter value - % #2 is name of anchor - \@namedef{anchor@#2}{a#1}% -} -\newcommand*{\NewAnchorName}[1]{% - \UniqueCounterCall{anchor}\DefNewAnchorName{#1}% -} -\newcommand*{\PrintAnchorName}[1]{% - \@nameuse{anchor@#1}% -} -\begin{document} - \NewAnchorName{Top}% - \NewAnchorName{Left}% - \noindent - Top: \PrintAnchorName{Top}\\% - Left: \PrintAnchorName{Left}% -\end{document} -%</example> -% \end{macrocode} -% -% \StopEventually{ -% } -% -% \section{Implementation} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \subsection{Reload check and package identification} -% Reload check, especially if the package is not used with \LaTeX. -% \begin{macrocode} -\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@uniquecounter.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{uniquecounter}{The package is already loaded}% - \aftergroup\endinput - \fi - \fi -\endgroup% -% \end{macrocode} -% Package identification: -% \begin{macrocode} -\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@uniquecounter.sty\endcsname -\ProvidesPackage{uniquecounter}% - [2016/05/16 v1.3 Provide unlimited unique counter (HO)]% -% \end{macrocode} -% -% \subsection{Catcodes} -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname uqc@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\uqc@AtEnd{% - \uqc@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{96}{12}% ` -\edef\uqc@AtEnd{\uqc@AtEnd\noexpand\endinput} -% \end{macrocode} -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{bigintcalc}[2007/11/11]% - \TMP@RequirePackage{infwarerr}[2007/09/09]% -\else - \RequirePackage{bigintcalc}[2007/11/11]% - \RequirePackage{infwarerr}[2007/09/09]% -\fi -% \end{macrocode} -% -% \begin{macro}{\uqc@IncNum} -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname numexpr\endcsname\relax - \def\uqc@IncNum#1{% - \begingroup - \count@=\csname uqc@cnt@#1\endcsname\relax - \advance\count@\@ne - \expandafter\xdef\csname uqc@cnt@#1\endcsname{% - \number\count@ - }% - \ifnum\count@=2147483647 % - \global\expandafter\let\csname uqc@inc@#1\endcsname - \uqc@IncBig - \fi - \endgroup - }% -\else - \def\uqc@IncNum#1{% - \expandafter\xdef\csname uqc@cnt@#1\endcsname{% - \number\numexpr\csname uqc@cnt@#1\endcsname+1% - }% - \ifnum\csname uqc@cnt@#1\endcsname=2147483647 % - \global\expandafter\let\csname uqc@inc@#1\endcsname - \uqc@IncBig - \fi - }% -\fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\uqc@IncBig} -% \begin{macrocode} -\def\uqc@IncBig#1{% - \expandafter\xdef\csname uqc@cnt@#1\endcsname{% - \expandafter\expandafter\expandafter - \BigIntCalcInc\csname uqc@cnt@#1\endcsname!% - }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\uqc@Def} -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname newcommand\endcsname\relax - \def\uqc@Def#1{\def#1##1}% -\else - \def\uqc@Def#1{\newcommand*{#1}[1]}% -\fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\UniqueCounterNew} -% \begin{macrocode} -\uqc@Def\UniqueCounterNew{% - \expandafter\ifx\csname uqc@cnt@#1\endcsname\relax - \expandafter\xdef\csname uqc@cnt@#1\endcsname{0}% - \global\expandafter\let\csname uqc@inc@#1\endcsname\uqc@IncNum - \@PackageInfo{uniquecounter}{New unique counter `#1'}% - \else - \@PackageError{uniquecounter}{Unique counter `#1' is already defined}\@ehc - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\UniqueCounterIncrement} -% \begin{macrocode} -\uqc@Def\UniqueCounterIncrement{% - \expandafter\ifx\csname uqc@cnt@#1\endcsname\relax - \@PackageError{uniquecounter}{Unique counter `#1' is undefined}\@ehc - \else - \csname uqc@inc@#1\endcsname{#1}% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\UniqueCounterGet} -% \begin{macrocode} -\uqc@Def\UniqueCounterGet{% - \csname uqc@cnt@#1\endcsname -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\UniqueCounterCall} -% \begin{macrocode} -\uqc@Def\UniqueCounterCall{% - \expandafter\ifx\csname uqc@cnt@#1\endcsname\relax - \@PackageError{uniquecounter}{Unique counter `#1' is undefined}\@ehc - \expandafter\uqc@Call\expandafter0% - \else - \UniqueCounterIncrement{#1}% - \expandafter\expandafter\expandafter\uqc@Call - \expandafter\expandafter\expandafter{% - \csname uqc@cnt@#1\expandafter\endcsname\expandafter - }% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\uqc@Call} -% \begin{macrocode} -\long\def\uqc@Call#1#2{#2{#1}}% -% \end{macrocode} -% \end{macro} -% -% \begin{macrocode} -\uqc@AtEnd% -% \end{macrocode} -% \begin{macrocode} -%</package> -% \end{macrocode} -%% \section{Installation} -% -% \subsection{Download} -% -% \paragraph{Package.} This package is available on -% CTAN\footnote{\CTANpkg{uniquecounter}}: -% \begin{description} -% \item[\CTAN{macros/latex/contrib/oberdiek/uniquecounter.dtx}] The source file. -% \item[\CTAN{macros/latex/contrib/oberdiek/uniquecounter.pdf}] Documentation. -% \end{description} -% -% -% \paragraph{Bundle.} All the packages of the bundle `oberdiek' -% are also available in a TDS compliant ZIP archive. There -% the packages are already unpacked and the documentation files -% are generated. The files and directories obey the TDS standard. -% \begin{description} -% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}] -% \end{description} -% \emph{TDS} refers to the standard ``A Directory Structure -% for \TeX\ Files'' (\CTANpkg{tds}). Directories -% with \xfile{texmf} in their name are usually organized this way. -% -% \subsection{Bundle installation} -% -% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the -% TDS tree (also known as \xfile{texmf} tree) of your choice. -% Example (linux): -% \begin{quote} -% |unzip oberdiek.tds.zip -d ~/texmf| -% \end{quote} -% -% \subsection{Package installation} -% -% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting -% \docstrip\ archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX: -% \begin{quote} -% \verb|tex uniquecounter.dtx| -% \end{quote} -% -% \paragraph{TDS.} Now the different files must be moved into -% the different directories in your installation TDS tree -% (also known as \xfile{texmf} tree): -% \begin{quote} -% \def\t{^^A -% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} -% uniquecounter.sty & tex/generic/oberdiek/uniquecounter.sty\\ -% uniquecounter.pdf & doc/latex/oberdiek/uniquecounter.pdf\\ -% uniquecounter-example.tex & doc/latex/oberdiek/uniquecounter-example.tex\\ -% uniquecounter.dtx & source/latex/oberdiek/uniquecounter.dtx\\ -% \end{tabular}^^A -% }^^A -% \sbox0{\t}^^A -% \ifdim\wd0>\linewidth -% \begingroup -% \advance\linewidth by\leftmargin -% \advance\linewidth by\rightmargin -% \edef\x{\endgroup -% \def\noexpand\lw{\the\linewidth}^^A -% }\x -% \def\lwbox{^^A -% \leavevmode -% \hbox to \linewidth{^^A -% \kern-\leftmargin\relax -% \hss -% \usebox0 -% \hss -% \kern-\rightmargin\relax -% }^^A -% }^^A -% \ifdim\wd0>\lw -% \sbox0{\small\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\footnotesize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\scriptsize\t}^^A -% \ifdim\wd0>\linewidth -% \ifdim\wd0>\lw -% \sbox0{\tiny\t}^^A -% \ifdim\wd0>\linewidth -% \lwbox -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \else -% \lwbox -% \fi -% \else -% \usebox0 -% \fi -% \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's -% TDS installing feature, then some files can already be in the right -% place, see the documentation of \docstrip. -% -% \subsection{Refresh file name databases} -% -% If your \TeX~distribution -% (\TeX\,Live, \mikTeX, \dots) relies on file name databases, you must refresh -% these. For example, \TeX\,Live\ users run \verb|texhash| or -% \verb|mktexlsr|. -% -% \subsection{Some details for the interested} -% -% \paragraph{Unpacking with \LaTeX.} -% The \xfile{.dtx} chooses its action depending on the format: -% \begin{description} -% \item[\plainTeX:] Run \docstrip\ and extract the files. -% \item[\LaTeX:] Generate the documentation. -% \end{description} -% If you insist on using \LaTeX\ for \docstrip\ (really, -% \docstrip\ does not need \LaTeX), then inform the autodetect routine -% about your intention: -% \begin{quote} -% \verb|latex \let\install=y\input{uniquecounter.dtx}| -% \end{quote} -% Do not forget to quote the argument according to the demands -% of your shell. -% -% \paragraph{Generating the documentation.} -% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate -% the documentation. The process can be configured by the -% configuration file \xfile{ltxdoc.cfg}. For instance, put this -% line into this file, if you want to have A4 as paper format: -% \begin{quote} -% \verb|\PassOptionsToClass{a4paper}{article}| -% \end{quote} -% An example follows how to generate the -% documentation with pdf\LaTeX: -% \begin{quote} -%\begin{verbatim} -%pdflatex uniquecounter.dtx -%makeindex -s gind.ist uniquecounter.idx -%pdflatex uniquecounter.dtx -%makeindex -s gind.ist uniquecounter.idx -%pdflatex uniquecounter.dtx -%\end{verbatim} -% \end{quote} -% -% \begin{History} -% \begin{Version}{2009/09/11 v1.0} -% \item -% First public version. -% \end{Version} -% \begin{Version}{2009/12/18 v1.1} -% \item -% Bug fix in \cs{UniqueCounterCall} for values \textgreater\ 9 -% (bug report of Lev Bishop). -% \end{Version} -% \begin{Version}{2011/01/30 v1.2} -% \item -% Already loaded package files are not input in \hologo{plainTeX}. -% \end{Version} -% \begin{Version}{2016/05/16 v1.3} -% \item -% Documentation updates. -% \end{Version} -% \end{History} -% -% \PrintIndex -% -% \Finale -\endinput diff --git a/Master/texmf-dist/tex/generic/oberdiek/bigintcalc.sty b/Master/texmf-dist/tex/generic/oberdiek/bigintcalc.sty deleted file mode 100644 index 0638702a1ec..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/bigintcalc.sty +++ /dev/null @@ -1,1831 +0,0 @@ -%% -%% This is file `bigintcalc.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% bigintcalc.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: bigintcalc -%% Version: 2016/05/16 v1.4 -%% -%% Copyright (C) -%% 2007, 2011, 2012 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/oberdiek/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 bigintcalc.dtx -%% and the derived files -%% bigintcalc.sty, bigintcalc.pdf, bigintcalc.ins, bigintcalc.drv, -%% bigintcalc-test1.tex, bigintcalc-test2.tex, -%% bigintcalc-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@bigintcalc.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{bigintcalc}{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@bigintcalc.sty\endcsname -\ProvidesPackage{bigintcalc}% - [2016/05/16 v1.4 Expandable calculations on big integers (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname BIC@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\BIC@AtEnd{% - \BIC@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{36}{14}% $ (comment!) -\TMP@EnsureCode{38}{14}% & (comment!) -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{11}% : (letter!) -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{63}{14}% ? (comment!) -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\BIC@AtEnd{\BIC@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname BIC@TestMode\endcsname\relax -\else - \catcode63=9 % ? (ignore) -\fi -? \let\BIC@@TestMode\BIC@TestMode -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname numexpr\endcsname\relax - \catcode36=9 % $ (ignore) -\else - \catcode38=9 % & (ignore) -\fi -\let\BIC@Fi\fi -\def\BIC@AfterFi#1#2\BIC@Fi{\fi#1}% -\def\BIC@AfterFiFi#1#2\BIC@Fi{\fi\fi#1}% -\def\BIC@AfterFiFiFi#1#2\BIC@Fi{\fi\fi\fi#1}% -\begingroup - \def\x#1{\endgroup - \let\BIC@Space= #1% - }% -\x{ } -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{pdftexcmds}[2007/11/11]% -\else - \RequirePackage{pdftexcmds}[2007/11/11]% -\fi -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdf@escapehex\endcsname\relax - \def\BIC@Expand#1{% - \romannumeral0% - \BIC@@Expand#1!\@nil{}% - }% - \def\BIC@@Expand#1#2\@nil#3{% - \expandafter\ifcat\noexpand#1\relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - {% - \expandafter\BIC@@Expand#1#2\@nil{#3}% - }{% - \ifx#1!% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - { #3}{% - \BIC@@Expand#2\@nil{#3#1}% - }% - }% - }% - \expandafter\ifx\csname @firstoftwo\endcsname\relax - \long\def\@firstoftwo#1#2{#1}% - \fi - \expandafter\ifx\csname @secondoftwo\endcsname\relax - \long\def\@secondoftwo#1#2{#2}% - \fi -\else - \def\BIC@Expand#1{% - \romannumeral0\expandafter\expandafter\expandafter\BIC@Space - \pdf@unescapehex{% - \expandafter\expandafter\expandafter - \BIC@StripHexSpace\pdf@escapehex{#1}20\@nil - }% - }% - \def\BIC@StripHexSpace#120#2\@nil{% - #1% - \ifx\\#2\\% - \else - \BIC@AfterFi{% - \BIC@StripHexSpace#2\@nil - }% - \BIC@Fi - }% -\fi -\def\BIC@Normalize#1#2{% - \ifx#2-% - \ifx\\#1\\% - \BIC@AfterFiFi{% - \BIC@Normalize-% - }% - \else - \BIC@AfterFiFi{% - \BIC@Normalize{}% - }% - \fi - \else - \ifx#2+% - \BIC@AfterFiFi{% - \BIC@Normalize{#1}% - }% - \else - \ifx#20% - \BIC@AfterFiFiFi{% - \BIC@NormalizeZero{#1}% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@NormalizeDigits#1#2% - }% - \fi - \fi - \BIC@Fi -} -\def\BIC@NormalizeZero#1#2{% - \ifx#2!% - \BIC@AfterFi{ 0}% - \else - \ifx#20% - \BIC@AfterFiFi{% - \BIC@NormalizeZero{#1}% - }% - \else - \BIC@AfterFiFi{% - \BIC@NormalizeDigits#1#2% - }% - \fi - \BIC@Fi -} -\def\BIC@NormalizeDigits#1!{ #1} -\def\bigintcalcNum#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Normalize - \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter}% - \BIC@Expand{#1}!% -} -\def\bigintcalcInv#1{% - \romannumeral0\expandafter\expandafter\expandafter\BIC@Space - \bigintcalcNum{-#1}% -} -\def\bigintcalcAbs#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Abs - \bigintcalcNum{#1}% -} -\def\BIC@Abs#1{% - \ifx#1-% - \expandafter\BIC@Space - \else - \expandafter\BIC@Space - \expandafter#1% - \fi -} -\def\bigintcalcSgn#1{% - \number - \expandafter\expandafter\expandafter\BIC@Sgn - \bigintcalcNum{#1}! % -} -\def\BIC@Sgn#1#2!{% - \ifx#1-% - -1% - \else - \ifx#10% - 0% - \else - 1% - \fi - \fi -} -\def\bigintcalcCmp#1#2{% - \number - \expandafter\expandafter\expandafter\BIC@Cmp - \bigintcalcNum{#2}!{#1}% -} -\def\BIC@Cmp#1!#2{% - \expandafter\expandafter\expandafter\BIC@@Cmp - \bigintcalcNum{#2}!#1!% -} -\def\BIC@@Cmp#1#2!#3#4!{% - \ifx#1-% - \ifx#3-% - \BIC@AfterFiFi{% - \BIC@@Cmp#4!#2!% - }% - \else - \BIC@AfterFiFi{% - -1 % - }% - \fi - \else - \ifx#3-% - \BIC@AfterFiFi{% - 1 % - }% - \else - \BIC@AfterFiFi{% - \BIC@CmpLength#1#2!#3#4!#1#2!#3#4!% - }% - \fi - \BIC@Fi -} -\def\BIC@PosCmp#1!#2!{% - \BIC@CmpLength#1!#2!#1!#2!% -} -\def\BIC@CmpLength#1#2!#3#4!{% - \ifx\\#2\\% - \ifx\\#4\\% - \BIC@AfterFiFi\BIC@CmpDiff - \else - \BIC@AfterFiFi{% - \BIC@CmpResult{-1}% - }% - \fi - \else - \ifx\\#4\\% - \BIC@AfterFiFi{% - \BIC@CmpResult1% - }% - \else - \BIC@AfterFiFi{% - \BIC@CmpLength#2!#4!% - }% - \fi - \BIC@Fi -} -\def\BIC@CmpResult#1#2!#3!{#1 } -\def\BIC@CmpDiff#1#2!#3#4!{% - \ifnum#1<#3 % - \BIC@AfterFi{% - -1 % - }% - \else - \ifnum#1>#3 % - \BIC@AfterFiFi{% - 1 % - }% - \else - \ifx\\#2\\% - \BIC@AfterFiFiFi{% - 0 % - }% - \else - \BIC@AfterFiFiFi{% - \BIC@CmpDiff#2!#4!% - }% - \fi - \fi - \BIC@Fi -} -\def\bigintcalcMin#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@MinMax - \bigintcalcNum{#1}!-!% -} -\def\bigintcalcMax#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@MinMax - \bigintcalcNum{#1}!!% -} -\def\BIC@MinMax#1!#2!#3{% - \expandafter\expandafter\expandafter\BIC@@MinMax - \bigintcalcNum{#3}!#1!#2!% -} -\def\BIC@@MinMax#1!#2!#3!{% - \ifnum\BIC@@Cmp#1!#2!=#31 % - \BIC@AfterFi{ #1}% - \else - \BIC@AfterFi{ #2}% - \BIC@Fi -} -\def\bigintcalcOdd#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Odd - \bigintcalcAbs{#1}!% -} -\def\BigIntCalcOdd#1!{% - \romannumeral0% - \BIC@Odd#1!% -} -\def\BIC@Odd#1#2{% - \ifx#2!% - \ifodd#1 % - \BIC@AfterFiFi{ 1}% - \else - \BIC@AfterFiFi{ 0}% - \fi - \else - \expandafter\BIC@Odd\expandafter#2% - \BIC@Fi -} -\def\bigintcalcInc#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@IncSwitch - \bigintcalcNum{#1}!% -} -\def\BIC@IncSwitch#1#2!{% - \ifcase\BIC@@Cmp#1#2!-1!% - \BIC@AfterFi{ 0}% - \or - \BIC@AfterFi{% - \BIC@Inc#1#2!{}% - }% - \else - \BIC@AfterFi{% - \expandafter-\romannumeral0% - \BIC@Dec#2!{}% - }% - \BIC@Fi -} -\def\bigintcalcDec#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@DecSwitch - \bigintcalcNum{#1}!% -} -\def\BIC@DecSwitch#1#2!{% - \ifcase\BIC@Sgn#1#2! % - \BIC@AfterFi{ -1}% - \or - \BIC@AfterFi{% - \BIC@Dec#1#2!{}% - }% - \else - \BIC@AfterFi{% - \expandafter-\romannumeral0% - \BIC@Inc#2!{}% - }% - \BIC@Fi -} -\def\BigIntCalcInc#1!{% - \romannumeral0\BIC@Inc#1!{}% -} -\def\BigIntCalcDec#1!{% - \romannumeral0\BIC@Dec#1!{}% -} -\def\BIC@Inc#1#2!#3{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@@Inc1#1#3!{}% - }% - \else - \BIC@AfterFi{% - \BIC@Inc#2!{#1#3}% - }% - \BIC@Fi -} -\def\BIC@@Inc#1#2#3!#4{% - \ifcase#1 % - \ifx\\#3\\% - \BIC@AfterFiFi{ #2#4}% - \else - \BIC@AfterFiFi{% - \BIC@@Inc0#3!{#2#4}% - }% - \fi - \else - \ifnum#2<9 % - \BIC@AfterFiFi{% -& \expandafter\BIC@@@Inc\the\numexpr#2+1\relax -$ \expandafter\expandafter\expandafter\BIC@@@Inc -$ \ifcase#2 \expandafter1% -$ \or\expandafter2% -$ \or\expandafter3% -$ \or\expandafter4% -$ \or\expandafter5% -$ \or\expandafter6% -$ \or\expandafter7% -$ \or\expandafter8% -$ \or\expandafter9% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi - 0#3!{#4}% - }% - \else - \BIC@AfterFiFi{% - \BIC@@@Inc01#3!{#4}% - }% - \fi - \BIC@Fi -} -\def\BIC@@@Inc#1#2#3!#4{% - \ifx\\#3\\% - \ifnum#2=1 % - \BIC@AfterFiFi{ 1#1#4}% - \else - \BIC@AfterFiFi{ #1#4}% - \fi - \else - \BIC@AfterFi{% - \BIC@@Inc#2#3!{#1#4}% - }% - \BIC@Fi -} -\def\BIC@Dec#1#2!#3{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@@Dec1#1#3!{}% - }% - \else - \BIC@AfterFi{% - \BIC@Dec#2!{#1#3}% - }% - \BIC@Fi -} -\def\BIC@@Dec#1#2#3!#4{% - \ifcase#1 % - \ifx\\#3\\% - \BIC@AfterFiFi{ #2#4}% - \else - \BIC@AfterFiFi{% - \BIC@@Dec0#3!{#2#4}% - }% - \fi - \else - \ifnum#2>0 % - \BIC@AfterFiFi{% -& \expandafter\BIC@@@Dec\the\numexpr#2-1\relax -$ \expandafter\expandafter\expandafter\BIC@@@Dec -$ \ifcase#2 -$? \BigIntCalcError:ThisCannotHappen% -$ \or\expandafter0% -$ \or\expandafter1% -$ \or\expandafter2% -$ \or\expandafter3% -$ \or\expandafter4% -$ \or\expandafter5% -$ \or\expandafter6% -$ \or\expandafter7% -$ \or\expandafter8% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi - 0#3!{#4}% - }% - \else - \BIC@AfterFiFi{% - \BIC@@@Dec91#3!{#4}% - }% - \fi - \BIC@Fi -} -\def\BIC@@@Dec#1#2#3!#4{% - \ifx\\#3\\% - \ifcase#1 % - \ifx\\#4\\% - \BIC@AfterFiFiFi{ 0}% - \else - \BIC@AfterFiFiFi{ #4}% - \fi - \else - \BIC@AfterFiFi{ #1#4}% - \fi - \else - \BIC@AfterFi{% - \BIC@@Dec#2#3!{#1#4}% - }% - \BIC@Fi -} -\def\bigintcalcAdd#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Add - \bigintcalcNum{#1}!% -} -\def\BIC@Add#1!#2{% - \expandafter\expandafter\expandafter - \BIC@AddSwitch\bigintcalcNum{#2}!#1!% -} -\def\bigintcalcSub#1#2{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Add - \bigintcalcNum{-#2}!{#1}% -} -\def\BIC@AddSwitch#1#2!#3#4!{% - \ifx#1-% x < 0 - \ifx#3-% y < 0 - \expandafter-\romannumeral0% - \ifnum\BIC@PosCmp#2!#4!=1 % -x > -y - \BIC@AfterFiFiFi{% - \BIC@AddXY#2!#4!!!% - }% - \else % -x <= -y - \BIC@AfterFiFiFi{% - \BIC@AddXY#4!#2!!!% - }% - \fi - \else % y >= 0 - \ifcase\BIC@PosCmp#2!#3#4!% -x = y - \BIC@AfterFiFiFi{ 0}% - \or % -x > y - \expandafter-\romannumeral0% - \BIC@AfterFiFiFi{% - \BIC@SubXY#2!#3#4!!!% - }% - \else % -x <= y - \BIC@AfterFiFiFi{% - \BIC@SubXY#3#4!#2!!!% - }% - \fi - \fi - \else % x >= 0 - \ifx#3-% y < 0 - \ifcase\BIC@PosCmp#1#2!#4!% x = -y - \BIC@AfterFiFiFi{ 0}% - \or % x > -y - \BIC@AfterFiFiFi{% - \BIC@SubXY#1#2!#4!!!% - }% - \else % x <= -y - \expandafter-\romannumeral0% - \BIC@AfterFiFiFi{% - \BIC@SubXY#4!#1#2!!!% - }% - \fi - \else % y >= 0 - \ifnum\BIC@PosCmp#1#2!#3#4!=1 % x > y - \BIC@AfterFiFiFi{% - \BIC@AddXY#1#2!#3#4!!!% - }% - \else % x <= y - \BIC@AfterFiFiFi{% - \BIC@AddXY#3#4!#1#2!!!% - }% - \fi - \fi - \BIC@Fi -} -\def\BigIntCalcAdd#1!#2!{% - \romannumeral0\BIC@AddXY#1!#2!!!% -} -\def\BigIntCalcSub#1!#2!{% - \romannumeral0\BIC@SubXY#1!#2!!!% -} -\def\BIC@AddXY#1#2!#3#4!#5!#6!{% - \ifx\\#2\\% - \ifx\\#3\\% - \BIC@AfterFiFi{% - \BIC@DoAdd0!#1#5!#60!% - }% - \else - \BIC@AfterFiFi{% - \BIC@DoAdd0!#1#5!#3#6!% - }% - \fi - \else - \ifx\\#4\\% - \ifx\\#3\\% - \BIC@AfterFiFiFi{% - \BIC@AddXY#2!{}!#1#5!#60!% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@AddXY#2!{}!#1#5!#3#6!% - }% - \fi - \else - \BIC@AfterFiFi{% - \BIC@AddXY#2!#4!#1#5!#3#6!% - }% - \fi - \BIC@Fi -} -\def\BIC@DoAdd#1#2!#3#4!#5#6!{% - \ifx\\#4\\% - \BIC@AfterFi{% -& \expandafter\BIC@Space -& \the\numexpr#1+#3+#5\relax#2% -$ \expandafter\expandafter\expandafter\BIC@AddResult -$ \BIC@AddDigit#1#3#5#2% - }% - \else - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@DoAdd - \BIC@AddDigit#1#3#5#2!#4!#6!% - }% - \BIC@Fi -} -$ \def\BIC@AddResult#1{% -$ \ifx#10% -$ \expandafter\BIC@Space -$ \else -$ \expandafter\BIC@Space\expandafter#1% -$ \fi -$ }% -\def\BIC@AddDigit#1#2#3{% - \romannumeral0% -& \expandafter\BIC@@AddDigit\the\numexpr#1+#2+#3!% -$ \expandafter\BIC@@AddDigit\number% -$ \csname -$ BIC@AddCarry% -$ \ifcase#1 % -$ #2% -$ \else -$ \ifcase#2 1\or2\or3\or4\or5\or6\or7\or8\or9\or10\fi -$ \fi -$ \endcsname#3!% -} -\def\BIC@@AddDigit#1!{% - \ifnum#1<10 % - \BIC@AfterFi{ 0#1}% - \else - \BIC@AfterFi{ #1}% - \BIC@Fi -} -$ \expandafter\def\csname BIC@AddCarry0\endcsname#1{#1}% -$ \expandafter\def\csname BIC@AddCarry10\endcsname#1{1#1}% -$ \def\BIC@Temp#1#2{% -$ \expandafter\def\csname BIC@AddCarry#1\endcsname##1{% -$ \ifcase##1 #1\or -$ #2% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi -$ }% -$ }% -$ \BIC@Temp 0{1\or2\or3\or4\or5\or6\or7\or8\or9}% -$ \BIC@Temp 1{2\or3\or4\or5\or6\or7\or8\or9\or10}% -$ \BIC@Temp 2{3\or4\or5\or6\or7\or8\or9\or10\or11}% -$ \BIC@Temp 3{4\or5\or6\or7\or8\or9\or10\or11\or12}% -$ \BIC@Temp 4{5\or6\or7\or8\or9\or10\or11\or12\or13}% -$ \BIC@Temp 5{6\or7\or8\or9\or10\or11\or12\or13\or14}% -$ \BIC@Temp 6{7\or8\or9\or10\or11\or12\or13\or14\or15}% -$ \BIC@Temp 7{8\or9\or10\or11\or12\or13\or14\or15\or16}% -$ \BIC@Temp 8{9\or10\or11\or12\or13\or14\or15\or16\or17}% -$ \BIC@Temp 9{10\or11\or12\or13\or14\or15\or16\or17\or18}% -\def\BIC@SubXY#1#2!#3#4!#5!#6!{% - \ifx\\#2\\% - \ifx\\#3\\% - \BIC@AfterFiFi{% - \BIC@DoSub0!#1#5!#60!% - }% - \else - \BIC@AfterFiFi{% - \BIC@DoSub0!#1#5!#3#6!% - }% - \fi - \else - \ifx\\#4\\% - \ifx\\#3\\% - \BIC@AfterFiFiFi{% - \BIC@SubXY#2!{}!#1#5!#60!% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@SubXY#2!{}!#1#5!#3#6!% - }% - \fi - \else - \BIC@AfterFiFi{% - \BIC@SubXY#2!#4!#1#5!#3#6!% - }% - \fi - \BIC@Fi -} -\def\BIC@DoSub#1#2!#3#4!#5#6!{% - \ifx\\#4\\% - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@SubResult - \BIC@SubDigit#1#3#5#2% - }% - \else - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@DoSub - \BIC@SubDigit#1#3#5#2!#4!#6!% - }% - \BIC@Fi -} -\def\BIC@SubResult#1{% - \ifx#10% - \expandafter\BIC@SubResult - \else - \expandafter\BIC@Space\expandafter#1% - \fi -} -\def\BIC@SubDigit#1#2#3{% - \romannumeral0% -& \expandafter\BIC@@SubDigit\the\numexpr#2-#3-#1!% -$ \expandafter\BIC@@AddDigit\number -$ \csname -$ BIC@SubCarry% -$ \ifcase#1 % -$ #3% -$ \else -$ \ifcase#3 1\or2\or3\or4\or5\or6\or7\or8\or9\or10\fi -$ \fi -$ \endcsname#2!% -} -& \def\BIC@@SubDigit#1!{% -& \ifnum#1<0 % -& \BIC@AfterFi{% -& \expandafter\BIC@Space -& \expandafter1\the\numexpr#1+10\relax -& }% -& \else -& \BIC@AfterFi{ 0#1}% -& \BIC@Fi -& }% -$ \expandafter\def\csname BIC@SubCarry0\endcsname#1{#1}% -$ \expandafter\def\csname BIC@SubCarry10\endcsname#1{1#1}% -$ \def\BIC@Temp#1#2{% -$ \expandafter\def\csname BIC@SubCarry#1\endcsname##1{% -$ \ifcase##1 #2% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi -$ }% -$ }% -$ \BIC@Temp 1{19\or0\or1\or2\or3\or4\or5\or6\or7\or8}% -$ \BIC@Temp 2{18\or19\or0\or1\or2\or3\or4\or5\or6\or7}% -$ \BIC@Temp 3{17\or18\or19\or0\or1\or2\or3\or4\or5\or6}% -$ \BIC@Temp 4{16\or17\or18\or19\or0\or1\or2\or3\or4\or5}% -$ \BIC@Temp 5{15\or16\or17\or18\or19\or0\or1\or2\or3\or4}% -$ \BIC@Temp 6{14\or15\or16\or17\or18\or19\or0\or1\or2\or3}% -$ \BIC@Temp 7{13\or14\or15\or16\or17\or18\or19\or0\or1\or2}% -$ \BIC@Temp 8{12\or13\or14\or15\or16\or17\or18\or19\or0\or1}% -$ \BIC@Temp 9{11\or12\or13\or14\or15\or16\or17\or18\or19\or0}% -\def\bigintcalcShl#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Shl - \bigintcalcNum{#1}!% -} -\def\BIC@Shl#1#2!{% - \ifx#1-% - \BIC@AfterFi{% - \expandafter-\romannumeral0% -& \BIC@@Shl#2!!% -$ \BIC@AddXY#2!#2!!!% - }% - \else - \BIC@AfterFi{% -& \BIC@@Shl#1#2!!% -$ \BIC@AddXY#1#2!#1#2!!!% - }% - \BIC@Fi -} -\def\BigIntCalcShl#1!{% - \romannumeral0% -& \BIC@@Shl#1!!% -$ \BIC@AddXY#1!#1!!!% -} -& \def\BIC@@Shl#1#2!{% -& \ifx\\#2\\% -& \BIC@AfterFi{% -& \BIC@@@Shl0!#1% -& }% -& \else -& \BIC@AfterFi{% -& \BIC@@Shl#2!#1% -& }% -& \BIC@Fi -& }% -& \def\BIC@@@Shl#1#2!#3#4!{% -& \ifx\\#4\\% -& \BIC@AfterFi{% -& \expandafter\BIC@Space -& \the\numexpr#3*2+#1\relax#2% -& }% -& \else -& \BIC@AfterFi{% -& \expandafter\BIC@@@@Shl\the\numexpr#3*2+#1!#2!#4!% -& }% -& \BIC@Fi -& }% -& \def\BIC@@@@Shl#1!{% -& \ifnum#1<10 % -& \BIC@AfterFi{% -& \BIC@@@Shl0#1% -& }% -& \else -& \BIC@AfterFi{% -& \BIC@@@Shl#1% -& }% -& \BIC@Fi -& }% -\def\bigintcalcShr#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Shr - \bigintcalcNum{#1}!% -} -\def\BIC@Shr#1#2!{% - \ifx#1-% - \expandafter-\romannumeral0% - \BIC@AfterFi{% - \BIC@@Shr#2!% - }% - \else - \BIC@AfterFi{% - \BIC@@Shr#1#2!% - }% - \BIC@Fi -} -\def\BigIntCalcShr#1!{% - \romannumeral0% - \BIC@@Shr#1!% -} -\def\BIC@@Shr#1#2!{% - \ifcase#1 % - \BIC@AfterFi{ 0}% - \or - \ifx\\#2\\% - \BIC@AfterFiFi{ 0}% - \else - \BIC@AfterFiFi{% - \BIC@@@Shr#1#2!!% - }% - \fi - \else - \BIC@AfterFi{% - \BIC@@@Shr0#1#2!!% - }% - \BIC@Fi -} -\def\BIC@@@Shr#1#2#3!#4!{% - \ifx\\#3\\% - \ifodd#1#2 % - \BIC@AfterFiFi{% -& \expandafter\BIC@ShrResult\the\numexpr(#1#2-1)/2\relax -$ \expandafter\expandafter\expandafter\BIC@ShrResult -$ \csname BIC@ShrDigit#1#2\endcsname - #4!% - }% - \else - \BIC@AfterFiFi{% -& \expandafter\BIC@ShrResult\the\numexpr#1#2/2\relax -$ \expandafter\expandafter\expandafter\BIC@ShrResult -$ \csname BIC@ShrDigit#1#2\endcsname - #4!% - }% - \fi - \else - \ifodd#1#2 % - \BIC@AfterFiFi{% -& \expandafter\BIC@@@@Shr\the\numexpr(#1#2-1)/2\relax1% -$ \expandafter\expandafter\expandafter\BIC@@@@Shr -$ \csname BIC@ShrDigit#1#2\endcsname - #3!#4!% - }% - \else - \BIC@AfterFiFi{% -& \expandafter\BIC@@@@Shr\the\numexpr#1#2/2\relax0% -$ \expandafter\expandafter\expandafter\BIC@@@@Shr -$ \csname BIC@ShrDigit#1#2\endcsname - #3!#4!% - }% - \fi - \BIC@Fi -} -& \def\BIC@ShrResult#1#2!{ #2#1}% -$ \def\BIC@ShrResult#1#2#3!{ #3#1}% -\def\BIC@@@@Shr#1#2#3!#4!{% - \BIC@@@Shr#2#3!#4#1!% -} -$ \def\BIC@Temp#1#2#3#4{% -$ \expandafter\def\csname BIC@ShrDigit#1#2\endcsname{#3#4}% -$ }% -$ \BIC@Temp 0000% -$ \BIC@Temp 0101% -$ \BIC@Temp 0210% -$ \BIC@Temp 0311% -$ \BIC@Temp 0420% -$ \BIC@Temp 0521% -$ \BIC@Temp 0630% -$ \BIC@Temp 0731% -$ \BIC@Temp 0840% -$ \BIC@Temp 0941% -$ \BIC@Temp 1050% -$ \BIC@Temp 1151% -$ \BIC@Temp 1260% -$ \BIC@Temp 1361% -$ \BIC@Temp 1470% -$ \BIC@Temp 1571% -$ \BIC@Temp 1680% -$ \BIC@Temp 1781% -$ \BIC@Temp 1890% -$ \BIC@Temp 1991% -\def\BIC@Tim#1!#2{% - \romannumeral0% - \ifcase#2 % 0 - \BIC@AfterFi{ 0}% - \or % 1 - \BIC@AfterFi{ #1}% - \or % 2 - \BIC@AfterFi{% - \BIC@Shl#1!% - }% - \else % 3-9 - \BIC@AfterFi{% - \BIC@@Tim#1!!#2% - }% - \BIC@Fi -} -\def\BIC@@Tim#1#2!{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@ProcessTim0!#1% - }% - \else - \BIC@AfterFi{% - \BIC@@Tim#2!#1% - }% - \BIC@Fi -} -\def\BIC@ProcessTim#1#2!#3#4!#5{% - \ifx\\#4\\% - \BIC@AfterFi{% - \expandafter\BIC@Space -& \the\numexpr#3*#5+#1\relax -$ \romannumeral0\BIC@TimDigit#3#5#1% - #2% - }% - \else - \BIC@AfterFi{% - \expandafter\BIC@@ProcessTim -& \the\numexpr#3*#5+#1% -$ \romannumeral0\BIC@TimDigit#3#5#1% - !#2!#4!#5% - }% - \BIC@Fi -} -\def\BIC@@ProcessTim#1#2!{% - \ifx\\#2\\% - \BIC@AfterFi{% - \BIC@ProcessTim0#1% - }% - \else - \BIC@AfterFi{% - \BIC@ProcessTim#1#2% - }% - \BIC@Fi -} -$ \def\BIC@TimDigit#1#2#3{% -$ \ifcase#1 % 0 -$ \BIC@AfterFi{ #3}% -$ \or % 1 -$ \BIC@AfterFi{% -$ \expandafter\BIC@Space -$ \number\csname BIC@AddCarry#2\endcsname#3 % -$ }% -$ \else -$ \ifcase#3 % -$ \BIC@AfterFiFi{% -$ \expandafter\BIC@Space -$ \number\csname BIC@MulDigit#2\endcsname#1 % -$ }% -$ \else -$ \BIC@AfterFiFi{% -$ \expandafter\BIC@Space -$ \romannumeral0% -$ \expandafter\BIC@AddXY -$ \number\csname BIC@MulDigit#2\endcsname#1!% -$ #3!!!% -$ }% -$ \fi -$ \BIC@Fi -$ }% -$ \def\BIC@Temp#1#2{% -$ \expandafter\def\csname BIC@MulDigit#1\endcsname##1{% -$ \ifcase##1 0% -$ \or ##1% -$ \or #2% -$? \else\BigIntCalcError:ThisCannotHappen% -$ \fi -$ }% -$ }% -$ \BIC@Temp 3{6\or9\or12\or15\or18\or21\or24\or27}% -$ \BIC@Temp 4{8\or12\or16\or20\or24\or28\or32\or36}% -$ \BIC@Temp 5{10\or15\or20\or25\or30\or35\or40\or45}% -$ \BIC@Temp 6{12\or18\or24\or30\or36\or42\or48\or54}% -$ \BIC@Temp 7{14\or21\or28\or35\or42\or49\or56\or63}% -$ \BIC@Temp 8{16\or24\or32\or40\or48\or56\or64\or72}% -$ \BIC@Temp 9{18\or27\or36\or45\or54\or63\or72\or81}% -\def\bigintcalcMul#1#2{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Mul - \bigintcalcNum{#1}!{#2}% -} -\def\BIC@Mul#1!#2{% - \expandafter\expandafter\expandafter\BIC@MulSwitch - \bigintcalcNum{#2}!#1!% -} -\def\BIC@MulSwitch#1#2!#3#4!{% - \ifcase\BIC@Sgn#1#2! % x = 0 - \BIC@AfterFi{ 0}% - \or % x > 0 - \ifcase\BIC@Sgn#3#4! % y = 0 - \BIC@AfterFiFi{ 0}% - \or % y > 0 - \ifnum\BIC@PosCmp#1#2!#3#4!=1 % x > y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#1#2!#3#4!% - }% - \else % x <= y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#3#4!#1#2!% - }% - \fi - \else % y < 0 - \expandafter-\romannumeral0% - \ifnum\BIC@PosCmp#1#2!#4!=1 % x > -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#1#2!#4!% - }% - \else % x <= -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#4!#1#2!% - }% - \fi - \fi - \else % x < 0 - \ifcase\BIC@Sgn#3#4! % y = 0 - \BIC@AfterFiFi{ 0}% - \or % y > 0 - \expandafter-\romannumeral0% - \ifnum\BIC@PosCmp#2!#3#4!=1 % -x > y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#2!#3#4!% - }% - \else % -x <= y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#3#4!#2!% - }% - \fi - \else % y < 0 - \ifnum\BIC@PosCmp#2!#4!=1 % -x > -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#2!#4!% - }% - \else % -x <= -y - \BIC@AfterFiFiFi{% - \BIC@ProcessMul0!#4!#2!% - }% - \fi - \fi - \BIC@Fi -} -\def\BigIntCalcMul#1!#2!{% - \romannumeral0% - \BIC@ProcessMul0!#1!#2!% -} -\def\BIC@ProcessMul#1!#2!#3#4!{% - \ifx\\#4\\% - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@Space - \bigintcalcAdd{\BIC@Tim#2!#3}{#10}% - }% - \else - \BIC@AfterFi{% - \expandafter\expandafter\expandafter\BIC@ProcessMul - \bigintcalcAdd{\BIC@Tim#2!#3}{#10}!#2!#4!% - }% - \BIC@Fi -} -\def\bigintcalcSqr#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Sqr - \bigintcalcNum{#1}!% -} -\def\BIC@Sqr#1{% - \ifx#1-% - \expandafter\BIC@@Sqr - \else - \expandafter\BIC@@Sqr\expandafter#1% - \fi -} -\def\BIC@@Sqr#1!{% - \BIC@ProcessMul0!#1!#1!% -} -\def\bigintcalcFac#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Fac - \bigintcalcNum{#1}!% -} -\def\BIC@Fac#1#2!{% - \ifx#1-% - \BIC@AfterFi{ 0\BigIntCalcError:FacNegative}% - \else - \ifnum\BIC@PosCmp#1#2!13!<0 % - \ifcase#1#2 % - \BIC@AfterFiFiFi{ 1}% 0! - \or\BIC@AfterFiFiFi{ 1}% 1! - \or\BIC@AfterFiFiFi{ 2}% 2! - \or\BIC@AfterFiFiFi{ 6}% 3! - \or\BIC@AfterFiFiFi{ 24}% 4! - \or\BIC@AfterFiFiFi{ 120}% 5! - \or\BIC@AfterFiFiFi{ 720}% 6! - \or\BIC@AfterFiFiFi{ 5040}% 7! - \or\BIC@AfterFiFiFi{ 40320}% 8! - \or\BIC@AfterFiFiFi{ 362880}% 9! - \or\BIC@AfterFiFiFi{ 3628800}% 10! - \or\BIC@AfterFiFiFi{ 39916800}% 11! - \or\BIC@AfterFiFiFi{ 479001600}% 12! -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \else - \BIC@AfterFiFi{% - \BIC@ProcessFac#1#2!479001600!% - }% - \fi - \BIC@Fi -} -\def\BIC@ProcessFac#1!#2!{% - \ifnum\BIC@PosCmp#1!12!=0 % - \BIC@AfterFi{ #2}% - \else - \BIC@AfterFi{% - \expandafter\BIC@@ProcessFac - \romannumeral0\BIC@ProcessMul0!#2!#1!% - !#1!% - }% - \BIC@Fi -} -\def\BIC@@ProcessFac#1!#2!{% - \expandafter\BIC@ProcessFac - \romannumeral0\BIC@Dec#2!{}% - !#1!% -} -\def\bigintcalcPow#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Pow - \bigintcalcNum{#1}!% -} -\def\BIC@Pow#1!#2{% - \expandafter\expandafter\expandafter\BIC@PowSwitch - \bigintcalcNum{#2}!#1!% -} -\def\BIC@PowSwitch#1#2!#3#4!{% - \ifcase\ifx\\#2\\% - \ifx#100 % y = 0 - \else\ifx#111 % y = 1 - \else\ifx#122 % y = 2 - \else4 % y > 2 - \fi\fi\fi - \else - \ifx#1-3 % y < 0 - \else4 % y > 2 - \fi - \fi - \BIC@AfterFi{ 1}% y = 0 - \or % y = 1 - \BIC@AfterFi{ #3#4}% - \or % y = 2 - \ifx#3-% x < 0 - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#4!#4!% - }% - \else % x >= 0 - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#3#4!#3#4!% - }% - \fi - \or % y < 0 - \ifcase\ifx\\#4\\% - \ifx#300 % x = 0 - \else\ifx#311 % x = 1 - \else3 % x > 1 - \fi\fi - \else - \ifcase\BIC@MinusOne#3#4! % - 3 % |x| > 1 - \or - 2 % x = -1 -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \fi - \BIC@AfterFiFi{ 0\BigIntCalcError:DivisionByZero}% x = 0 - \or % x = 1 - \BIC@AfterFiFi{ 1}% x = 1 - \or % x = -1 - \ifcase\BIC@ModTwo#2! % even(y) - \BIC@AfterFiFiFi{ 1}% - \or % odd(y) - \BIC@AfterFiFiFi{ -1}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % |x| > 1 - \BIC@AfterFiFi{ 0}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % y > 2 - \ifcase\ifx\\#4\\% - \ifx#300 % x = 0 - \else\ifx#311 % x = 1 - \else4 % x > 1 - \fi\fi - \else - \ifx#3-% - \ifcase\BIC@MinusOne#3#4! % - 3 % x < -1 - \else - 2 % x = -1 - \fi - \else - 4 % x > 1 - \fi - \fi - \BIC@AfterFiFi{ 0}% x = 0 - \or % x = 1 - \BIC@AfterFiFi{ 1}% x = 1 - \or % x = -1 - \ifcase\BIC@ModTwo#1#2! % even(y) - \BIC@AfterFiFiFi{ 1}% - \or % odd(y) - \BIC@AfterFiFiFi{ -1}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % x < -1 - \ifcase\BIC@ModTwo#1#2! % even(y) - \BIC@AfterFiFiFi{% - \BIC@PowRec#4!#1#2!1!% - }% - \or % odd(y) - \expandafter-\romannumeral0% - \BIC@AfterFiFiFi{% - \BIC@PowRec#4!#1#2!1!% - }% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % x > 1 - \BIC@AfterFiFi{% - \BIC@PowRec#3#4!#1#2!1!% - }% -? \else\BigIntCalcError:ThisCannotHappen% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \BIC@Fi -} -\def\BIC@ModTwo#1#2!{% - \ifx\\#2\\% - \ifodd#1 % - \BIC@AfterFiFi1% - \else - \BIC@AfterFiFi0% - \fi - \else - \BIC@AfterFi{% - \BIC@ModTwo#2!% - }% - \BIC@Fi -} -\def\BIC@MinusOne#1#2!{% - \ifx#1-% - \BIC@@MinusOne#2!% - \else - 0% - \fi -} -\def\BIC@@MinusOne#1#2!{% - \ifx#11% - \ifx\\#2\\% - 1% - \else - 0% - \fi - \else - 0% - \fi -} -\def\BIC@PowRec#1!#2#3!#4!{% - \ifcase\ifx#21\ifx\\#3\\0 \else1 \fi\else1 \fi % y = 1 - \ifnum\BIC@PosCmp#1!#4!=1 % x > r - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#1!#4!% - }% - \else - \BIC@AfterFiFi{% - \BIC@ProcessMul0!#4!#1!% - }% - \fi - \or - \ifcase\BIC@ModTwo#2#3! % even(y) - \BIC@AfterFiFi{% - \expandafter\BIC@@PowRec\romannumeral0% - \BIC@@Shr#2#3!% - !#1!#4!% - }% - \or % odd(y) - \ifnum\BIC@PosCmp#1!#4!=1 % x > r - \BIC@AfterFiFiFi{% - \expandafter\BIC@@@PowRec\romannumeral0% - \BIC@ProcessMul0!#1!#4!% - !#1!#2#3!% - }% - \else - \BIC@AfterFiFiFi{% - \expandafter\BIC@@@PowRec\romannumeral0% - \BIC@ProcessMul0!#1!#4!% - !#1!#2#3!% - }% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \BIC@Fi -} -\def\BIC@@PowRec#1!#2!#3!{% - \expandafter\BIC@PowRec\romannumeral0% - \BIC@ProcessMul0!#2!#2!% - !#1!#3!% -} -\def\BIC@@@PowRec#1!#2!#3!{% - \expandafter\BIC@@PowRec\romannumeral0% - \BIC@@Shr#3!% - !#2!#1!% -} -\def\bigintcalcDiv#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Div - \bigintcalcNum{#1}!% -} -\def\BIC@Div#1!#2{% - \expandafter\expandafter\expandafter\BIC@DivSwitchSign - \bigintcalcNum{#2}!#1!% -} -\def\BigIntCalcDiv#1!#2!{% - \romannumeral0% - \BIC@DivSwitchSign#2!#1!% -} -\def\BIC@DivSwitchSign#1#2!#3#4!{% - \ifcase\BIC@Sgn#1#2! % y = 0 - \BIC@AfterFi{ 0\BigIntCalcError:DivisionByZero}% - \or % y > 0 - \ifcase\BIC@Sgn#3#4! % x = 0 - \BIC@AfterFiFi{ 0}% - \or % x > 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch{}#3#4!#1#2!% - }% - \else % x < 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch-#4!#1#2!% - }% - \fi - \else % y < 0 - \ifcase\BIC@Sgn#3#4! % x = 0 - \BIC@AfterFiFi{ 0}% - \or % x > 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch-#3#4!#2!% - }% - \else % x < 0 - \BIC@AfterFiFi{% - \BIC@DivSwitch{}#4!#2!% - }% - \fi - \BIC@Fi -} -\def\BIC@DivSwitch#1#2!#3#4!{% - \ifcase\BIC@PosCmp#3#4!#2!% y = x - \BIC@AfterFi{ #11}% - \or % y > x - \BIC@AfterFi{ 0}% - \else % y < x - \ifx\\#1\\% - \else - \expandafter-\romannumeral0% - \fi - \ifcase\ifx\\#4\\% - \ifx#310 % y = 1 - \else\ifx#321 % y = 2 - \else\ifx#342 % y = 4 - \else3 % y > 2 - \fi\fi\fi - \else - 3 % y > 2 - \fi - \BIC@AfterFiFi{ #2}% y = 1 - \or % y = 2 - \BIC@AfterFiFi{% - \BIC@@Shr#2!% - }% - \or % y = 4 - \BIC@AfterFiFi{% - \expandafter\BIC@@Shr\romannumeral0% - \BIC@@Shr#2!!% - }% - \or % y > 2 - \BIC@AfterFiFi{% - \BIC@DivStartX#2!#3#4!!!% - }% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \BIC@Fi -} -\def\BIC@DivStartX#1#2!#3#4!#5!#6!{% - \ifx\\#4\\% - \BIC@AfterFi{% - \BIC@DivStartYii#6#3#4!{#5#1}#2=!% - }% - \else - \BIC@AfterFi{% - \BIC@DivStartX#2!#4!#5#1!#6#3!% - }% - \BIC@Fi -} -\def\BIC@DivStartYii#1!{% - \expandafter\BIC@DivStartYiv\romannumeral0% - \BIC@Shl#1!% - !#1!% -} -\def\BIC@DivStartYiv#1!{% - \expandafter\BIC@DivStartYvi\romannumeral0% - \BIC@Shl#1!% - !#1!% -} -\def\BIC@DivStartYvi#1!#2!{% - \expandafter\BIC@DivStartYviii\romannumeral0% - \BIC@AddXY#1!#2!!!% - !#1!#2!% -} -\def\BIC@DivStartYviii#1!#2!{% - \expandafter\BIC@DivStart\romannumeral0% - \BIC@Shl#2!% - !#1!#2!% -} -\def\BIC@DivStart#1!#2!#3!#4!#5!#6!{% - \BIC@ProcessDiv#6!!#5!#4!#3!#2!#1!=% -} -\def\BIC@ProcessDiv#1#2#3!#4!#5!{% - \ifcase\BIC@PosCmp#5!#1!% y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#41}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#41!#5!% - }% - \fi - \or % y > #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#40}}% - \else - \ifx\\#4\\% - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv{#1#2}#3!!#5!% - }% - \else - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv{#1#2}#3!#40!#5!% - }% - \fi - \fi - \else % y < #1 - \BIC@AfterFi{% - \BIC@@ProcessDiv{#1}#2#3!#4!#5!% - }% - \BIC@Fi -} -\def\BIC@DivCleanup#1#2={ #1}% -\def\BIC@@ProcessDiv#1#2#3!#4!#5!#6!#7!{% - \ifcase\BIC@PosCmp#7!#1!% 4y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#44}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#44!#5!#6!#7!% - }% - \fi - \or % 4y > #1 - \ifcase\BIC@PosCmp#6!#1!% 2y = #1 - \ifx#2=% - \BIC@AfterFiFiFi{\BIC@DivCleanup{#42}}% - \else - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv#2#3!#42!#5!#6!#7!% - }% - \fi - \or % 2y > #1 - \ifx#2=% - \BIC@AfterFiFiFi{\BIC@DivCleanup{#41}}% - \else - \BIC@AfterFiFiFi{% - \BIC@DivSub#1!#5!#2#3!#41!#5!#6!#7!% - }% - \fi - \else % 2y < #1 - \BIC@AfterFiFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#6!!!% - !#2#3!#4!#5!23% - #6!#7!% - }% - \fi - \else % 4y < #1 - \BIC@AfterFi{% - \BIC@@@ProcessDiv{#1}#2#3!#4!#5!#6!#7!% - }% - \BIC@Fi -} -\def\BIC@DivSub#1!#2!#3{% - \expandafter\BIC@ProcessDiv\expandafter{% - \romannumeral0% - \BIC@SubXY#1!#2!!!% - #3% - }% -} -\def\BIC@ProcessDivII#1!#2#3!#4!#5!#6#7{% - \ifcase\BIC@PosCmp#5!#1!% y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#4#7}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#4#7!#5!% - }% - \fi - \or % y > #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#4#6}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv{#1#2}#3!#4#6!#5!% - }% - \fi - \else % y < #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#4#7}}% - \else - \BIC@AfterFiFi{% - \BIC@DivSub#1!#5!#2#3!#4#7!#5!% - }% - \fi - \BIC@Fi -} -\def\BIC@@@ProcessDiv#1#2#3!#4!#5!#6!#7!#8!#9!{% - \ifcase\BIC@PosCmp#8!#1!% 6y = #1 - \ifx#2=% - \BIC@AfterFiFi{\BIC@DivCleanup{#46}}% - \else - \BIC@AfterFiFi{% - \BIC@ProcessDiv#2#3!#46!#5!#6!#7!#8!#9!% - }% - \fi - \or % 6y > #1 - \BIC@AfterFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#7!!!% - !#2#3!#4!#5!45% - #6!#7!#8!#9!% - }% - \else % 6y < #1 - \ifcase\BIC@PosCmp#9!#1!% 8y = #1 - \ifx#2=% - \BIC@AfterFiFiFi{\BIC@DivCleanup{#48}}% - \else - \BIC@AfterFiFiFi{% - \BIC@ProcessDiv#2#3!#48!#5!#6!#7!#8!#9!% - }% - \fi - \or % 8y > #1 - \BIC@AfterFiFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#8!!!% - !#2#3!#4!#5!67% - #6!#7!#8!#9!% - }% - \else % 8y < #1 - \BIC@AfterFiFi{% - \expandafter\BIC@ProcessDivII\romannumeral0% - \BIC@SubXY#1!#9!!!% - !#2#3!#4!#5!89% - #6!#7!#8!#9!% - }% - \fi - \BIC@Fi -} -\def\bigintcalcMod#1{% - \romannumeral0% - \expandafter\expandafter\expandafter\BIC@Mod - \bigintcalcNum{#1}!% -} -\def\BIC@Mod#1!#2{% - \expandafter\expandafter\expandafter\BIC@ModSwitchSign - \bigintcalcNum{#2}!#1!% -} -\def\BigIntCalcMod#1!#2!{% - \romannumeral0% - \BIC@ModSwitchSign#2!#1!% -} -\def\BIC@ModSwitchSign#1#2!#3#4!{% - \ifcase\ifx\\#2\\% - \ifx#100 % y = 0 - \else1 % y > 0 - \fi - \else - \ifx#1-2 % y < 0 - \else1 % y > 0 - \fi - \fi - \BIC@AfterFi{ 0\BigIntCalcError:DivisionByZero}% - \or % y > 0 - \ifcase\ifx\\#4\\\ifx#300 \else1 \fi\else1 \fi % x = 0 - \BIC@AfterFiFi{ 0}% - \else - \BIC@AfterFiFi{% - \BIC@ModSwitch{}#3#4!#1#2!% - }% - \fi - \else % y < 0 - \ifcase\ifx\\#4\\% - \ifx#300 % x = 0 - \else1 % x > 0 - \fi - \else - \ifx#3-2 % x < 0 - \else1 % x > 0 - \fi - \fi - \BIC@AfterFiFi{ 0}% - \or % x > 0 - \BIC@AfterFiFi{% - \BIC@ModSwitch--#3#4!#2!% - }% - \else % x < 0 - \BIC@AfterFiFi{% - \BIC@ModSwitch-#4!#2!% - }% - \fi - \BIC@Fi -} -\def\BIC@ModSwitch#1#2#3!#4#5!{% - \ifcase\ifx\\#5\\% - \ifx#410 % y = 1 - \else\ifx#421 % y = 2 - \else2 % y > 2 - \fi\fi - \else2 % y > 2 - \fi - \BIC@AfterFi{ 0}% y = 1 - \or % y = 2 - \ifcase\BIC@ModTwo#2#3! % even(x) - \BIC@AfterFiFi{ 0}% - \or % odd(x) - \BIC@AfterFiFi{ #11}% -? \else\BigIntCalcError:ThisCannotHappen% - \fi - \or % y > 2 - \ifx\\#1\\% - \else - \expandafter\BIC@Space\romannumeral0% - \expandafter\BIC@ModMinus\romannumeral0% - \fi - \ifx#2-% x < 0 - \BIC@AfterFiFi{% - \expandafter\expandafter\expandafter\BIC@ModX - \bigintcalcSub{#2#3}{% - \bigintcalcMul{#4#5}{\bigintcalcDiv{#2#3}{#4#5}}% - }!#4#5!% - }% - \else % x > 0 - \BIC@AfterFiFi{% - \expandafter\expandafter\expandafter\BIC@Space - \bigintcalcSub{#2#3}{% - \bigintcalcMul{#4#5}{\bigintcalcDiv{#2#3}{#4#5}}% - }% - }% - \fi -? \else\BigIntCalcError:ThisCannotHappen% - \BIC@Fi -} -\def\BIC@ModMinus#1{% - \ifx#10% - \BIC@AfterFi{ 0}% - \else - \BIC@AfterFi{ -#1}% - \BIC@Fi -} -\def\BIC@ModX#1#2!#3!{% - \ifx#1-% z < 0 - \BIC@AfterFi{% - \expandafter\BIC@Space\romannumeral0% - \BIC@SubXY#3!#2!!!% - }% - \else % z >= 0 - \BIC@AfterFi{ #1#2}% - \BIC@Fi -} -\BIC@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `bigintcalc.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty b/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty deleted file mode 100644 index 4f8413b4cd2..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty +++ /dev/null @@ -1,292 +0,0 @@ -%% -%% This is file `etexcmds.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% etexcmds.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: etexcmds -%% Version: 2016/05/16 v1.6 -%% -%% Copyright (C) -%% 2007, 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/oberdiek/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 etexcmds.dtx -%% and the derived files -%% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv, -%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex, -%% etexcmds-test4.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@etexcmds.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{etexcmds}{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@etexcmds.sty\endcsname -\ProvidesPackage{etexcmds}% - [2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname etexcmds@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\etexcmds@AtEnd{% - \etexcmds@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\etexcmds@AtEnd{% - \etexcmds@AtEnd - \escapechar\the\escapechar\relax - \noexpand\endinput -} -\escapechar=92 % backslash -\def\etexcmds@newif#1{% - \expandafter\edef\csname etex@#1false\endcsname{% - \let - \expandafter\noexpand\csname ifetex@#1\endcsname - \noexpand\iffalse - }% - \expandafter\edef\csname etex@#1true\endcsname{% - \let - \expandafter\noexpand\csname ifetex@#1\endcsname - \noexpand\iftrue - }% - \csname etex@#1false\endcsname -} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{infwarerr}[2007/09/09]% - \TMP@RequirePackage{ifluatex}[2010/03/01]% -\else - \RequirePackage{infwarerr}[2007/09/09]% - \RequirePackage{ifluatex}[2010/03/01]% -\fi -\etexcmds@newif{unexpanded} -\begingroup -\edef\x{\string\unexpanded}% -\edef\y{\meaning\unexpanded}% -\ifx\x\y - \endgroup - \let\etex@unexpanded\unexpanded - \etex@unexpandedtrue -\else - \edef\y{\meaning\normalunexpanded}% - \ifx\x\y - \endgroup - \let\etex@unexpanded\normalunexpanded - \etex@unexpandedtrue - \else - \edef\y{\meaning\@@unexpanded}% - \ifx\x\y - \endgroup - \let\etex@unexpanded\@@unexpanded - \etex@unexpandedtrue - \else - \ifluatex - \ifnum\luatexversion<36 % - \else - \begingroup - \directlua{% - tex.enableprimitives('etex@',{'unexpanded'})% - }% - \global\let\etex@unexpanded\etex@unexpanded - \endgroup - \fi - \fi - \edef\y{\meaning\etex@unexpanded}% - \ifx\x\y - \endgroup - \etex@unexpandedtrue - \else - \endgroup - \@PackageInfoNoLine{etexcmds}{% - Could not find \string\unexpanded.\MessageBreak - That can mean that you are not using e-TeX or% - \MessageBreak - that some package has redefined \string\unexpanded.% - \MessageBreak - In the latter case, load this package earlier% - }% - \etex@unexpandedfalse - \fi - \fi - \fi -\fi -\etexcmds@newif{expanded} -\begingroup -\edef\x{\string\expanded}% -\edef\y{\meaning\expanded}% -\ifx\x\y - \endgroup - \let\etex@expanded\expanded - \etex@expandedtrue -\else - \edef\y{\meaning\normalexpanded}% - \ifx\x\y - \endgroup - \let\etex@expanded\normalexpanded - \etex@expandedtrue - \else - \edef\y{\meaning\@@expanded}% - \ifx\x\y - \endgroup - \let\etex@expanded\@@expanded - \etex@expandedtrue - \else - \ifluatex - \ifnum\luatexversion<36 % - \else - \begingroup - \directlua{% - tex.enableprimitives('etex@',{'expanded'})% - }% - \global\let\etex@expanded\etex@expanded - \endgroup - \fi - \fi - \edef\y{\meaning\etex@expanded}% - \ifx\x\y - \endgroup - \etex@expandedtrue - \else - \endgroup - \@PackageInfoNoLine{etexcmds}{% - Could not find \string\expanded.\MessageBreak - That can mean that you are not using pdfTeX 1.50 or% - \MessageBreak - that some package has redefined \string\expanded.% - \MessageBreak - In the latter case, load this package earlier% - }% - \etex@expandedfalse - \fi - \fi - \fi -\fi -\etexcmds@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `etexcmds.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/gettitlestring.sty b/Master/texmf-dist/tex/generic/oberdiek/gettitlestring.sty deleted file mode 100644 index 699574db6ad..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +++ /dev/null @@ -1,313 +0,0 @@ -%% -%% This is file `gettitlestring.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% gettitlestring.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: gettitlestring -%% Version: 2016/05/16 v1.5 -%% -%% Copyright (C) -%% 2009, 2010 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/oberdiek/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 gettitlestring.dtx -%% and the derived files -%% gettitlestring.sty, gettitlestring.pdf, gettitlestring.ins, -%% gettitlestring.drv, gettitlestring-test1.tex, -%% gettitlestring-test2.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@gettitlestring.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{gettitlestring}{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@gettitlestring.sty\endcsname -\ProvidesPackage{gettitlestring}% - [2016/05/16 v1.5 Cleanup title references (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname GTS@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\GTS@AtEnd{% - \GTS@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\GTS@AtEnd{\GTS@AtEnd\noexpand\endinput} -\RequirePackage{kvoptions}[2009/07/17] -\SetupKeyvalOptions{% - family=gettitlestring,% - prefix=GTS@% -} -\newcommand*{\GetTitleStringSetup}{% - \setkeys{gettitlestring}% -} -\DeclareBoolOption{expand} -\InputIfFileExists{gettitlestring.cfg}{}{} -\ProcessKeyvalOptions*\relax -\newcommand*{\GetTitleString}{% - \ifGTS@expand - \expandafter\GetTitleStringExpand - \else - \expandafter\GetTitleStringNonExpand - \fi -} -\newcommand{\GetTitleStringExpand}[1]{% - \def\GetTitleStringResult{#1}% - \begingroup - \GTS@DisablePredefinedCmds - \GTS@DisableHook - \edef\x{\endgroup - \noexpand\def\noexpand\GetTitleStringResult{% - \GetTitleStringResult - }% - }% - \x -} -\newcommand{\GetTitleStringNonExpand}[1]{% - \def\GetTitleStringResult{#1}% - \global\let\GTS@GlobalString\GetTitleStringResult - \begingroup - \GTS@RemoveLeft - \GTS@RemoveRight - \endgroup - \let\GetTitleStringResult\GTS@GlobalString -} -\def\GTS@DisablePredefinedCmds{% - \let\label\@gobble - \let\zlabel\@gobble - \let\zref@label\@gobble - \let\zref@labelbylist\@gobbletwo - \let\zref@labelbyprops\@gobbletwo - \let\index\@gobble - \let\glossary\@gobble - \let\markboth\@gobbletwo - \let\@mkboth\@gobbletwo - \let\markright\@gobble - \let\phantomsection\@empty - \def\addcontentsline{\expandafter\@gobble\@gobbletwo}% - \let\raggedright\@empty - \let\raggedleft\@empty - \let\centering\@empty - \let\protect\@unexpandable@protect - \let\enit@format\@empty % package enumitem -} -\providecommand*{\GTS@DisableHook}{} -\def\GetTitleStringDisableCommands{% - \begingroup - \makeatletter - \GTS@DisableCommands -} -\long\def\GTS@DisableCommands#1{% - \toks0=\expandafter{\GTS@DisableHook}% - \toks2={#1}% - \xdef\GTS@GlobalString{\the\toks0 \the\toks2}% - \endgroup - \let\GTS@DisableHook\GTS@GlobalString -} -\def\GTS@RemoveLeft{% - \toks@\expandafter\expandafter\expandafter{% - \expandafter\GTS@Car\GTS@GlobalString{}{}{}{}\GTS@Nil - }% - \edef\GTS@Token{\the\toks@}% - \GTS@PredefinedLeftCmds - \expandafter\futurelet\expandafter\GTS@Token - \expandafter\GTS@TestLeftSpace\GTS@GlobalString\GTS@Nil - \GTS@End -} -\def\GTS@End{} -\long\def\GTS@TestLeft#1#2{% - \def\GTS@temp{#1}% - \ifx\GTS@temp\GTS@Token - \toks@\expandafter\expandafter\expandafter{% - \expandafter#2\GTS@GlobalString\GTS@Nil - }% - \expandafter\GTS@TestLeftEnd - \fi -} -\long\def\GTS@TestLeftEnd#1\GTS@End{% - \xdef\GTS@GlobalString{\the\toks@}% - \GTS@RemoveLeft -} -\long\def\GTS@Car#1#2\GTS@Nil{#1} -\long\def\GTS@Cdr#1#2\GTS@Nil{#2} -\long\def\GTS@CdrTwo#1#2#3\GTS@Nil{#3} -\long\def\GTS@CdrThree#1#2#3#4\GTS@Nil{#4} -\long\def\GTS@CdrFour#1#2#3#4#5\GTS@Nil{#5} -\long\def\GTS@TestLeftSpace#1\GTS@Nil{% - \ifx\GTS@Token\@sptoken - \toks@\expandafter{% - \romannumeral-0\GTS@GlobalString - }% - \expandafter\GTS@TestLeftEnd - \fi -} -\def\GTS@PredefinedLeftCmds{% - \GTS@TestLeft\Hy@phantomsection\GTS@Cdr - \GTS@TestLeft\Hy@SectionAnchor\GTS@Cdr - \GTS@TestLeft\Hy@SectionAnchorHref\GTS@CdrTwo - \GTS@TestLeft\label\GTS@CdrTwo - \GTS@TestLeft\zlabel\GTS@CdrTwo - \GTS@TestLeft\index\GTS@CdrTwo - \GTS@TestLeft\glossary\GTS@CdrTwo - \GTS@TestLeft\markboth\GTS@CdrThree - \GTS@TestLeft\@mkboth\GTS@CdrThree - \GTS@TestLeft\addcontentsline\GTS@CdrFour - \GTS@TestLeft\enit@format\GTS@Cdr % package enumitem -} -\def\GTS@RemoveRight{% - \toks@{}% - \expandafter\GTS@TestRightLabel\GTS@GlobalString - \label{}\GTS@Nil\@nil - \GTS@RemoveRightSpace -} -\begingroup - \def\GTS@temp#1{\endgroup - \def\GTS@RemoveRightSpace{% - \expandafter\GTS@TestRightSpace\GTS@GlobalString - \GTS@Nil#1\GTS@Nil\@nil - }% - }% -\GTS@temp{ } -\def\GTS@TestRightSpace#1 \GTS@Nil#2\@nil{% - \ifx\relax#2\relax - \else - \gdef\GTS@GlobalString{#1}% - \expandafter\GTS@RemoveRightSpace - \fi -} -\def\GTS@TestRightLabel#1\label#2#3\GTS@Nil#4\@nil{% - \def\GTS@temp{#3}% - \ifx\GTS@temp\@empty - \expandafter\gdef\expandafter\GTS@GlobalString\expandafter{% - \the\toks@ - #1% - }% - \expandafter\@gobble - \else - \expandafter\@firstofone - \fi - {% - \toks@\expandafter{\the\toks@#1}% - \GTS@TestRightLabel#3\GTS@Nil\@nil - }% -} -\GTS@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `gettitlestring.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/intcalc.sty b/Master/texmf-dist/tex/generic/oberdiek/intcalc.sty deleted file mode 100644 index 84124d615ae..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/intcalc.sty +++ /dev/null @@ -1,1734 +0,0 @@ -%% -%% This is file `intcalc.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% intcalc.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: intcalc -%% Version: 2016/05/16 v1.2 -%% -%% Copyright (C) -%% 2007 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/oberdiek/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 intcalc.dtx -%% and the derived files -%% intcalc.sty, intcalc.pdf, intcalc.ins, intcalc.drv, -%% intcalc-test1.tex, intcalc-test2.tex, intcalc-test3.tex, -%% intcalc-test4.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@intcalc.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{intcalc}{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@intcalc.sty\endcsname -\ProvidesPackage{intcalc}% - [2016/05/16 v1.2 Expandable calculations with integers (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname InCa@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\InCa@AtEnd{% - \InCa@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{11}% : (letter!) -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{63}{14}% ? (comment!) -\edef\InCa@AtEnd{\InCa@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname InCa@TestMode\endcsname\relax -\else - \catcode63=9 % ? (ignore) -\fi -? \let\InCa@@TestMode\InCa@TestMode -\def\InCa@Abs#1#2!{% - \ifx#1-% - #2% - \else - #1#2% - \fi -} -\def\InCa@Sgn#1#2!{% - \ifx#1-% - -1% - \else - \ifx#10% - 0% - \else - 1% - \fi - \fi -} -\def\InCa@Min#1!#2!{% - \ifnum#1<#2 % - #1% - \else - #2% - \fi -} -\def\InCa@Max#1!#2!{% - \ifnum#1>#2 % - #1% - \else - #2% - \fi -} -\def\InCa@Cmp#1!#2!{% - \ifnum#1=#2 % - 0% - \else - \ifnum#1<#2 % - -% - \fi - 1% - \fi -} -\def\InCa@Fac#1!{% - \ifcase#1 1% 0! - \or 1% 1! - \or 2% 2! - \or 6% 3! - \or 24% 4! - \or 120% 5! - \or 720% 6! - \or 5040% 7! - \or 40320% 8! - \or 362880% 9! - \or 3628800% 10! - \or 39916800% 11! - \or 479001600% 12! - \else - \ifnum#1<\z@ - 0\IntCalcError:FacNegative% - \else - 0\IntCalcError:FacOverflow% - \fi - \fi -} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname numexpr\endcsname\relax -\else - \def\intcalcNum#1{% - \the\numexpr#1\relax - }% - \def\intcalcInv#1{% - \number-\intcalcNum{#1} % - }% - \def\intcalcAbs#1{% - \number\expandafter\InCa@Abs\the\numexpr#1! % - }% - \def\intcalcSgn#1{% - \number\expandafter\InCa@Sgn\the\numexpr#1! % - }% - \def\intcalcMin#1#2{% - \number\expandafter\InCa@Min - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% - \def\intcalcMax#1#2{% - \number\expandafter\InCa@Max - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% - \def\intcalcCmp#1#2{% - \number\expandafter\InCa@Cmp - \the\numexpr#1\expandafter!\the\numexpr#2! % - }% - \def\intcalcInc#1{% - \the\numexpr#1+1\relax - }% - \def\intcalcDec#1{% - \the\numexpr#1-1\relax - }% - \def\IntCalcInc#1!{% - \the\numexpr#1+1\relax - }% - \def\IntCalcDec#1!{% - \the\numexpr#1-1\relax - }% - \def\intcalcAdd#1#2{% - \the\numexpr#1+(#2)\relax - }% - \def\intcalcSub#1#2{% - \the\numexpr#1-(#2)\relax - }% - \def\IntCalcAdd#1!#2!{% - \the\numexpr#1+#2\relax - }% - \def\IntCalcSub#1!#2!{% - \the\numexpr#1-#2\relax - }% - \def\intcalcShl#1{% - \the\numexpr(#1)*2\relax - }% - \def\intcalcShr#1{% - \number\expandafter\InCa@Shr\the\numexpr#1! % - }% - \def\IntCalcShl#1!{% - \the\numexpr#1*2\relax - }% - \def\IntCalcShr#1!{% - \the\numexpr\ifodd#1 (#1-1)\else#1\fi/2\relax - }% - \def\InCa@Shr#1#2!{% - \ifx#1-% - -\InCa@Shr#2!% - \else - \ifodd#1#2 % - \the\numexpr(#1#2-1)/2\relax - \else - \the\numexpr#1#2/2\relax - \fi - \fi - }% - \def\intcalcMul#1#2{% - \the\numexpr(#1)*(#2)\relax - }% - \def\IntCalcMul#1!#2!{% - \the\numexpr#1*#2\relax - }% - \def\intcalcSqr#1{% - \number\expandafter\InCa@Sqr\the\numexpr#1! % - }% - \def\InCa@Sqr#1!{% - \the\numexpr#1*#1\relax - }% - \def\intcalcFac#1{% - \number\expandafter\InCa@Fac\the\numexpr#1! % - }% - \def\intcalcPow#1#2{% - \number\expandafter\InCa@Pow - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% - \def\InCa@Pow#1#2!#3#4!{% - \ifcase#3#4 % power = 0 - 1% - \or % power = 1 - #1#2% - \or % power = 2 - \the\numexpr#1#2*#1#2\relax - \else - \ifcase#1#2 % basis = 0, power <> 0 - 0% - \ifx#3-% power < 0 - 0\IntCalcError:DivisionByZero% - \fi - \or - 1% basis = 1 - \else - \ifnum#1#2=\m@ne % basis = -1 - \ifodd#3#4 % - -% - \fi - 1% - \else % |basis| > 1 - \ifx#3-% power < 0 - 0% - \else % power > 2 - \InCa@PowRec#1#2!#3#4!1!% - \fi - \fi - \fi - \fi - }% - \def\InCa@PowRec#1!#2!#3!{% - \ifnum#2=\@ne - \the\numexpr#1*#3\relax - \else - \ifodd#2 % - \expandafter\InCa@PowRec - \the\numexpr#1*#1\expandafter!% - \the\numexpr(#2-1)/2\expandafter!% - \the\numexpr#1*#3\expandafter\expandafter\expandafter!% - \else - \expandafter\InCa@PowRec - \the\numexpr#1*#1\expandafter!% - \the\numexpr(#2-1)/2\expandafter!% - \number#3\expandafter\expandafter\expandafter!% - \fi - \fi - }% - \def\intcalcDiv#1#2{% - \number\expandafter\InCa@Div - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% - \def\InCa@Div#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase#1 % - 0% - \else - \expandafter\InCa@@Div - \romannumeral 0% - \ifnum#1<\z@ - \expandafter-\number-#1% - \else - \expandafter+\number#1% - \fi - \expandafter!% - \romannumeral 0% - \ifnum#2<\z@ - \expandafter-\number-#2% - \else - \expandafter+\number#2% - \fi - !% - \fi - \fi - }% - \def\InCa@Temp#1{% - \def\IntCalcDiv##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \the\numexpr(##1-(##2-1)/2)/##2\relax - \fi - \fi - #1% - }% - }% - \InCa@Temp{ }% - \def\InCa@@Div#1#2!#3#4!{% - #1#3% - \the\numexpr(#2-(#4-1)/2)/#4\relax - }% - \def\intcalcMod#1#2{% - \number\expandafter\InCa@Mod - \the\numexpr#1\expandafter!% - \the\numexpr#2! % - }% - \def\InCa@Mod#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase#1 % - 0% - \else - \expandafter\InCa@@Mod - \romannumeral 0% - \ifnum#1<\z@ - \expandafter-\number-#1% - \else - \expandafter+\number#1% - \fi - \expandafter!% - \romannumeral 0% - \ifnum#2<\z@ - \expandafter-\number-#2% - \else - \expandafter+\number#2% - \fi - !% - \fi - \fi - }% - \def\InCa@Temp#1{% - \def\IntCalcMod##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \the\numexpr##1-(##1-(##2-1)/2)/##2*##2\relax - \fi - \fi - #1% - }% - }% - \InCa@Temp{ }% - \def\InCa@@Mod#1#2!#3#4!{% - \if#3+% - \if#1+% - \the\numexpr#2-\InCa@@Div+#2!+#4!*#4\relax - \else - \expandafter\InCa@ModX - \the\numexpr-#2+\InCa@@Div+#2!+#4!*#4!#4!% - \fi - \else - -% - \if#1+% - \expandafter\InCa@ModX - \the\numexpr-#2+\InCa@@Div+#2!+#4!*#4!#4!% - \else - \the\numexpr#2-\InCa@@Div+#2!+#4!*#4\relax - \fi - \fi - }% - \def\InCa@ModX#1!#2!{% - \ifcase#1 % - 0% - \else - \the\numexpr#1+#2\relax - \fi - }% - \expandafter\InCa@AtEnd -\fi% -\def\intcalcNum#1{% - \number\expandafter\InCa@FirstOfOne\number#1! % -} -\def\intcalcInv#1{% - \number\expandafter\InCa@FirstOfOne\number-#1! % -} -\def\InCa@FirstOfOne#1!{#1} -\def\intcalcAbs#1{% - \number\expandafter\InCa@Abs\number#1! % -} -\def\intcalcSgn#1{% - \number\expandafter\InCa@Sgn\number#1! % -} -\def\intcalcMin#1#2{% - \number\expandafter\InCa@Min - \number\number#1\expandafter!\number#2! % -} -\def\intcalcMax#1#2{% - \number\expandafter\InCa@Max - \number\number#1\expandafter!\number#2! % -} -\def\intcalcCmp#1#2{% - \number\expandafter\InCa@Cmp - \number\number#1\expandafter!\number#2! % -}% -\def\intcalcInc#1{% - \number\expandafter\InCa@IncSwitch\number#1! % -} -\def\InCa@IncSwitch#1#2!{% - \ifx#1-% - -% - \csname InCa@Empty% - \InCa@Dec#2!% - \else - \csname InCa@Empty% - \InCa@Inc#1#2!% - \fi -} -\def\intcalcDec#1{% - \number\expandafter\InCa@DecSwitch\number#1! % -} -\def\InCa@DecSwitch#1#2!{% - \ifx#1-% - -% - \csname InCa@Empty% - \expandafter\InCa@Inc#2!% - \else - \ifx#10% - -1% - \else - \csname InCa@Empty% - \InCa@Dec#1#2!% - \fi - \fi -} -\def\IntCalcInc#1!{% - \number\csname InCa@Empty\InCa@Inc#1! % -} -\def\IntCalcDec#1!{% - \number\csname InCa@Empty\InCa@Dec#1! % -} -\def\InCa@Inc#1#2{% - \ifx#2!% - \csname InCa@IncDigit#1\endcsname1% - \else - \csname InCa@IncDigit#1% - \expandafter\InCa@Inc\expandafter#2% - \fi -} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@IncDigit#1\endcsname##1{% - \endcsname - 0% - \ifcase##1 % - #1% - \else - #2% - \fi - }% -} -\InCa@Temp 01 -\InCa@Temp 12 -\InCa@Temp 23 -\InCa@Temp 34 -\InCa@Temp 45 -\InCa@Temp 56 -\InCa@Temp 67 -\InCa@Temp 78 -\InCa@Temp 89 -\expandafter\def\csname InCa@IncDigit9\endcsname#1{% - \expandafter\endcsname - \ifcase#1 % - 09% - \else - 10% - \fi -} -\def\InCa@Dec#1#2{% - \ifx#2!% - \csname InCa@DecDigit#1\endcsname1% - \else - \csname InCa@DecDigit#1% - \expandafter\InCa@Dec\expandafter#2% - \fi -} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@DecDigit#1\endcsname##1{% - \endcsname - 0% - \ifcase##1 % - #1% - \else - #2% - \fi - }% -} -\InCa@Temp 98 -\InCa@Temp 87 -\InCa@Temp 76 -\InCa@Temp 65 -\InCa@Temp 54 -\InCa@Temp 43 -\InCa@Temp 32 -\InCa@Temp 21 -\InCa@Temp 10 -\expandafter\def\csname InCa@DecDigit0\endcsname#1{% - \expandafter\endcsname - \ifcase#1 % - 00% - \else - 19% - \fi -} -\def\intcalcAdd#1#2{% - \number - \expandafter\InCa@AddSwitch - \number\number#1\expandafter!% - \number#2! % -} -\def\intcalcSub#1#2{% - \number - \expandafter\InCa@AddSwitch - \number\number#1\expandafter!% - \number-\number#2! % -} -\def\InCa@AddSwitch#1!#2!{% - \ifnum#1<\z@ - \ifnum#2<\z@ - -% - \ifnum#1<#2 % - \expandafter\InCa@Add\number-#1\expandafter!% - \@gobble#2!% - \else - \expandafter\InCa@Add\number-#2\expandafter!% - \@gobble#1!% - \fi - \else - \ifnum-#1>#2 % - -% - \expandafter\InCa@Sub\@gobble#1!#2!% - \else - \expandafter\InCa@Sub\number#2\expandafter!% - \@gobble#1!% - \fi - \fi - \else - \ifnum#2<\z@ - \ifnum#1>-#2 % - \expandafter\InCa@Sub\number#1\expandafter!% - \@gobble#2!% - \else - -% - \expandafter\InCa@Sub\@gobble#2!#1!% - \fi - \else - \ifnum#1>#2 % - \InCa@Add#1!#2!% - \else - \InCa@Add#2!#1!% - \fi - \fi - \fi -} -\def\IntCalcAdd#1!#2!{% - \number\InCa@Add#1!#2! % -} -\def\IntCalcSub#1!#2!{% - \number\InCa@Sub#1!#2! % -} -\begingroup - \def\x#1{\endgroup - \let\InCa@Space= #1% - }% -\x{ } -\def\InCa@Add#1!#2!{% - \ifcase#2 % - #1% - \else - \InCa@@Add#1!#2!000000000\InCa@Space - \fi -} -\def\InCa@Sub#1!#2!{% - \ifnum#1=#2 % - 0% - \else - \InCa@@Sub#1!#2!000000000\InCa@Space - \fi -} -\def\InCa@@Add#1!#2#3!{% - \ifx\InCa@Empty#3\InCa@Empty - \@ReturnAfterElseFi{% - \InCa@@@Add!!#1!#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@Add#1!#3!#2% - }% - \fi -} -\def\InCa@@Sub#1!#2#3!{% - \ifx\InCa@Empty#3\InCa@Empty - \@ReturnAfterElseFi{% - \InCa@@@Sub!!#1!#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@Sub#1!#3!#2% - }% - \fi -} -\def\InCa@@@Add#1!#2!#3#4!#5{% - \ifx\InCa@Empty#4\InCa@Empty - \csname InCa@Empty% - \@ReturnAfterElseFi{% - \InCa@ProcessAdd#1#3!#5#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@@Add#1#3!#5#2!#4!% - }% - \fi -} -\def\InCa@@@Sub#1!#2!#3#4!#5{% - \ifx\InCa@Empty#4\InCa@Empty - \csname @gobble% - \@ReturnAfterElseFi{% - \InCa@ProcessSub#1#3!#5#2% - }% - \else - \@ReturnAfterFi{% - \InCa@@@Sub#1#3!#5#2!#4!% - }% - \fi -} -\def\InCa@ProcessAdd#1#2!#3#4{% - \ifx\InCa@Empty#2\InCa@Empty - \csname InCa@AddDigit#1\endcsname#3% - \romannumeral0#4% - \else - \csname InCa@AddDigit#1\csname InCa@DigitCarry#3% - \@ReturnAfterFi{% - \InCa@ProcessAdd#2!#4% - }% - \fi -} -\def\InCa@ProcessSub#1#2!#3#4{% - \ifx\InCa@Empty#2\InCa@Empty - \csname InCa@SubDigit#1\endcsname#3% - \romannumeral0#4% - \else - \csname InCa@SubDigit#1\csname InCa@DigitCarry#3% - \@ReturnAfterFi{% - \InCa@ProcessSub#2!#4% - }% - \fi -} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@DigitCarry#1\endcsname##1{% - \ifcase##1 % - \endcsname#1% - \else - \endcsname#2% - \fi - }% -} -\InCa@Temp 01 -\InCa@Temp 12 -\InCa@Temp 23 -\InCa@Temp 34 -\InCa@Temp 45 -\InCa@Temp 56 -\InCa@Temp 67 -\InCa@Temp 78 -\InCa@Temp 89 -\InCa@Temp 9{{10}} -\expandafter\def\csname InCa@AddDigit0\endcsname#1{% - \ifnum#1>9 % - \endcsname10% - \else - \endcsname0#1% - \fi -} -\def\InCa@Temp#1#2#3{% - \expandafter\def\csname InCa@AddDigit#1\endcsname##1{% - \ifnum##1>#2 % - \endcsname 1% - \else - \endcsname 0% - \fi - \ifcase##1 #1% 0 - #3% - \else #1% 10 - \fi - }% -} -\InCa@Temp 18{% - \or 2% 1 - \or 3% 2 - \or 4% 3 - \or 5% 4 - \or 6% 5 - \or 7% 6 - \or 8% 7 - \or 9% 8 - \or 0% 9 -}% -\InCa@Temp 27{% - \or 3% 1 - \or 4% 2 - \or 5% 3 - \or 6% 4 - \or 7% 5 - \or 8% 6 - \or 9% 7 - \or 0% 8 - \or 1% 9 -}% -\InCa@Temp 36{% - \or 4% 1 - \or 5% 2 - \or 6% 3 - \or 7% 4 - \or 8% 5 - \or 9% 6 - \or 0% 7 - \or 1% 8 - \or 2% 9 -}% -\InCa@Temp 45{% - \or 5% 1 - \or 6% 2 - \or 7% 3 - \or 8% 4 - \or 9% 5 - \or 0% 6 - \or 1% 7 - \or 2% 8 - \or 3% 9 -}% -\InCa@Temp 54{% - \or 6% 1 - \or 7% 2 - \or 8% 3 - \or 9% 4 - \or 0% 5 - \or 1% 6 - \or 2% 7 - \or 3% 8 - \or 4% 9 -}% -\InCa@Temp 63{% - \or 7% 1 - \or 8% 2 - \or 9% 3 - \or 0% 4 - \or 1% 5 - \or 2% 6 - \or 3% 7 - \or 4% 8 - \or 5% 9 -}% -\InCa@Temp 72{% - \or 8% 1 - \or 9% 2 - \or 0% 3 - \or 1% 4 - \or 2% 5 - \or 3% 6 - \or 4% 7 - \or 5% 8 - \or 6% 9 -}% -\InCa@Temp 81{% - \or 9% 1 - \or 0% 2 - \or 1% 3 - \or 2% 4 - \or 3% 5 - \or 4% 6 - \or 5% 7 - \or 6% 8 - \or 7% 9 -}% -\InCa@Temp 90{% - \or 0% 1 - \or 1% 2 - \or 2% 3 - \or 3% 4 - \or 4% 5 - \or 5% 6 - \or 6% 7 - \or 7% 8 - \or 8% 9 -}% -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@SubDigit#1\endcsname##1{% - \ifnum##1>#1 % - \endcsname 1% - \else - \endcsname 0% - \fi - \ifcase##1 #1% 0 - #2% - \else #1% 10 - \fi - }% -} -\InCa@Temp 0{% - \or 9% 1 - \or 8% 2 - \or 7% 3 - \or 6% 4 - \or 5% 5 - \or 4% 6 - \or 3% 7 - \or 2% 8 - \or 1% 9 -} -\InCa@Temp 1{% - \or 0% 1 - \or 9% 2 - \or 8% 3 - \or 7% 4 - \or 6% 5 - \or 5% 6 - \or 4% 7 - \or 3% 8 - \or 2% 9 -} -\InCa@Temp 2{% - \or 1% 1 - \or 0% 2 - \or 9% 3 - \or 8% 4 - \or 7% 5 - \or 6% 6 - \or 5% 7 - \or 4% 8 - \or 3% 9 -} -\InCa@Temp 3{% - \or 2% 1 - \or 1% 2 - \or 0% 3 - \or 9% 4 - \or 8% 5 - \or 7% 6 - \or 6% 7 - \or 5% 8 - \or 4% 9 -} -\InCa@Temp 4{% - \or 3% 1 - \or 2% 2 - \or 1% 3 - \or 0% 4 - \or 9% 5 - \or 8% 6 - \or 7% 7 - \or 6% 8 - \or 5% 9 -} -\InCa@Temp 5{% - \or 4% 1 - \or 3% 2 - \or 2% 3 - \or 1% 4 - \or 0% 5 - \or 9% 6 - \or 8% 7 - \or 7% 8 - \or 6% 9 -} -\InCa@Temp 6{% - \or 5% 1 - \or 4% 2 - \or 3% 3 - \or 2% 4 - \or 1% 5 - \or 0% 6 - \or 9% 7 - \or 8% 8 - \or 7% 9 -} -\InCa@Temp 7{% - \or 6% 1 - \or 5% 2 - \or 4% 3 - \or 3% 4 - \or 2% 5 - \or 1% 6 - \or 0% 7 - \or 9% 8 - \or 8% 9 -} -\InCa@Temp 8{% - \or 7% 1 - \or 6% 2 - \or 5% 3 - \or 4% 4 - \or 3% 5 - \or 2% 6 - \or 1% 7 - \or 0% 8 - \or 9% 9 -} -\InCa@Temp 9{% - \or 8% 1 - \or 7% 2 - \or 6% 3 - \or 5% 4 - \or 4% 5 - \or 3% 6 - \or 2% 7 - \or 1% 8 - \or 0% 9 -} -\def\intcalcShl#1{% - \number\expandafter\InCa@ShlSwitch\number#1! % -} -\def\InCa@ShlSwitch#1#2!{% - \ifx#1-% - -\csname InCa@Empty% - \InCa@Shl#2!% - \else - \csname InCa@Empty% - \InCa@Shl#1#2!% - \fi -} -\def\IntCalcShl#1!{% - \number - \csname InCa@Empty% - \InCa@Shl#1! % -} -\def\InCa@Shl#1#2{% - \ifx#2!% - \csname InCa@ShlDigit#1\endcsname0% - \else - \csname InCa@ShlDigit#1% - \@ReturnAfterFi{% - \InCa@Shl#2% - }% - \fi -} -\expandafter\def\csname InCa@ShlDigit0\endcsname{% - \endcsname0% -} -\def\InCa@Temp#1#2#3#4#5{% - \expandafter\def\csname InCa@ShlDigit#1\endcsname##1{% - \expandafter\endcsname - \ifcase##1 % - #2#3% - \else - #4#5% - \fi - }% -} -\InCa@Temp 10203 -\InCa@Temp 20405 -\InCa@Temp 30607 -\InCa@Temp 40809 -\InCa@Temp 51011 -\InCa@Temp 61213 -\InCa@Temp 71415 -\InCa@Temp 81617 -\InCa@Temp 91819 -\def\intcalcShr#1{% - \number\expandafter\InCa@ShrSwitch\number#1! % -} -\def\InCa@ShrSwitch#1#2!{% - \ifx#1-% - -\InCa@Shr#2!% - \else - \InCa@Shr#1#2!% - \fi -} -\def\IntCalcShr#1!{% - \number\InCa@Shr#1! % -} -\def\InCa@Shr#1#2{% - \InCa@ShrDigit#1!% - \ifx#2!% - \else - \@ReturnAfterFi{% - \ifodd#1 % - \@ReturnAfterElseFi{% - \InCa@Shr{1#2}% - }% - \else - \expandafter\InCa@Shr\expandafter#2% - \fi - }% - \fi -} -\def\InCa@ShrDigit#1!{% - \ifcase#1 0% 0 - \or 0% 1 - \or 1% 2 - \or 1% 3 - \or 2% 4 - \or 2% 5 - \or 3% 6 - \or 3% 7 - \or 4% 8 - \or 4% 9 - \or 5% 10 - \or 5% 11 - \or 6% 12 - \or 6% 13 - \or 7% 14 - \or 7% 15 - \or 8% 16 - \or 8% 17 - \or 9% 18 - \or 9% 19 - \fi -} -\def\InCa@Temp#1{% - \def\InCa@Tim##1##2{% - \number - \ifcase##2 % 0 - 0% - \or % 1 - ##1% - \else % 2-9 - \csname InCa@Empty% - \InCa@ProcessTim##2##1!% - \fi - #1% - }% -} -\InCa@Temp{ } -\def\InCa@ProcessTim#1#2#3{% - \ifx#3!% - \csname InCa@TimDigit#2\endcsname#10% - \else - \csname InCa@TimDigit#2\csname InCa@Param#1% - \@ReturnAfterFi{% - \InCa@ProcessTim#1#3% - }% - \fi -} -\def\InCa@Temp#1{% - \expandafter\def\csname InCa@Param#1\endcsname{% - \endcsname#1% - }% -} -\InCa@Temp 0% -\InCa@Temp 1% -\InCa@Temp 2% -\InCa@Temp 3% -\InCa@Temp 4% -\InCa@Temp 5% -\InCa@Temp 6% -\InCa@Temp 7% -\InCa@Temp 8% -\InCa@Temp 9% -\expandafter\def\csname InCa@TimDigit0\endcsname#1#2{% - \endcsname - 0#2% -} -\expandafter\def\csname InCa@TimDigit1\endcsname#1#2{% - \ifcase#2 % - \endcsname 0#1% - \else - \csname InCa@AddDigit#1\endcsname #2% - \fi -} -\def\InCa@Temp#1#2{% - \expandafter\def\csname InCa@TimDigit#1\endcsname##1{% - \expandafter\InCa@TimDigitCarry - \number - \ifcase##1 0% 0 - #2% - \fi - !% - }% -} -\InCa@Temp 2{% - \or 2% 1 - \or 4% 2 - \or 6% 3 - \or 8% 4 - \or 10% 5 - \or 12% 6 - \or 14% 7 - \or 16% 8 - \or 18% 9 -} -\InCa@Temp 3{% - \or 3% 1 - \or 6% 2 - \or 9% 3 - \or 12% 4 - \or 15% 5 - \or 18% 6 - \or 21% 7 - \or 24% 8 - \or 27% 9 -} -\InCa@Temp 4{% - \or 4% 1 - \or 8% 2 - \or 12% 3 - \or 16% 4 - \or 20% 5 - \or 24% 6 - \or 28% 7 - \or 32% 8 - \or 36% 9 -} -\InCa@Temp 5{% - \or 5% 1 - \or 10% 2 - \or 15% 3 - \or 20% 4 - \or 25% 5 - \or 30% 6 - \or 35% 7 - \or 40% 8 - \or 45% 9 -} -\InCa@Temp 6{% - \or 6% 1 - \or 12% 2 - \or 18% 3 - \or 24% 4 - \or 30% 5 - \or 36% 6 - \or 42% 7 - \or 48% 8 - \or 54% 9 -} -\InCa@Temp 7{% - \or 7% 1 - \or 14% 2 - \or 21% 3 - \or 28% 4 - \or 35% 5 - \or 42% 6 - \or 49% 7 - \or 56% 8 - \or 63% 9 -} -\InCa@Temp 8{% - \or 8% 1 - \or 16% 2 - \or 24% 3 - \or 32% 4 - \or 40% 5 - \or 48% 6 - \or 56% 7 - \or 64% 8 - \or 72% 9 -} -\InCa@Temp 9{% - \or 9% 1 - \or 18% 2 - \or 27% 3 - \or 36% 4 - \or 45% 5 - \or 54% 6 - \or 63% 7 - \or 72% 8 - \or 81% 9 -} -\def\InCa@TimDigitCarry#1!{% - \ifnum#1<10 % - \csname InCa@AddDigit#1\expandafter\endcsname - \else - \@ReturnAfterFi{% - \InCa@@TimDigitCarry#1!% - }% - \fi -} -\def\InCa@@TimDigitCarry#1#2!#3{% - \csname InCa@DigitCarry#1% - \csname InCa@AddDigit#2\endcsname #3% -} -\def\intcalcMul#1#2{% - \number - \expandafter\InCa@MulSwitch - \number\number#1\expandafter!% - \number#2! % -} -\def\InCa@MulSwitch#1!#2!{% - \ifnum#1<\z@ - \ifnum#2<\z@ - \ifnum#1<#2 % - \expandafter\InCa@Mul\number-#1\expandafter!% - \@gobble#2!% - \else - \expandafter\InCa@Mul\number-#2\expandafter!% - \@gobble#1!% - \fi - \else - -% - \ifnum-#1>#2 % - \expandafter\InCa@Mul\@gobble#1!#2!% - \else - \expandafter\InCa@Mul\number#2\expandafter!% - \@gobble#1!% - \fi - \fi - \else - \ifnum#2<\z@ - -% - \ifnum#1>-#2 % - \expandafter\InCa@Mul\number#1\expandafter!% - \@gobble#2!% - \else - \expandafter\InCa@Mul\@gobble#2!#1!% - \fi - \else - \ifnum#1>#2 % - \InCa@Mul#1!#2!% - \else - \InCa@Mul#2!#1!% - \fi - \fi - \fi -} -\def\IntCalcMul#1!#2!{% - \number\InCa@Mul#1!#2! % -} -\def\InCa@Mul#1!#2!{% - \ifcase#2 % - 0% - \or - #1% - \or - \csname InCa@Empty% - \expandafter\InCa@Shl#1!% - \else - \ifnum#2<10 % - \InCa@Tim{#1}#2% - \else - \InCa@ProcessMul!#2!#1!% - \fi - \fi -} -\def\InCa@ProcessMul#1!#2#3!#4!{% - \ifx\InCa@Empty#3\InCa@Empty - \expandafter\InCa@Add\number - #10\expandafter\expandafter\expandafter!% - \InCa@Tim{#4}#2!% - \else - \ifx\InCa@Empty#1\InCa@Empty - \expandafter\expandafter\expandafter\InCa@ProcessMul - \InCa@Tim{#4}#2!% - #3!#4!% - \else - \expandafter\InCa@ProcessMul\number - \expandafter\InCa@Add\number% - #10\expandafter\expandafter\expandafter!% - \InCa@Tim{#4}#2!!% - #3!#4!% - \fi - \fi -} -\def\intcalcSqr#1{% - \number\expandafter\InCa@Sqr\number#1! % -} -\def\InCa@Sqr#1#2!{% - \ifx#1-% - \InCa@Mul#2!#2!% - \else - \InCa@Mul#1#2!#1#2!% - \fi -} -\def\intcalcFac#1{% - \number\expandafter\InCa@Fac\number#1! % -} -\def\intcalcPow#1#2{% - \number\expandafter\InCa@Pow - \number\number#1\expandafter!% - \number#2! % -} -\def\InCa@Pow#1#2!#3#4!{% - \ifcase#3#4 % power = 0 - 1% - \or % power = 1 - #1#2% - \or % power = 2 - \ifx#1-% - \InCa@Mul#2!#2!% - \else - \InCa@Mul#1#2!#1#2!% - \fi - \else - \ifcase#1#2 % basis = 0, power <> 0 - 0% - \ifx#3-% power < 0 - 0\IntCalcError:DivisionByZero% - \fi - \or - 1% basis = 1 - \else - \ifnum#1#2=\m@ne % basis = -1 - \ifodd#3#4 % - -% - \fi - 1% - \else % |basis| > 1 - \ifx#3-% power < 0 - 0% - \else % power > 2 - \ifx#1-% basis < 0 - \ifodd#3#4 % - -% - \fi - \InCa@PowRec#2!#3#4!1!% - \else - \InCa@PowRec#1#2!#3#4!1!% - \fi - \fi - \fi - \fi - \fi -} -\def\InCa@PowRec#1!#2!#3!{% - \ifnum#2=\@ne - \ifnum#1>#3 % - \InCa@Mul#1!#3!% - \else - \InCa@Mul#3!#1!% - \fi - \else - \expandafter\InCa@PowRec - \number\InCa@Mul#1!#1!\expandafter!% - \number\intcalcShr{#2}\expandafter!% - \number - \ifodd#2 % - \ifnum#1>#3 % - \InCa@Mul#1!#3!% - \else - \InCa@Mul#3!#1!% - \fi - \else - #3% - \fi - \expandafter!% - \fi -} -\def\intcalcDiv#1#2{% - \number\expandafter\InCa@Div - \number\number#1\expandafter!% - \number#2! % -} -\def\InCa@Div#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase#1 % - 0% - \else - \expandafter\InCa@DivSwitch - \number#1\expandafter!% - \number#2!% - \fi - \fi -} -\def\InCa@Temp#1{% - \def\IntCalcDiv##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \InCa@@Div##1!##2!% - \fi - \fi - #1% - }% -} -\InCa@Temp{ }% -\def\InCa@DivSwitch#1!#2!{% - \ifnum#1<\z@ - \ifnum#2<\z@ - \expandafter\InCa@@Div\number-#1\expandafter!% - \@gobble#2!% - \else - -% - \expandafter\InCa@@Div\@gobble#1!#2!% - \fi - \else - \ifnum#2<\z@ - -% - \expandafter\InCa@@Div\number#1\expandafter!% - \@gobble#2!% - \else - \InCa@@Div#1!#2!% - \fi - \fi -} -\def\InCa@@Div#1!#2!{% - \ifnum#1>#2 % - \ifcase#2 % 0 already catched -? \IntCalcError:ThisCannotHappen% - \or % 1 - #1% - \or % 2 - \InCa@Shr#1!% - \else - \InCa@DivStart!#1!#2!#2!% - \fi - \else - \ifnum#1=#2 % - 1% - \else - 0% - \fi - \fi -} -\def\InCa@DivStart#1!#2#3!#4#5{% - \ifx#5!% - \@ReturnAfterElseFi{% - \InCa@DivStartI{#1#2}#3=!% - }% - \else - \@ReturnAfterFi{% - \InCa@DivStart{#1#2}!#3!#5% - }% - \fi -} -\def\InCa@DivStartI#1!#2!{% - \expandafter\InCa@DivStartII - \number#2\expandafter\expandafter\expandafter!% - \intcalcShl{#2}!% - #1!% -} -\def\InCa@DivStartII#1!#2!{% - \expandafter\InCa@DivStartIII - \number#1\expandafter!% - \number#2\expandafter\expandafter\expandafter!% - \intcalcShl{#2}!% -} -\def\InCa@DivStartIII#1!#2!#3!{% - \expandafter\InCa@DivStartIV - \number#1\expandafter!% - \number#2\expandafter!% - \number#3\expandafter!% - \number\InCa@Add#3!#2!\expandafter\expandafter\expandafter!% - \intcalcShl{#3}!% -} -\def\InCa@DivStartIV#1!#2!#3!#4!#5!#6!{% - \InCa@ProcessDiv#6!#1!#2!#3!#4!#5!/% -} -\def\InCa@ProcessDiv#1#2#3!#4!#5!#6!#7!#8!#9/{% - #9% - \ifnum#1<#4 % 0 - 0% - \ifx#2=% - \else - \InCa@ProcessDiv{#1#2}#3!#4!#5!#6!#7!#8!% - \fi - \else % 1-9 - \ifnum#1<#5 % 1 - 1% - \ifx#2=% - \else - \expandafter\InCa@ProcessDiv\expandafter{% - \number\InCa@Sub#1!#4!% - #2% - }#3!#4!#5!#6!#7!#8!% - \fi - \else % 2-9 - \ifnum#1<#7 % 2 3 4 5 - \ifnum#1<#6 % 2 3 - \@ReturnAfterElseFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#5!!% - 23% - }% - \else % 4 5 - \@ReturnAfterFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#6!!% - 45% - }% - \fi - #2#3!#4!#5!#6!#7!#8!% - \else % 6 7 8 9 - \ifnum#1<#8 % 6 7 - \@ReturnAfterElseFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#7!!% - 67% - }% - \else % 8 9 - \@ReturnAfterFi{% - \expandafter\InCa@@ProcessDiv - \number\InCa@Sub#1!#8!!% - 89% - }% - \fi - #2#3!#4!#5!#6!#7!#8!% - \fi - \fi - \fi - \ifx#2=% - \expandafter\@gobble - \fi - /% -} -\def\InCa@@ProcessDiv#1!#2#3#4#5!#6!{% - \ifnum#1<#6 % - #2% - \@ReturnAfterElseFi{% - \ifx#4=% - \expandafter\InCa@CleanupIV - \else - \@ReturnAfterFi{% - \InCa@ProcessDiv{#1#4}#5!#6!% - }% - \fi - }% - \else - #3% - \@ReturnAfterFi{% - \ifx#4=% - \expandafter\InCa@CleanupIV - \else - \@ReturnAfterFi{% - \expandafter\InCa@ProcessDiv\expandafter{% - \number\InCa@Sub#1!#6! % - #4% - }#5!#6!% - }% - \fi - }% - \fi -} -\def\InCa@CleanupIV#1!#2!#3!#4!{} -\def\intcalcMod#1#2{% - \number\expandafter\InCa@Mod - \number\number#1\expandafter!% - \number#2! % -} -\def\InCa@Mod#1!#2!{% - \ifcase#2 % - 0\IntCalcError:DivisionByZero% - \else - \ifnum#2<\z@ - -% - \expandafter\InCa@Mod - \number-#1\expandafter!% - \number-#2!% - \else - \ifcase#1 % - 0% - \else - \ifcase#2 % 0 already catched -? \IntCalcError:ThisCannotHappen% - \or % 1 - 0% - \or % 2 - \ifodd#1 1\else 0\fi - \else - \ifnum#1<\z@ - \expandafter\InCa@ModShift - \number-% - \expandafter\InCa@Sub - \number\@gobble#1\expandafter!% - \number\intcalcMul{#2}{% - \expandafter\InCa@Div\@gobble#1!#2!% - }!% - !#2!% - \else - \expandafter\InCa@Sub\number#1\expandafter!% - \number\intcalcMul{#2}{\InCa@Div#1!#2!}!% - \fi - \fi - \fi - \fi - \fi -} -\def\InCa@Temp#1{% - \def\IntCalcMod##1!##2!{% - \number - \ifcase##2 % - 0\IntCalcError:DivisionByZero% - \else - \ifcase##1 % - 0% - \else - \ifcase##2 % 0 already catched -? \IntCalcError:ThisCannotHappen - \or % 1 - 0% - \or % 2 - \ifodd ##1 1\else 0\fi - \else - \expandafter\InCa@Sub\number##1\expandafter!% - \number\intcalcMul{##2}{\InCa@Div##1!##2!}!% - \fi - \fi - \fi - #1% - }% -} -\InCa@Temp{ }% -\def\InCa@ModShift#1!#2!{% - \ifnum#1<\z@ - \expandafter\InCa@Sub\number#2\expandafter!% - \@gobble#1!% - \else - #1% - \fi -} -\def\InCa@Empty{} -\expandafter\ifx\csname @gobble\endcsname\relax - \long\def\@gobble#1{}% -\fi -\long\def\@ReturnAfterFi#1\fi{\fi#1}% -\long\def\@ReturnAfterElseFi#1\else#2\fi{\fi#1}% -\InCa@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `intcalc.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty b/Master/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty deleted file mode 100644 index 271d1009445..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +++ /dev/null @@ -1,196 +0,0 @@ -%% -%% This is file `kvdefinekeys.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% kvdefinekeys.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: kvdefinekeys -%% Version: 2016/05/16 v1.4 -%% -%% Copyright (C) -%% 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/oberdiek/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 kvdefinekeys.dtx -%% and the derived files -%% kvdefinekeys.sty, kvdefinekeys.pdf, kvdefinekeys.ins, kvdefinekeys.drv, -%% kvdefinekeys-test1.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@kvdefinekeys.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{kvdefinekeys}{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@kvdefinekeys.sty\endcsname -\ProvidesPackage{kvdefinekeys}% - [2016/05/16 v1.4 Define keys (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname KVD@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\KVD@AtEnd{% - \KVD@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\edef\KVD@AtEnd{\KVD@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{ltxcmds}[2010/03/01]% -\else - \RequirePackage{ltxcmds}[2010/03/01]% -\fi -\ltx@IfUndefined{protected}{% - \ltx@IfUndefined{DeclareRobustCommand}{% - \def\kv@define@key#1#2% - }{% - \DeclareRobustCommand*{\kv@define@key}[2]% - }% -}{% - \protected\def\kv@define@key#1#2% -}% -{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \edef\KVD@temp{\endgroup - \noexpand\KVD@DefineKey{#1}{#2}% - }% - \KVD@temp -} -\def\KVD@DefineKey#1#2{% - \ltx@ifnextchar[{% - \KVD@DefineKeyWithDefault{#1}{#2}% - }{% - \long\expandafter\def\csname KV@#1@#2\endcsname##1% - }% -} -\long\def\KVD@DefineKeyWithDefault#1#2[#3]{% - \expandafter\def\csname KV@#1@#2@default\expandafter\endcsname - \expandafter{% - \csname KV@#1@#2\endcsname{#3}% - }% - \long\expandafter\def\csname KV@#1@#2\endcsname##1% -} -\KVD@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `kvdefinekeys.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty b/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty deleted file mode 100644 index 8a7696ea07f..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +++ /dev/null @@ -1,584 +0,0 @@ -%% -%% This is file `kvsetkeys.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% kvsetkeys.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: kvsetkeys -%% Version: 2016/05/16 v1.17 -%% -%% Copyright (C) -%% 2006, 2007, 2009-2012 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/oberdiek/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 kvsetkeys.dtx -%% and the derived files -%% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv, -%% kvsetkeys-example.tex, kvsetkeys-test1.tex, -%% kvsetkeys-test2.tex, kvsetkeys-test3.tex, -%% kvsetkeys-test4.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@kvsetkeys.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{kvsetkeys}{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@kvsetkeys.sty\endcsname -\ProvidesPackage{kvsetkeys}% - [2016/05/16 v1.17 Key value parser (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname KVS@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\KVS@AtEnd{% - \KVS@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{36}{3}% $ -\TMP@EnsureCode{38}{4}% & -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{94}{7}% ^ (superscript) -\TMP@EnsureCode{96}{12}% ` -\TMP@EnsureCode{126}{13}% ~ (active) -\edef\KVS@AtEnd{\KVS@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{infwarerr}[2007/09/09]% - \TMP@RequirePackage{etexcmds}[2010/01/28]% -\else - \RequirePackage{infwarerr}[2007/09/09]% - \RequirePackage{etexcmds}[2010/01/28]% -\fi -\expandafter\ifx\csname toks@\endcsname\relax - \toksdef\toks@=0 % -\fi -\begingroup\expandafter\endgroup -\ifcase0\ifetex@unexpanded - \expandafter\ifx\csname ifcsname\endcsname\relax - \else - \expandafter\ifx\csname unless\endcsname\relax - \else - 1% - \fi - \fi - \fi - \catcode`\$=9 % ignore - \catcode`\&=14 % comment -\else % e-TeX - \catcode`\$=14 % comment - \catcode`\&=9 % ignore -\fi -\def\KVS@Empty{} -\long\def\KVS@FirstOfTwo#1#2{#1} -\long\def\KVS@SecondOfTwo#1#2{#2} -\long\def\KVS@IfEmpty#1{% -& \edef\KVS@Temp{\etex@unexpanded{#1}}% -$ \begingroup -$ \toks@{#1}% -$ \edef\KVS@Temp{\the\toks@}% -$ \expandafter\endgroup - \ifx\KVS@Temp\KVS@Empty - \expandafter\KVS@FirstOfTwo - \else - \expandafter\KVS@SecondOfTwo - \fi -} -\long\def\kv@normalize#1{% - \begingroup - \toks@{,#1,}% - \KVS@Comma - \KVS@SpaceComma - \KVS@CommaSpace - \KVS@CommaComma - \KVS@Equals - \KVS@SpaceEquals - \KVS@EqualsSpace - \xdef\KVS@Global{\the\toks@}% - \endgroup - \let\kv@list\KVS@Global -} -\def\comma@normalize#1{% - \begingroup - \toks@{,#1,}% - \KVS@Comma - \KVS@SpaceComma - \KVS@CommaSpace - \KVS@CommaComma - \xdef\KVS@Global{\the\toks@}% - \endgroup - \let\comma@list\KVS@Global -} -\begingroup - \lccode`\,=`\,% - \lccode`\~=`\,% -\lowercase{\endgroup - \def\KVS@Comma{% - \toks@\expandafter{\expandafter}\expandafter - \KVS@@Comma\the\toks@~\KVS@Nil - }% - \long\def\KVS@@Comma#1~#2\KVS@Nil{% - \toks@\expandafter{\the\toks@#1}% - \KVS@IfEmpty{#2}{% - }{% - \KVS@@Comma,#2\KVS@Nil - }% - }% -} -\def\KVS@SpaceComma#1{% - \def\KVS@SpaceComma{% - \expandafter\KVS@@SpaceComma\the\toks@#1,\KVS@Nil - }% -} -\KVS@SpaceComma{ } -\long\def\KVS@@SpaceComma#1 ,#2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@SpaceComma#1,#2\KVS@Nil - }% -} -\def\KVS@CommaSpace{% - \expandafter\KVS@@CommaSpace\the\toks@, \KVS@Nil -} -\long\def\KVS@@CommaSpace#1, #2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@CommaSpace#1,#2\KVS@Nil - }% -} -\def\KVS@CommaComma{% - \expandafter\KVS@@CommaComma\the\toks@,\KVS@Nil -} -\long\def\KVS@@CommaComma#1,,#2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1,}% (!) - }{% - \KVS@@CommaComma#1,#2\KVS@Nil - }% -} -\begingroup - \lccode`\==`\=% - \lccode`\~=`\=% -\lowercase{\endgroup - \def\KVS@Equals{% - \toks@\expandafter{\expandafter}\expandafter - \KVS@@Equals\the\toks@~\KVS@Nil - }% - \long\def\KVS@@Equals#1~#2\KVS@Nil{% - \edef\KVS@Temp{\the\toks@}% - \ifx\KVS@Temp\KVS@Empty - \expandafter\KVS@FirstOfTwo - \else - \expandafter\KVS@SecondOfTwo - \fi - {% - \toks@{#1}% - }{% - \toks@\expandafter{\the\toks@=#1}% - }% - \KVS@IfEmpty{#2}{% - }{% - \KVS@@Equals#2\KVS@Nil - }% - }% -} -\def\KVS@SpaceEquals#1{% - \def\KVS@SpaceEquals{% - \expandafter\KVS@@SpaceEquals\the\toks@#1=\KVS@Nil - }% -} -\KVS@SpaceEquals{ } -\long\def\KVS@@SpaceEquals#1 =#2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@SpaceEquals#1=#2\KVS@Nil - }% -} -\def\KVS@EqualsSpace{% - \expandafter\KVS@@EqualsSpace\the\toks@= \KVS@Nil -} -\long\def\KVS@@EqualsSpace#1= #2\KVS@Nil{% - \KVS@IfEmpty{#2}{% - \toks@{#1}% - }{% - \KVS@@EqualsSpace#1=#2\KVS@Nil - }% -} -\long\def\kv@parse#1{% - \kv@normalize{#1}% - \expandafter\kv@parse@normalized\expandafter{\kv@list}% -} -\long\def\kv@parse@normalized#1#2{% - \KVS@Parse#1,\KVS@Nil{#2}% -} -\long\def\KVS@Parse#1,#2\KVS@Nil#3{% - \KVS@IfEmpty{#1}{% - }{% - \KVS@Process#1=\KVS@Nil{#3}% - }% - \KVS@MaybeBreak - \KVS@IfEmpty{#2}{% - }{% - \KVS@Parse#2\KVS@Nil{#3}% - }% -} -\long\def\KVS@Process#1=#2\KVS@Nil#3{% - \let\KVS@MaybeBreak\relax - \def\kv@key{#1}% - \KVS@IfEmpty{#2}{% - \let\kv@value\relax - #3{#1}{}% - }{% - \KVS@@Process{#1}#2\KVS@Nil{#3}% - }% -} -\long\def\KVS@@Process#1#2=\KVS@Nil#3{% -& \edef\kv@value{\etex@unexpanded{#2}}% -$ \begingroup -$ \toks@{#2}% -$ \xdef\KVS@Global{\the\toks@}% -$ \endgroup -$ \let\kv@value\KVS@Global - #3{#1}{#2}% -} -\let\KVS@MaybeBreak\relax -\def\KVS@break#1#2#3#4{% - \let\KVS@MaybeBreak\relax -} -\def\kv@break{% - \let\KVS@MaybeBreak\KVS@break -} -\def\comma@parse#1{% - \comma@normalize{#1}% - \expandafter\comma@parse@normalized\expandafter{\comma@list}% -} -\def\comma@parse@normalized#1#2{% - \KVS@CommaParse#1,\KVS@Nil{#2}% -} -\def\KVS@CommaParse#1,#2\KVS@Nil#3{% - \KVS@IfEmpty{#1}{% - }{% - \def\comma@entry{#1}% - #3{#1}% - }% - \KVS@MaybeBreak - \KVS@IfEmpty{#2}{% - }{% - \KVS@CommaParse#2\KVS@Nil{#3}% - }% -} -\def\comma@break{% - \let\KVS@MaybeBreak\KVS@break -} -\def\kv@handled@false{% - \let\ifkv@handled@\iffalse -} -\def\kv@handled@true{% - \let\ifkv@handled@\iftrue -} -\kv@handled@true -\def\kv@processor@default#1#2{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \edef\KVS@temp{\endgroup - \noexpand\KVS@ProcessorDefault{#1}{#2}% - }% - \KVS@temp -} -\long\def\KVS@ProcessorDefault#1#2#3{% - \def\kv@fam{#1}% -& \unless\ifcsname KV@#1@#2\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#2\endcsname\relax -& \unless\ifcsname KVS@#1@handler\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KVS@#1@handler\endcsname\relax - \kv@error@unknownkey{#1}{#2}% - \else - \kv@handled@true - \csname KVS@#1@handler\endcsname{#2}{#3}% - \relax - \ifkv@handled@ - \else - \kv@error@unknownkey{#1}{#2}% - \fi - \fi - \else - \ifx\kv@value\relax -& \unless\ifcsname KV@#1@#2@default\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax - \kv@error@novalue{#1}{#2}% - \else - \csname KV@#1@#2@default\endcsname - \relax - \fi - \else - \csname KV@#1@#2\endcsname{#3}% - \fi - \fi -} -\def\kv@processor@known#1#2#3{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \edef\KVS@temp{\endgroup - \noexpand\KVS@ProcessorKnown{#1}\noexpand#2{#3}% - }% - \KVS@temp -} -\long\def\KVS@ProcessorKnown#1#2#3#4{% - \def\kv@fam{#1}% -& \unless\ifcsname KV@#1@#3\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#3\endcsname\relax -& \unless\ifcsname KVS@#1@handler\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KVS@#1@handler\endcsname\relax - \KVS@AddUnhandled#2{#3}{#4}% - \else - \kv@handled@true - \csname KVS@#1@handler\endcsname{#3}{#4}% - \relax - \ifkv@handled@ - \else - \KVS@AddUnhandled#2{#3}{#4}% - \fi - \fi - \else - \ifx\kv@value\relax -& \unless\ifcsname KV@#1@#2@default\endcsname -$ \begingroup\expandafter\expandafter\expandafter\endgroup -$ \expandafter\ifx\csname KV@#1@#3@default\endcsname\relax - \kv@error@novalue{#1}{#3}% - \else - \csname KV@#1@#3@default\endcsname - \relax - \fi - \else - \csname KV@#1@#3\endcsname{#4}% - \fi - \fi -} -\long\def\KVS@AddUnhandled#1#2#3{% -& \edef#1{% -& \ifx#1\KVS@empty -& \else -& \etex@unexpanded{#1},% -& \fi -& \etex@unexpanded{{#2}={#3}}% -& }% -$ \begingroup -$ \ifx#1\KVS@empty -$ \toks@{{#2}={#3}}% -$ \else -$ \toks@\expandafter{#1,{#2}={#3}}% -$ \fi -$ \xdef\KVS@Global{\the\toks@}% -$ \endgroup -$ \let#1\KVS@Global -} -\long\def\kv@set@family@handler#1#2{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \expandafter\endgroup - \expandafter\def\csname KVS@#1@handler\endcsname##1##2{#2}% -} -\long\def\kv@unset@family@handler#1#2{% - \begingroup - \csname @safe@activestrue\endcsname - \let\ifincsname\iftrue - \expandafter\endgroup - \expandafter\let\csname KVS@#1@handler\endcsname\@UnDeFiNeD -} -\def\kv@error@novalue{% - \kv@error@generic{No value specified for}% -} -\def\kv@error@unknownkey{% - \kv@error@generic{Undefined}% -} -\def\kv@error@generic#1#2#3{% - \@PackageError{kvsetkeys}{% - #1 key `#3'% - }{% - The keyval family of the key `#3' is `#2'.\MessageBreak - The setting of the key is ignored because of the error.\MessageBreak - \MessageBreak - \@ehc - }% -} -\long\def\kvsetkeys#1#2{% - \kv@parse{#2}{\kv@processor@default{#1}}% -} -\def\kvsetkeys@expandafter#1#2{% - \expandafter\kv@parse\expandafter{#2}{% - \kv@processor@default{#1}% - }% -} -\def\KVS@cmd{0}% -\def\KVS@cmd@inc{% -& \edef\KVS@cmd{\the\numexpr\KVS@cmd+1}% -$ \begingroup -$ \count255=\KVS@cmd\relax -$ \advance\count255 by 1\relax -$ \edef\x{\endgroup -$ \noexpand\def\noexpand\KVS@cmd{\number\count255}% -$ }% -$ \x -} -\def\KVS@cmd@dec{% -& \edef\KVS@cmd{\the\numexpr\KVS@cmd-1}% -$ \begingroup -$ \count255=\KVS@cmd\relax -$ \advance\count255 by -1\relax -$ \edef\x{\endgroup -$ \noexpand\def\noexpand\KVS@cmd{\number\count255}% -$ }% -$ \x -} -\def\KVS@empty{} -\def\kvsetknownkeys{% - \expandafter - \KVS@setknownkeys\csname KVS@cmd\KVS@cmd\endcsname{}% -} -\long\def\KVS@setknownkeys#1#2#3#4#5{% - \let#1\KVS@empty - \KVS@cmd@inc - #2\kv@parse#2{#5}{\kv@processor@known{#3}#1}% - \KVS@cmd@dec - \let#4=#1% -} -\def\kvsetknownkeys@expandafter{% - \expandafter - \KVS@setknownkeys - \csname KVS@cmd\KVS@cmd\endcsname\expandafter -} -\KVS@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `kvsetkeys.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty b/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty deleted file mode 100644 index a0a9bae430a..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +++ /dev/null @@ -1,752 +0,0 @@ -%% -%% This is file `ltxcmds.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% ltxcmds.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: ltxcmds -%% Version: 2016/05/16 v1.23 -%% -%% Copyright (C) -%% 2009-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/oberdiek/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 ltxcmds.dtx -%% and the derived files -%% ltxcmds.sty, ltxcmds.pdf, ltxcmds.ins, ltxcmds.drv, -%% ltxcmds-test1.tex, ltxcmds-test-gobble.tex, -%% ltxcmds-test-ifempty.tex, ltxcmds-test-zapspace.tex, -%% ltxcmds-test-ifboxempty.tex, ltxcmds-test-nextchar.tex, -%% ltxcmds-test-carcdr.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@ltxcmds.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{ltxcmds}{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@ltxcmds.sty\endcsname -\ProvidesPackage{ltxcmds}% - [2016/05/16 v1.23 LaTeX kernel commands for general use (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname LTXcmds@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\LTXcmds@AtEnd{% - \LTXcmds@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{36}{3}% $ -\TMP@EnsureCode{38}{4}% & -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{96}{12}% ` -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{94}{12}% ^ (superscript) (!) -\TMP@EnsureCode{124}{12}% | -\edef\LTXcmds@AtEnd{\LTXcmds@AtEnd\noexpand\endinput} -\chardef\ltx@zero=0 % -\chardef\ltx@one=1 % -\chardef\ltx@two=2 % -\chardef\ltx@active=13 % -\chardef\ltx@cclv=255 % -\def\ltx@minusone{% - -\ltx@one -} -\toksdef\ltx@LocToksA=0 % -\toksdef\ltx@LocToksB=2 % -\toksdef\ltx@LocToksC=4 % -\toksdef\ltx@LocToksD=6 % -\toksdef\ltx@LocToksE=8 % -\toksdef\ltx@GlobToksA=1 % -\toksdef\ltx@GlobToksB=3 % -\toksdef\ltx@GlobToksC=5 % -\toksdef\ltx@GlobToksD=7 % -\toksdef\ltx@GlobToksE=9 % -\dimendef\ltx@LocDimenA=0 % -\dimendef\ltx@LocDimenB=2 % -\dimendef\ltx@LocDimenC=4 % -\dimendef\ltx@LocDimenD=6 % -\dimendef\ltx@LocDimenE=8 % -\dimendef\ltx@GlobDimenA=1 % -\dimendef\ltx@GlobDimenB=3 % -\dimendef\ltx@GlobDimenC=5 % -\dimendef\ltx@GlobDimenD=7 % -\dimendef\ltx@GlobDimenE=9 % -\skipdef\ltx@LocSkipA=0 % -\skipdef\ltx@LocSkipB=2 % -\skipdef\ltx@LocSkipC=4 % -\skipdef\ltx@LocSkipD=6 % -\skipdef\ltx@LocSkipE=8 % -\skipdef\ltx@GlobSkipA=1 % -\skipdef\ltx@GlobSkipB=3 % -\skipdef\ltx@GlobSkipC=5 % -\skipdef\ltx@GlobSkipD=7 % -\skipdef\ltx@GlobSkipE=9 % -\long\def\ltx@gobble#1{} -\long\def\ltx@gobbletwo#1#2{} -\long\def\ltx@gobblethree#1#2#3{} -\long\def\ltx@gobblefour#1#2#3#4{} -\def\ltx@GobbleNum#1{% - \romannumeral - \csname ltx@zero% - \expandafter\LTXcmds@GobbleNum - \romannumeral\LTXcmds@num{#1}000{m\endcsname}% -} -\def\LTXcmds@GobbleNum#1{% - \csname LTXcmds@G#1\LTXcmds@GobbleNum -} -\long\def\LTXcmds@Gm#1{% - \endcsname -} -\long\def\ltx@firstofone#1{#1} -\long\def\ltx@firstoftwo#1#2{#1} -\long\def\ltx@secondoftwo#1#2{#2} -\long\def\ltx@firstofthree#1#2#3{#1} -\long\def\ltx@secondofthree#1#2#3{#2} -\long\def\ltx@thirdofthree#1#2#3{#3}% -\long\def\ltx@firstoffour#1#2#3#4{#1} -\long\def\ltx@secondoffour#1#2#3#4{#2} -\long\def\ltx@thirdoffour#1#2#3#4{#3}% -\long\def\ltx@fourthoffour#1#2#3#4{#4}% -\long\def\ltx@carzero#1\@nil{}% -\long\def\LTXcmds@cdrzero#1\@nil{#1} -\def\ltx@cdrzero{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -\long\def\ltx@car#1#2\@nil{#1} -\long\def\ltx@cdr#1{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -\long\def\ltx@cartwo#1#2#3\@nil{#1#2} -\long\def\ltx@carsecond#1#2#3\@nil{#2} -\long\def\ltx@cdrtwo#1#2{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -\long\def\ltx@carthree#1#2#3#4\@nil{#1#2#3} -\long\def\ltx@carthird#1#2#3#4\@nil{#3} -\long\def\ltx@cdrthree#1#2#3{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -\long\def\ltx@carfour#1#2#3#4#5\@nil{#1#2#3#4} -\long\def\ltx@carfourth#1#2#3#4#5\@nil{#4} -\long\def\ltx@cdrfour#1#2#3#4{% - \romannumeral\LTXcmds@cdrzero\ltx@zero -} -\def\ltx@CarNum#1{% - \romannumeral - \csname LTXcmds@CarNumFinish% - \expandafter\LTXcmds@CarNum - \romannumeral\LTXcmds@num{#1}000{x\endcsname}% -} -\def\LTXcmds@CarNum#1{% - \csname LTXcmds@C#1\LTXcmds@CarNum -} -\long\def\LTXcmds@Cm#1#2{% - \endcsname{#1#2}% -} -\def\LTXcmds@Cx#1{% - \endcsname{}% -} -\long\def\LTXcmds@CarNumFinish#1#2\@nil{% - \ltx@zero - #1% -} -\def\ltx@CarNumth#1{% - \romannumeral - \expandafter\expandafter\expandafter - \LTXcmds@CarNumth - \ltx@GobbleNum{#1}{}% -} -\long\def\LTXcmds@CarNumth#1#2\@nil{% - \ltx@zero - #1% -} -\def\ltx@CdrNum#1{% - \romannumeral% - \expandafter\expandafter\expandafter\ltx@cdrzero - \expandafter\expandafter\expandafter\ltx@zero - \ltx@GobbleNum{#1}% -} -\long\def\ltx@ReturnAfterFi#1\fi{\fi#1} -\long\def\ltx@ReturnAfterElseFi#1\else#2\fi{\fi#1} -\def\ltx@empty{} -\def\ltx@space{ } -\begingroup - \lccode`0=`\%\relax -\lowercase{\endgroup - \def\ltx@percentchar{0}% -} -\begingroup - \lccode`0=`\\\relax -\lowercase{\endgroup - \def\ltx@backslashchar{0}% -} -\begingroup - \lccode`0=`\#\relax -\lowercase{\endgroup - \def\ltx@hashchar{0}% -} -\begingroup - \lccode`0=`\{\relax -\lowercase{\endgroup - \def\ltx@leftbracechar{0}% -} -\begingroup - \lccode`0=`\}\relax -\lowercase{\endgroup - \def\ltx@rightbracechar{0}% -} -\def\ltx@newif#1{% - \begingroup - \escapechar=-1 % - \expandafter\endgroup - \expandafter\LTXcmds@newif\string#1\@nil -} -\begingroup - \escapechar=-1 % -\expandafter\endgroup -\expandafter\def\expandafter\LTXcmds@newif\string\if#1\@nil{% - \expandafter\edef\csname#1true\endcsname{% - \let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iftrue - }% - \expandafter\edef\csname#1false\endcsname{% - \let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iffalse - }% - \csname#1false\endcsname -} -\def\ltx@newglobalif#1{% - \begingroup - \escapechar=-1 % - \expandafter\endgroup - \expandafter\LTXcmds@newglobalif\string#1\@nil -} -\begingroup - \escapechar=-1 % -\expandafter\endgroup -\expandafter -\def\expandafter\LTXcmds@newglobalif\string\if#1\@nil{% - \expandafter\edef\csname#1true\endcsname{% - \global\let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iftrue - }% - \expandafter\edef\csname#1false\endcsname{% - \global\let - \expandafter\noexpand\csname if#1\endcsname - \noexpand\iffalse - }% - \csname#1false\endcsname -} -\def\ltx@LocalExpandAfter{% - \begingroup - \expandafter\expandafter\expandafter - \endgroup - \expandafter -} -\ltx@LocalExpandAfter -\ifx\csname ifcsname\endcsname\relax - \def\ltx@ifundefined#1{% - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\ltx@firstoftwo - \else - \expandafter\ltx@secondoftwo - \fi - }% - \def\ltx@IfUndefined#1{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\ltx@firstoftwo - \else - \expandafter\ltx@secondoftwo - \fi - }% - \expandafter\ltx@gobble -\else - \expandafter\ltx@firstofone -\fi -{% - \def\ltx@ifundefined#1{% - \ifcsname #1\endcsname - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\expandafter\expandafter\ltx@firstoftwo - \else - \expandafter\expandafter\expandafter\ltx@secondoftwo - \fi - \else - \expandafter\ltx@firstoftwo - \fi - }% - \let\ltx@IfUndefined\ltx@ifundefined -} -\def\ltx@RemovePrefix#1>{} -\def\ltx@StripPrefix{% - \expandafter\ltx@RemovePrefix -} -\def\ltx@onelevel@sanitize#1{% - \edef#1{% - \expandafter - \ltx@RemovePrefix\meaning#1% - }% -} -\def\ltx@clsextension{cls} -\def\ltx@pkgextension{sty} -\def\ltx@iffileloaded#1{% - \ltx@ifundefined{ver@#1}\ltx@secondoftwo\ltx@firstoftwo -} -\def\ltx@ifclassloaded#1{% - \ltx@iffileloaded{#1.\ltx@clsextension}% -} -\def\ltx@ifpackageloaded#1{% - \ltx@iffileloaded{#1.\ltx@pkgextension}% -} -\def\ltx@iffilelater#1#2{% - \ltx@iffileloaded{#1}{% - \expandafter\LTXcmds@IfLater\expandafter{% - \number - \expandafter\expandafter\expandafter\LTXcmds@ParseVersion - \expandafter\expandafter\expandafter{% - \csname ver@#1\endcsname - }% - \expandafter}\expandafter{% - \number - \expandafter\LTXcmds@ParseVersion\expandafter{#2}% - }% - }\ltx@secondoftwo -} -\def\LTXcmds@IfLater#1#2{% - \ifcase 0% - \ifnum#1<19940101 % - \else - \ifnum#2<19940101 % - \else - \ifnum#2>#1 % - \else - 1% - \fi - \fi - \fi - \ltx@space - \expandafter\ltx@secondoftwo - \else - \expandafter\ltx@firstoftwo - \fi -} -\def\ltx@ifclasslater#1{% - \ltx@iffilelater{#1.\ltx@clsextension}% -} -\def\ltx@ifpackagelater#1{% - \ltx@iffilelater{#1.\ltx@pkgextension}% -} -\ltx@IfUndefined{pdfmatch}{% - \def\LTXcmds@ParseVersion#1{% - \LTXcmds@@ParseVersion#10000/00/00\@nil - }% - \def\LTXcmds@@ParseVersion#1#2#3#4/#5#6/#7#8#9\@nil{% - #1#2#3#4#5#6#7#8% - }% -}{% - \def\LTXcmds@ParseVersion#1{% - \ifnum\pdfmatch{% - ^% - (199[4-9]|[2-9][0-9][0-9][0-9])/% - (0[1-9]|1[0-2])/% - (0[1-9]|[1-2][0-9]|3[0-1])% - }{#1}=1 % - \ltx@StripPrefix\pdflastmatch1 % - \ltx@StripPrefix\pdflastmatch2 % - \ltx@StripPrefix\pdflastmatch3 % - \else - 0% - \fi - }% -} -\long\def\ltx@GlobalAppendToMacro#1#2{% - \ifx\ltx@undefined#1% - \let#1\ltx@empty - \else - \ifx\relax#1% - \let#1\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA\expandafter{#1#2}% - \xdef#1{\the\ltx@LocToksA}% - \endgroup -} -\long\def\ltx@LocalAppendToMacro#1#2{% - \global\let\LTXcmds@gtemp#1% - \ifx\ltx@undefined\LTXcmds@gtemp - \global\let\LTXcmds@gtemp\ltx@empty - \else - \ifx\relax\LTXcmds@gtemp - \global\letLTXcmds@gtemp\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA\expandafter{\LTXcmds@gtemp#2}% - \xdef\LTXcmds@gtemp{\the\ltx@LocToksA}% - \endgroup - \let#1\LTXcmds@gtemp -} -\long\def\ltx@GlobalPrependToMacro#1#2{% - \ifx\ltx@undefined#1% - \let#1\ltx@empty - \else - \ifx\relax#1% - \let#1\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA{#2}% - \ltx@LocToksB\expandafter{#1}% - \xdef#1{\the\ltx@LocToksA\the\ltx@LocToksB}% - \endgroup -} -\long\def\ltx@LocalPrependToMacro#1#2{% - \global\let\LTXcmds@gtemp#1% - \ifx\ltx@undefined\LTXcmds@gtemp - \global\let\LTXcmds@gtemp\ltx@empty - \else - \ifx\relax\LTXcmds@gtemp - \global\letLTXcmds@gtemp\ltx@empty - \fi - \fi - \begingroup - \ltx@LocToksA{#2}% - \ltx@LocToksB\expandafter{\LTXcmds@gtemp}% - \xdef\LTXcmds@gtemp{\the\ltx@LocToksA\the\ltx@LocToksB}% - \endgroup - \let#1\LTXcmds@gtemp -} -\long\def\ltx@ifnextchar#1#2#3{% - \begingroup - \let\LTXcmds@CharToken= #1\relax - \ltx@LocToksA{\endgroup#2}% - \ltx@LocToksB{\endgroup#3}% - \futurelet\LTXcmds@LetToken\LTXcmds@ifnextchar -} -\def\LTXcmds@ifnextchar{% - \ifx\LTXcmds@LetToken\LTXcmds@CharToken - \the\expandafter\ltx@LocToksA - \else - \expandafter - \ifx\csname LTXcmds@LetToken\endcsname\LTXcmds@SpaceToken - \expandafter\expandafter\expandafter\LTXcmds@@ifnextchar - \else - \the\expandafter\expandafter\expandafter\ltx@LocToksB - \fi - \fi -} -\def\LTXcmds@@ifnextchar{% - \expandafter\futurelet - \expandafter\LTXcmds@LetToken - \expandafter\LTXcmds@ifnextchar - \romannumeral-`\.% -} -\ltx@firstofone{\let\LTXcmds@SpaceToken= } % -\long\def\ltx@ifnextchar@nospace#1#2#3{% - \begingroup - \let\LTXcmds@CharToken= #1\relax - \ltx@LocToksA{\endgroup#2}% - \ltx@LocToksB{\endgroup#3}% - \futurelet\LTXcmds@LetToken\LTXcmds@ifnextchar@nospace -} -\def\LTXcmds@ifnextchar@nospace{% - \the - \ifx\LTXcmds@LetToken\LTXcmds@CharToken - \expandafter\ltx@LocToksA - \else - \expandafter\ltx@LocToksB - \fi -} -\ltx@IfUndefined{quitvmode}{% - \ltx@IfUndefined{leavevmode}{% - \ltx@IfUndefined{voidb@x}{% - \ltx@IfUndefined{newbox}{% - \def\ltx@leavevmode{% - \begingroup - \setbox\ltx@zero=\hbox{}% - \begingroup - \setbox\ltx@zero=\hbox{\box\ltx@zero}% - \endgroup - \unhbox\ltx@zero - \endgroup - }% - }{% - \csname newbox\endcsname\LTXcmds@VoidBox - \ifvoid\LTXcmds@VoidBox - \else - \setbox\LTXcmds@VoidBox=\hbox{}% - \begingroup - \setbox\LTXcmds@VoidBox=\hbox{\box\LTXcmds@VoidBox}% - \endgroup - \fi - \def\ltx@leavevmode{\unhbox\LTXcmds@VoidBox}% - }% - }{% - \def\ltx@leavevmode{\unhbox\voidb@x}% - }% - }{% - \let\ltx@leavevmode\leavevmode - }% -}{% - \let\ltx@leavevmode\quitvmode -} -\def\ltx@mbox{% - \ltx@leavevmode - \hbox -} -\ltx@IfUndefined{numexpr}{% - \def\LTXcmds@num#1{% - \expandafter\ltx@firstofone\expandafter{% - \number#1% - }% - }% -}{% - \def\LTXcmds@num#1{% - \expandafter\ltx@firstofone\expandafter{% - \the\numexpr#1% - }% - }% -} -\ltx@IfUndefined{detokenize}{% - \def\LTXcmds@temp#1{% - \long\def\ltx@ifempty##1{% - \romannumeral0% - \iffalse{\fi - \expandafter\ltx@gobble\expandafter{% - \expandafter{\string##1}% - \expandafter\ltx@gobble\string - }% - \expandafter\ltx@firstofthree\expandafter - {\iffalse}\fi - \expandafter#1\ltx@secondoftwo - }% - \expandafter#1\ltx@firstoftwo - }% - \long\def\ltx@ifblank##1{% - \romannumeral0% - \iffalse{\fi - \expandafter\expandafter\expandafter\ltx@gobble - \expandafter\expandafter\expandafter{% - \expandafter\expandafter\expandafter{% - \expandafter\string\ltx@gobble##1.% - }% - \expandafter\ltx@gobble\string - }% - \expandafter\ltx@firstofthree\expandafter - {\iffalse}\fi - \expandafter#1\ltx@secondoftwo - }% - \expandafter#1\ltx@firstoftwo - }% - }% - \LTXcmds@temp{ }% -}{% - \long\def\ltx@ifempty#1{% - \romannumeral% - \csname - LTXcmds@ifempty% - \ifcat$\detokenize{#1}$% - @% - \fi - \endcsname - }% - \long\def\LTXcmds@ifempty@#1#2{0 #1}% - \long\def\LTXcmds@ifempty#1#2{0 #2}% - \long\def\ltx@ifblank#1{% - \romannumeral% - \csname - LTXcmds@ifempty% - \ifcat$\detokenize\expandafter{\ltx@gobble#1.}$% - @% - \fi - \endcsname - }% -} -\long\def\ltx@zapspace#1{% - \romannumeral - \LTXcmds@zapspace\ltx@zero#1 \@nil -} -\long\def\LTXcmds@zapspace#1 #2\@nil{% - \ltx@ifempty{#2}{% - #1% - }{% - \LTXcmds@zapspace#1#2\@nil - }% -} -\ltx@IfUndefined{lastnodetype}{% - \catcode`\$=9 % - \catcode`\&=14 % -}{% - \catcode`\$=14 % - \catcode`\&=9 % -} -\def\ltx@IfBoxEmpty#1{% - \ifvoid#1\relax - \expandafter\ltx@secondoftwo - \else -& \begingroup -& \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% -& \ifhmode\unhcopy\else\unvcopy\fi#1\relax -& \expandafter -& }% -& \expandafter\endgroup -& \ifnum\lastnodetype<\ltx@zero -& \expandafter\expandafter\expandafter\ltx@firstoftwo -& \else -& \expandafter\expandafter\expandafter\ltx@secondoftwo -& \fi -$ \begingroup -$ \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% -$ \penalty\ltx@one -$ \ifhmode\unhcopy\else\unvcopy\fi#1\relax -$ \expandafter -$ }% -$ \ifnum\lastpenalty=\ltx@one -$ \endgroup -$ \begingroup -$ \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% -$ \penalty\ltx@two -$ \ifhmode\unhcopy\else\unvcopy\fi#1\relax -$ \expandafter -$ }% -$ \ifnum\lastpenalty=\ltx@two -$ \def\next{\endgroup\expandafter\ltx@firstoftwo}% -$ \else -$ \def\next{\endgroup\expandafter\ltx@secondoftwo}% -$ \fi -$ \else -$ \def\next{\endgroup\expandafter\ltx@secondoftwo}% -$ \fi -$ \next - \fi -} -\def\ltx@IfBoxVoidOrEmpty#1{% - \ifvoid#1\relax - \expandafter\ltx@thirdoffour - \fi - \ltx@IfBoxEmpty{#1}% -} -\LTXcmds@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `ltxcmds.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/soulutf8.sty b/Master/texmf-dist/tex/generic/oberdiek/soulutf8.sty deleted file mode 100644 index cfec8cee68c..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/soulutf8.sty +++ /dev/null @@ -1,697 +0,0 @@ -%% -%% This is file `soulutf8.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% soulutf8.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: soulutf8 -%% Version: 2016/05/16 v1.1 -%% -%% Copyright (C) -%% 2007 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/oberdiek/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 soulutf8.dtx -%% and the derived files -%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv, -%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex, -%% soulutf8-test4.tex, soulutf8-test5.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@soulutf8.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{soulutf8}{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@soulutf8.sty\endcsname -\ProvidesPackage{soulutf8}% - [2016/05/16 v1.1 Permit use of UTF-8 characters in soul (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname SOuL@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\SOuL@AtEnd{% - \SOuL@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{10}{12}% ^^J -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{34}{12}% " -\TMP@EnsureCode{36}{3}% $ -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{40}{12}% ( -\TMP@EnsureCode{41}{12}% ) -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{44}{12}% , -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{58}{12}% : -\TMP@EnsureCode{60}{12}% < -\TMP@EnsureCode{62}{12}% > -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{94}{7}% ^ -\TMP@EnsureCode{96}{12}% ` -\TMP@EnsureCode{126}\active % ~ -\TMP@EnsureCode{128}{12}% ^^80 -\TMP@EnsureCode{147}{12}% ^^93 -\TMP@EnsureCode{148}{12}% ^^94 -\TMP@EnsureCode{160}{12}% ^^a0 -\TMP@EnsureCode{194}{12}% ^^c2 -\TMP@EnsureCode{226}{12}% ^^e2 -\edef\SOuL@AtEnd{\SOuL@AtEnd\noexpand\endinput} -\ifx\documentclass\@undefined - \expandafter\ifx\csname SOUL@\endcsname\relax - \let\SOuL@orgDeclareRobustCommand\DeclareRobustCommand - \let\SOuL@orgnewcommand \newcommand - \let\SOuL@orgDeclareOption \DeclareOption - \let\SOuL@orgPackageError \PackageError - \def\SOuL@restorelatexcmds{% - \let\DeclareRobustCommand\SOuL@orgDeclareRobustCommand - \let\newcommand \SOuL@orgnewcommand - \let\DeclareOption \SOuL@orgDeclareOption - \let\PackageError \SOuL@orgPackageError - }% - \input soul.sty\relax - \SOuL@restorelatexcmds - \fi - \input infwarerr.sty\relax - \let\SOuL@orgSOUL@error\SOUL@error - \def\SOUL@error{% - \begingroup - \let\PackageError\@PackageError - \SOuL@orgSOUL@error - \endgroup - }% - \input etexcmds.sty\relax - \expandafter\ifx\csname @onelevel@sanitize\endcsname\relax - \def\@onelevel@sanitize#1{% - \edef#1{% - \expandafter\strip@prefix\meaning#1% - }% - }% - \def\strip@prefix#1>{}% - \fi -\else - \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{soul}}% - \ProcessOptions\relax - \RequirePackage{soul}[2003/11/17]% - \RequirePackage{infwarerr}[2016/05/16]% - \RequirePackage{etexcmds}[2016/05/16]% -\fi -\ifetex@unexpanded - \catcode33=14 % '!': comment - \catcode43=9 % '+': ignore -\else - \catcode33=9 % '!': ignore - \catcode43=14 % '+': comment -\fi -\def\SOuL@redefine#1{% - \begingroup - \def\SOuL@cmd{#1}% - \afterassignment\SOuL@cmdcheck - \def\SOuL@temp -} -\def\SOuL@cmdcheck{% - \expandafter\ifx\SOuL@cmd\SOuL@temp - \else - \edef\SOuL@temp*{\expandafter\string\SOuL@cmd}% - \@PackageWarningNoLine{soulutf8}{% - Command \SOuL@temp* has changed.\MessageBreak - Supported versions of package `soul': 2003/11/17.\MessageBreak - Depending on the unknown changes the redefinition\MessageBreak - of \SOuL@temp* may not behave correctly% - }% - \fi - \expandafter\endgroup - \expandafter\def\SOuL@cmd -} -\SOuL@redefine\SOUL@eval{% - \def\SOUL@n*##1{\SOUL@scan}% - \if\noexpand\SOUL@@\SOUL@spc - \else - \SOUL@ignorespacesfalse - \fi - \ifnum\SOUL@minus=\thr@@ - \SOUL@flushminus - \else\ifnum\SOUL@comma=\tw@ - \SOUL@flushcomma - \else\ifnum\SOUL@apo=\tw@ - \SOUL@flushapo - \else\ifnum\SOUL@grave=\tw@ - \SOUL@flushgrave - \fi\fi\fi\fi - \ifx\SOUL@@-\else\SOUL@flushminus\fi - \ifx\SOUL@@,\else\SOUL@flushcomma\fi - \ifx\SOUL@@'\else\SOUL@flushapo\fi - \ifx\SOUL@@`\else\SOUL@flushgrave\fi - \ifx\SOUL@@-% - \advance\SOUL@minus\@ne - \else\ifx\SOUL@@,% - \advance\SOUL@comma\@ne - \else\ifx\SOUL@@'% - \advance\SOUL@apo\@ne - \else\ifx\SOUL@@`% - \advance\SOUL@grave\@ne - \else - \SOUL@flushminus - \SOUL@flushcomma - \SOUL@flushapo - \SOUL@flushgrave - \ifx\SOUL@@\SOUL@stop - \def\SOUL@n*{% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - }% - \else\ifx\SOUL@@\par - \def\SOUL@n*\par{\par\leavevmode\SOUL@scan}% - \else\if\noexpand\SOUL@@\SOUL@spc - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \ifSOUL@ignorespaces - \else - \SOUL@everyspace{}% - \fi - \def\SOUL@n* {\SOUL@scan}% - \else\ifx\SOUL@@\\% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\unskip\nobreak\hfil\break}% - \SOUL@ignorespacestrue - \else\ifx\SOUL@@~% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\nobreak}% - \else\ifx\SOUL@@\slash - \SOUL@doword - \SOUL@eventuallyexhyphen{/}% - \SOUL@exhyphen{/}% - \else\ifx\SOUL@@\mbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\hbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\soulomit - \def\SOUL@n*\soulomit##1{% - \SOUL@doword - {\spaceskip\SOUL@spaceskip##1}% - \SOUL@scan - }% - \else\ifx\SOUL@@\break - \SOUL@doword - \break - \else\ifx\SOUL@@\linebreak - \SOUL@doword - \SOUL@everyspace{\linebreak}% - \else\ifcat\bgroup\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addgroup{}}% - \else\ifcat$\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addmath}% - \else - \def\SOUL@n*{\SOUL@dotoken}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi - \SOUL@n*% -}{% - \def\SOUL@n*##1{\SOUL@scan}% - \if\noexpand\SOUL@@\SOUL@spc - \else - \SOUL@ignorespacesfalse - \fi - \ifnum\SOUL@minus=\thr@@ - \SOUL@flushminus - \else\ifnum\SOUL@comma=\tw@ - \SOUL@flushcomma - \else\ifnum\SOUL@apo=\tw@ - \SOUL@flushapo - \else\ifnum\SOUL@grave=\tw@ - \SOUL@flushgrave - \fi\fi\fi\fi - \ifx\SOUL@@-\else\SOUL@flushminus\fi - \ifx\SOUL@@,\else\SOUL@flushcomma\fi - \ifx\SOUL@@'\else\SOUL@flushapo\fi - \ifx\SOUL@@`\else\SOUL@flushgrave\fi - \ifx\SOUL@@-% - \advance\SOUL@minus\@ne - \else\ifx\SOUL@@,% - \advance\SOUL@comma\@ne - \else\ifx\SOUL@@'% - \advance\SOUL@apo\@ne - \else\ifx\SOUL@@`% - \advance\SOUL@grave\@ne - \else - \SOUL@flushminus - \SOUL@flushcomma - \SOUL@flushapo - \SOUL@flushgrave - \ifx\SOUL@@\SOUL@stop - \def\SOUL@n*{% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - }% - \else\ifx\SOUL@@\par - \def\SOUL@n*\par{\par\leavevmode\SOUL@scan}% - \else\if\noexpand\SOUL@@\SOUL@spc - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \ifSOUL@ignorespaces - \else - \SOUL@everyspace{}% - \fi - \def\SOUL@n* {\SOUL@scan}% - \else\ifx\SOUL@@\\% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\unskip\nobreak\hfil\break}% - \SOUL@ignorespacestrue - \else\ifx\SOUL@@~% - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\nobreak}% - \else\ifx\SOUL@@\slash - \SOUL@doword - \SOUL@eventuallyexhyphen{/}% - \SOUL@exhyphen{/}% - \else\ifx\SOUL@@\mbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\hbox - \def\SOUL@n*{\SOUL@addprotect}% - \else\ifx\SOUL@@\soulomit - \def\SOUL@n*\soulomit##1{% - \SOUL@doword - {\spaceskip\SOUL@spaceskip##1}% - \SOUL@scan - }% - \else\ifx\SOUL@@\break - \SOUL@doword - \break - \else\ifx\SOUL@@\linebreak - \SOUL@doword - \SOUL@everyspace{\linebreak}% - \else\ifcat\bgroup\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addgroup{}}% - \else\ifcat$\noexpand\SOUL@@ - \def\SOUL@n*{\SOUL@addmath}% - \else - \SOuL@analyzeutfviii - \ifcase\SOuL@octets - \SOuL@analyzeutfviiix - \fi - \ifcase\SOuL@octets - \def\SOUL@n*{\SOUL@dotoken}% - \or % 1 - \or % 2 - \def\SOUL@n*{\SOuL@addtwooctets}% - \or % 3 - \def\SOUL@n*{\SOuL@addthreeoctets}% - \or % 4 - \def\SOUL@n*{\SOuL@addfouroctets}% - \fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi - \SOUL@n*% -} -\def\SOuL@defsanitizedstring#1#2{% - \expandafter\def\csname SOuL@string#1\endcsname{#2}% - \expandafter\@onelevel@sanitize\csname SOuL@string#1\endcsname -} -\SOuL@defsanitizedstring{UTFviii}{UTFviii@} -\SOuL@defsanitizedstring{octets}{@octets} -\SOuL@defsanitizedstring{two}{two} -\SOuL@defsanitizedstring{three}{three} -\SOuL@defsanitizedstring{four}{four} -\SOuL@defsanitizedstring{macrocolon}{macro:} -\SOuL@defsanitizedstring{csnameu}{csname u8-} -\SOuL@defsanitizedstring{undeferr}{utf@viii@undeferr} -\def\SOuL@stringendash{^^e2^^80^^93} -\def\SOuL@stringemdash{^^e2^^80^^94} -\def\SOuL@stringnobreakspace{^^c2^^a0} -\edef\SOuL@charhash{\string #} -\edef\SOuL@chartwo{\string 2} -\edef\SOuL@charthree{\string 3} -\def\SOuL@empty{} -\begingroup - \edef\x{\endgroup - \def\noexpand\SOuL@analyzeutfviii{% - \noexpand\expandafter\noexpand\SOuL@checkutfviii - \noexpand\meaning\noexpand\SOUL@@ - \SOuL@stringUTFviii\SOuL@stringoctets - \noexpand\@nil - }% - \def\noexpand\SOuL@checkutfviii - ##1\SOuL@stringUTFviii##2\SOuL@stringoctets##3\noexpand\@nil - }% -\x{% - \def\SOuL@temp{#2}% - \chardef\SOuL@octets=% - \ifx\SOuL@temp\SOuL@stringtwo - \tw@ - \else\ifx\SOuL@temp\SOuL@stringthree - \thr@@ - \else\ifx\SOuL@temp\SOuL@stringfour - 4 % - \else - \z@ - \fi\fi\fi -} -\begingroup - \edef\x{\endgroup - \def\noexpand\SOuL@analyzeutfviiix{% - \noexpand\expandafter\noexpand\SOuL@checkutfviiix - \noexpand\meaning\noexpand\SOUL@@ - \SOuL@stringmacrocolon\SOuL@charhash1{}{}{}{}% - \SOuL@stringcsnameu\SOuL@stringundeferr - \noexpand\@nil - }% - \def\noexpand\SOuL@checkutfviiix - ##1\SOuL@stringmacrocolon\SOuL@charhash1##2##3##4##5##6% - \SOuL@stringcsnameu##7\SOuL@stringundeferr##8\noexpand\@nil - }% -\x{% - \def\SOuL@temp{#7}% - \ifx\SOuL@temp\SOuL@empty - \chardef\SOuL@octets=\z@ - \else - \def\SOuL@temp{#5}% - \ifx\SOuL@temp\SOuL@charthree - \chardef\SOuL@octets=4 % - \else - \def\SOuL@temp{#3}% - \ifx\SOuL@temp\SOuL@chartwo - \chardef\SOuL@octets=\thr@@ - \else - \chardef\SOuL@octets=\tw@ - \fi - \fi - \fi -} -\def\SOuL@addtwooctets#1#2{% - \def\SOuL@temp{#1#2}% - \@onelevel@sanitize\SOuL@temp - \ifx\SOuL@temp\SOuL@stringnobreakspace - \SOUL@doword - \SOUL@eventuallyexhyphen\null - \SOUL@everyspace{\nobreak}% - \let\SOuL@next\SOUL@scan - \else - \def\SOuL@next{% -! \SOUL@addtoken{{\noexpand#1\noexpand#2}}% -+ \SOUL@addtoken{{\etex@unexpanded{#1#2}}}% - }% - \fi - \SOuL@next -} -\def\SOuL@addthreeoctets#1#2#3{% - \def\SOuL@temp{#1#2#3}% - \@onelevel@sanitize\SOuL@temp - \ifx\SOuL@temp\SOuL@stringendash - \SOUL@doword - \SOUL@eventuallyexhyphen{-}% - \SOUL@exhyphen{--}% - \let\SOuL@next\SOUL@scan - \else - \ifx\SOuL@temp\SOuL@stringemdash - \SOUL@doword - \SOUL@eventuallyexhyphen{-}% - \SOUL@exhyphen{---}% - \let\SOuL@next\SOUL@scan - \else - \def\SOuL@next{% -! \SOUL@addtoken{{\noexpand#1\noexpand#2\noexpand#3}}% -+ \SOUL@addtoken{{\etex@unexpanded{#1#2#3}}}% - }% - \fi - \fi - \SOuL@next -} -\def\SOuL@addfouroctets#1#2#3#4{% -! \SOUL@addtoken{{\noexpand#1\noexpand#2\noexpand#3\noexpand#4}}% -+ \SOUL@addtoken{{\etex@unexpanded{#1#2#3#4}}}% -} -\SOuL@redefine\SOUL@splittoken#1#2\SOUL@stop{% - \global\SOUL@token={#1}% - \global\SOUL@word={#2}% -}#1{% - \global\SOUL@token={#1}% - \SOuL@remainingtoken\relax -} -\def\SOuL@remainingtoken#1\SOUL@stop{% - \global\SOUL@word=\expandafter{\@gobble#1}% -} -\SOuL@redefine\SOUL@flushcomma{% - \ifcase\SOUL@comma - \or - \edef\x{\SOUL@word={\the\SOUL@word,}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{{,,}}}}\x - \fi - \SOUL@comma\z@ -}{% - \ifcase\SOUL@comma - \or - \edef\x{\SOUL@word={\the\SOUL@word,}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{,,}}}\x - \fi - \SOUL@comma\z@ -} -\SOuL@redefine\SOUL@flushapo{% - \ifcase\SOUL@apo - \or - \edef\x{\SOUL@word={\the\SOUL@word'}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{{''}}}}\x - \fi - \SOUL@apo\z@ -}{% - \ifcase\SOUL@apo - \or - \edef\x{\SOUL@word={\the\SOUL@word'}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{''}}}\x - \fi - \SOUL@apo\z@ -} -\SOuL@redefine\SOUL@flushgrave{% - \ifcase\SOUL@grave - \or - \edef\x{\SOUL@word={\the\SOUL@word`}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{{``}}}}\x - \fi - \SOUL@grave\z@ -}{% - \ifcase\SOUL@grave - \or - \edef\x{\SOUL@word={\the\SOUL@word`}}\x - \or - \edef\x{\SOUL@word={\the\SOUL@word{``}}}\x - \fi - \SOUL@grave\z@ -} -\SOuL@redefine\SOUL@addgroup#1#2{% - {% - \let\protect\noexpand - \edef\x{% - \global\SOUL@word={% - \the\SOUL@word - {{\noexpand#1#2}}% - }% - }% - \x - }% - \SOUL@scan -}#1#2{% - \begingroup - \let\protect\noexpand - \edef\x{\endgroup - \SOUL@word={% - \the\SOUL@word -! {\noexpand#1{#2}}% -+ {\etex@unexpanded{#1{#2}}}% - }% - }% - \x - \SOUL@scan -} -\SOuL@redefine\SOUL@addmath$#1${% - {% - \let\protect\noexpand - \edef\x{% - \global\SOUL@word={% - \the\SOUL@word - {{\hbox{$#1$}}}% - }% - }% - \x - }% - \SOUL@scan -}$#1${% - \begingroup - \let\protect\noexpand - \edef\x{\endgroup - \SOUL@word={% - \the\SOUL@word -! {\hbox{$#1$}}% -+ {\etex@unexpanded{\hbox{$#1$}}}% - }% - }% - \x - \SOUL@scan -} -\SOuL@redefine\SOUL@addprotect#1#2{% - {% - \let\protect\noexpand - \edef\x{% - \global\SOUL@word={% - \the\SOUL@word - {{\hbox{#2}}}% - }% - }% - \x - }% - \SOUL@scan -}#1#2{% - \begingroup - \let\protect\noexpand - \edef\x{\endgroup - \SOUL@word={% - \the\SOUL@word -! {\hbox{#2}}% -+ {\etex@unexpanded{\hbox{#2}}}% - }% - }% - \x - \SOUL@scan -} -+ \SOuL@redefine\SOUL@addtoken#1{% -+ \edef\x{% -+ \SOUL@word={% -+ \the\SOUL@word -+ \noexpand#1% -+ }% -+ }% -+ \x -+ \SOUL@scan -+ }#1{% -+ \edef\x{% -+ \SOUL@word={% -+ \the\SOUL@word -+ \etex@unexpanded{#1}% -+ }% -+ }% -+ \x -+ \SOUL@scan -+ }% -\SOuL@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `soulutf8.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/uniquecounter.sty b/Master/texmf-dist/tex/generic/oberdiek/uniquecounter.sty deleted file mode 100644 index d10ddc2a7fb..00000000000 --- a/Master/texmf-dist/tex/generic/oberdiek/uniquecounter.sty +++ /dev/null @@ -1,242 +0,0 @@ -%% -%% This is file `uniquecounter.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% uniquecounter.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: uniquecounter -%% Version: 2016/05/16 v1.3 -%% -%% Copyright (C) -%% 2009, 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/oberdiek/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 uniquecounter.dtx -%% and the derived files -%% uniquecounter.sty, uniquecounter.pdf, uniquecounter.ins, -%% uniquecounter.drv, uniquecounter-example.tex, -%% uniquecounter-test1.tex, uniquecounter-test2.tex, -%% uniquecounter-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@uniquecounter.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{uniquecounter}{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@uniquecounter.sty\endcsname -\ProvidesPackage{uniquecounter}% - [2016/05/16 v1.3 Provide unlimited unique counter (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname uqc@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\uqc@AtEnd{% - \uqc@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{43}{12}% + -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{96}{12}% ` -\edef\uqc@AtEnd{\uqc@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \def\TMP@RequirePackage#1[#2]{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname ver@#1.sty\endcsname\relax - \input #1.sty\relax - \fi - }% - \TMP@RequirePackage{bigintcalc}[2007/11/11]% - \TMP@RequirePackage{infwarerr}[2007/09/09]% -\else - \RequirePackage{bigintcalc}[2007/11/11]% - \RequirePackage{infwarerr}[2007/09/09]% -\fi -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname numexpr\endcsname\relax - \def\uqc@IncNum#1{% - \begingroup - \count@=\csname uqc@cnt@#1\endcsname\relax - \advance\count@\@ne - \expandafter\xdef\csname uqc@cnt@#1\endcsname{% - \number\count@ - }% - \ifnum\count@=2147483647 % - \global\expandafter\let\csname uqc@inc@#1\endcsname - \uqc@IncBig - \fi - \endgroup - }% -\else - \def\uqc@IncNum#1{% - \expandafter\xdef\csname uqc@cnt@#1\endcsname{% - \number\numexpr\csname uqc@cnt@#1\endcsname+1% - }% - \ifnum\csname uqc@cnt@#1\endcsname=2147483647 % - \global\expandafter\let\csname uqc@inc@#1\endcsname - \uqc@IncBig - \fi - }% -\fi -\def\uqc@IncBig#1{% - \expandafter\xdef\csname uqc@cnt@#1\endcsname{% - \expandafter\expandafter\expandafter - \BigIntCalcInc\csname uqc@cnt@#1\endcsname!% - }% -} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname newcommand\endcsname\relax - \def\uqc@Def#1{\def#1##1}% -\else - \def\uqc@Def#1{\newcommand*{#1}[1]}% -\fi -\uqc@Def\UniqueCounterNew{% - \expandafter\ifx\csname uqc@cnt@#1\endcsname\relax - \expandafter\xdef\csname uqc@cnt@#1\endcsname{0}% - \global\expandafter\let\csname uqc@inc@#1\endcsname\uqc@IncNum - \@PackageInfo{uniquecounter}{New unique counter `#1'}% - \else - \@PackageError{uniquecounter}{Unique counter `#1' is already defined}\@ehc - \fi -} -\uqc@Def\UniqueCounterIncrement{% - \expandafter\ifx\csname uqc@cnt@#1\endcsname\relax - \@PackageError{uniquecounter}{Unique counter `#1' is undefined}\@ehc - \else - \csname uqc@inc@#1\endcsname{#1}% - \fi -} -\uqc@Def\UniqueCounterGet{% - \csname uqc@cnt@#1\endcsname -} -\uqc@Def\UniqueCounterCall{% - \expandafter\ifx\csname uqc@cnt@#1\endcsname\relax - \@PackageError{uniquecounter}{Unique counter `#1' is undefined}\@ehc - \expandafter\uqc@Call\expandafter0% - \else - \UniqueCounterIncrement{#1}% - \expandafter\expandafter\expandafter\uqc@Call - \expandafter\expandafter\expandafter{% - \csname uqc@cnt@#1\expandafter\endcsname\expandafter - }% - \fi -} -\long\def\uqc@Call#1#2{#2{#1}}% -\uqc@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `uniquecounter.sty'. diff --git a/Master/texmf-dist/tex/latex/oberdiek/auxhook.sty b/Master/texmf-dist/tex/latex/oberdiek/auxhook.sty deleted file mode 100644 index c97dfa4e289..00000000000 --- a/Master/texmf-dist/tex/latex/oberdiek/auxhook.sty +++ /dev/null @@ -1,144 +0,0 @@ -%% -%% This is file `auxhook.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% auxhook.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: auxhook -%% Version: 2016/05/16 v1.4 -%% -%% Copyright (C) -%% 2006, 2007, 2009, 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/oberdiek/issues -%% -%% -%% This work consists of the main source file auxhook.dtx -%% and the derived files -%% auxhook.sty, auxhook.pdf, auxhook.ins, auxhook.drv. -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{auxhook}% - [2016/05/16 v1.4 Hooks for auxiliary files (HO)]% -\providecommand*{\@beginmainauxhook}{} -\providecommand*{\@beginpartauxhook}{} -\ifx\AtBeginDocument\@firstofone - \global\let\@beginmainauxhook\relax -\else - \g@addto@macro{\@beginmainauxhook}{% - \global\let\@beginmainauxhook\relax - }% -\fi -\newcommand{\AddLineBeginMainAux}[1]{% - \ifx\@beginmainauxhook\relax - \if@filesw - \PackageInfo{auxhook}{% - \@backslashchar AddLineBeginMainAux comes a little late,% - \MessageBreak - because the main .aux file is already opened% - }% - \immediate\write\@mainaux{#1}% - \fi - \else - \g@addto@macro\@beginmainauxhook{% - \immediate\write\@mainaux{#1}% - }% - \fi -} -\newcommand{\AddLineBeginPartAux}[1]{% - \g@addto@macro\@beginpartauxhook{% - \immediate\write\@partaux{#1}% - }% -} -\newcommand{\AddLineBeginAux}[1]{% - \AddLineBeginMainAux{#1}% - \AddLineBeginPartAux{#1}% -} -\begingroup - \@ifundefined{beamer@origdocument}{% - \def\auxhook@document{\document}% - }{% - \def\auxhook@document{\beamer@origdocument}% - }% - \long\def\y#1\immediate\write\@mainaux#2#3\auxhook@nil{% - \toks@{% - #1\immediate\write\@mainaux{#2}% - \@beginmainauxhook - #3% - }% - \expandafter\xdef\auxhook@document{\the\toks@}% - \endgroup - }% - \long\def\x#1\immediate\write\@mainaux#2#3\auxhook@nil{% - \toks@{#3}% - \edef\x{\the\toks@}% - \ifx\x\@empty - \PackageWarningNoLine{auxhook}{% - Cannot patch \expandafter\string\auxhook@document,% - \MessageBreak - using \string\AtBeginDocument\space instead% - }% - \endgroup - \AtBeginDocument{% - \if@filesw - \@beginmainauxhook - \fi - }% - \else - \expandafter\expandafter\expandafter\y\auxhook@document - \auxhook@nil - \fi - }% -\expandafter\expandafter\expandafter\x\auxhook@document - \immediate\write\@mainaux{}\auxhook@nil -\begingroup - \long\def\y#1\immediate\write\@partaux#2#3\auxhook@nil#4{% - \endgroup - \def#4##1 {% - #1\immediate\write\@partaux{#2}% - \@beginpartauxhook - #3% - }% - }% - \long\def\x#1\immediate\write\@partaux#2#3\auxhook@nil#4{% - \toks@{#3}% - \edef\x{\the\toks@}% - \ifx\x\@empty - \PackageWarningNoLine{auxhook}{% - Cannot patch \string#4,\MessageBreak - patch dropped% - }% - \endgroup - \else - \expandafter\y#4{##1} \auxhook@nil#4% - \fi - }% -\@ifundefined{ReFiCh@org@include}{% - \expandafter\x\@include{#1} % - \immediate\write\@partaux{}\auxhook@nil\@include -}{% - \expandafter\x\ReFiCh@org@include{#1} % - \immediate\write\@partaux{}\auxhook@nil\ReFiCh@org@include -}% -\endinput -%% -%% End of file `auxhook.sty'. diff --git a/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty b/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty deleted file mode 100644 index 3a0b4147a56..00000000000 --- a/Master/texmf-dist/tex/latex/oberdiek/hycolor.sty +++ /dev/null @@ -1,576 +0,0 @@ -%% -%% This is file `hycolor.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% hycolor.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: hycolor -%% Version: 2016/05/16 v1.8 -%% -%% Copyright (C) -%% 2007-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/oberdiek/issues -%% -%% -%% This work consists of the main source file hycolor.dtx -%% and the derived files -%% hycolor.sty, hycolor.pdf, hycolor.ins, hycolor.drv, -%% xcolor-patch.sty, hycolor-test1.tex, hycolor-test2.tex, -%% hycolor-test3.tex, hycolor-test-xcol1.tex, -%% hycolor-test-xcol2.tex, hycolor-test-xcol3.tex, -%% hycolor-test-xcol4.tex. -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{hycolor}% - [2016/05/16 v1.8 Color options for hyperref/bookmark (HO)]% -\RequirePackage{xcolor-patch}[2016/05/16] -\begingroup - \catcode`\!=13 % - \catcode`\:=13 % - \catcode`\-=13 % - \catcode`\+=13 % - \catcode`\;=13 % - \catcode`\"=13 % - \catcode`\>=13 % - \edef\x{% - \def\noexpand!{\string!}% - \def\noexpand:{\string:}% - \def\noexpand-{\string-}% - \def\noexpand+{\string+}% - \def\noexpand;{\string;}% - \def\noexpand"{\string"}% - \def\noexpand>{\string>}% - }% - \def\y#1{\endgroup - \def\HyColor@DefSanitized##1##2{% - \begingroup - \csname @safe@activestrue\endcsname - #1% - \edef\x{\endgroup - \def\noexpand##1{##2}% - }% - \x - \@onelevel@sanitize##1% - }% - }% -\expandafter\y\expandafter{\x} -\def\HyColor@NormalizeNum#1#2{% - \ifdim#1pt<\z@ - \def#2{0}% - \else - \edef#2{\zap@space#1 \@empty}% - \expandafter\HyColor@CheckDot#2..\@nil#2% - \fi -} -\def\HyColor@CheckDot#1.#2.#3\@nil#4{% - \ifnum0#1<\@ne - \ifx\\#2\\% - \def#4{0}% - \else - \edef#4{\HyColor@ReverseString#2\@nil{}}% - \edef#4{\expandafter\HyColor@StripLeadingZeros#4\@empty}% - \ifx#4\@empty - \def#4{0}% - \else - \edef#4{.\expandafter\HyColor@ReverseString#4\@nil{}}% - \fi - \fi - \else - \def#4{1}% - \fi -} -\def\HyColor@ReverseString#1#2\@nil#3{% - \ifx\\#2\\% - #1#3% - \else - \@ReturnAfterFi{% - \HyColor@ReverseString#2\@nil{#1#3}% - }% - \fi -} -\long\def\@ReturnAfterFi#1\fi{\fi#1} -\def\HyColor@StripLeadingZeros#1{% - \ifx#10% - \expandafter\HyColor@StripLeadingZeros - \else - #1% - \fi -} -\def\HyColor@NormalizeCommaRGB#1,#2,#3\@nil#4{% - \HyColor@NormalizeNum{#1}\HyColor@temp - \let#4\HyColor@temp - \HyColor@NormalizeNum{#2}\HyColor@temp - \edef#4{#4 \HyColor@temp}% - \HyColor@NormalizeNum{#3}\HyColor@temp - \edef#4{#4 \HyColor@temp}% -} -\def\HyColor@NormalizeCommaCMYK#1,#2,#3,#4\@nil#5{% - \HyColor@NormalizeNum{#1}\HyColor@temp - \let#5\HyColor@temp - \HyColor@NormalizeNum{#2}\HyColor@temp - \edef#5{#5 \HyColor@temp}% - \HyColor@NormalizeNum{#3}\HyColor@temp - \edef#5{#5 \HyColor@temp}% - \HyColor@NormalizeNum{#4}\HyColor@temp - \edef#5{#5 \HyColor@temp}% -} -\def\HyColor@BookmarkColor#1#2#3#4{% - \HyColor@IfModel{#1}{% - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - \else - \ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum - \expandafter{\HyColor@values}#2% - \edef#2{#2 #2 #2}% - \else - \let#2\@empty - \HyColor@ErrorModelNoXcolor{#3}{#4}% - \fi - \fi - }% - }{% - \let#2\HyColor@values - \ifx#2\@empty - \else - \HyColor@IfXcolor{% - \extractcolorspec{#1}#2% - \expandafter\convertcolorspec#2\HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \let#2\@empty - \HyColor@ErrorSpecNoXcolor{#3}{#4}% - }% - \fi - }% -} -\def\HyColor@ErrorModelNoXcolor#1#2{% - \PackageError{#1}{% - Color model `\HyColor@model' is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `#2=[\HyColor@model]{\HyColor@values}'% - }\@ehc -} -\def\HyColor@ErrorSpecNoXcolor#1#2{% - \PackageError{#1}{% - This color specification is not supported\MessageBreak - without package `xcolor' in\MessageBreak - `#2=\HyColor@values'% - }\@ehc -} -\def\HyColor@IfModel#1{% - \@ifnextchar[{% - \HyColor@WithModel - }{% - \HyColor@WithoutModel - }% - #1\@nil -} -\def\HyColor@WithModel[#1]#2\@nil{% - \HyColor@DefSanitized\HyColor@model{#1}% - \HyColor@DefSanitized\HyColor@values{#2}% - \@firstoftwo -} -\def\HyColor@WithoutModel#1\@nil{% - \let\HyColor@model\relax - \HyColor@DefSanitized\HyColor@values{#1}% - \@secondoftwo -} -\long\def\@ReturnAfterFi#1\fi{\fi#1} -\def\HyColor@IfXcolor{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \expandafter\@secondoftwo - \else - \expandafter\@firstoftwo - \fi -} -\def\HyColor@model@empty{empty} -\@onelevel@sanitize\HyColor@model@empty -\def\HyColor@model@gray{gray} -\@onelevel@sanitize\HyColor@model@gray -\def\HyColor@model@rgb{rgb} -\@onelevel@sanitize\HyColor@model@rgb -\def\HyColor@model@cmyk{cmyk} -\@onelevel@sanitize\HyColor@model@cmyk -\def\HyColor@model@Gray{Gray} -\@onelevel@sanitize\HyColor@model@Gray -\def\HyColor@UseColor#1{% - \ifx#1\relax - \else - \ifx#1\@empty - \else - \expandafter\HyColor@@UseColor#1\@nil - \fi - \fi -} -\def\HyColor@@UseColor{% - \@ifnextchar[\HyColor@@@UseColor\HyColor@@@@UseColor -} -\def\HyColor@@@UseColor[#1]#2\@nil{% - \color[{#1}]{#2}% -} -\def\HyColor@@@@UseColor#1\@nil{% - \color{#1}% -} -\def\HyColor@HyperrefColor#1#2{% - \HyColor@IfModel{#1}{% - \edef#2{[{\HyColor@model}]{\HyColor@values}}% - }{% - \let#2\HyColor@values - \ifx#2\@empty - \let#2\relax - \fi - }% -} -\def\HyColor@XZeroOneThreeFour#1#2#3#4{% - \HyColor@IfModel{#1}{% - \ifx\HyColor@model\HyColor@model@empty - \let#2\@empty - \else\ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum - \expandafter{\HyColor@values}#2% - \else\ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@cmyk - \expandafter\HyColor@NormalizeCommaCMYK\HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@Gray - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@gray#2% - \expandafter\HyColor@NormalizeNum\expandafter{#2}#2% - \let\HyColor@model\HyColor@model@gray - }{% - \let#2\relax - \HyColor@ErrorModelNoXcolor{#3}{#4}% - }% - \else - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - \let\HyColor@model\HyColor@model@rgb - }{% - \let#2\relax - \HyColor@ErrorModelNoXcolor{#3}{#4}% - }% - \fi\fi\fi\fi\fi - }{% - \let#2\HyColor@values - \ifx#2\@empty - \let#2\relax - \else - \expandafter\HyColor@IfRGB\expandafter{\HyColor@values}{% - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - }{% - \HyColor@IfXcolor{% - \expandafter\extractcolorspec\expandafter{\HyColor@values}#2% - \edef\HyColor@model{\expandafter\@firstoftwo#2}% - \edef\HyColor@values{\expandafter\@secondoftwo#2}% - \ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum\expandafter - {\HyColor@values}#2% - \else\ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB - \HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@cmyk - \expandafter\HyColor@NormalizeCommaCMYK - \HyColor@values\@nil#2% - \else\ifx\HyColor@model\HyColor@model@Gray - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@gray#2% - \expandafter\HyColor@NormalizeNum\expandafter - {\HyColor@values}#2% - \let\HyColor@model\HyColor@model@gray - \else - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - \let\HyColor@model\HyColor@model@rgb - \fi\fi\fi\fi - }{% - \let#2\relax - \HyColor@ErrorSpecNoXcolor{#3}{#4}% - }% - }% - \fi - }% -} -\let\HyColor@FieldBColor\HyColor@XZeroOneThreeFour -\def\HyColor@FieldColor#1#2#3#4{% - \let\HyColor@model\@empty - \HyColor@XZeroOneThreeFour{#1}{#2}{#3}{#4}% - \ifx#2\relax - \let#2\@empty - \else - \ifx#2\@empty - \else - \ifx\HyColor@model\HyColor@model@gray - \edef#2{#2 g}% - \else\ifx\HyColor@model\HyColor@model@rgb - \edef#2{#2 rg}% - \else\ifx\HyColor@model\HyColor@model@cmyk - \edef#2{#2 k}% - \else - \PackageError{#3}{Internal error: unsupported color model}\@ehc - \fi\fi\fi - \fi - \fi -} -\newif\ifHyColor@result -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfmatch\endcsname\relax - \expandafter\@firstoftwo -\else - \expandafter\@secondoftwo -\fi -{% - \begingroup - \def\x#1{\endgroup - \def\HyColor@IfRGB##1{% - \HyColor@@IfRGB##1#1#1#1\@nil - }% - }% - \x{ }% - \edef\HyColor@TwoSpaces{\space\space}% - \def\HyColor@@IfRGB#1 #2 #3 #4\@nil{% - \HyColor@resulttrue - \def\HyColor@temp{#4}% - \ifx\HyColor@temp\HyColor@TwoSpaces - \HyColor@CheckNum{#1}% - \ifHyColor@result - \HyColor@CheckNum{#2}% - \ifHyColor@result - \HyColor@CheckNum{#3}% - \fi - \fi - \else - \HyColor@resultfalse - \fi - \ifHyColor@result - \let\HyColor@model\HyColor@model@rgb - \edef\HyColor@values{#1,#2,#3}% - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - }% - \def\HyColor@zero{0}% - \def\HyColor@one{1}% - \def\HyColor@dot{.}% - \def\HyColor@CheckNum#1{% - \def\HyColor@temp{#1}% - \ifx\HyColor@temp\@empty - \HyColor@resultfalse - \else - \edef\HyColor@temp{\@car#1\@nil}% - \ifx\HyColor@temp\HyColor@zero - \else - \ifx\HyColor@temp\HyColor@one - \else - \ifx\HyColor@temp\HyColor@dot - \else - \HyColor@resultfalse - \fi - \fi - \fi - \fi - }% -}{% - \def\HyColor@MatchNum{% - (0*1\string\.0*|0*1|0+\string\.?[0-9]*|\string\.[0-9]+)% - }% - \def\HyColor@IfRGB#1{% - \ifnum\pdfmatch{^\HyColor@MatchNum\space\HyColor@MatchNum - \space\HyColor@MatchNum$}{#1}>\z@ - \let\HyColor@model\HyColor@model@rgb - \edef\HyColor@values{% - \expandafter\strip@prefix\pdflastmatch1,% - \expandafter\strip@prefix\pdflastmatch2,% - \expandafter\strip@prefix\pdflastmatch3% - }% - \HyColor@resulttrue - \expandafter\@firstoftwo - \else - \HyColor@resultfalse - \expandafter\@secondoftwo - \fi - }% -} -\def\HyColor@HyperrefBorderColor#1#2#3#4{% - \HyColor@IfModel{#1}{% - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \ifx\HyColor@model\HyColor@model@rgb - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - \else - \ifx\HyColor@model\HyColor@model@gray - \expandafter\HyColor@NormalizeNum - \expandafter{\HyColor@values}#2% - \edef#2{#2 #2 #2}% - \else - \let#2\relax - \HyColor@ErrorModelNoXcolor{#3}{#4}% - \fi - \fi - }% - }{% - \let#2\HyColor@values - \ifx#2\@empty - \let#2\relax - \else - \expandafter\HyColor@IfRGB\expandafter{\HyColor@values}{% - \expandafter\HyColor@NormalizeCommaRGB\HyColor@values\@nil#2% - }{% - \HyColor@IfXcolor{% - \extractcolorspec{#1}#2% - \expandafter\convertcolorspec#2\HyColor@model@rgb#2% - \expandafter\HyColor@NormalizeCommaRGB#2\@nil#2% - }{% - \let#2\relax - \HyColor@ErrorSpecNoXcolor{#3}{#4}% - }% - }% - \fi - }% -} -\def\HyColor@DetectPdfVersion{% - \begingroup\expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname Hy@pdfversion\endcsname\relax - \global\chardef\HyColor@PdfVersion=0 % - \else - \global\chardef\HyColor@PdfVersion=\Hy@pdfversion\relax - \fi - \global\let\HyColor@DetectPdfVersion\relax -} -\def\HyColor@SpaceToComma#1 #2\@nil{% - #1% - \ifx\relax#2\relax - \expandafter\@gobble - \else - ,% - \expandafter\@firstofone - \fi - {% - \HyColor@SpaceToComma#2\@nil - }% -}% -\def\HyColor@AttachfileColor#1#2#3#4#5#6{% - \def#2{#1}% - \ifx#2\@empty - \let#3\@gobble - \let#4\@empty - \else - \HyColor@resultfalse - \HyColor@XZeroOneThreeFour{#1}#3{#5}{#6}% - \ifHyColor@result - \edef#2{% - [rgb]{\expandafter\HyColor@SpaceToComma#3 \@nil}% - }% - \fi - \ifx\HyColor@model\HyColor@model@rgb - \edef#4{/C[#3]}% hash-ok - \edef#3##1{% - #3 % - \noexpand\csname atfi@SETRGBCOLOR##1\noexpand\endcsname - }% - \else - \ifx\HyColor@model\HyColor@model@gray - \HyColor@DetectPdfVersion - \ifnum\HyColor@PdfVersion<7 % - \edef#4{/C[#3 #3 #3]}% hash-ok - \else - \edef#4{/C[#3]}% hash-ok - \fi - \edef#3##1{% - #3 % - \noexpand\csname atfi@SETGRAYCOLOR##1\noexpand\endcsname - }% - \else - \ifx\HyColor@model\HyColor@model@cmyk - \HyColor@DetectPdfVersion - \ifnum\HyColor@PdfVersion<7 % - \HyColor@IfModel{#1}{% - \HyColor@IfXcolor{% - \convertcolorspec\HyColor@model\HyColor@values - \HyColor@model@rgb#4% - \expandafter\HyColor@NormalizeCommaRGB#4\@nil#4% - \edef#4{/C[#4]}% hash-ok - }{% - \let#4\@empty - \HyColor@ErrorModelNoXcolor{#5}{#6}% - }% - }{% - \HyColor@IfXcolor{% - \extractcolorspec{#1}#4% - \expandafter\convertcolorspec#4% - \HyColor@model@rgb#4% - \expandafter\HyColor@NormalizeCommaRGB#4\@nil#4% - \edef#4{/C[#4]}% hash-ok - }{% - \let#4\@empty - \HyColor@ErrorSpecNoXcolor{#5}{#6}% - }% - }% - \else - \edef#4{/C[#3]}% hash-ok - \fi - \edef#3##1{% - #3 % - \noexpand\csname atfi@SETCMYKCOLOR##1\noexpand\endcsname - }% - \else - \ifx\HyColor@model\HyColor@model@empty - \PackageError{#5}{% - Color model `empty' is not permitted for option `#6'% - }\@ehc - \let#2\@empty - \let#3\@gobble - \let#4\@empty - \else - \ifx\HyColor@model\relax % (missing xcolor) - \let#3\@gobble - \let#4\@empty - \else - \PackageError{#5}{% - Internal error: unsupported color model% - }\@ehc - \fi - \fi - \fi - \fi - \fi - \fi -} -%% \section{Installation} -\endinput -%% -%% End of file `hycolor.sty'. diff --git a/Master/texmf-dist/tex/latex/oberdiek/refcount.sty b/Master/texmf-dist/tex/latex/oberdiek/refcount.sty deleted file mode 100644 index 5b5fb667f81..00000000000 --- a/Master/texmf-dist/tex/latex/oberdiek/refcount.sty +++ /dev/null @@ -1,403 +0,0 @@ -%% -%% This is file `refcount.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% refcount.dtx (with options: `package') -%% -%% This is a generated file. -%% -%% Project: refcount -%% Version: 2016/05/16 v3.5 -%% -%% Copyright (C) -%% 1998, 2000, 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/oberdiek/issues -%% -%% -%% This work consists of the main source file refcount.dtx -%% and the derived files -%% refcount.sty, refcount.pdf, refcount.ins, refcount.drv, -%% refcount-test1.tex, refcount-test2.tex, refcount-test3.tex, -%% refcount-test4.tex, refcount-test5.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@refcount.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{refcount}{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@refcount.sty\endcsname -\ProvidesPackage{refcount}% - [2016/05/16 v3.5 Data extraction from label references (HO)]% -\begingroup\catcode61\catcode48\catcode32=10\relax% - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode64=11 % @ - \def\x{\endgroup - \expandafter\edef\csname rc@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\rc@AtEnd{% - \rc@AtEnd - \catcode#1=\the\catcode#1\relax - }% - \catcode#1=#2\relax -} -\TMP@EnsureCode{33}{12}% ! -\TMP@EnsureCode{39}{12}% ' -\TMP@EnsureCode{42}{12}% * -\TMP@EnsureCode{45}{12}% - -\TMP@EnsureCode{46}{12}% . -\TMP@EnsureCode{47}{12}% / -\TMP@EnsureCode{91}{12}% [ -\TMP@EnsureCode{93}{12}% ] -\TMP@EnsureCode{96}{12}% ` -\edef\rc@AtEnd{\rc@AtEnd\noexpand\endinput} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input ltxcmds.sty\relax - \input infwarerr.sty\relax -\else - \RequirePackage{ltxcmds}[2011/11/09]% - \RequirePackage{infwarerr}[2010/04/08]% -\fi -\ltx@IfUndefined{@ifdefinable}{% - \def\rc@IfDefinable#1{% - \ifx#1\ltx@undefined - \expandafter\ltx@firstofone - \else - \ifx#1\relax - \expandafter\expandafter\expandafter\ltx@firstofone - \else - \@PackageError{refcount}{% - Command \string#1 is already defined.\MessageBreak - It will not redefined by this package% - }\@ehc - \expandafter\expandafter\expandafter\ltx@gobble - \fi - \fi - }% -}{% - \let\rc@IfDefinable\@ifdefinable -} -\ltx@IfUndefined{protected}{% - \ltx@IfUndefined{DeclareRobustCommand}{% - \def\rc@RobustDefOne#1#2#3#4{% - \rc@IfDefinable#3{% - #1\def#3##1{#4}% - }% - }% - \def\rc@RobustDefZero#1#2{% - \rc@IfDefinable#1{% - \def#1{#2}% - }% - }% - }{% - \def\rc@RobustDefOne#1#2#3#4{% - \rc@IfDefinable#3{% - \DeclareRobustCommand#2#3[1]{#4}% - }% - }% - \def\rc@RobustDefZero#1#2{% - \rc@IfDefinable#1{% - \DeclareRobustCommand#1{#2}% - }% - }% - }% -}{% - \def\rc@RobustDefOne#1#2#3#4{% - \rc@IfDefinable#3{% - \protected#1\def#3##1{#4}% - }% - }% - \def\rc@RobustDefZero#1#2{% - \rc@IfDefinable#1{% - \protected\def#1{#2}% - }% - }% -} -\ltx@IfUndefined{newcommand}{% - \def\rc@newcommand*#1[#2]#3{% hash-ok - \rc@IfDefinable#1{% - \ifcase#2 % - \def#1{#3}% - \or - \def#1##1{#3}% - \or - \def#1##1##2{#3}% - \else - \rc@InternalError - \fi - }% - }% -}{% - \let\rc@newcommand\newcommand -} -\rc@RobustDefOne\long{}\setrefcountdefault{% - \def\rc@default{#1}% -} -\setrefcountdefault{0} -\ltx@IfUndefined{G@refundefinedtrue}{% - \rc@RobustDefOne{}{*}\refused{% - \begingroup - \csname @safe@activestrue\endcsname - \ltx@IfUndefined{r@#1}{% - \protect\G@refundefinedtrue - \rc@WarningUndefined{#1}% - }{}% - \endgroup - }% -}{% - \rc@RobustDefOne{}{*}\refused{% - \begingroup - \csname @safe@activestrue\endcsname - \ltx@IfUndefined{r@#1}{% - \csname protect\expandafter\endcsname - \csname G@refundefinedtrue\endcsname - \rc@WarningUndefined{#1}% - }{}% - \endgroup - }% -} -\ltx@IfUndefined{@latex@warning}{% - \def\rc@WarningUndefined#1{% - \ltx@ifundefined{thepage}{% - \def\thepage{\number\count0 }% - }{}% - \@PackageWarning{refcount}{% - Reference `#1' on page \thepage\space undefined% - }% - }% -}{% - \def\rc@WarningUndefined#1{% - \@latex@warning{% - Reference `#1' on page \thepage\space undefined% - }% - }% -} -\def\rc@set#1#2#3#4{% - \begingroup - \csname @safe@activestrue\endcsname - \refused{#4}% - \expandafter\rc@@set\csname r@#4\endcsname{#1}{#2}{#3}% - \endgroup -} -\def\rc@@set#1#2#3#4{% - \ifx#1\relax - #2{#4}{\rc@default}% - \else - #2{#4}{% - \expandafter#3#1\rc@default\rc@default\@nil - }% - \fi -} -\rc@RobustDefZero\setcounterref{% - \rc@set\setcounter\ltx@car -} -\rc@RobustDefZero\addtocounterref{% - \rc@set\addtocounter\ltx@car -} -\rc@RobustDefZero\setcounterpageref{% - \rc@set\setcounter\ltx@carsecond -} -\rc@RobustDefZero\addtocounterpageref{% - \rc@set\addtocounter\ltx@carsecond -} -\rc@newcommand*{\getrefnumber}[1]{% - \romannumeral - \ltx@ifundefined{r@#1}{% - \expandafter\ltx@zero - \rc@default - }{% - \expandafter\expandafter\expandafter\rc@extract@ - \expandafter\expandafter\expandafter!% - \csname r@#1\expandafter\endcsname - \expandafter{\rc@default}\@nil - }% -} -\rc@newcommand*{\getpagerefnumber}[1]{% - \romannumeral - \ltx@ifundefined{r@#1}{% - \expandafter\ltx@zero - \rc@default - }{% - \expandafter\expandafter\expandafter\rc@extract@page - \expandafter\expandafter\expandafter!% - \csname r@#1\expandafter\expandafter\expandafter\endcsname - \expandafter\expandafter\expandafter{% - \expandafter\rc@default - \expandafter}\expandafter{\rc@default}\@nil - }% -} -\rc@newcommand*{\getrefbykeydefault}[2]{% - \romannumeral - \expandafter\rc@getrefbykeydefault - \csname r@#1\expandafter\endcsname - \csname rc@extract@#2\endcsname -} -\long\def\rc@getrefbykeydefault#1#2#3{% - \ifx#1\relax - % reference is undefined - \ltx@ReturnAfterElseFi{% - \ltx@zero - #3% - }% - \else - \ltx@ReturnAfterFi{% - \ifx#2\relax - % extract method is missing - \ltx@ReturnAfterElseFi{% - \ltx@zero - #3% - }% - \else - \ltx@ReturnAfterFi{% - \expandafter - \rc@generic#1{#3}{#3}{#3}{#3}{#3}\@nil#2{#3}% - }% - \fi - }% - \fi -} -\long\def\rc@generic#1#2\@nil#3#4{% - #3{#1\TR@TitleReference\@empty{#4}\@nil}{#1}#2\@nil -} -\long\def\rc@extract@#1#2#3\@nil{% - \ltx@zero - #2% -} -\long\def\rc@extract@page#1#2#3#4\@nil{% - \ltx@zero - #3% -} -\long\def\rc@extract@name#1#2#3#4#5\@nil{% - \ltx@zero - #4% -} -\long\def\rc@extract@anchor#1#2#3#4#5#6\@nil{% - \ltx@zero - #5% -} -\long\def\rc@extract@url#1#2#3#4#5#6#7\@nil{% - \ltx@zero - #6% -} -\long\def\rc@extract@title#1#2\@nil{% - \rc@@extract@title#1% -} -\long\def\rc@@extract@title#1\TR@TitleReference#2#3#4\@nil{% - \ltx@zero - #3% -} -\rc@newcommand*{\IfRefUndefinedExpandable}[1]{% - \ltx@ifundefined{r@#1}\ltx@firstoftwo\ltx@secondoftwo -} -\rc@RobustDefOne{}*\IfRefUndefinedBabel{% - \begingroup - \csname safe@actives@true\endcsname - \expandafter\expandafter\expandafter\endgroup - \expandafter\ifx\csname r@#1\endcsname\relax - \expandafter\ltx@firstoftwo - \else - \expandafter\ltx@secondoftwo - \fi -} -\rc@AtEnd% -%% \section{Installation} -\endinput -%% -%% End of file `refcount.sty'. diff --git a/Master/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty b/Master/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty deleted file mode 100644 index 8e8a828bea5..00000000000 --- a/Master/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty +++ /dev/null @@ -1,197 +0,0 @@ -%% -%% This is file `xcolor-patch.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% hycolor.dtx (with options: `xcolor') -%% -%% This is a generated file. -%% -%% Project: hycolor -%% Version: 2016/05/16 v1.8 -%% -%% Copyright (C) -%% 2007-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/oberdiek/issues -%% -%% -%% This work consists of the main source file hycolor.dtx -%% and the derived files -%% hycolor.sty, hycolor.pdf, hycolor.ins, hycolor.drv, -%% xcolor-patch.sty, hycolor-test1.tex, hycolor-test2.tex, -%% hycolor-test3.tex, hycolor-test-xcol1.tex, -%% hycolor-test-xcol2.tex, hycolor-test-xcol3.tex, -%% hycolor-test-xcol4.tex. -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{xcolor-patch}[2016/05/16 xcolor patch] -\RequirePackage{hopatch}[2016/05/16] -\hopatch@AfterPackage{xcolor}{% - \long\def\reserved@a#1#2#3{% - \long\def\@@tmp##1##2{% - \ifx#1##1% - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\@@tmp - \fi - }% - \@@tmp#2#1{#3}\@nnil\the\toks@ - }% - \ifx\XC@ifxcase\reserved@a - \long\def\XC@ifxcase#1#2#3{% - \long\def\XC@if@##1##2{% - \ifx#1##1% - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\XC@if@ - \fi - }% - \XC@if@#2#1{#3}\@nnil - \the\toks@ - }% - \fi - \long\def\reserved@a#1#2#3{% - \long\def\@@tmp##1##2{% - \@expandtwoargs\in@{,#1,}{,##1,}% - \ifin@ - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\@@tmp - \fi - }% - \@@tmp#2{#1}{#3}\@nnil - \the\toks@ - }% - \ifx\XC@ifcase\reserved@a - \long\def\XC@ifcase#1#2#3{% - \long\def\XC@if@##1##2{% - \@expandtwoargs\in@{,#1,}{,##1,}% - \ifin@ - \toks@{##2}% - \expandafter\remove@to@nnil - \else - \expandafter\XC@if@ - \fi - }% - \XC@if@#2{#1}{#3}\@nnil - \the\toks@ - }% - \fi - \def\reserved@a#1,{% - \XC@ifxcase\tm{% - \XC@mod@rgb{% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@cmy{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@cmyk{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{0,0,0,\@@tmp}% - }% - \XC@mod@RGB{% - \edef\@@scl{\rangeRGB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@HTML{% - \edef\@@scl{\@cclv}% - \XC@calcM{#1}\@@tmp - \XC@calcH\@@tmp\@@tmp - \edef\@@tmp{\@@tmp\@@tmp\@@tmp}% - }% - \XC@mod@HSB{% - \edef\@@scl{\rangeHSB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - \XC@mod@Gray{% - \edef\@@scl{\rangeGray}% - \XC@calcM{#1}\@@tmp - }% - }% - {% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - }% - \ifx\XC@cnv@gray\reserved@a - \def\XC@cnv@gray#1,{% - \XC@ifxcase\tm{% - \XC@mod@rgb{% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@gray{}% - \XC@mod@cmy{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@cmyk{% - \XC@calcC{#1}\@@tmp - \edef\@@tmp{0,0,0,\@@tmp}% - }% - \XC@mod@RGB{% - \edef\@@scl{\rangeRGB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}% - }% - \XC@mod@HTML{% - \edef\@@scl{\@cclv}% - \XC@calcM{#1}\@@tmp - \XC@calcH\@@tmp\@@tmp - \edef\@@tmp{\@@tmp\@@tmp\@@tmp}% - }% - \XC@mod@HSB{% - \edef\@@scl{\rangeHSB}% - \XC@calcM{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - \XC@mod@Gray{% - \edef\@@scl{\rangeGray}% - \XC@calcM{#1}\@@tmp - }% - }% - {% - \XC@calcN{#1}\@@tmp - \edef\@@tmp{0,0,\@@tmp}% - }% - }% - \fi - \@ifundefined{XC@frameb@x }{% - \expandafter\let\csname XC@frameb@x \endcsname\XC@frameb@x - \edef\XC@frameb@x{% - \noexpand\protect - \expandafter\noexpand\csname XC@frameb@x \endcsname - }% - \expandafter\ifx\csname XC@frameb@x \endcsname\@frameb@x - \let\@frameb@x\XC@frameb@x - \fi - }{}% -} -%% \section{Installation} -\endinput -%% -%% End of file `xcolor-patch.sty'. diff --git a/Master/tlpkg/tlpsrc/oberdiek.tlpsrc b/Master/tlpkg/tlpsrc/oberdiek.tlpsrc index e93731245f5..3a7e0ec4829 100644 --- a/Master/tlpkg/tlpsrc/oberdiek.tlpsrc +++ b/Master/tlpkg/tlpsrc/oberdiek.tlpsrc @@ -1,28 +1,7 @@ +depend auxhook depend grfext depend grffile depend iftex depend kvoptions depend infwarerr depend pdftexcmds -# following have been split off from oberdiek: -# attachfile2 -# bookmark -# embedfile -# epstopdf-pkg -# grfext -# grffile -# hobsub -# infwarerr -# iftex -# inputenx -# kvoptions -# letltxmacro -# luacolor -# magicnum -# makerobust -# mleftright -# pdfcolmk -# pdftexcmds -# stringenc -# transparent -# zref |