我有一个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}
这使:
然而,如果由于某些原因想要拥有multicolumn
和multirow
细胞,那么一个好的选择是使用tabularray
包。
编辑:
该软件包tabularray
(迄今为止)提供三种类型的表格:
tblr
,作为更强大的替代品tabular
以及tabularx
表格talltblr
,作为表格threeparttable
的 更强大替代品threeparttablex
longtblr
更加灵活longtable
,xltabular
一个演示如何编写表格代码的示例是:
\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}