\multicolumn 的一个变体,用于获取整行

\multicolumn 的一个变体,用于获取整行

这个问题是关于一个命令的,它会做同样的事情,\multicolumn只是它只使用行中的总列数。

简单来说

\newcommand\allcolumns[2]{\multicolumn\AnswerToThisQuestion{#1}{#2}}

\multicolumn*做同样事情的变体可能会很可爱。

答案1

这是一个丑陋的黑客攻击,利用计数列数\@addamp,步进计数器,每次tabular启动新环境时都会重置计数器。

我并不声称这适用于任何场合。

\documentclass{article}

\usepackage{xpatch}

\newcounter{colcntr}



\makeatletter
\xpatchcmd{\@addamp}{\if@firstamp}{\stepcounter{colcntr}\if@firstamp}{}{}
\makeatother

\newcommand{\allcolumns}[2]{%
  \multicolumn{\number\value{colcntr}}{#1}{#2}%
}


\AtBeginEnvironment{tabular}{\setcounter{colcntr}{0}}

\begin{document}
\begin{tabular}{|l|l|l|}
  Long & table column & stuff \tabularnewline
  \allcolumns{|c|}{Foo stuff}
\end{tabular}

\end{document}

在此处输入图片描述

相关内容