表格溢出页面

表格溢出页面

我使用\documentclass[a4paper,14pt]{report}longtable包装。我也有

\usepackage[left=3cm,right=1cm,top=2cm,bottom=2cm,bindingoffset=0cm]{geometry}

在序言中。

我对这个表有一些问题:

\begin{longtable}{|p{50mm}|p{50mm}|p{50mm}|}

(我试过了{|p{0.1\textwidth}|p{0.2\textwidth}|p{0.2\textwidth}|})但是没有意义。)

我对 LaTeX 还很陌生,非常感谢大家的帮助!出了什么问题?

答案1

您的线宽为 17 厘米:A4 纸宽为 21 厘米,您希望左侧边距为 3 厘米,右侧边距为 1 厘米。使用显示的输入

\begin{longtable}{|p{50mm}|p{50mm}|p{50mm}|}

你不会得到一个过满的盒子。事实上,桌子的宽度是

150 毫米 + 6 \tabcolsep+ 4*0.4 点 = 163.215 毫米

通常\tabcolsep为 6pt,垂直线宽为 0.4pt。但您的示例是不是你展示的内容,因为很明显第二列比第一列宽得多(我怀疑是 100 毫米而不是 50 毫米)。如果长表序言是

\begin{longtable}{|p{50mm}|p{100mm}|p{100mm}|}

很明显,表格不适合行宽。如果你需要一个表格,其中第二列和第三列的宽度是第一列的两倍,你可以这样做

\begin{longtable}{|p{\dimexpr.2\textwidth-2\tabcolsep-0.8pt}|
                   p{\dimexpr.4\textwidth-2\tabcolsep-0.4pt}|
                   p{\dimexpr.4\textwidth-2\tabcolsep-0.4pt}|}

实际上,第一列并不完全是第二列的一半(它缩短了 0.4pt),但这应该不是问题。此表将完全占据行宽。只需记住 LaTeX\tabcolsep在每列的两侧添加即可。

您可以尝试这个度量,只要因数之和为\textwidth1 即可;或者,如果必须自动计算第一列的宽度,可以尝试 Herbert 的技巧。

又宽又长的桌子通常需要人工干预。

答案2

尝试\begin{longtable}{|l|p{50mm}|p{50mm|} 或使用包ltxtable

\usepackage{ltxtable}
\usepackage{filecontents}
...
\begin{filecontents}{longtab.tex}
\begin{longtable}{|l|X|X|}
.. table contents ...
\end{longtable}
\end{filecontents}

\LTXtable{\linewidth}{longtab}
...

使用包,filecontents您可以覆盖外部文件longtab.tex,该文件可以是任何其他名称

相关内容