diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:12:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:12:00 +0000 |
commit | 00d2addcd91a60783f8f5f8149c500a18793c18b (patch) | |
tree | 125cb7e58289e975b5698454a9da6663313cc5d6 | |
parent | a53e6ba26bc00a25456fbbf822dd30909721aa71 (diff) |
youngtab
git-svn-id: svn://tug.org/texlive/trunk@1469 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/tex/latex/youngtab/youngtab.sty | 152 |
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'. |