diff options
author | Karl Berry <karl@freefriends.org> | 2020-09-30 21:30:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-09-30 21:30:06 +0000 |
commit | 2e3fde47ddb7b29ee2f0587f2df92891dbc377bc (patch) | |
tree | c33511a33d3772f64ba9aaba164d979efa07b053 /Master/texmf-dist/source/latex | |
parent | fc9117a56d131ac50cccb9ce74115714ce105ef7 (diff) |
youngtab now generic (30sep20)
git-svn-id: svn://tug.org/texlive/trunk@56494 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/youngtab/youngtab.dtx | 842 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/youngtab/youngtab.ins | 36 |
2 files changed, 0 insertions, 878 deletions
diff --git a/Master/texmf-dist/source/latex/youngtab/youngtab.dtx b/Master/texmf-dist/source/latex/youngtab/youngtab.dtx deleted file mode 100644 index 8db18c88c68..00000000000 --- a/Master/texmf-dist/source/latex/youngtab/youngtab.dtx +++ /dev/null @@ -1,842 +0,0 @@ -% \iffalse -%% 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. -% -%<package>\NeedsTeXFormat{LaTeX2e} -%<package>\ProvidesPackage{youngtab} -%<package>[1999/05/19 v1.1; Macros for Young-Tableaux] -% -%<*driver> -\documentclass{ltxdoc} -\usepackage[enableskew]{youngtab} -\GetFileInfo{youngtab.sty} -\begin{document} -\title{The \textsf{youngtab} package\thanks{This file has version number - \fileversion, dated \filedate.}} -\author{Volker B\"orchers\thanks{email: boercher@physik.uni-bremen.de} - \\Stefan Gieseke\\ - Universit\"at Bremen} -\date{\filedate} - \maketitle - \DocInput{youngtab.dtx} -\end{document} -%</driver> -% \fi -%\iffalse -% -%% 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) -% -% Version: Date: Changes: -% -% 1.0 1996/03/25 First working version. (After much -% frustrating tries to teach TeX accept -% indefinite count of arguments - lerning TeX -% in the meanwhile) -% 1.1 1998/05/05 Added possibility to typeset ``skew'' -% tableaux (package option `enableskew') -% suggested by Andrew Mathas -% <mathas@maths.usyd.edu.au>. Added AUC-TeX -% support for the youngtab macros (youngtab.el). -% 1999/05/19 Only change: added licence informations -%\fi -% -% -% \DoNotIndex{\advance,\box,\CurrentOption,\DeclareOption,\def} -% \DoNotIndex{\else,\fi,\hbox,\hfil,\hrule,\hspace,\ht,\ifcat} -% \DoNotIndex{\ifmmode,\ifnum,\ifvoid,\loop,\MessageBreak,\newcount} -% \DoNotIndex{\newdimen,\newif,\newskip,\offinterlineskip} -% \DoNotIndex{\PackageWarning,\ProcessOptions,\relax,\repeat,\setbox} -% \DoNotIndex{\space,\typeout,\unskip,\vbox,\vcenter,\vrule,\vspace} -% -% \CheckSum{322} -% -% \newcommand{\yt}{Young-Tableau} -% \newcommand{\yts}{Young-Tableaux} -% \newcommand{\newfeature}[1]{\leavevmode% -% \marginpar{\small\sffamily\begin{center} -% New feature\\#1\end{center}}} -% -% \begin{abstract} -% This package provides two macros for typesetting -% \yts\ with \TeX\ or \LaTeX. We use 2 macros, the first for empty -% boxes (|\yng|), and the second for labelled boxes (|\young|). The -% syntax of the macros is simple to avoid spelling-mistakes. -% \end{abstract} -% -% \tableofcontents -% -% \section{Introduction} -% The \yt-formalism is a strong algrebraic tool in group theory. Of course -% we will deal here only with the problems of \emph{typesetting} \yts. -% They are mathematical objects, so they usually occur in mathematical -% environments. On the surface \yts\ consist of boxes like this: -% \yng(1) --- or optionally labelled (usually with letters): \young(a). -% -% There is already one \LaTeX-package for typesetting \yts, the -% \texttt{young.sty} by J\"org Knappen (based on |young.tex| by P. E. S. -% Wormer). It provides a \texttt{Young}-environment with a syntax -% similar to the \texttt{tabular}-environment. -% -% An Example for the usage of \texttt{Young}: -% -% \begin{minipage}[t]{5cm} -% \begin{verbatim} -% \begin{Young} -% $a$&&\cr -% &\cr -% \cr -% \end{Young} -% \end{verbatim} -% \end{minipage} -% \parbox[t]{4cm}{ \young(a\hfil\hfil,\hfil\hfil,\hfil) } -% -% \iffalse -% COMMENT: Maybe that's not the correct way to pretend the use of the -% |Young|-environment, but otherwise we had to use |young.sty| only -% for this tableau! -% \fi -% -% This way of implementing \yts\ has one big advantage: It can deal with -% an indefinite number of rows and columns (of course this is needed!). -% A second argument for using a \texttt{tabular}-like environment might -% be it's simple encoding. -% -% Nevertheless we wanted a simpler user-interface, for the use of |&| and -% |\cr| is usually a very good source of typing mistakes (e.g. you -% have to type \emph{three} |&|'s to get \emph{four} boxes in one -% row). In addition the \TeX-code for mathematical relations with more -% than two or three \yts\ becomes unreadable. -% -% The cure would be of course a \emph{macro} with a compact, intuitive -% syntax. But there is the above mentioned problem: \TeX\ is not made to -% handle an indefinite number of arguments. For \yts\ composed of empty -% boxes we would like to have a macro with one argument for each row -% (counting the number of boxes per row) for example this way: -% |\thisdoesnotwork{5}{3}{1}|\dots. For \yts\ composed of labelled -% boxes the problem is even worse since we have one letter -% \emph{per box}! -% -% So we had to hide the fact of having an indefinite number of arguments -% from \TeX. The macros in this package have --- as \TeX\ sees it --- -% only one argument; this is parsed for the necessary information -% by the macros themselves. Whereas, for the user, the number of rows and -% number of boxes per row are plain to see. -% -% \section{Using the youngtab package} -% Invoke the |youngtab| package by -% requesting it in the preamble:\footnote{Of course this does not work -% if you use the |youngtab|-package with \TeX\ instead of \LaTeX. For -% compatibility-questions see section \ref{compat}} -% -% |\usepackage[...]{youngtab}| -% -% The package has four options (increasing)\DescribeMacro{Options}. -% The \emph{first option}, |vcentermath|\DescribeMacro{vcentermath}, -% \emph{turns on} the vertical centering of the tableaux in math mode. The -% \emph{second option}, |noautoscale|\DescribeMacro{noautoscale}, \emph{turns -% off} the automatic scaling of the boxes according to the actual font. -% The \emph{third one}, |stdtext|\DescribeMacro{stdtext}, switches -% to text mode in the inside of labelled boxes. Choosing one of this -% options does not mean that you have, for example, to stick to -% |noautoscale| till the end of your days. You may change this -% settings as often as you like.\\ -% The \emph{fourth option}, -% |enableskew|\DescribeMacro{enableskew}\newfeature{1998/05/05} -% enables typesetting of skew \yts\ (tableaux that are not -% left-aligned). This option is different from the other in the way -% that there is no command to enable this feature after the package is -% loaded. -% -% \yts\ usually have more than one row, so the vertical alignment is a -% problem\DescribeMacro{vcentermath}. You can turn on vertical centering -% (only) in mathmode either by choosing the option |vcentermath| with -% |\usepackage| or later with the command -% |\Yvcentermath|\meta{num}. Say |\Yvcentermath1| if you want -% vertical centering and |\Yvcentermath0| to switch it off. Without -% vcentering the tableaux are standing on the baseline. -% -% Since the boxes are quadratic (if you do not want want this, -% complain!), there is only one dimension to determine: the length and -% height of the boxes. Usually the macros determine this for -% themselves,\footnote{So that a \yt\ e.g.\ \texttt{\bslash young(ab)} -% \young(ab) appears smaller in a footnote than in normal text!} but -% you can change this behavior by calling the macro -% |\Yautoscale|\meta{num}\DescribeMacro{\Yautoscale}. Call it with -% an argument of |1| if you want autoscaling after this, or with -% the argument |0| if you want to adjust the box dimensions -% yourself. -% -% \DescribeMacro{\Yboxdim}If you switch off autoscaling and -% want to change the box dimensions, you have to call the macro -% |\Yboxdim|\meta{dim} with a usual \TeX--dimension. -% The argument has to be appended to the macro: |\Yboxdim13pt|. This -% dimension is the \emph{total} height and width of the boxes -- -% \emph{including the lines.} (For small linethicknesses this -% makes of course only a small difference.) Note that the use of |\Yboxdim| -% \emph{implies} |noautoscale|! So to switch from |autoscale| to -% |noautoscale| one call to |\Yboxdim| is sufficient. -% -% There is only one more parameter which determines the appearance of -% the \yt\DescribeMacro{\Ylinethick}: the lines' thickness. This is -% set by |\Ylinethick|\meta{dim}. (The default is $0.3pt$). -% -% You may add space between a tableau and surrounding stuff by -% invoking the macro -% |\Yinterspace|\meta{skip}\DescribeMacro{\Yinterspace}. The advantage -% of using a \emph{skip} is that this helps \TeX\ to avoid |Over|- -% or |Underful \hbox|es. The default value is |0ex plus 0.3ex|\,. -% (Better take |ex| or |em| for the tableaux are scaleable.) -% -% \subsection{Empty boxes: \texttt{\protect\bslash yng}} -% \DescribeMacro\yng -% The most used variant of \yts\ are those consisting of empty boxes. -% For the tableau \yng(2,1) you have to type -% |\yng(2,1)|. If you want it to appear smaller, change the -% fontsize: |{\tiny\yng(2,1)}| gives \Yautoscale1 -% {\tiny\yng(2,1)}; but remember, this only works if |autoscale| -% is turned on (default). (If you are in |noautoscale|-mode, restore -% autoscaling with |\Yautoscale1|.) -% -% Some notes on the usage of |\yng| and |\young| in math or -% text mode\DescribeMacro{math or text?}: You can generate \yts\ in both -% modes, but differences arise from \emph{vertical centering}. -% This only works in math mode (if you have chosen it with -% |\Yvcentermath1|) or |usepackage| option |vcentermath|. -% -% The difference is to be seen here: -% {\tiny\Yvcentermath1 $\yng(1,1)\oplus\yng(1)=$ -% \yng(2,1)}$\oplus$ \dots, which has been generated by -% \begin{verbatim} -% {\tiny\Yvcentermath1 $\yng(1,1)\oplus\yng(1)=$ -% \yng(2,1)}$\oplus$ \dots -% \end{verbatim} -% -% Here the tableau in math are centered with respect to the axis of -% the formula while the one in text mode isn't. Note the -% dimensions of the tableau on the one hand and the |\oplus| on the -% other: The dimensions of the \yts\ are determined by the actual -% text's fontsize (while autoscaling!)\DescribeMacro{sizing}. Try to -% understand what happens in the following example. --- Do you -% understand the sizes of the math symbols? (Compare to the example -% above and have look up the \texttt{.log} file. Don't let \TeX\ fool -% you by messages about invalid |\normalsize|!) -% \begin{verbatim} -% {\tiny\begin{equation} -% \Yvcentermath1 -% \yng(1,1)\oplus\yng(1)= \Yboxdim{12pt} -% \yng(2,1)\normalsize\oplus\dots -% \end{equation}} -% \end{verbatim} -% {\tiny\begin{equation} -% \Yvcentermath1 \yng(1,1)\oplus\yng(1)= -% \Yboxdim{12pt}\yng(2,1)\normalsize\oplus\dots -% \end{equation}} -% \Yautoscale1 -% -% \subsection{Labelled boxes: \texttt{\protect\bslash young}} -% \DescribeMacro\young -% While the sizing of the boxes and the behavior in math/text mode are -% exactly the same as with |\yng|, we have of course a different syntax:\\ -% |{\scriptsize\young(aa,b)}| results in -% {\scriptsize\young(aa,b)}. Each line of the tableau is represented -% by a row of single letters (exactly: ``tokens''). The lines -% are separated by commas. -% -% As you see from the example above the letters |a| and |b| come out in -% math italics. This does \emph{not} depend on the \yt\ appearing in -% math or text surround. \emph{The label within a tableau-box is math -- no -% matter if the tableau is used in text or math mode!} But this is -% only the default setting. Use either the option |stdtext| to the -% |\usepackage| command to switch to roman letters or use the macro -% |\Ystdtext| with an argument of |1|: |\Ystdtext1|. To switch to math -% again use |\Ystdtext0|. -% -% What to do if you don't want to use single letters, but symbols or -% perhaps some white boxes? There are no limits but it's a bit -% complicated. The |\young| algorithm for parsing his argument depends -% strongly on that every label of \emph{one} box, -% \begin{enumerate} -% \item consists of only \emph{one token}. Assume first you had -% \emph{not} said |\Ystdtext1|. To get a single roman `a' then you -% must not say |\mbox{a}|, because this makes \emph{four} tokens (1st -% is |\mbox|, 2nd is |{|, 3rd is |a|, 4th is |}|). The cure is -% simply making one token out of |\mbox{a}| by saying -% |\newcommand{\rma}{\mbox{a}}| and everything is OK:\footnote{Note -% that the space after \texttt{\bslash rma} belongs to the token itself.} -% \newcommand{\rma}{\mbox{a}} |\young(\rma lright\bullet)| = \young(\rma -% lright\bullet)\\ -% After |\Ystdtext1| it is an error to say |$\bullet$|, since the -% two math delimiters are single tokens. Do it as described above: -% \Ystdtext1\\ |\newcommand{\ybullet}{$\bullet$}|\\ and -% everything is OK: \newcommand{\ybullet}{$\bullet$} -% |\young(\ybullet works)| = \young(\ybullet works)\,.\Ystdtext0\\ -% To use a symbol or special letter in both modes (|\Ystdtext 0 or 1|) -% put it in a box (here with an extra tuning):\\ -% |\renewcommand{\ybullet}{\raise1.5pt \hbox{$\bullet$}}| -% \item Some characters and macros are not allowed: commas (guess why) -% and the other punctuation marks, spaces, the macro |\space| and also -% skips like |\,| and |\:|.\footnote{Write to us if you find more.} If -% you want to have single empty boxes use (\TeX\ primitive) |\hfil| -% (For understanding this limitations see also |\y@lastargtest| and -% |\y@nelettertest| in macro section). -% \end{enumerate} -% -% -% \subsubsection{Skew \yts\ with \texttt{\protect\bslash young}} -% \newfeature{1998/05/05} -% As far as described above, the rows of a \yt\ are left-aligned. Since -% some authors also assigned a meaning to \emph{``skew''} tableaux, this -% package also supports such along with |\young|. If you want to typeset -% skew tableaux, you have to enable this via the package option -% |enableskew|\DescribeMacro{enableskew}. The default behavior of this -% package is to \emph{dis\/}able skew boxes in order to save \TeX's -% time, however, it's save to include this option even if you do not use -% it. -% -% Here is an example: -% |\young(abcd,:bc,::c)|: \raisebox{-1.9\baselineskip}{\young(abcd,:bc,::c)} -% -% As you see, the Option |enableskew| makes the colon a special -% character (only inside the argument of |\young|). \footnote{If you -% want a colon to appear as it is (do you??), you have to do the same -% trick as above with an unpleasant extra: define a macro for the -% colon using the \TeX-primitive \texttt{\bslash char} like this: -% \texttt{\bslash newcommand{\bslash mycolon}{\bslash char58}}.} In -% fact all other than the leading colons in a row will simply be -% ignored, while the first will move the row to the right. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \Yboxdim.4ex -% \raisebox{-1pt}{\young(:\hfil,\hfil,\hfil,\hfil,\hfil,:\hfil)} -% This is a\, -% \young(\hfil,\hfil,\hfil,\hfil,\hfil\hfil\hfil) -% \young(\hfil,\hfil,\hfil,\hfil,\hfil) -% \young(\hfil\hfil\hfil,:\hfil,:\hfil,:\hfil,:\hfil) -% \young(\hfil\hfil\hfil,:\hfil,:\hfil,:\hfil,:\hfil) -% \young(\hfil,\hfil,\hfil,\hfil,\hfil\hfil\hfil) -% \young(\hfil\hfil\hfil,\hfil,\hfil\hfil,\hfil,\hfil\hfil\hfil) -% \hspace{.7ex} -% \young(\hfil\hfil\hfil,:\hfil,:\hfil,:\hfil,:\hfil) -% \young(\hfil\hfil\hfil,\hfil,\hfil\hfil,\hfil,\hfil\hfil\hfil) -% \young(:\hfil\hfil\hfil,\hfil,:\hfil\hfil,:::\hfil,\hfil\hfil\hfil) -% \young(\hfil\hfil\hfil,:\hfil,:\hfil,:\hfil,:\hfil) -% of skew tableaux. -% \raisebox{-1pt}{\young(\hfil,:\hfil,:\hfil,:\hfil,:\hfil,\hfil)} -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \Yautoscale1 -% -% -% \subsection{The \texttt{youngtab} package and \TeX}\label{compat} -% \DescribeMacro{Compatibility}Because we do not use \PlainTeX, the -% compatibility of this package and \TeX\ is not sufficiently tested. -% However there are some changes necessary in |youngtab.sty| (see file -% \texttt{youngtab.tex}, part of the distribution): -% \begin{itemize} -% \item The macros themselves only use two \LaTeX-commands, -% |\vspace{|\meta{dim}|}| and |\hspace{|\meta{dim}|}|. One has to -% replace them with `|\vskip |\meta{dim}' resp.\ `|\hskip| -% \meta{dim}'\,. (The braces also have to get removed) The -% \LaTeX-counterparts may be better but no problems should arise -% from this replacement (we found none). -% \item One has to remove all lines containing \LaTeXe-commands in the -% preamble of the |.sty| file, e.g.\ comment out every line that -% contains the following commands: |\DeclareOption|, -% |\ProcessOptions|, |\NeedsTeXFormat| and |\ProvidesPackage|. -% \item Since \TeX-input files must not contain a |@|, -% |\catcode`\@11\relax| has to be added to the begin of the |.sty| file to -% make |@| a |letter| and |\catcode`\@12\relax| at the end right -% before the |\endinput|, to make it |other| again afterwards. -% \item \textbf{Skew:}\hspace{1em} \TeX\ knows nothing about -% style-options, we have to find a way to enable skew -% \yts. (|enableskew| is the only package option that can \emph{not} -% be accessed by a macro \emph{after loading} the package since -% almost all according actions will be done at loading time).\\ -% Therefore, we will check if a macro |\enableskew| is defined at loading -% time:\\[.3ex] -% | \expandafter\ifx\csname enableskew\endcsname\relax|\\ -% | \y@enable@skewfalse \else \y@enable@skewtrue\fi|\\[.3ex] -% (excerpt from |youngtab.tex|) Then this will enable printing of -% skew tableaux: \hfil|\def\enableskew{1} \input youngtab| -% \item The autoscaling doesn't work as nice as with \LaTeX\ since if -% you lower the text's fontsize (which determines the boxsize), you -% have to lower also the math fontsize. Otherwise the letters in -% labelled boxes (math!) are too big for the box. -% \end{itemize} -% -% \subsection{To do} -% We have a \textbf{wish list}, things we think the package should be -% capable of: -% \begin{itemize} -% \item A vertical alignment, in the way that the \emph{top}line of the -% \yts\ and the mathsymbols are on the same height (perhaps using -% |\vtop|?). -% \item The macros should take notice of math fontsize changes e.g.\ with -% \texttt{\bslash dis\-play\-style}. (This puts a focus on the autoscale -% mechanism -- see |\y@setdim| in the macro section.) -% \end{itemize} -% \textbf{If You} have any problems, suggestions, critical remarks -- or -% whatever according this package write to Volker B\"orchers -% (email-adress see title).\\ -% {\tiny\yng(61)} -% -% \StopEventually{} -% -% \section{The Macros} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% -% \begin{macro}{\Yautoscale} -% \begin{macro}{\ify@autoscale} -% If autoscaling is active, the size of the boxes (|\y@boxdim|) is -% determined by the package itselve. The default setting is to -% allow autoscale. |\Yautoscale|\meta{num} serves as the user -% interface.\footnote{I know - it's against the \LaTeXe naming -% conventions, but it is nicer\dots} We made an option to |\usepackage| -% out of that (see below). -% \begin{macrocode} -\newif\ify@autoscale \y@autoscaletrue \def\Yautoscale#1{\ifnum #1=0 - \y@autoscalefalse\else\y@autoscaletrue\fi} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\Yboxdim} -% \begin{macro}{\y@b@xdim} -% \begin{macro}{\y@boxdim} -% The parameters determining the size of the single boxes and the macro -% to set them. |\Yboxdim|\meta{dim} sets |\y@boxdim| (only used, when -% autoscaling is turned off) and sets |y@autoscale| to -% |false|. |\y@boxdim| is the \emph{total} size of the box (including -% the delimiting lines) while |\y@b@xdim| (to be set in |\y@setdim|) is -% the height and width of the inner of the box. -% \begin{macrocode} -\newdimen\y@b@xdim -\newdimen\y@boxdim \y@boxdim=13pt -\def\Yboxdim#1{\y@autoscalefalse\y@boxdim=#1} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\Ylinethick} -% \begin{macro}{\y@linethick} -% The line thickness and |\Ylinethick|\meta{dim} as user interface to it. -% \begin{macrocode} -\newdimen\y@linethick \y@linethick=.3pt -\def\Ylinethick#1{\y@linethick=#1} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\Yinterspace} -% \begin{macro}{\y@interspace} -% To give the \yts\ extra-space (before and after) |\y@interspace| can -% be set to more than |0pt| by calling |\Yinterspace|. (See |\yng| and -% |\young|.) Note that this is a \emph{skip} and no \emph{dimemsion}. -% \begin{macrocode} -\newskip\y@interspace \y@interspace=0ex plus 0.3ex -\def\Yinterspace#1{\y@interspace=#1} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\Yvcentermath} -% \begin{macro}{\ify@vcenter} -% The switch to turn vertical centering in math on or off. The default -% is |\y@vcenterfalse|. The second option to |\usepackage|. -% \begin{macrocode} -\newif\ify@vcenter \y@vcenterfalse -\def\Yvcentermath#1{\ifnum #1=0 \y@vcenterfalse\else\y@vcentertrue\fi} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\Ystdtext} -% \begin{macro}{\ify@stdtext} -% Normally the inside of the boxes (|\young|) is in math mode. This code -% allows to switch to text mode. -% \begin{macrocode} -\newif\ify@stdtext \y@stdtextfalse -\def\Ystdtext#1{\ifnum #1=0 \y@stdtextfalse\else\y@stdtexttrue\fi} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\ify@enable@skew} -% In contrast to the other this \texttt{if} may be set only via the -% package option |enableskew|. -% \begin{macrocode} -\newif\ify@enable@skew \y@enable@skewfalse -% \end{macrocode} -% \end{macro} -% \begin{macro}{noautoscale} -% \begin{macro}{vcentermath} -% \begin{macro}{stdtext} -% \begin{macro}{enableskew} -% Declaration and processing of the options for use with -% \LaTeXe. (For \TeX-users: Comment the following 8 lines out). -% \begin{macrocode} -\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 -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\y@vr} -% A single vertical line to build the boxes. The reason for the depht of -% the line should be clear. (The values for the depth maybe something -% you want to tune) -% \begin{macrocode} -\def\y@vr{\vrule height0.8\y@b@xdim width\y@linethick depth 0.2\y@b@xdim} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\y@emptybox} -% This macro does less than its name pretend: It only makes one vertical -% line followed by a empty box (width: |\y@boxdim| -- 2|\y@linethick|). -% \begin{macrocode} -\def\y@emptybox{\y@vr\hbox to \y@b@xdim{\hfil}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\y@abcbox} -% \begin{macro}{\y@mathabcbox} -% If |enableskew| is not choosen (the package options have been -% parsed now), a |\y@abcbox| or a |\y@mathabcbox| is the simple -% analogue to |\y@emptybox| but it has a \emph{text-font} letter -% centered in it.\\ -% For |\y@mathabcbox| the inside is math. We rather want an -% easier access to math italics and symbols than to normal text; so we -% usually use |\y@mathabcbox| instead of |\y@abcbox|. -% -% Skew \yts\ can only be used with |\young|. Then a colon is used to -% \emph{shift} the row to the \emph{right} -- instead of ``inserting -% a box without border'' -- so the colon boxes must be ignored. -% \begin{macrocode} -\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 -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\y@setdim} -% This macro is called at the beginning of the macros |\yng| and -% |\young|. If |autoscale| is deactivated the box height and width is -% |\y@boxdim| - 2|\y@linethick|. If not we save a box for temporary -% usage, use the height of it to find a good size of the box, fill the -% boxregister with a empty box, and clear the box again by using it. -% -% That's not elegant but I didn't know better\dots How can I determine -% the height of the font in an other way? (I tried it with the \TeX-measure -% |ex| -- but this did not seem to work in any case.) Or -- if I have -% to use setbox -- which boxregister should I use? Is the |\ifvoid| test -% obsolete? (First I used |\box0| -- till I found me competing with -% \AmSTeX\ for this box.) -% \begin{macrocode} -\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} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\y@counter} -% A counter for loops. -% \begin{macrocode} -\newcount\y@counter -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\y@lastargtest} -% This macro is a hack to get \TeX\ to accept a indefinite number of -% arguments (here: the number of \emph{lines} separated by commas). It -% does nothing with its arguments but to see if the second is a space, -% and, if it is to set |\y@islastargtrue|.\footnote{The -% \texttt{islastarg} conditions are also used if the end of one line -% of labelled boxes is reached.} -% \begin{macrocode} -\newif\ify@islastarg -\def\y@lastargtest#1,#2 {\if\space #2 \y@islastargtrue - \else\y@islastargfalse\fi} -% \end{macrocode} -% How does it work? An Example: -% -% \verb*+\y@lastargtest first,second +\\ -% Here |#1| is |first| and |#2| is |second|. The |\if| construction -% tests if the (expanded) \emph{first} token of |#2| and |\space| -% (here: |s|) are equal. -- They are not. In the next example the -% condition is |true|: -% -% \verb*+\y@lastargtest first, +\\ -% Here |#1| is again |first| but |\y@lastargtest| catches the blank -% after the comma to be |#2|. The |\if| condition now is true and -% |\y@islastargtrue| is set. Remember: the blank is essential! -% \end{macro} -% -% \begin{macro}{\y@emptyboxes} -% This macro draws |#1| (this is a number) empty boxes (|\y@emptybox|) -% -- without a top or bottom line: -% -% |:\y@emptyboxes3:| \hspace{0.5em} is -% :$\mid$\hspace{0.8em}$\mid$\hspace{0.8em}$\mid$\hspace{0.8em}: -% \begin{macrocode} -\def\y@emptyboxes#1{\y@counter=#1\loop\ifnum\y@counter>0 - \advance\y@counter by -1 \y@emptybox\repeat} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\y@nelineemptyboxes} -% This calls |\y@emptyboxes| and adds the top and bottom lines (I think -% this is faster than draw single, complete boxes) and a right closing -% vertical line. Because of the |\vspace| command the top line of the -% eventually following next box-row will be drawn over the bottom line of -% this box-row. -% \begin{macrocode} -\def\y@nelineemptyboxes#1{% - \vbox{% - \hrule height\y@linethick% - \hbox{\y@emptyboxes{#1}\y@vr} - \hrule height\y@linethick}\vspace{-\y@linethick}} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\yng} -% The user-macro for empty \yts. As mentioned above it has only one -% argument, enclosed in brackets. It first calls |\y@setdim| to -% determine the size of the boxes and opens a |\vcenter| if in math mode -% and |vcentermath| is set. Otherwise only a (then obsolet) |{| is -% opened. |\y@lastargtest| determines if the tableau should have only -% one line, setting |\y@islastargtrue| or -|false|. If there is only one -% line, |\yng| does the whole job in calling -% |\y@nelineemptyboxes| once. Otherwise it calls |\y@ungempty| to do the -% real thing. Note the spacing before and after the tableau using -% |\hspace|. -% \begin{macrocode} -\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}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\y@ungempty} -% It is called with |\y@ungempty(#1)| from |\yng|. Now the parsing of -% the arguments starts! As we know from |\y@lastargtest| in -% |\yng|, there really are two arguments left. Explicitely: Let the -% the initial command (given by the user) be |\yng(3,2,1)|; then -% |\yng| calls |\y@ungempty(3,2,1)|. But |\y@ungempty| sees two -% arguments: |#1| is |3| and |#2| is |2,1|! (Note the importance of the -% brackets). |\y@ungempty| then processes the first argument immediately, -% calling |\y@nelineemptyboxes|. (The braces protect numbers with more -% than one digit.) -% -% The next step is to check if |#2| is the last line. If it is, it calls -% \texttt{\bslash y@ne\-line\-empty\-boxes} again. Otherwise it calls -% \emph{recursively itselve}, till all lines are processed. -% \begin{macrocode} -\def\y@ungempty(#1,#2){% - \y@nelineemptyboxes{#1} - \y@lastargtest#2, - \ify@islastarg - \y@nelineemptyboxes{#2} - \else - \y@ungempty(#2) - \fi} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\y@nelettertest} -% The first macro especially for labelled boxes, that is, for -% |\young|. Like \texttt{\bslash y@last\-arg\-test} it is used for -% handling a indefinite number of arguments. (As mentioned before -% \yts\ with labelled boxes have problem double.) |\y@nelettertest| -% determines if the last box of the line has been reached. -% -% Again we will examine it's working method by examples: -% -% |\y@nelettertest ab.|\\ -% The period after the argument |ab| (and in the definition of -% |\y@nelettertest|) is merely a mark for the end of the -% arguments. (Otherwise \TeX\ would complain about missing arguments.) -% Here |a| is |#1| and |#2| is |b| -- the |\if|-condition is |false| -% and so |\y@islastargfalse| is set. Now a little miracle: -% -% |\y@nelettertest a.|\\ -% In the opposite to the case of |\y@lastargtest| it's not -% understandable for me, why |#2| now is a space -- but it is! (Do -% \emph{you} know the reason why?) -% The rest is known from |\y@lastargtest|. -% \begin{macrocode} -\def\y@nelettertest#1#2. {\if\space #2 \y@islastargtrue - \else\y@islastargfalse\fi} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\y@abcboxes} -% Again we use a period to mark the end of arguments. Compare to -% |\y@emptyboxes| -- Now it is more strenuous! The |\y@nelettertest| -% macro makes sure that |\y@abcboxes| is called with at least two boxes -% to process. If there are only two boxes |\y@abcboxes| calls -% |\y@abcbox| two times, otherwise it calls itselve recursively again. -% (The argument-splitting works as in |\y@ungempty|.) -% \begin{macrocode} -\def\y@abcboxes#1#2.{% - \ify@stdtext\y@abcbox#1\else\y@mathabcbox#1\fi% - \y@nelettertest #2. -% \end{macrocode} -% There must be a space or (equivalently) a carriage return after this -% line! -% \begin{macrocode} - \ify@islastarg\unskip% - \ify@stdtext\y@abcbox{#2}\else\y@mathabcbox{#2}\fi% - \else\y@abcboxes#2.\fi} -% \end{macrocode} -% The |\unskip| is needed for the case that |#2| is only one token. Then -% a space appears between two boxes. (I do not understand really what -% happens -- see |\y@nelettertest|.) The |\unskip| resolves this problem. -% \end{macro} -% -% \begin{macro}{\ify@enable@skew} -% \begin{macro}{\y@full@b@xdim} -% \begin{macro}{\y@m@veright@cnt} -% Most of the skew boxes stuff can be found here along the definition -% of \texttt{\bslash y@ne\-line\-abc\-boxes}. We need a further dimension, -% for the effective lenght of one box in a row, |\y@full@b@xdim| = -% |\y@b@xdim| + |1\y@linethick| and one counter for the number of -% boxes to be left out on the left side of the tableau (determined by -% the number of colons at the beginning of a row), |\y@m@veright@cnt|. -% \begin{macrocode} -\ify@enable@skew - \newdimen\y@full@b@xdim - \newcount\y@m@veright@cnt -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\y@get@m@veright@cnt} -% To find out the number of leading colons in a row we have the macro -% \texttt{\bslash y@get@\-m@ve\-right@\-cnt}. Here we use exactly the same -% trick as in |\y@nelettertest|. -% \begin{macrocode} - \def\y@get@m@veright@cnt#1#2.{% - \if :#1 \advance\y@m@veright@cnt by 1\y@get@m@veright@cnt#2.\fi} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\y@setdim} -% Since we now have another dimension that depends on |\y@b@xdim|, -% the dimension of the boxes, we have to extend |\y@setdim| to -% calculate |\y@full@b@xdim| too. (The dummy |\y@setdim@| is used to -% avoid a recursion.) -% \begin{macrocode} - \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} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\y@m@veright@ifskew} -% Now we put it all into the following macro that computes the offset -% and moves the tableau to the right if necessary. If skew \yts\ are -% not enabled, |\y@m@veright@ifskew| will be a null-command (but -% catches the argument). -% \begin{macrocode} - \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 -% \end{macrocode} -% \end{macro} -% \begin{macro}{\y@nelineabcboxes} -% This is the counterpart of |\y@nelineemptyboxes|. The difference -% is the treatment of the case of a row of only one box -- Then only -% |\y@abcbox| is called and not |\y@abcboxes|. If this row must be -% moved to the right, this is done by |\y@m@veright@ifskew|. -% \begin{macrocode} -\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} -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\young} -% The user-macro for labelled \yts. It has one argument as |\yng|, -% enclosed in brackets. Everything is identical as in the emptybox case -% (sizing, vcentering, treatment of multiple rows, \dots). -% \begin{macrocode} -\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}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\y@ungabc} -% Again nothing new -- see |\y@ungempty| -% \begin{macrocode} -\def\y@ungabc(#1,#2){% - \y@nelineabcboxes{#1}% - \y@lastargtest#2, - \ify@islastarg\y@nelineabcboxes{#2}% - \else\y@ungabc(#2)% - \fi} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -%</package> -% \end{macrocode} -% -% \Finale -\endinput diff --git a/Master/texmf-dist/source/latex/youngtab/youngtab.ins b/Master/texmf-dist/source/latex/youngtab/youngtab.ins deleted file mode 100644 index a58ace3a9e0..00000000000 --- a/Master/texmf-dist/source/latex/youngtab/youngtab.ins +++ /dev/null @@ -1,36 +0,0 @@ -%% -%% --------------- start of docstrip commands ------------------ -%% -\def\batchfile{youngtab.ins} -\input docstrip.tex -\preamble - -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. - -\endpreamble -\def\filedate{1999/05/19} -\input docstrip -\keepsilent - -\generateFile{youngtab.sty}{t}{\from{youngtab.dtx}{package}} - -\ifToplevel{ -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move} -\Msg{* \space\space youngtab.sty} -\Msg{* into a directory searched by TeX:} -\Msg{*} -\Msg{* To produce the documentation run} -\Msg{* \space\space youngtab.dtx} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{***********************************************************} -} - - - |