用变量替换文本

用变量替换文本

我创建了一个新命令,用文本替换所有引用:

\newcommand{\Version}{1.0}

这在我的文本中效果很好。但是,在这种情况下,它不起作用:

\begin{fullwidth} 
    \begin{lstlisting}[language=bash] 
        mv ~/Downloads/application_\Version.bin .. # comment
    \end{lstlisting} 
\end{fullwidth} endcode

我该怎么做?预期结果应该将 \Version 替换为 1.0

答案1

escapeinside要做到这一点,你必须使用选项将列表代码“转义”回 LaTeX listings,如下所示:

\lstset{escapeinside={|}{|}}

然后在之间编码||latex 会解析介于之间的代码。由于竖线在 bash 中用得很多,因此我使用了这里

\documentclass{article}

\usepackage{listings}

\lstset{escapeinside={(*@}{@*)}}% Text between (*@ and @*) will be parsed by LaTeX

\newcommand{\Version}{1.0}

\begin{document}

\begin{lstlisting}[language=bash] 
  mv ~/Downloads/application_(*@\Version@*).bin .. # comment
\end{lstlisting}

\end{document}

相关内容