如何防止 longtable 中的多行溢出到后续的表行?

如何防止 longtable 中的多行溢出到后续的表行?

我有一个longtable目前看起来像这样的:

长桌上有不必要的间距

我想让表格更紧凑,并去掉以黄色突出显示的空白区域。我尝试通过将最后一列的内容包装到命令中来实现这一点multirow,但虽然空白区域现在消失了,但multirow内容似乎并没有将其高度添加到总行高计算中,因此内容现在延伸到其下方的单元格,甚至延伸到表格下方的空间:

紧凑但溢出的长桌

有没有办法自动调整行高longtable(如果可能的话,同时仍允许分页符)?我想避免用手动间距修补表格,因为会有数百行需要调整...

梅威瑟:

\documentclass{scrartcl}
\usepackage{longtable}
\usepackage[longtable]{multirow}

\begin{document}

\begin{longtable}{|p{1cm}p{3cm}|l|p{7cm}|}
  \hline
  \multicolumn{2}{|p{4cm}|}{\textbf{Lorem ipsum}} & \textbf{Dolor} & \textbf{Sit amet}
  \endhead
  \hline
  A-1.1 & Consectetur & X & \multirow{2}{=}{%
    Proin vitae blandit enim. Ut a cursus felis, ac ullamcorper lorem. Donec dignissim 
    rutrum dui, in suscipit odio. Morbi quis scelerisque sem. Nullam condimentum massa 
    eget nisi rutrum, nec vulputate lorem dictum. 
  }\\
  \multicolumn{2}{|p{3.5cm}|}{\emph{(Nullam porta, tortor ut accumsan ultrices.)}} & & \\
  \hline
  \ldots & \ldots & \ldots & \ldots
  \\
  \hline
\end{longtable}

\end{document}

答案1

让我将我的评论转换为答案(为了更好地了解表格格式:

\documentclass{scrartcl} 
\usepackage{longtable}
\usepackage{lipsum}  

\begin{document} 
\begin{longtable}{|p{4cm}|l|p{7cm}|} 
    \hline 
\textbf{Lorem ipsum}    & \textbf{Dolor} & \textbf{Sit amet}\\ 
    \endhead 
    \hline 
A-1.1 Consectetur  

(\lipsum[1][1])         & X             & \lipsum[1][2-6]   \\  
    \hline \ldots       & \ldots        & \ldots            \\ 
    \hline 
\end{longtable} 
    \end{document}

这使:

在此处输入图片描述

然而,如果由于某些原因想要拥有multicolumnmultirow细胞,那么一个好的选择是使用tabularray包。

编辑: 该软件包tabularray(迄今为止)提供三种类型的表格:

  • tblr,作为更强大的替代品tabular以及tabularx表格
  • talltblr,作为表格threeparttable的 更强大替代品threeparttablex
  • longtblr更加灵活longtablexltabular

一个演示如何编写表格代码的示例是:

\documentclass{scrartcl}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\usepackage{lipsum}

\begin{document}
    \begin{longtblr}[
caption = {Long table},
label= {tab:longtblr}]%
            {vline{1,3-Z},
             colspec = {Q[l,wd=4em] Q[l,wd=4cm] c X[h,j]},
             column{1} = {font=\bfseries}, 
             row{1} = {font=\bfseries},
             rowhead=1
            }
    \toprule
\SetCell[c=2]{c} Lorem ipsum 
        &           & Dolor     &   Sit amet                \\
    \midrule
A-1.1   & Consectetur
                    & X         & \SetCell[r=2]{j} 
                                  \lipsum[1][2-6]           \\
\SetCell[c=-2]{h,j,wd=4cm+4em+2\tabcolsep, font=\normalfont}  \lipsum[1][1]
        &           &           &                           \\
    \midrule
A-1.123   & Consectetur
                    & Y         & \SetCell[r=2]{j}
                                  \lipsum[1][7-9]           \\
\SetCell[c=-2]{h,j,wd=4cm+4em+2\tabcolsep, font=\normalfont}  \lipsum[1][3-4]
        &           &           &                           \\
    \midrule
\ldots  & \ldots    & \ldots    & \ldots                    \\
    \bottomrule
    \end{longtblr}
\end{document}

在此处输入图片描述

相关内容