summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/tabstackengine
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-11-30 22:25:14 +0000
committerKarl Berry <karl@freefriends.org>2016-11-30 22:25:14 +0000
commitfe071a3248b7f619d72c83bed1ac96acb78abbfe (patch)
treec165d98a7152b4ee85838219f0338ee74b11e22a /Master/texmf-dist/doc/latex/tabstackengine
parent311dd681df4643ad791a461e8c6287542a597034 (diff)
tabstackengine (30nov16)
git-svn-id: svn://tug.org/texlive/trunk@42610 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/tabstackengine')
-rw-r--r--Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.pdfbin562549 -> 569190 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.tex89
2 files changed, 67 insertions, 22 deletions
diff --git a/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.pdf b/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.pdf
index 68b8d116cdb..c288ddfd20f 100644
--- a/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.pdf
+++ b/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.tex b/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.tex
index f4a448f4029..fa4be38a47b 100644
--- a/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.tex
+++ b/Master/texmf-dist/doc/latex/tabstackengine/tabstackengine.tex
@@ -459,7 +459,7 @@ This macro may be independently called by the user to read TABstack data
EOL-separated data that would otherwise be used to construct a stack.%
\footnote{Alternately, TABstacking data can be read without generating a
TABstack by using the \texttt{\cmd renewcommand\cmd quietstack\{T\}}
- setting of \ste{} to suppress the stack output, without supressing its
+ setting of \ste{} to suppress the stack output, without suppressing its
construction.}
If the routine is not called independently by the user, data from the most
recent TABstacking operation is still available for interrogation.
@@ -467,7 +467,7 @@ If the routine is not called independently by the user, data from the most
Take the example
\vb|\TABstackMath\TABstackMathstyle{\displaystyle}\setstackgap{S}{5pt}%|\\
-\vb|\alignShortstack{\frac{A}{Q}x=&B\\ C= &\frac{Dx}{2}\\E=&F}}|
+\vb|\alignShortstack{\frac{A}{Q}x=&B\\ C= &\frac{Dx}{2}\\E=&F}|
which presents as
@@ -497,7 +497,16 @@ Here, use the macro \vb|\TABcellRaw[2,1]|\margcmd{TABcellRaw}, which will
\fbox{\TABcellRaw[2,1]}
If one would like to see the cell data presented in the prevailing
- (\textsf{tab})\ste{} mode and style, the macro
+ (\textsf{tab})\ste{} mode and style%
+\footnote{Note that both \cmd{TABcell} and, as described later,
+ \cmd{TABcellBox} present in the \textit{prevailing} TABstack mode and
+ style.
+ While a recent use of \cmd{ensureTABstackMath} will be remembered,
+ intervening declarations of \cmd{TABstackMath}, \cmd{TABstackText} and
+ their associated styles will change the \textit{prevailing} mode
+ and style in which subsequent \cmd{TABcell} and \cmd{TABcellBox}
+ are processed.}%
+ , the macro
\vb|\TABcell{2}{1}|\margcmd{TABcell} may be used (again shown in
an \vb|\fbox|):
@@ -546,16 +555,14 @@ However, even for long stacks, the height of the top row and the depth of
If one wishes to recover the \textit{actual tokens} that were employed in a
given TABstack cell (rather that just something that will \textit{expand}
to those tokens), that can be accomplished in one of two ways.
-The macro \vb|\TABcellRaw[]| can be expanded twice in the manner of
+The macro \vb|\TABcellRaw[,]| can be expanded twice in the manner of
\end{sloppypar}
-\vb|\expandafter\detokenize%|\\
-\vb|\expandafter\expandafter\expandafter{\TABcellRaw[2,2]}|
+\vb|\detokenize\expandafter\expandafter\expandafter{\TABcellRaw[2,2]}|
-\expandafter\detokenize%
-\expandafter\expandafter\expandafter{\TABcellRaw[2,2]}
+\detokenize\expandafter\expandafter\expandafter{\TABcellRaw[2,2]}
-Alternately, the macro \vb|\getTABcelltoks[]|\margcmd{getTABcelltoks} will
+Alternately, the macro \vb|\getTABcelltoks[,]|\margcmd{getTABcelltoks} will
produce a token list named \vb|\TABcelltoks|\margcmd{the\cmd TABcelltoks} that
contains the cell's tokens:
@@ -566,16 +573,16 @@ Alternately, the macro \vb|\getTABcelltoks[]|\margcmd{getTABcelltoks} will
In summary then, \tst{} cell content can be accessed in a number of ways:\\
\renewcommand\arraystretch{1.2}
-\begin{tabular}{@{}l@{~--~}p{3.5in}@{}}
-\vb|\TABcellRaw| & expands into the tokens of the cell\\
-\vb|\TABcell| & presents the cell content in the prevailing mode (text
+\begin{tabular}{@{}l@{~--~}p{3.3in}@{}}
+\vb|\TABcellRaw[,]| & expands into the tokens of the cell\\
+\vb|\TABcell{}{}| & presents the cell content in the prevailing mode (text
or math) and style set by \ste{} and \tst{}\\
-\vb|\TABcellBox| & presents the cell content, in the prevailing mode
+\vb|\TABcellBox{}{}| & presents the cell content, in the prevailing mode
and style, strutted to the proper row height/depth, set in a box of the
proper cell width, flanked by the appropriate \vb|{}| groups defined by
\tst's unary and/or binary declarations,
and (when knowable) set in the proper \texttt{lcr} alignment\\
-\vb|\getTABcelltoks| & creates a token list register \vb|\TABcelltoks|
+\vb|\getTABcelltoks[,]| & creates a token list register \vb|\TABcelltoks|
that contains the actual tokens employed in the cell, accessible by
way of \vb|\the\TABcelltoks|
\end{tabular}
@@ -584,6 +591,11 @@ In summary then, \tst{} cell content can be accessed in a number of ways:\\
Consider the example
+\vb|\setstacktabbedgap{.5em}|\\
+\vb|\tabbedLongstack{a & b & c & d\\ e & f & g & h\\ i & j & k & l}|
+
+which produces
+
\setstacktabbedgap{.5em}
\tabbedLongstack{a & b & c & d\\ e & f & g & h & H\\ i & j & k & l}
@@ -605,22 +617,55 @@ $\textrm{Columns} = \vb|\TABcells{1}| = \TABcells{1}$
Note that \tst{} uses the number of columns provided in row 1 to determine the
dimensions of the subsequent TABstack.
If the 2nd or 3rd rows of the above stack were [accidentally] defined with 5
- columns of data, the last column would be ignored, since the 1st row only
- has 4 columns.
-However, in that case, \vb|\TABcells{2}| would, in fact, yield \TABcells{2}.
-
-
+ columns of data, the 5th column of data would be ignored during the TABstack
+ construction, since the 1st row only has 4 columns.
+However, in that case, \vb|\TABcells{2}| would still, in fact, yield
+ \TABcells{2}.
-\section{Absent Features}
+\section{Absent Features/Tricky Syntax}
-\textbf{Nothing Equivalent to} \vb|\hline| or \vb`|`
+\textbf{1. Nothing Equivalent to} \vb|\hline| or \vb`|`
-This is not a bug, so much as a notation of a missing feature. Currently
+This is not a bug, but rather a notation of a missing feature. Currently
there is nothing equivalent to \vb|\hline| available for use in
\tst{} arguments.
Furthermore, vertical lines may \textbf{not} be added to a tabular stack
with the use of \vb`|` elements in the column specifier.
+\textbf{2. Empty Items Are Not Ignored (by Default)}
+
+The \loi{} package used to parse TABstack input, does not, by default,
+ ignore empty items.
+This can cause parsing errors, if not understood properly.
+Take, for example, the well formed TABstack invocation,
+
+\vb|\tabularLongstack{rc}{11&12\\21&22\\31&32}|.
+
+Adding a trailing \vb|\\| to the input, as in:
+
+\vb|\tabularLongstack{rc}{11&12\\21&22\\31&32\\}|,
+
+however, breaks the parsing because 2 columns of data are expected
+ following the final \vb|\\| (even though such syntax is accepted
+ in, for example, the \texttt{tabular} environment).
+This syntax can be immediately made acceptable by
+ invoking the \loi{} declaration \cmd{ignoreemptyitems}, in which case
+ the final [empty] row is discarded.
+However, that approach can introduce a new set of problems, because
+ it will then ignore actual blank input that was intended, as in the
+ case of this example, in which table cell (2,2) is intentionally
+ left blank:
+
+\vb|\tabularLongstack{rc}{11&12\\21&\\31&32\\}|.
+
+To make this latter case work, when empty items are ignored, an
+ empty group would need be explicitly inserted:
+
+\vb|\tabularLongstack{rc}{11&12\\21&{}\\31&32\\}|.
+
+These problems can be wholly avoided if care is used in the
+ construction of TABstack input.
+
\endvbdelim
\section*{Acknowledgements}