为什么动词在多列命令中使用时会引发错误?

为什么动词在多列命令中使用时会引发错误?

\verb在命令中使用命令时遇到错误multicolumn。我将问题简化为以下示例:

\documentclass{article}

\begin{document}
\begin{table}[htb]
\begin{center}
\begin{tabular}{c|c}
  \multicolumn{2}{c}{\verb+test+} 
\end{tabular}
\end{center}
\end{table}

\end{document}

错误信息:\verb illegal in command argument

1. 为什么\verb在 内不允许使用\multicolumn

2.我该如何解决这个问题?

答案1

您可以使用该包fancyvrb,我希望下面的例子是不言自明的(感谢沃纳):

\documentclass{article}
\usepackage{fancyvrb}% http://ctan.org/pkg/fancyvrb
\begin{document}
\DefineShortVerb{\#}% # denotes verbatim opening/closing character
\SaveVerb{VerbA}#test#

\begin{table}[htb]
\begin{center}
\begin{tabular}{c|c}
Row 1 & Row 1 \\
  \multicolumn{2}{c}{\UseVerb{VerbA}} \\
Row 3 & Row 3
\end{tabular}
\end{center}
\end{table}



\end{document}

不能在宏中使用参数的原因\verb有点复杂。作为参数,\verb|test|首先读取并存储在内存中,然后进行处理。而命令\verb需要在读取的同时进行处理,主要是因为它必须记住分隔符(|#或其他),然后才能读取参数test

(实际上,它更为复杂并且与 TeX 读取和解释其输入的内部机制有关,我只是试图给出一个简短的概述。)

相关内容