我使用 LaTeX 从 Python 脚本中自动创建 PDF 文件。我创建的文档基本上只包含一个大表格,该表格可以跨越几页。它由三个 parboxed 列组成。每个项目可以包含较长的文本。到目前为止一切顺利。
此刻我正在像这样使用 longtable:
\begin{longtable}{@{}p{\inoutwidth}@{\hspace{\columnsepx}}p{.35\commentwidth}@{\hspace{\columnsepx}}p{.65\commentwidth}@{}}
问题是,即使一个单元格也可能包含太多文本,以至于无法在一页上显示。这意味着我需要在项目内设置分页符,而不仅仅是在项目之间设置分页符。
嗯,理想情况下,表格只会在行之间分页。但是,当某一项超出页面可用空间时,必须在表格行的中间进行分页。
这不是一件小事,因为表格的任何一列或所有列都可能在一行内包含大量文本。因此分页符可能会影响一列或多列。
我现在使用的 longtable 只在行之间设置分页符。如果一行包含太多文本,它就会沿着页面向下延伸,并且一些文本会超出页面边界,因此不可见。看起来不太好看。
有任何想法吗?
干杯!
答案1
ConTeXt 来源。图片显示前两页
\definepapersize[DE][width=11cm,height=15cm]
\setuppapersize [DE][DE]
\setuplayout[width=10cm,height=12cm]
%\setuptabulate[split=no]
\starttext
\starttabulate[|c|p(5cm)|]
\NC 1.\NC \input knuth\NC\NR\HL % a new tab line
\NC 2.\NC \input knuth\NC\NR\HL
\NC 3.\NC \input knuth\NC\NR\HL
\NC 4.\NC \input knuth\NC\NR\HL
\NC 5.\NC \input knuth\NC\NR\HL
\stoptabulate
\stoptext
答案2
只有使用 ConTeXt 才能找到通用解决方案。使用 LaTeX 你只能提升的情况。
- 您可以设置每一个列作为单个文档,文本宽度为当前列宽。最后,您可以使用 pdfpages 插入长表,它允许页面并排。但这仅适用于两页。
您可以在插入分页符的最后一行插入带有 的手动分页
\newpage
符\parfillskip=0pt
,然后此行将拉伸到整个列宽。手动分页符不会显示在输出中:\documentclass{article} \usepackage{longtable} \textwidth=6cm \begin{document} \begin{longtable}{p{3cm}p{2cm}} Some really nonsense text for the first column, where now is a problem with the page break & some more text \\ foo & bar \end{longtable} \begin{longtable}{p{3cm}p{2cm}} Some really nonsense text for the first column, where \parfillskip=0pt & % for manual page break some more text \\ \newpage now is a problem with the page break\\ foo & bar \end{longtable} \end{document}