带有 Tabular 的多页?

带有 Tabular 的多页?

我知道你可以将tabularxlongtable功能与ltxtable或结合使用ltablex,但 有类似的功能吗?在寻找处理很长的表格的tabulary方法时,我一无所获。tabulary

我正在处理的表格包含大量文本,需要在多列中换行。有些单元格的行数很少,有些单元格的行数很多,我希望调整列宽以最小化总表格长度。我知道我可以使用{>{\hsize=.5\hsize}X>{\hsize=1.5\hsize}X}中的功能手动执行此操作tabularx,但我正在制作的模板应该可以很好地处理任何特定的数据排列。tabularx每次我想制作表格时,我是否注定要使用并手动调整 hsize 数字?

答案1

已更新以支持设置longtable \LTleft\LTright边距。

在此处输入图片描述

\documentclass{article}
\usepackage{longtable,tabulary}
\setlength\textheight{10\baselineskip}
\topmargin-4\baselineskip
\headheight0pt
\pdfpageheight18\baselineskip

\def\a{Red green blue yellow green. }
\def\b{One two three four five six. }
\makeatletter

\def\ltabulary{%
\def\endfirsthead{\\}%
\def\endhead{\\}%
\def\endfoot{\\}%
\def\endlastfoot{\\}%
\def\tabulary{%
  \def\TY@final{%
\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}%
\def\endhead{\LT@end@hd@ft\LT@head}%
\def\endfoot{\LT@end@hd@ft\LT@foot}%
\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}%
\longtable}%
  \let\endTY@final\endlongtable
  \TY@tabular}%
\dimen@\columnwidth
\advance\dimen@-\LTleft
\advance\dimen@-\LTright
\tabulary\dimen@}

\def\endltabulary{\endtabulary}

\makeatother

\begin{document}


\begin{ltabulary}{LLL}
HEAD 1& HEAD 2& HEAD 3\endhead
\a\a&\a&\a\a\a\\
\b\b&\b&\b\b\b\\
x&y&z\\
x&y&z\\
x&y&z\\
x&y&z\\
\b\b&\a&\b\a\b\\
x&y&z\\
x&y&z\\
x&y&z\\
x&y&z\\
x&y&z\\
\end{ltabulary}


\noindent X\dotfill X

\LTleft=2cm

\begin{ltabulary}{LLL}
HEAD 1& HEAD 2& HEAD 3\endhead
\a\a&\a&\a\a\a\\
\b\b&\b&\b\b\b\\
x&y&z\\
x&y&z\\
x&y&z\\
x&y&z\\
\b\b&\a&\b\a\b\\
x&y&z\\
x&y&z\\
x&y&z\\
\end{ltabulary}

\noindent X\dotfill X
\end{document}

相关内容