我使用\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
在每列的两侧添加即可。
您可以尝试这个度量,只要因数之和为\textwidth
1 即可;或者,如果必须自动计算第一列的宽度,可以尝试 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
,该文件可以是任何其他名称