![如何使多列宽度等于每列声明宽度的总和?](https://linux22.com/image/275116/%E5%A6%82%E4%BD%95%E4%BD%BF%E5%A4%9A%E5%88%97%E5%AE%BD%E5%BA%A6%E7%AD%89%E4%BA%8E%E6%AF%8F%E5%88%97%E5%A3%B0%E6%98%8E%E5%AE%BD%E5%BA%A6%E7%9A%84%E6%80%BB%E5%92%8C%EF%BC%9F.png)
例如我有这张表:
\begin{longtable}[c]{ p{1.0in} p{1.5in} p{2.0in} p{2.5in} }
\multicolumn{3}{l}{ Partner } & \hfill Total \\
\end{longtable}
但结果是“合作伙伴”部分将根据合作伙伴名称的长度进行调整。总宽度应固定为 4.5 英寸(1.0 + 1.5 + 2.0)。
答案1
在第二个参数中,\multicolumn
您可以使用p{...}
所需宽度的列类型。由于您需要考虑列的填充(列边框与其内容之间的空间),因此正确的宽度为4.5in+4\tabcolsep
:
\documentclass{book}
\usepackage{longtable}
\begin{document}
\begin{longtable}[c]{p{1.0in}p{1.5in}p{2.0in}p{2.5in}}
\multicolumn{3}{p{\dimexpr4.5in+4\tabcolsep\relax}}{Partner} & \hfill Total \\
\end{longtable}
\end{document}
很容易给出一个普遍的表达式:
假设多列将跨越k
具有格式的列p{w1}, p{w2},...,p{wk}
(这里w1,w2,...,wk
是每列的长度);那么您需要用作w1+w2+...+wk+2(k-1)\tabcolsep
的宽度\multicolumn
。