我创建了一个新命令,用文本替换所有引用:
\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}