
Я пытаюсь определить макрос для формы быстрого доступа \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}