如何使用宏作为另一个宏的可选参数列表?

如何使用宏作为另一个宏的可选参数列表?

这是代码:

\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\def\p{fontsize=\small}
\VerbatimInput[\p]{a.txt}
\end{document}

它无法编译。用作\p可选参数的正确方法是什么?

答案1

\expanded也许您可以在调整 LaTeX 的扩展保护/预防机制后使用包装器进行调用:

\documentclass{article}
\usepackage{fancyvrb}

\makeatletter
\newcommand\expandstuff[1]{%
  \begingroup
  \let\protect=\@unexpandable@protect
  \expandafter\endgroup
  \expanded{#1}%
}%
\makeatother

\begin{document}

\def\p{fonts\q}\def\q{ize=\small}

\expandstuff{\protect\VerbatimInput[\p]}{a.txt}

\end{document}

相关内容