当我通过以下方式指定宽度时\begin{longtable}p{xcm}
例如,这是我的代码
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\begin{document}
\newpage
\begin{longtable}{p{2cm}lp{2cm}lp{2cm}l}
\caption{Test}\\
\label{table:sh}\\
\hline\hline
2cm & 2cm & 2cm \\
\hline
Test & test & test \\
\end{longtable}
\begin{longtable}{p{4cm}lp{4cm}lp{4cm}l}
\caption{Test}\\
\label{table:sh}\\
\hline\hline
4cm & 4cm & 4cm \\
\hline
Test & test & test \\
\end{longtable}
\end{document}
显然,第一列和第三列的宽度已经改变,但中间列的宽度没有改变。这是为什么?如何解决?
答案1
\begin{longtable}{p{2cm}lp{2cm}lp{2cm}l}
表示您有 6 列,其中 3 列指定了宽度。因此,预计第二列(l
如左图)仅具有容纳test
单词所需的宽度。
答案2
这里缺少&
使用正确列的字符——定义了 6 列,但只&
使用了 3 列。
删除内部l
列说明符或使用其他&
字符。
l
在我看来,额外的列是没有必要的——表格会变得太宽,并且LaTeX
会抱怨框太满。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\begin{document}
\begin{longtable}{p{2cm}lp{2cm}lp{2cm}l}
\caption{Test}\\
\label{table:sh}\\
\hline\hline
2cm & & 2cm & & 2cm \\
\hline
Test & & test & & test \\
\end{longtable}
\begin{longtable}{p{4cm}lp{4cm}lp{4cm}l}
\caption{Test}\\
\label{othertable:sh}\\
\hline\hline
4cm & & 4cm & & 4cm \\
\hline
Test & & test & & test \\
\end{longtable}
\end{document}
答案3
您的数字有误&
:您应该写
x cm & & x cm & & x cm \\
换句话说:您并不总是处于您认为自己所在的列中。