我尝试为快捷方式定义宏\multiline{1}{<pcolumn type>}{\textbf{text}}
:
\documentclass[12pt,border=1mm,preview]{standalone}
\newcommand\mcbf[2]{\multicolumn{1}{#1}{\textbf{#2}}}
\begin{document}
\begin{tabular}{lr}
\hline
\mcbf{|c|}{AAA} & \mcbf{c|}{BBB} \\ \hline
\end{tabular}
\end{document}
效果与预期一致。由于大多数情况下我使用相同的列说明符,因此我尝试重新定义此宏,以便默认列类型例如c|
:
\documentclass[12pt,border=1mm,preview]{standalone}
\newcommand\xmcbf[2][c|]{\multicolumn{1}{#1}{\textbf{#2}}}
\begin{document}
\begin{tabular}{lr}
\xmcbf[|c|]{AAA} & \mcbf{BBB} \\ \hline
C & D \\ \hline
\end{tabular}
\end{document}
这会出现错误:
\multispan ->\omit
\@multispan
我遗漏了什么\newcommand
定义?我在 SE 中的搜索(可能很笨拙)没有提供有用的信息。
答案1
您需要命令扩张到\multicolumn
\documentclass[12pt,border=1mm,preview]{standalone}
\usepackage{xparse}
\DeclareExpandableDocumentCommand\xmcbf{O{c|}m}{\multicolumn{1}{#1}{\textbf{#2}}}
\begin{document}
\begin{tabular}{lr}
\xmcbf[|c|]{AAA} & \xmcbf{BBB} \\ \hline
C & D \\ \hline
\end{tabular}
\end{document}