summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/permute
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:02:22 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:02:22 +0000
commit3c2ab21b01847865f1c40e1c0fd86a7f091616a6 (patch)
treeb174a23922fd4e5d8e4ed10d19ff9bd0332e3259 /Master/texmf-dist/tex/latex/permute
parent06b98fc34ac3fb5bb3d389e511c1f67462349f1d (diff)
permute
git-svn-id: svn://tug.org/texlive/trunk@1188 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/permute')
-rw-r--r--Master/texmf-dist/tex/latex/permute/permute.sty283
1 files changed, 283 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/permute/permute.sty b/Master/texmf-dist/tex/latex/permute/permute.sty
new file mode 100644
index 00000000000..5d6f27922b5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/permute/permute.sty
@@ -0,0 +1,283 @@
+%%
+%% This is file `permute.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% permute.dtx (with options: `package')
+%%
+%% (w)(c) 1997,1998,1999 by Carsten Heinz
+%%
+%% All files of the permute package are distributed freely.
+%% You are not allowed to take money for the distribution or use of these
+%% files, except for a nominal charge for copying etc..
+%%
+%% The files are distributed without any warranty, express or implied, as to
+%% merchantability or fitness for any particular purpose.
+%%
+%% You are not allowed to distribute any changed version of the package,
+%% neither under the same name nor under a different one.
+%% You are not allowed to change one of the files, except using a clearly
+%% different file name.
+%%
+\ProvidesPackage{permute}[1999/11/10 v0.12 (aeio)(cdt)(knm)]
+\def\pmt@firsttrue{\let\pmt@iffirst\iftrue}
+\def\pmt@firstfalse{\let\pmt@iffirst\iffalse}
+\def\pmt@foundtrue{\let\pmt@iffound\iftrue}
+\def\pmt@foundfalse{\let\pmt@iffound\iffalse}
+\def\pmt@septrue{\let\pmt@ifsep\iftrue}
+\def\pmt@sepfalse{\let\pmt@ifsep\iffalse}
+\def\pmt@GetPreimageOf#1#2{%
+ \def\pmt@image{#1}\pmt@firsttrue
+ \expandafter\pmt@GIO@#2\relax\relax}
+\def\pmt@GetImageOf#1#2{%
+ \def\pmt@preimage{#1}\let\pmt@gio\@empty \pmt@firstfalse
+ \expandafter\pmt@GIO@#2\relax\relax
+ \let#2\pmt@gio}
+\def\pmt@GIO@#1#2{%
+ \pmt@iffirst \def\pmt@preimage{#2}\else
+ \def\pmt@image{#1}\fi
+ \ifx\pmt@image\pmt@preimage
+ \def\pmt@preimage{#1}\def\pmt@image{#2}\pmt@foundtrue
+ \expandafter\pmt@GIO@@
+ \else
+ \ifx\relax#2%
+ \pmt@foundfalse
+ \pmt@iffirst \let\pmt@preimage\pmt@image
+ \else \let\pmt@image\pmt@preimage \fi
+ \expandafter\@gobbletwo
+ \else
+ \pmt@iffirst\else \pmt@AddTo\pmt@gio{{#1}{#2}}\fi
+ \fi
+ \expandafter\pmt@GIO@
+ \fi}
+\def\pmt@GIO@@#1\relax\relax{%
+ \pmt@iffirst\else \pmt@AddTo\pmt@gio{#1}\fi}
+\def\pmt@AddTo#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+\def\pmt@Extend#1#2{%
+ \expandafter\pmt@AddTo\expandafter#1\expandafter{#2}}
+\def\pmt@Whirl#1#2#3{%
+ \let\pmt@b#2\let\pmt@c#3\let\pmt@a\@empty
+ \pmt@Whirl@
+ \let#1\pmt@a}
+\def\pmt@Whirl@{%
+ \ifx\pmt@c\@empty
+ \pmt@Extend\pmt@a\pmt@b
+ \else
+ \expandafter\pmt@Whirl@@\pmt@c\relax
+ \expandafter\pmt@Whirl@
+ \fi}
+\def\pmt@Whirl@@#1#2#3\relax{%
+ \def\pmt@first{#1}\def\pmt@c{#3}%
+ \pmt@GetImageOf{#2}\pmt@b
+ \ifx\pmt@first\pmt@image\else
+ \def\pmt@first{{#1}}%
+ \pmt@Extend\pmt@first{\expandafter{\pmt@image}}%
+ \pmt@Extend\pmt@a\pmt@first
+ \fi}
+\def\pmt@InputError#1{\PackageError{Permute}{#1}\@ehd}
+\def\pmt@GetPmt#1#2{%
+ \def\pmt@a{#2}%
+ \pmt@foundtrue \pmt@firstfalse
+ \@ifnextchar({\let\pmt@a\@empty \pmt@GetCPmt}%
+ \pmt@GetVPmt
+ #2\relax\relax
+ \let#1\pmt@a}
+\def\pmt@GetVPmt#1#2{%
+ \ifx\relax#2%
+ \ifx\relax#1\else
+ \pmt@InputError{Odd number of tokens}%
+ \let\pmt@a\@empty
+ \fi
+ \else
+ \expandafter\pmt@GetVPmt
+ \fi}
+\def\pmt@GetCPmt#1{%
+ \ifx#1\relax
+ \pmt@iffound\else \pmt@InputError{Missing `)'}\fi
+ \expandafter\@gobble
+ \else
+ \ifx#1)%
+ \pmt@iffound
+ \pmt@InputError{Extra `)'}%
+ \else
+ \pmt@iffirst\else
+ \pmt@Extend\pmt@c\pmt@first
+ \pmt@Whirl\pmt@a\pmt@a\pmt@c
+ \fi
+ \pmt@foundtrue
+ \fi
+ \else
+ \ifx#1(%
+ \pmt@iffound\else
+ \pmt@InputError{Extra `(' or missing `)'}%
+ \fi
+ \pmt@firsttrue \pmt@foundfalse
+ \else
+ \pmt@iffound
+ \pmt@InputError{Missing `('}%
+ \else
+ \pmt@iffirst
+ \pmt@firstfalse \def\pmt@first{{#1}}\def\pmt@c{{#1}}%
+ \else
+ \pmt@AddTo\pmt@c{{#1}{#1}}%
+ \fi
+ \fi\fi\fi
+ \fi
+ \pmt@GetCPmt}
+\def\pmt@PrintVPmt#1{%
+ \let\pmt@a#1\pmt@sepfalse
+ \ensuremath{\pmtldelim
+ \expandafter\pmt@PrintVPmt@\pmt@order\relax
+ \pmtrdelim}}
+\def\pmt@PrintVPmt@#1{%
+ \ifx\relax#1\@empty \else
+ \pmt@GetImageOf{#1}\pmt@a
+ \pmt@ifsep \pmt@separator \else \pmt@septrue \fi
+ \mkern1mu%
+ \pmt@ifshort \pmt@image
+ \else{\pmt@preimage\atop\pmt@image}\fi
+ \mkern1mu%
+ \expandafter\pmt@PrintVPmt@
+ \fi}
+\def\pmtshorttrue{\let\pmt@ifshort\iftrue}
+\def\pmtshortfalse{\let\pmt@ifshort\iffalse}
+\pmtshortfalse
+\def\pmt@GetFirst#1#2\relax{\def\pmt@first{#1}}
+\def\pmt@PrintPmt#1{%
+ \let\pmt@a#1%
+ \ifx\pmt@a\@empty \pmtidname \else
+ \expandafter\pmt@PrintPmt@\pmt@order\relax
+ \fi}
+\def\pmt@PrintPmt@#1{%
+ \ifx\relax#1\@empty
+ \expandafter\pmt@PrintPmt@@
+ \else
+ \def\pmt@first{#1}\pmt@PrintCycle
+ \expandafter\pmt@PrintPmt@
+ \fi}
+\def\pmt@PrintPmt@@{%
+ \ifx\pmt@a\@empty\else
+ \expandafter\pmt@GetFirst\pmt@a\relax
+ \pmt@PrintCycle
+ \expandafter\pmt@PrintPmt@@
+ \fi}
+\def\pmt@PrintCycle{%
+ \expandafter\pmt@GetImageOf\expandafter{\pmt@first}\pmt@a
+ \pmt@iffound
+ (\pmt@preimage\pmt@separator\pmt@image
+ \ifx\pmt@a\@empty\else \pmt@PrintCycle@\pmt@image \fi
+ )%
+ \fi}
+\def\pmt@PrintCycle@#1{%
+ \expandafter\pmt@GetImageOf\expandafter{#1}\pmt@a
+ \ifx\pmt@image\pmt@first\else
+ \pmt@separator\pmt@image
+ \ifx\pmt@a\@empty \expandafter\@gobblefour \fi
+ \expandafter\pmt@PrintCycle@\expandafter\pmt@image
+ \fi}
+\newcommand*\pmtidname{id}
+\newcommand*\pmtprintorder{123456789abcdefghi}
+\newcommand*\pmtseparator{ }
+\newcommand*\pmtldelim{\left(}
+\newcommand*\pmtrdelim{\right)}
+\newcommand*\pmttableborders{lt}
+\newcommand*\pmtarraystretch{2}
+\def\pmt@GetPrintArgs#1{%
+ \let\pmt@order\pmtprintorder \def\pmt@next{#1}%
+ \@ifstar{\let\pmt@separator\pmtseparator \pmt@GPA@}%
+ {\let\pmt@separator\@empty \pmt@GPA@}}
+\def\pmt@GPA@{\@ifnextchar[\pmt@GPA@@\pmt@next}
+\def\pmt@GPA@@[#1]{\def\pmt@order{#1}\pmt@next}
+\newcommand*\pmt {\pmt@GetPrintArgs{\pmt@\pmt@PrintPmt}}
+\newcommand*\pmtv{\pmt@GetPrintArgs{\pmt@\pmt@PrintVPmt}}
+\def\pmt@#1#2{\pmt@GetPmt\pmt@a{#2}#1\pmt@a}
+\newcommand*\pmtprint {\pmt@GetPrintArgs{\pmt@PrintPmt\pmt@curr}}
+\newcommand*\pmtvprint{\pmt@GetPrintArgs{\pmt@PrintVPmt\pmt@curr}}
+\def\pmt@OptName#1{\def\pmt@next##1{#1}%
+ \@ifnextchar[\pmt@OptName@{\pmt@next\pmt@curr}}
+\def\pmt@OptName@[#1]{%
+ \pmt@LoadPmt{#1}\pmt@a
+ \expandafter\pmt@next\csname pmt@s@#1\endcsname}
+\def\pmt@LoadPmt#1#2{%
+ \@ifundefined{pmt@s@#1}%
+ {\expandafter\let\csname pmt@s@#1\endcsname\@empty}
+ \expandafter\let\expandafter#2\csname pmt@s@#1\endcsname}
+\def\pmtsave#1{\expandafter\let\csname pmt@s@#1\endcsname\pmt@curr}
+\def\pmtload#1{\pmt@LoadPmt{#1}\pmt@curr}
+\newcommand*\pmtid{\pmt@OptName{\let##1\@empty \ignorespaces}}
+\pmtid
+\newcommand*\pmtdo{\pmt@OptName{\pmtdo@##1\pmt@a##1}}
+\newcommand*\pmtcirc{\pmt@OptName{\pmtdo@##1##1\pmt@a}}
+\def\pmtdo@#1#2#3#4{\pmt@GetPmt\pmt@a{#4}\pmt@Whirl#1#2#3\ignorespaces}
+\newcommand*\pmtimageof{\pmtimageof@\pmt@GetImageOf\pmt@image}
+\newcommand*\pmtpreimageof{\pmtimageof@\pmt@GetPreimageOf\pmt@preimage}
+\def\pmtimageof@#1#2{%
+ \@ifnextchar[{\pmtimageof@@#1#2}{\pmtimageof@@#1#2[]}}
+\def\pmtimageof@#1#2[#3]#4{%
+ \ifx\@empty#3\@empty
+ \let\pmt@a\pmt@curr
+ \else
+ \pmt@LoadPmt{#3}\pmt@a
+ \fi
+ #1{#4}\pmt@a
+ #2}
+\newcommand*\pmttable
+ {\begingroup
+ \def\pmtprint{\let\pmt@order\pmt@porder\pmt@PrintPmt\pmt@curr}%
+ \pmt@GetPrintArgs\pmt@PrintTable}
+\newcommand*\pmtvtable
+ {\begingroup
+ \def\pmtprint{\let\pmt@order\pmt@porder\pmt@PrintVPmt\pmt@curr}%
+ \pmt@GetPrintArgs\pmt@PrintTable}
+\def\pmt@PrintTable#1#2{%
+ \let\pmt@ifleft\iffalse
+ \pmt@topfalse
+ \expandafter\pmt@SetBorders\pmttableborders\relax
+ \let\pmt@porder\pmt@order
+ \let\arraystretch\pmtarraystretch
+ \@tempcnta\z@ \pmt@for{\advance\@tempcnta\@ne}{#2}%
+ \edef\pmt@next{%
+ \noexpand\begin{tabular}{\pmt@ifleft c|\else p{\z@}@{}\fi
+ *{\the\@tempcnta}{@{\ }c@{\ }}}}%
+ \pmt@next
+ \pmt@iftop
+ \pmt@ifleft \ensuremath{\circ}\fi
+ \pmt@for{&\pmtid\pmtdo{##1}\pmtprint}{#1}%
+ \\ \hline
+ \fi
+ \gdef\pmt@topperms{#2}\pmt@toptrue
+ \pmt@for{%
+ \pmt@iftop \pmt@topfalse \else \expandafter\\\fi
+ \pmt@ifleft \pmtid\pmtdo{##1}\pmtprint \fi
+ \pmt@PrintTableLine{##1}}%
+ {#1}%
+ \end{tabular}\endgroup}
+\def\pmt@PrintTableLine#1{%
+ \def\pmt@next{\pmt@PrintTableLine@{#1}}%
+ \expandafter\pmt@next\pmt@topperms,\relax,}
+\def\pmt@PrintTableLine@#1#2,{%
+ \ifx\relax#2\else
+ \def\pmt@next{&\pmtid\pmtdo{#2}\pmtdo{#1}\pmtprint
+ \pmt@PrintTableLine@{#1}}%
+ \expandafter\pmt@next
+ \fi}
+\def\pmt@for#1#2{%
+ \gdef\pmt@for@##1,{%
+ \ifx\relax##1\else
+ \def\pmt@next{#1\expandafter\pmt@for@}%
+ \expandafter\pmt@next
+ \fi}%
+ \pmt@for@#2,\relax,}
+\def\pmt@SetBorders#1{%
+ \ifx\relax#1\else
+ \if l#1\pmt@lefttrue \fi
+ \if t#1\pmt@toptrue \fi
+ \expandafter\pmt@SetBorders
+ \fi}
+\def\pmt@topfalse{\global\let\pmt@iftop\iffalse}
+\def\pmt@toptrue{\global\let\pmt@iftop\iftrue}
+\def\pmt@lefttrue{\let\pmt@ifleft\iftrue}
+\endinput
+%%
+%% End of file `permute.sty'.