X-Git-Url: https://git.distorted.org.uk/~mdw/mdwtools/blobdiff_plain/b57a27e1141e4396549f7a3528a29d65b0f44973..e8e9e5d812460c19d276d9449a1792e2b384eb20:/mdwtab.dtx diff --git a/mdwtab.dtx b/mdwtab.dtx index 0b78153..3c4b419 100644 --- a/mdwtab.dtx +++ b/mdwtab.dtx @@ -6,31 +6,6 @@ % % (c) 1996 Mark Wooding % -%----- Revision history ----------------------------------------------------- -% -% $Log: mdwtab.dtx,v $ -% Revision 1.3 2003/11/10 14:43:48 mdw -% Ignore spaces after spliteqn. -% -% Revision 1.2 2003/09/05 16:15:03 mdw -% Colour support! Better rule attribute handling. Lots of new hooks. -% -% Revision 1.1 2002/02/03 20:49:03 mdw -% Checkin for new build system. -% -% Revision 1.8 1996/12/09 23:20:42 mdw -% (\tab@setstrut): Fixed so that it uses \dimen@ii for the strut depth, -% as advertised. -% -% Revision 1.7 1996/11/29 21:59:16 mdw -% Fixed a little formatting mistake in a syntax diagram, and switched over -% to the new syntax diagram commands on the grounds that they're slightly -% less messy. Maybe. -% -% Revision 1.6 1996/11/19 20:54:33 mdw -% Entered into RCS -% -% % \end{meta-comment} % % \begin{meta-comment} @@ -69,7 +44,7 @@ %<+color> [2003/08/24 1.10 Fix for people who can't spell] % \end{meta-comment} % -% \CheckSum{3373} +% \CheckSum{3404} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -578,7 +553,7 @@ % The |*| or optional \ give rule-drawing parameters for the |h| % and |c| subcommands. (Note that you can't pass a |*| or an optional % parameters argument to the |h| or |c| subcommands directly.) See -% section~\ref{sec:ruleparams}. +% section~\ref{sec:ruleparams}. % % The argument works a bit like a table preamble, really. Each letter is a % command. The following are supported: @@ -676,7 +651,7 @@ % then you get an extra thick rule at the bottom of the page. This is a bit % of a problem, because if the rule isn't there in the footer and you get % a break between two rows \emph{without} a rule between them, then the page -% looks very odd. +% looks very odd. % % If you want to do ruled longtables, I'd recommend that you proceed as % follows: @@ -915,7 +890,7 @@ % Note that if you do gobble the |\tab@mkpream|, it's your responsibility to % insert another one at the very end of your macro's expansion (so that % further preamble characters can be read). -% +% % The replacement text is inserted directly. It's normal to insert preamble % elements here. There are several to choose from: % @@ -1107,7 +1082,7 @@ % \[ "*" \] % \[ "[" "]" \] % "{" "}" -% \[ "[" "]" +% \[ "[" "]" % \[ "[" "]" \] \] % \]] % \end{grammar} @@ -1971,14 +1946,14 @@ % % % \subsection{Parser states} -% +% % Now we start on the parser. It's really simple, deep down. We progress % from state to state, extracting tokens from the preamble and building % command names from them. Each command calls one of the element-building % routines, which works out which state it should be in. We go through each % of the states in between (see later) doing default things for the ones we % missed out. -% +% % Anyway, here's some symbolic names for the states. It makes my life % easier. % @@ -2739,7 +2714,7 @@ \coldef <#1{\tabuserposttype{#1}} \coldef ?#1#2{% \ifx>#1\expandafter\tabuserpretype% - \else\expandafter\tabusrposttype\fi% + \else\expandafter\tabuserposttype\fi% {#2}% \tab@append\tab@shortline{#2}% } @@ -2880,7 +2855,11 @@ \tab@initread% \def\tab@multicol{\@arstrut}% \tab@preamble{\tab@multicol}% - \def\tab@midtext{\ignorespaces\@sharp\@sharp\@maybe@unskip}% + \let\tab@lefttext\tab@lefttexthook% + \let\tab@righttext\tab@righttexthook% + \let\tab@leftruletext\tab@leftruletexthook% + \let\tab@rightruletext\tab@rightruletexthook% + \def\tab@midtext{\tab@setcr\ignorespaces\@sharp\@sharp\@maybe@unskip}% \tab@readpreamble{#1}% \gdef\@preamble{\the\tab@preamble}% \let\tab@bgroup\begingroup% @@ -3808,7 +3787,7 @@ % % \begin{macro}{\tab@dohline} % -% This is where hlines actually get drawn. +% This is where hlines actually get drawn. % Drawing lines is more awkward than it used to be, particularly in unboxed % tables. It used to be a case simply of saying |\noalign{\hrule}|. % However, since unboxed tables are actually much wider than they look, this @@ -4906,7 +4885,7 @@ \if@fleqn% \eqaopenskip\mathindent% \splitleft\mathindent\relax% - \splitright\mathindent\@minus\mathindent\relax% + \splitright\mathindent\@minus\mathindent\relax% \else% \eqaopenskip\@centering% \splitleft2.5em\@minus2.5em% @@ -5168,7 +5147,7 @@ % \end{environment} % \end{environment} % -% Now we can define the column types. +% Now we can define the column types. % % \begin{macrocode} \colpush{eqnarray} @@ -5602,9 +5581,13 @@ % we need to remove them by hand at the extremities of the environment. % % \begin{macrocode} -\def\subsplit{% +\def\subsplit{\@ifnextchar[\subsplit@i{\subsplit@i[c]}} +\def\subsplit@i[#1]{% + \let\@tempa\vcenter% + \if#1t\let\@tempa\vtop\fi% + \if#1b\let\@tempa\vbox\fi% \let\\\seq@cr% - \vcenter\bgroup% + \@tempa\bgroup% \seq@dosplit{\hfil\qquad$##$\qquad\hfil}{\hfilneg\hskip-2em}% } % \end{macrocode}