长表中的多列,跨度取决于列数

长表中的多列,跨度取决于列数

如何\multicolumnlongtable环境中使用以跨越除一列之外的所有列?\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}

在此处输入图片描述

相关内容