执行列表中自己的命令

执行列表中自己的命令

我创建了一个像这样的命令

\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

相关内容