您能否定义一个宏,将listings
代码作为参数并将其插入到\begin{lstlistings} \end{lstlistings}
块中?
我的想法是这样的:
\def\blist#1{\begin{lstlisting} #1 \end{lstlisting}}
所以我可以写
\blist{ "this code is inside listings block" }
答案1
首先输入如下内容
\blist{<statement>
<statement>
<statement>
<statement>}
看起来比
\begin{lstlisting}[<options>]
<statement>
<statement>
<statement>
<statement>
\end{lstlisting}
但最终它并没有揭示这一点。首先:\end{lstlisting}
在输入中比单个括号更明显。
此外,由于技术原因,“带参数的宏”难以实现lstlisting
:这个环境非常相似verbatim
(但做更复杂的事情),所以它不能进入另一个命令的参数,如果你想要它正确处理所有对 LaTeX 来说是特殊的字符(特别是括号#
、、$
和)。%
一个好的文本编辑器不仅可以提供帮助,而且还有listings
以下特点:如果您想为排版代码块提供特定的选项,您可以定义一个新的环境:
\lstnewenvironment{blist}[1][]
{\lstset{<common options>,#1}}
{}
进而
\begin{blist}
<statement>
<statement>
<statement>
<statement>
\end{blist}
将应用排版<common options>
。输入起来不太难,而且适合标记您的输入,并使其易于找到使用该通用设置的代码块。您还可以通过以下方式添加“本地选项”
\begin{blist}[<local options>]