Article View: comp.text.tex
Article #10267Re: Help on tabular environment
From: David M. Jones
Date: Fri, 14 Jun 1991 14:08
Date: Fri, 14 Jun 1991 14:08
79 lines
4138 bytes
4138 bytes
In article <5434@network.ucsd.edu>, glenn@network (Glenn Sueyoshi) writes:
>I say qualified because while I've grabbed the files and run the test
>program and see how it should work in principal, I can't seem to get
>it to line up the column widths properly. The documentation says
>that one should enable (uncomment out) out the \setlongtables
>command and re-run, which I have (twice), but I still get columns
>which don't align.
>
>I'm running LaTeX 2.09 <7 December 1989> under TeX 3.0 and have the
>Mittelbach et al. font selection scheme installed.
Since I haven't seen any response to this, I'll take the liberty of
burdening the net with my analysis.
The culprit is the M&S font selection scheme. In particular,
lfonts.new redefines \@tabclassz as follows:
\def\@tabclassz{\ifcase \@lastchclass
\@acolampacol \or \@ampacol \or
\or \or \@addamp \or
\@acolampacol \or
\@firstampfalse \@acol \fi
\edef\@preamble{\@preamble{% <===== extra open curly brace
\ifcase \@chnum
\hfil\ignorespaces\@sharp\unskip\hfil
\or \ignorespaces\@sharp\unskip\hfil
\or \hfil\hskip\z@
\ignorespaces\@sharp\unskip\fi}}}% <======= extra close curly
(Note that this is the only change in \@tabclassz.)
As you can see, this adds an extra level of braces around each
template in the \halign \@preamble, so you get something like
\hskip \tabcolsep {\ignorespaces \@sharp \unskip \hfil }\hskip \tabcolsep
instead of
\hskip \tabcolsep \ignorespaces \@sharp \unskip \hfil \hskip \tabcolsep
Now, longtable.sty counts the number of columns in a table essentially
by counting the number of \@sharp's in the preamble. It does this by
taking the preamble apart with a macro invoked something like this:
\macro#1\@sharp
But, since the \@sharp's are now inside braces, this fails. The
result is that the number of columns \LT@cols is set to 0, and this
causes trouble for the \LT@blank@row command, which uses \LT@cols to
determine how many "\omit"s is should put in the blank line that is
used to measure the length of the columns in the table and store that
information in the .aux file. The final result of this is that, e.g.,
you get
\gdef \LT@i{\omit \kern 166pt}
instead of
\gdef \LT@i{\omit \kern 166pt&\omit \kern 42pt&\omit \kern 34pt}
in the .aux file.
I'm not sure what the correct solution is, since I don't know why the
extra level of braces was added to \@tabclassz (I don't have a copy of
lfonts.doc). I don't know what would happen if we simply changed the
definition back to the original one, but I assume something would go
wrong somewhere. The alternative seems to be to redefine the column
counting routine to handle the new type of preamble, but I'm not quite
sure how to do that. (Perhaps we should just redefine \@mkpream to
count the columns while it is constructing the preamble?) Any wizards
have any ideas? Would anyone care to check my analysis? I'll be glad
to provide more details to any interested party.
------------------------------------------------------------------------------
David M. Jones |"What we've just seen's
ARPANET: dmjones@athena.mit.edu | A pathetic display
UUCP: ...!mit-eddie!mit-athena!dmjones | By a man who's
USmail: 3 Ames Street; Cambridge, MA 02139 | Beginning to crack."
------------------------------------------------------------------------------
Technical Details
Message-ID:
<1991Jun14.140857.25984@mintaka.lcs.mit.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!mintaka!newsReferences:
<009499D5.177367A0.6104@Niord.SHSU.edu> <5434@network.ucsd.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.text.tex Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!mintaka!news From: dmjones@theory.lcs.mit.edu (David M. Jones) Subject: Re: Help on tabular environment In-Reply-To: glenn@network.ucsd.edu (Glenn Sueyoshi) Message-ID: <1991Jun14.140857.25984@mintaka.lcs.mit.edu> Sender: news@mintaka.lcs.mit.edu Reply-To: dmjones@theory.lcs.mit.edu (David M. Jones) Organization: Laboratory for Computer Science, MIT References: <009499D5.177367A0.6104@Niord.SHSU.edu> <5434@network.ucsd.edu> Date: Fri, 14 Jun 91 14:08:57 GMT Lines: 79