\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 读取和解释其输入的内部机制有关,我只是试图给出一个简短的概述。)