带有大项目的大表格:项目内的分页符?

带有大项目的大表格:项目内的分页符?

我使用 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}
    

相关内容