[texhax] Alignments and Knuth's uncertainty principle ...

Donald Arseneau asnd at triumf.ca
Wed Jan 28 00:09:54 CET 2009


Philip TAYLOR <P.Taylor at Rhul.Ac.Uk> writes:

> Donald Arseneau wrote:
> 
>  > This situation does lead to surprising behavior that looks
>  > buggy at first.  TeX gives the smallest feasible width to
>  > that unconstrained column, and that width is likely
>  > *negative*.
> 
> Many thanks for your observations, Donald.  I take it
> that a column width can become negative (in the
> scenario that we are discussing) only if the overall
> width of the alignment is constrained (is this the
> case ?).

No, the width can be negative in natural-width \halign if 
a column has no singleton cells, but cannot be merged 
with another column due to overlapping spans.

> get the idea).  The problem was that the name spanning
> columns 1 and 2 caused column 2 to grow in width, whereas
> I had (very naively) thought that column 2 would take
> the width of half an "=" minus the width of an "|",
> leaving column 1 to grow as necessary in order to
> accommodate the name.

So this is a different matter, and it sounds like there are
individual entries in each column.

> Unless I am missing something very obvious, 

This case *is* covered explicitly in The TeXbook.  In my
old copy it is a paragraph on page 245: "...sometimes they
produce undesirable effects... all the excess width is
allocated to the third [final] column."  Knuth recommends
\hidewidth to help, but it isn't terribly useful.
An old standby automatic solution is a finite shrinkable 
\tabskip, if you are using {tabular*} ot \halign to{} 
to force a specific overall width.

> seem to me that \haligns could be considerably more
> powerful 

They are very primitive.  Browsers render html tables much
more powerfully.  In TeX, further features must be built 
with tricky macros.  See tabularx/tabulary packages for 
LaTeX.


-- 
Donald Arseneau                          asnd at triumf.ca


More information about the texhax mailing list