summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/youngtab/youngtab.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:12:00 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:12:00 +0000
commit00d2addcd91a60783f8f5f8149c500a18793c18b (patch)
tree125cb7e58289e975b5698454a9da6663313cc5d6 /Master/texmf-dist/tex/latex/youngtab/youngtab.sty
parenta53e6ba26bc00a25456fbbf822dd30909721aa71 (diff)
youngtab
git-svn-id: svn://tug.org/texlive/trunk@1469 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/youngtab/youngtab.sty')
-rw-r--r--Master/texmf-dist/tex/latex/youngtab/youngtab.sty152
1 files changed, 152 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/youngtab/youngtab.sty b/Master/texmf-dist/tex/latex/youngtab/youngtab.sty
new file mode 100644
index 00000000000..833a3a2b885
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/youngtab/youngtab.sty
@@ -0,0 +1,152 @@
+%%
+%% This is file `youngtab.sty',
+%% generated with the docstrip utility.
+%%
+%% 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.
+%%
+%% File: youngtab.dtx
+%% 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.
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{youngtab}
+[1999/05/19 v1.1; Macros for Young-Tableaux]
+%% Package `youngtab' to use with TeX, LaTeX209 or LaTeX2e
+%% (You will need LaTeX2e to extract the documentation and a STY-file
+%% without comments from the .dtx file)
+\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
+\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}\vspace{-\y@linethick}}
+\def\yng(#1){%
+ \y@setdim%
+ \hspace{\y@interspace}%
+ \ifmmode\ify@vcenter\vcenter\fi\fi{%
+ \y@lastargtest#1,
+ \vbox{\offinterlineskip
+ \ify@islastarg
+ \y@nelineemptyboxes{#1}
+ \else
+ \y@ungempty(#1)
+ \fi}}\hspace{\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}
+\ify@enable@skew
+ \newdimen\y@full@b@xdim
+ \newcount\y@m@veright@cnt
+ \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}\vspace{-\y@linethick}
+ \else
+ \y@m@veright@ifskew{#1}
+ \vbox{
+ \hrule height\y@linethick%
+ \hbox{\y@abcboxes #1.\y@vr}%
+ \hrule height\y@linethick}\vspace{-\y@linethick}
+ \fi}
+\def\young(#1){%
+ \y@setdim%
+ \hspace{\y@interspace}%
+ \y@lastargtest#1,
+ \ifmmode\ify@vcenter\vcenter\fi\fi{%
+ \vbox{\offinterlineskip
+ \ify@islastarg\y@nelineabcboxes{#1}%
+ \else\y@ungabc(#1)%
+ \fi}}\hspace{\y@interspace}}
+\def\y@ungabc(#1,#2){%
+ \y@nelineabcboxes{#1}%
+ \y@lastargtest#2,
+ \ify@islastarg\y@nelineabcboxes{#2}%
+ \else\y@ungabc(#2)%
+ \fi}
+\endinput
+%%
+%% End of file `youngtab.sty'.