[texhax] variable number of columns in a longtable

Philip G. Ratcliffe philip.ratcliffe at fastwebnet.it
Thu May 8 17:00:55 CEST 2008

> I would like to use the same document for two output formats, 
> both generated with LaTeX. One of the differences is the 
> number of columns in one longtable.
> What I have right now (stripped down of course):
> --------------------
> \documentclass{scrartcl}
> \usepackage{longtable}
> \begin{document}
> \makeatletter
> \newif\if at SHORT
> % only the short column (does not work):
> %\@SHORTtrue
> % two columns instead (seems to work):
> \@SHORTfalse
> \if at SHORT\longtable{|l|l|}\else\longtable{|l|l|l|}\fi
> \hline
> \endhead
> \endfoot
> main column
> & \if at SHORT
>     only one additional column
>   \else
>       first  additional column
>     & second additional column
>   \fi
> \\\hline
> \endlongtable
> \end{document}
> ---------------
> I think I understand why it does not work (it seems OK if you 
> generate the long version, but its flaw shows itself for the 
> short version).

Your guess is probably right.

> Any ideas how I could make this work?

This is all I could come up with in the ten minutes I had spare, but it
seems to work.  By the way, I wouldn't use @ and \makeatletter all the way
through your code; it's really not likely to be necessary if you use capital


\SHORTtrue % only the short column
%\SHORTfalse % two columns instead

main column
&\SecondCol{only one additional column}{first  additional column}
&\ThirdCol{second additional column}

Cheers,  Phil

More information about the texhax mailing list