![\newcommand 逐字参数](https://linux22.com/image/345540/%5Cnewcommand%20%E9%80%90%E5%AD%97%E5%8F%82%E6%95%B0.png)
我正在尝试创建一个如下所示的命令:
\newcommand{\pdf}[1]{
\includepdf[
scale = 0.7,
pagecommand =
\begin{verbatim}
#1
\end{verbatim}
]{#1}
}
使得
\pdf{Test.pdf}
包括 pdf 并在页面顶部打印文件名。
我得到了错误File ended while scanning use of \@xverbatim
。我也尝试过不逐字逐句地执行此操作:
\newcommand{\pdf}[1]{\includepdf[scale=0.7,pagecommand= #1 ]{#1}}
这样可以正确显示 pdf,但是当文件名带有下划线(例如test_file.pdf
)时,会出现错误Missing $ inserted
,文件名无法正确显示。我该如何修复这个问题?
答案1
verbatim
,例如\verb
,不能用作另一个命令的参数。
你似乎需要的只是
\texttt{\detokenize{#1}}
因此下划线就可以打印了:
\newcommand{\pdf}[1]{%
\includepdf[
scale = 0.7,
pagecommand = \texttt{\detokenize{#1}},
]{#1}%
}