summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/multirow
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:00:01 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:00:01 +0000
commit73d0fff04ecb705176e32a12a5070fd59d1104bf (patch)
treefda3cd2e5c0eedb415d3fca8f75a03babcc967b2 /Master/texmf-dist/tex/latex/multirow
parentdbafb0ef601ebc7c793c783e3d455cf22011c712 (diff)
multirow
git-svn-id: svn://tug.org/texlive/trunk@1118 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/multirow')
-rw-r--r--Master/texmf-dist/tex/latex/multirow/bigdelim.sty68
-rw-r--r--Master/texmf-dist/tex/latex/multirow/bigstrut.sty41
-rw-r--r--Master/texmf-dist/tex/latex/multirow/multirow.sty159
3 files changed, 268 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/multirow/bigdelim.sty b/Master/texmf-dist/tex/latex/multirow/bigdelim.sty
new file mode 100644
index 00000000000..72eda5ae2df
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/multirow/bigdelim.sty
@@ -0,0 +1,68 @@
+% bigdelim.sty
+% version 1.0
+% Nov 5, 1999
+% Piet van Oostrum <piet@cs.uu.nl>
+% From bigbrace.sty : Oct 2, 1994 \Oystein Bache <bache@kjemi.unit.no>
+% from: \dobrace by piet@cs.ruu.nl (Piet van Oostrum):
+%%
+%% This file may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1 or, at your option, any later version.
+%%
+%
+% Usage in a tabular or array:
+% \usepackage{multirow}
+% \usepackage{bigdelim}
+% \ldelim({n}{w}[text]
+% \rdelim){n}{w}[text]
+% Use these commands in a column of a tabular or array. They generate a big
+% parenthesis/brace extending over the next n rows (including this one).
+% The corresponding entries in the next rows must explicitely be given as
+% empty cells. The first parameter must be the delimiter to be used, e.g.
+% \{ \} [ ] ( ), in fact any parameter that can be used with \left and
+% \right. The text is optional and is set centered to the left of
+% \ldelim and to the right of \rdelim. w must be the width reserved for
+% the brace and text. If you have a recent version of multirow.sty {w} may
+% be given as {*}, but this may cause the braces to be too small. Also with
+% a recent version of multirow.sty the commands may be used in the last row
+% of the extension with a negative n parameter. This is useful in
+% combination with the colortbl package (see multirow.sty)
+% If there are unusually large rows you may have to enlarge n (you can use
+% non-integral values).
+% If you have horizontal lines that interact with the braces you are
+% advised to use the hhline package to make the lines.
+
+\def\ldelim#1#2#3{\@ifnextchar[{\@ldelim{#1}{#2}{#3}}{\@ldelim{#1}{#2}{#3}[\null]}}
+\def\@ldelim#1#2#3[#4]%
+ {\multirow{#2}{#3}{%
+ \ensuremath
+ {\left.\vcenter{\hsize=0pt\vrule height
+ \ifnum #2<0 -\fi#2\baselineskip width 0pt}%
+ \textrm{#4}\right#1}}}
+%
+\def\rdelim#1#2#3{\@ifnextchar[{\@rdelim{#1}{#2}{#3}}{\@rdelim{#1}{#2}{#3}[\null]}}
+\def\@rdelim#1#2#3[#4]%
+ {\multirow{#2}{#3}{%
+ \ensuremath
+ {\left#1\vcenter{\hsize=0pt\vrule height
+ \ifnum #2<0 -\fi#2\baselineskip width 0pt}%
+ \textrm{#4}\right.}}}
+%
+\endinput
+%
+% Example:
+\documentclass{article}
+\usepackage{multirow}
+\usepackage{bigdelim}
+\begin{document}
+
+\begin{equation}
+ \begin{array}{ccccccc}
+ \ldelim({4}{4mm}& x & x & x & x &\rdelim){4}{4mm} \\
+ & x & x & x & x & & i\\
+ & x & x & x & x & & j\\
+ & x & x & x & x & \\
+ & & u & v & &
+ \end{array}
+\end{equation}
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/multirow/bigstrut.sty b/Master/texmf-dist/tex/latex/multirow/bigstrut.sty
new file mode 100644
index 00000000000..900e30895ad
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/multirow/bigstrut.sty
@@ -0,0 +1,41 @@
+%%
+%% bigstrut.sty V1.0 (31-May-94)
+%%
+%% Author: Jerry Leichter <jerrold.leichter@smarts.com>
+%%
+%% V1.0 Split out as a separate style file.
+%%
+%% This file may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1 or, at your option, any later version.
+%%
+% \bigstrut[x] produces a strut which is \bigstrutjot (2pt by default) higher,
+% lower, or both than the standard array/table strut. Use it in table entries
+% that are adjacent to \hline's to leave an extra bit of space - according to
+% the TeXbook (page 246), "This is a little touch that improves the appearance
+% of boxed tables; look for it as a mark of quality."
+%
+% Although you could use \bigstrut in an array, there isn't normally much
+% point since arrays are "opened up" by \jot anyway.
+%
+% \bigstrut[t] adds height; \bigstrut[b] adds depth. Just \bigstrut adds
+% both. So: Use \bigstrut[t] in the row just *after* an \hline; \bigstrut[b]
+% in the row just *before*; and \bigstrut if there are \hline's both before
+% and after.
+%
+% Spaces after the \bigstrut are ignored, even if it has an optional argument.
+% Spaces before the \bigstrut are generally ignored (by a single \unskip).
+%
+% Note: The multirow style file makes use of \bigstrutjot. If both styles
+% are used, they can be used in either order, as each checks to see if the
+% other has already defined \bigstrutjot. However, the default values they
+% set are different: If only multirow is used, \bigstrutjot will be set to
+% 3pt. If bigstrut is used, with or without multirow, \bigstrutjot will be
+% 2pt.
+
+\@ifundefined{bigstrutjot}{\newdimen\bigstrutjot}{}\bigstrutjot2pt
+\def\bigstrut{\relax\@ifnextchar [{\@bigstrut}{\@bigstrut[x]}}
+\def\@bigstrut[#1]{\unskip\@tempdima\ht\@arstrutbox \@tempdimb\dp\@arstrutbox
+ \ifx #1b\else \advance\@tempdima by \bigstrutjot\fi
+ \ifx #1t\else \advance\@tempdimb by \bigstrutjot\fi
+ \hbox{\vrule \@height\@tempdima \@depth\@tempdimb \@width\z@}\ignorespaces}
diff --git a/Master/texmf-dist/tex/latex/multirow/multirow.sty b/Master/texmf-dist/tex/latex/multirow/multirow.sty
new file mode 100644
index 00000000000..f52132fd150
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/multirow/multirow.sty
@@ -0,0 +1,159 @@
+%%
+%% multirow.sty V1.6 version (5-May-2004)
+%%
+%% Author: Jerry Leichter <jerrold.leichter@smarts.com>
+%% Piet van Oostrum <piet@cs.uu.nl>
+%%
+%% This file may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1 or, at your option, any later version.
+%%
+%% V1.0 was distributed anonymously, based on a Usenet posting that was
+%% not intended for stand-alone use.
+%% V1.1 was modified by Piet van Oostrum <piet@cs.uu.nl> to allow it to
+%% work without bigstrut.sty.
+%% V1.2 was modified by Jerry Leichter for the same goal, but using a
+%% different approach which will work properly in conjunction with
+%% bigstrut.sty.
+%% V1.2a was modified by Piet van Oostrum <piet@cs.uu.nl> to use \vskip
+%% instead of \raise in positioning, avoiding making rows too high
+%% when the adjustment is large.
+%% V1.3 was modified by Piet van Oostrum to work properly in a p{} column
+%% (\leavevmode added)
+%% V1.4 was modified by Piet van Oostrum to check for the special case that
+%% the width is given as an *. In this case the natural
+%% width of the text argument will be used and the argument
+%% is processed in LR-mode.
+%% V1.5 was modified by Piet van Oostrum: Added a % after \hbox{#5}\vfill}.
+%% Added \struts around #5 for better vertical positioning.
+%% Additional coding for negative value of nrows.
+%% V1.6 was modified by Piet van Oostrum: Replace a space by \relax after
+%% \advance\@tempdima#4.
+%%
+% Make an entry that will span multiple rows of a table.
+%
+% \multirow{nrows}[bigstruts]{width}[fixup]{text}
+%
+% nrows is the number of rows to span. It's up to you to leave the other
+% rows empty, or the stuff created by \multirow will over-write it.
+% With a positive value of nrows the spanned colomns are this row and
+% (nrows-1) rows below it. With a negative value of nrows they are
+% this row and (1-nrows) above it.
+%
+% bigstruts is mainly used if you've used bigstrut.sty. In that case it
+% is the total number of uses of \bigstrut within the rows being
+% spanned. Count 2 uses for each \bigstrut, 1 for each \bigstrut[x]
+% where x is either t or b. The default is 0.
+% width is the width to which the text is to be set, or * to indicate that
+% the text argument's natural width is to be used.
+%
+% text is the actual text. If the width was set explicitly, the text will
+% be set in a parbox of that width; you can use \\ to force linebreaks
+% where you like.
+%
+% If the width was given as * the text will be set in LR mode. If you
+% want a multiline entry in this case you should use a tabular or array
+% in the text parameter.
+%
+% The text is centered vertically within the range spanned by nrows.
+%
+% fixup is a length used for fine tuning: The text will be raised (or
+% lowered, if fixup is negative) by that length above (below) wherever
+% it would otherwise have gone.
+%
+% For example (using both multirow and bigstrut)
+%
+% \newcommand{\minitab}[2][l]{\begin{tabular}{#1}#2\end{tabular}}
+% \begin{tabular}{|c|c|}
+% \hline
+% \multirow{4}{1in}{Common g text} & Column g2a\\
+% & Column g2b \\
+% & Column g2c \\
+% & Column g2d \\
+% \hline
+% \multirow{3}[6]*{Common g text} & Column g2a\bigstrut\\\cline{2-2}
+% & Column g2b \bigstrut\\\cline{2-2}
+% & Column g2c \bigstrut\\
+% \hline
+% \multirow{4}[8]{1in}{Common g text} & Column g2a\bigstrut\\\cline{2-2}
+% & Column g2b \bigstrut\\\cline{2-2}
+% & Column g2c \bigstrut\\\cline{2-2}
+% & Column g2d \bigstrut\\
+% \hline
+% \multirow{4}*{\minitab[c]{Common \\ g text}} & Column g2a\\
+% & Column g2b \\
+% & Column g2c \\
+% & Column g2d \\
+% \hline
+% \end{tabular}
+%
+% If any of the spanned rows are unusually large, or if you're using
+% bigstrut.sty and \bigstrut's are used assymetrically about the centerline of
+% the spanned rows, the vertical centering may not come out right. Use the
+% fixup argument in this case.
+%
+% Just before "text" is expanded, the \multirowsetup macro is expanded to
+% set up any special environment. Initially, \multirowsetup contains just
+% \raggedright. It can be redefined with \renewcommand.
+%
+% Bugs: It's just about impossible to deal correctly with descenders. The
+% text will be set up centered, but it may then have a baseline that doesn't
+% match the baseline of the stuff beside it, in particular if the stuff
+% beside it has descenders and "text" does not. This may result in a small
+% missalignment. About all that can be done is to do a final touchup on
+% "text", using the fixup optional argument. (Hint: If you use a measure
+% like .1ex, there's a reasonable chance that the fixup will still be correct
+% if you change the point size.)
+%
+% \multirow is mainly designed for use with table, as opposed to array,
+% environments. It will not work well in an array environment since the lines
+% have an extra \jot of space between them which it won't account for. Fixing
+% this is difficult in general, and doesn't seem worth it. The bigstruts
+% argument can be used to provide a semi-automatic fix: First set
+% \bigstrutjot to .5\jot. Then simply repeat nrows as the bigstruts argument.
+% This will be close, but probably not exact; you can use the fixup argument
+% to refine the result. (If you do this repeatedly, you'll probably want to
+% wrap these steps up in a simple macro. Note that the modified \bigstrutjot
+% value will not give reasonable results if you have bigstruts and use this
+% argument for its intended purpose elsewhere. In that case, you might want
+% to set it locally.)
+%
+% If you use \multirow with the colortbl package you have to take
+% precautions if you want to color the column that has the \multirow in it.
+% colortbl works by coloring each cell separately. So if you use \multirow
+% with a positive nrows value, colortbl will first color the top cell, then
+% \multirow will typeset nrows cells starting with this cell, and later
+% colortbl will color the other cells, effectively hiding the text in that
+% area. This can be solved by putting the \multirow is the last row with a
+% negative nrows value.
+% Example:
+%
+% \begin{tabular}{l>{\columncolor{yellow}}l}
+% aaaa & \\
+% cccc & \\
+% dddd & \multirow{-3}*{bbbb}\\
+% \end{tabular}
+%
+\def\multirowsetup{\raggedright}
+\def\multirow#1{\relax\@ifnextchar
+ [{\@multirow{#1}}{\@multirow{#1}[0]}}
+\def\@multirow#1[#2]#3{\@ifnextchar [{\@xmultirow{#1}[#2]{#3}}%
+ {\@xmultirow{#1}[#2]{#3}[0pt]}}
+\def\@xmultirow#1[#2]#3[#4]#5{\@tempcnta=#1%
+ \@tempdima\@tempcnta\ht\@arstrutbox
+ \advance\@tempdima\@tempcnta\dp\@arstrutbox
+ \ifnum\@tempcnta<0\@tempdima=-\@tempdima\fi
+ \advance\@tempdima#2\bigstrutjot
+ \if*#3\setbox0\vtop to \@tempdima{\vfill\multirowsetup
+ \hbox{\strut#5\strut}\vfill}%
+ \else
+ \setbox0\vtop to \@tempdima{\hsize#3\@parboxrestore
+ \vfill \multirowsetup \strut#5\strut\par\vfill}%
+ \fi
+ \ht0\z@\dp0\z@
+ \ifnum\@tempcnta<0\advance\@tempdima-\dp\@arstrutbox
+ \else\@tempdima=\ht\@arstrutbox
+ \ifnum#2>0 \advance\@tempdima\bigstrutjot \fi
+ \fi
+ \advance\@tempdima#4\relax\leavevmode\vtop{\vskip-\@tempdima\box0\vss}}
+\@ifundefined{bigstrutjot}{\newdimen\bigstrutjot \bigstrutjot\jot}{}