summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/youngtab/youngtab.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/youngtab/youngtab.tex')
-rw-r--r--macros/latex/contrib/youngtab/youngtab.tex146
1 files changed, 146 insertions, 0 deletions
diff --git a/macros/latex/contrib/youngtab/youngtab.tex b/macros/latex/contrib/youngtab/youngtab.tex
new file mode 100644
index 0000000000..895a7c3267
--- /dev/null
+++ b/macros/latex/contrib/youngtab/youngtab.tex
@@ -0,0 +1,146 @@
+%%
+%% This is file `youngtab.tex',
+%% (manually) generated from `youngtab.sty'
+%% (For use with TeX)
+%%
+%% The original source files were:
+%%
+%% youngtab.dtx (with options: `package')
+%%
+%% Copyright (C) 1996,98,99 Volker B"orchers and Stefan Gieseke,
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+\catcode`\@11\relax
+\newif\ify@autoscale \y@autoscaletrue \def\Yautoscale#1{\ifnum #1=0
+ \y@autoscalefalse\else\y@autoscaletrue\fi}
+\newdimen\y@b@xdim
+\newdimen\y@boxdim \y@boxdim=13pt
+\def\Yboxdim#1{\y@autoscalefalse\y@boxdim=#1}
+\newdimen\y@linethick \y@linethick=.3pt
+\def\Ylinethick#1{\y@linethick=#1}
+\newskip\y@interspace \y@interspace=0ex plus 0.3ex
+\def\Yinterspace#1{\y@interspace=#1}
+\newif\ify@vcenter \y@vcenterfalse
+\def\Yvcentermath#1{\ifnum #1=0 \y@vcenterfalse\else\y@vcentertrue\fi}
+\newif\ify@stdtext \y@stdtextfalse
+\def\Ystdtext#1{\ifnum #1=0 \y@stdtextfalse\else\y@stdtexttrue\fi}
+\newif\ify@enable@skew \y@enable@skewfalse
+%% To use skew tableaux, define a macro \enableskew
+%% right before loading this file: \def\enableskew{1}
+\expandafter\ifx\csname enableskew\endcsname\relax
+ \y@enable@skewfalse \else \y@enable@skewtrue\fi
+%% \DeclareOption{noautoscale}{\y@autoscalefalse}
+%% \DeclareOption{vcentermath}{\y@vcentertrue}
+%% \DeclareOption{stdtext}{\y@vcentertrue}
+%% \DeclareOption{enableskew}{\y@enable@skewtrue}
+%% \DeclareOption*{\PackageWarning{youngtab}{%
+%% Unknown option `\CurrentOption' (Known:\MessageBreak
+%% `vcentermath', `noautoscale', `stdtext', `enableskew'.)}}
+%% \ProcessOptions\relax
+\def\y@vr{\vrule height0.8\y@b@xdim width\y@linethick depth 0.2\y@b@xdim}
+\def\y@emptybox{\y@vr\hbox to \y@b@xdim{\hfil}}
+\ify@enable@skew
+ \def\y@abcbox#1{\if :#1\else
+ \y@vr\hbox to \y@b@xdim{\hfil#1\hfil}\fi}
+ \def\y@mathabcbox#1{\if :#1\else
+ \y@vr\hbox to \y@b@xdim{\hfil$#1$\hfil}\fi}
+\else
+ \def\y@abcbox#1{\y@vr\hbox to \y@b@xdim{\hfil#1\hfil}}
+ \def\y@mathabcbox#1{\y@vr\hbox to \y@b@xdim{\hfil$#1$\hfil}}
+\fi
+\def\y@setdim{%
+ \ify@autoscale%
+ \ifvoid1\else\typeout{Package youngtab: box1 not free! Expect an
+ error!}\fi%
+ \setbox1=\hbox{A}\y@b@xdim=1.6\ht1 \setbox1=\hbox{}\box1%
+ \else\y@b@xdim=\y@boxdim \advance\y@b@xdim by -2\y@linethick
+ \fi}
+\newcount\y@counter
+\newif\ify@islastarg
+\def\y@lastargtest#1,#2 {\if\space #2 \y@islastargtrue
+ \else\y@islastargfalse\fi}
+\def\y@emptyboxes#1{\y@counter=#1\loop\ifnum\y@counter>0
+ \advance\y@counter by -1 \y@emptybox\repeat}
+\def\y@nelineemptyboxes#1{%
+ \vbox{%
+ \hrule height\y@linethick%
+ \hbox{\y@emptyboxes{#1}\y@vr}
+ \hrule height\y@linethick}\vskip-\y@linethick}
+\def\yng(#1){%
+ \y@setdim%
+ \hskip\y@interspace%
+ \ifmmode\ify@vcenter\vcenter\fi\fi{%
+ \y@lastargtest#1,
+ \vbox{\offinterlineskip
+ \ify@islastarg
+ \y@nelineemptyboxes{#1}
+ \else
+ \y@ungempty(#1)
+ \fi}}\hskip\y@interspace}
+\def\y@ungempty(#1,#2){%
+ \y@nelineemptyboxes{#1}
+ \y@lastargtest#2,
+ \ify@islastarg
+ \y@nelineemptyboxes{#2}
+ \else
+ \y@ungempty(#2)
+ \fi}
+\def\y@nelettertest#1#2. {\if\space #2 \y@islastargtrue
+ \else\y@islastargfalse\fi}
+\def\y@abcboxes#1#2.{%
+ \ify@stdtext\y@abcbox#1\else\y@mathabcbox#1\fi%
+ \y@nelettertest #2.
+ \ify@islastarg\unskip%
+ \ify@stdtext\y@abcbox{#2}\else\y@mathabcbox{#2}\fi%
+ \else\y@abcboxes#2.\fi}
+ \newdimen\y@full@b@xdim
+ \newcount\y@m@veright@cnt
+\ify@enable@skew
+ \def\y@get@m@veright@cnt#1#2.{%
+ \if :#1 \advance\y@m@veright@cnt by 1\y@get@m@veright@cnt#2.\fi}
+ \let\y@setdim@=\y@setdim
+ \def\y@setdim{%
+ \y@setdim@ \y@full@b@xdim=\y@b@xdim
+ \advance\y@full@b@xdim by 1\y@linethick}
+ \def\y@m@veright@ifskew#1{
+ \y@m@veright@cnt=0 \y@get@m@veright@cnt#1.
+ \moveright \y@m@veright@cnt\y@full@b@xdim}
+\else
+ \def\y@m@veright@ifskew#1{}
+\fi
+\def\y@nelineabcboxes#1{%
+ \y@nelettertest #1.
+ \ify@islastarg
+ \y@m@veright@ifskew{#1}
+ \vbox{
+ \hrule height\y@linethick%
+ \hbox{\ify@stdtext\y@abcbox#1\else\y@mathabcbox#1\fi\y@vr}
+ \hrule height\y@linethick}\vskip-\y@linethick
+ \else
+ \y@m@veright@ifskew{#1}
+ \vbox{
+ \hrule height\y@linethick%
+ \hbox{\y@abcboxes #1.\y@vr}%
+ \hrule height\y@linethick}\vskip-\y@linethick
+ \fi}
+\def\young(#1){%
+ \y@setdim%
+ \hskip\y@interspace%
+ \y@lastargtest#1,
+ \ifmmode\ify@vcenter\vcenter\fi\fi{%
+ \vbox{\offinterlineskip
+ \ify@islastarg\y@nelineabcboxes{#1}%
+ \else\y@ungabc(#1)%
+ \fi}}\hskip\y@interspace}
+\def\y@ungabc(#1,#2){%
+ \y@nelineabcboxes{#1}%
+ \y@lastargtest#2,
+ \ify@islastarg\y@nelineabcboxes{#2}%
+ \else\y@ungabc(#2)%
+ \fi}
+\catcode`\@12\relax
+\endinput
+%%
+%% End of file `youngtab.tex'.