需要跨页且具有所需水平尺寸的表格

需要跨页且具有所需水平尺寸的表格

我已经使用表格工作了很长时间,感觉表格的大小没有得到尊重。

我通常会这样做:

  \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}|}

相关内容