如何\multicolumn
在longtable
环境中使用以跨越除一列之外的所有列?\LT@cols
计数器可能是可行的方法。但是,在 LaTeX 中进行算术运算似乎有些不合常规。相关多列命令会自动使用表的所有列?。需要的是“\LT@cols
减一”。
答案1
您可以使用\numexpr\LT@cols-1
和定义自己的multicolumn
命令,例如
\makeatletter
\def\mymc#1#2{%
\multicolumn{\numexpr\LT@cols-1}{#1}{#2}% %%#1 = alignment, #2 = content
}
\makeatother
并像使用它一样
\mymc{r}{abc}
完整代码:
\documentclass[]{scrbook}
\usepackage{booktabs, longtable}
\makeatletter
\def\mymc#1#2{%
\multicolumn{\numexpr\LT@cols-1}{#1}{#2}%
}
\makeatother
\begin{document}
\begin{longtable}{p{2cm}p{2cm}p{2cm}ll}
\toprule
A & B & C & D & E\\
\midrule
\endfirsthead
\mbox{table continued from last page}\\
\toprule
A & B & C & D\\
\midrule
\endhead
%\bottomrule
\endfoot
\bottomrule
\endlastfoot
\mymc{r}{abc} & d\\
\midrule
a & \mymc{c}{bcd}\\
& b & c & d\\
& b & c & d\\
\end{longtable}
\end{document}