lstlisting:mathescape 和 Erlang

lstlisting:mathescape 和 Erlang

我正在尝试将mathescape其与包中的 Erlang 语法突出显示结合使用lstlisting,如其手册第 4.14 节所述:

\documentclass{article}

\usepackage{listings}
\lstset{
    language=Erlang,
    mathescape=true
}

\begin{document}
\lstinline{$n_1$.lookup(k)}
\end{document}

失败原因:

! Extra }, or forgotten \endgroup.
<recently read> \egroup 

l.10 \lstinline{$n_1$.lookup(k)}

该代码对于其他语言(例如 C)来说运行良好。Erlang 的风格是否缺少一些东西来允许这样做?

答案1

listings包允许语法

\lstinline{...}

但将其标记为“实验性的”,请参阅手册第 26 页,第 4.2 节。第 5.1 节讨论了\lstinline在另一个命令的参数中使用;然而,第 5.1 节的结尾告诉我们,这并不安全。

特别是,mathescape结果与实验语法不兼容,所以你应该使用类似

\lstinline|$n_1$.lookup(k)|

(使用要排版的字符串中未出现的字符作为分隔符,就像命令一样\verb)。

相关内容