将列表环境作为选项传递给命令

将列表环境作为选项传递给命令

我有一个简单的命令,它接受一个参数。现在我想将一个小的列表环境传递给该命令。

以下是代码:

\documentclass{article}
\usepackage{listings}
\begin{document}

  \newcommand{\test}[1]{ #1 }

  \test
  {%
  \begin{lstlisting}
    asdf
  \end{lstlisting}
  }%

\end{document}

编译时出现此错误:

Package Listings Warning: Text dropped after begin of listing on input line 12.

(/usr/share/texmf-texlive/tex/latex/base/omscmr.fd))
*

如有任何建议我将非常感激。

答案1

不要这样做。lstlisting 是一个逐字逐句的环境,必须做很多\catcode神奇的事情,如果你在参数中使用它,它将不起作用(https://texfaq.org/FAQ-verbwithin)。即使在某些情况下您可以让它工作,但其他情况下也容易出现故障。您可以尝试将您的列表放在外部文件中,然后使用\lstlistinginput{..}

相关内容