我已经使用表格工作了很长时间,感觉表格的大小没有得到尊重。
我通常会这样做:
\begin{longtable}[H]{|m{0.3\linewidth}|m{0.7\linewidth}|}
\hline
\textbf{Header1} & \textbf{Header2}\\\hline
\endfirsthead
\hline
\textbf{Header1} & \textbf{Header2}\\\hline
\endhead
Content\\\hline
\caption{Caption}
\end{longtable}
水平尺寸比预期的大。我将页脚上方线的端点与表格的右边距进行比较。这两个应该得到相同的 x 值,但目前情况并非如此。
当我使用 tabularx 时,x 值是相同的:
\begin{tabularx}{\linewidth}{|lX|}
\hline
Content & Content \\
\hline
\end{tabularx}
但是由于我的表格长度超过一页,所以我需要一个新的解决方案,因为 tabularx 只会将表格延续到页脚中,而不会在新页面上中断。根据此处的建议,我将其更改为 longtable:使用 tabularx 在多个页面上连续显示表格
longtable 可以正确地跨页拆分(甚至重复标题),但不考虑大小,tabularx 可以考虑大小,但不考虑跨页拆分。有解决这个问题的办法吗?
编辑:对于所有寻找答案的人来说,这里是我现在使用的有效代码(2 列示例):
\begin{longtable}{|m{0.25\dimexpr\linewidth-4\tabcolsep-3\arrayrulewidth}|m{0.75\dimexpr\linewidth-4\tabcolsep-3\arrayrulewidth}|}
\hline
\textbf{1} & \textbf{2}\\\hline
\endfirsthead
\hline
\textbf{1} & \textbf{2}\\\hline
\endhead
1 & 2\\\hline
\caption{1}
\end{longtable}
答案1
您必须为列填充和规则留出空间,以便
\newlength\mylength
\setlength\mylength{\dimexpr\linewidth-4\tabcolsep-3\arrayrulewidth}
% in general you need to remove
% 2\tabcolsep for each column and 1\arrayrulewidth for each |
....
\begin{longtable}{|m{0.3\mywidth}|m{0.7\mywidth}|}