我正在尝试使用 lstlistings-package 输入几行代码,但代码因条件而异。我怎样才能根据条件仅更改几行代码?
假设我有 If: \newif\ifshell
。如果它是真的,那么在 lst 环境中应该有以下代码:
pdprint -l
以及其他几行(对于真和假都是相同的)。
如果\shell
为假,则应该有pdfprintsvr -l
和其他行。
我如何加入条件里面lst 环境?提前致谢
答案1
您可以定义一个转义字符。
在下面的例子中,我选择了%
(在这种情况下,必须对其进行转义,因为它具有特殊含义)。您可以选择您喜欢的一个,即您在环境中不使用的一个lstlisting
。
这是代码:
\documentclass{article}
\usepackage{listings}
\begin{document}
\newif\ifshell
\section{Shell=true}
\shelltrue
\begin{lstlisting}[escapeinside={\%}{\%}]
%\ifshell%
pdprint -l
%\else%
pdfprintsvr -l
%\fi%
\end{lstlisting}
\section{Shell=false}
\shellfalse
\begin{lstlisting}[escapeinside={\%}{\%}]
%\ifshell%
pdprint -l
%\else%
pdfprintsvr -l
%\fi%
\end{lstlisting}
\end{document}
输出结果如下: