我创建了一个像这样的命令
\newcommand{\hostname}{this.is.my.hostname}
现在我想在普通文本(没问题)和列表中使用此命令
Nun kann die Funktionsweise überprüft werden:
\begin{lstlisting}[language=BashGriduser]
su -l griduser
globus-url-copy gsiftp://\hostname:2811/home/share/test file:///home/share/test2
\end{lstlisting}
在文本中,命令执行没有任何问题。在列表中,它被打印为\hostname
。我如何在列表中执行它或将其作为参数传递或类似的东西。
答案1
你可以通过如下方式“逃避”事情:
\documentclass{article}
\usepackage{listings}
\lstset{%
escapeinside={(*}{*)},%
}
\newcommand\foo{Bar}
\begin{document}
\begin{lstlisting}
Text (*\foo*)
\end{lstlisting}
\end{document}
将你希望 tex 实际读取的宏封装在由以下定义的“转义”机制中:escapeinside