Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Xtab breaks a long table spanning multiple pages too soon -- see my screenshot:

Xtab breaking table too soon

The output seems rather unsightly to me. Can I make it take more of the available space?

Alternatively, is there a package for long tables which produces an output in one pass, and uses available paper space more efficently?

A little background

I need a package to do a one-pass compilation of a table which could span multiple pages, for automated report generation. supertabular should be capable of producing a table spanning multiple pages in one pass and, as I understand it, xtab is an improvement over it. longtable package requires multiple passes (the manual mentions 4 passes) to get it right, which might make report generation too slow.

share|improve this question
add comment

1 Answer 1

up vote 2 down vote accepted

xtabular overestimates the height of each row by 1pt; when the rows contain tall p cells, this is almost negligible; however, when the table has "small" rows, this becomes evident.

A supertabular based "solution" is the following strictsupertabular environment

\makeatletter 
\def\mod@estimate@lineht{% 
  \ST@lineht=\arraystretch \baslineskp 
  %\global\advance\ST@lineht by 1\p@ 
  \ST@stretchht\ST@lineht\advance\ST@stretchht-\baslineskp 
  \ifdim\ST@stretchht<\z@\ST@stretchht\z@\fi 
  \ST@trace\tw@{Average line height: \the\ST@lineht}% 
  \ST@trace\tw@{Stretched line height: \the\ST@stretchht}% 
} 
\newenvironment{strictsupertabular} 
  {\let\estimate@lineht\mod@estimate@lineht\supertabular} 
  {\endsupertabular} 
\makeatother

that needs lines that are never taller than a normal line of text.

Another defect shared by supertabular and xtab is that the column width is not the same across pages (this doesn't happen with longtable).

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.