From 200aa93862fd8511bede341b796d2a569643d325 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 13 Jan 2006 00:07:42 +0000 Subject: stack git-svn-id: svn://tug.org/texlive/trunk@1344 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/stack/relinput.sty | 48 ++++++++++++++ Master/texmf-dist/tex/latex/stack/stack.sty | 92 ++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/stack/relinput.sty create mode 100644 Master/texmf-dist/tex/latex/stack/stack.sty (limited to 'Master/texmf-dist/tex/latex/stack') diff --git a/Master/texmf-dist/tex/latex/stack/relinput.sty b/Master/texmf-dist/tex/latex/stack/relinput.sty new file mode 100644 index 00000000000..423c88e0e82 --- /dev/null +++ b/Master/texmf-dist/tex/latex/stack/relinput.sty @@ -0,0 +1,48 @@ +%% +%% This is file `relinput.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% stack.dtx (with options: `test') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from relinput.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file stack.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesPackage{relinput}[2002/01/20 v1.00 Relative input] +\RequirePackage{stack} +\NewStack{reldir}{.} +\newcommand\relinput[2]{% + \Push{reldir}{\Stack{reldir}/#1}% + \input{\Stack{reldir}/#2}% + \Pop{reldir}% +} +\endinput +%% +%% End of file `relinput.sty'. diff --git a/Master/texmf-dist/tex/latex/stack/stack.sty b/Master/texmf-dist/tex/latex/stack/stack.sty new file mode 100644 index 00000000000..d76b3759788 --- /dev/null +++ b/Master/texmf-dist/tex/latex/stack/stack.sty @@ -0,0 +1,92 @@ +%% +%% This is file `stack.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% stack.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from stack.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file stack.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\ProvidesPackage{stack}[2002/01/20 v1.0 Multi-stack system] +\newcount\tmp@stack +\newcommand\NewStack[2]{% + \expandafter\gdef\csname #1@count\endcsname{0}% + \expandafter\do@stack@macro\csname #1@count\endcsname{#1}{#2}% +} +\newcommand\do@stack@macro[3]{% + \expandafter\newcommand\expandafter*% + \csname stack@#2\endcsname{% + \expandafter\ifx\csname #2@\romannumeral#1\endcsname\relax + #3% + \else + \csname #2@\romannumeral#1\endcsname + \fi + }% +} +\newcommand\Stack[1]{% + \ifx\csname #1@count\endcsname\relax + \PackageError{stack}{Undefined stack #1}{You should first create the + stack with \NewStack}% + \else + \csname stack@#1\endcsname + \fi +} +\newcommand\Push[2]{% + \ifx\csname #1@count\endcsname\relax + \PackageError{stack}{Undefined stack #1}{You should first create the + stack with \NewStack}% + \else + \edef\stack@newtop{#2}% + \tmp@stack\csname #1@count\endcsname\relax + \global\advance\tmp@stack by 1\relax + \expandafter\xdef\csname #1@count\endcsname{\the\tmp@stack}% + \expandafter\xdef\csname #1@\romannumeral\tmp@stack\endcsname + {\stack@newtop}% + \fi +} +\newcommand\Pop[1]{% + \ifx\csname #1@count\endcsname\relax + \PackageError{stack}{Undefined stack #1}{You should first create the + stack with \NewStack}% + \else + \tmp@stack\csname #1@count\endcsname\relax + \ifnum\tmp@stack>0\relax + \advance\tmp@stack by -1\relax + \expandafter\xdef\csname #1@count\endcsname{\the\tmp@stack}% + \fi + \fi +} +\newcommand\ShowTop[1]{% + {\edef\top{\Stack{#1}}% + \typeout{The top of #1: \top}}} +\endinput +%% +%% End of file `stack.sty'. -- cgit v1.2.3