我正在尝试排版一些代码。该代码包含一些嵌入的数学运算,但在嵌入的数学运算中,我需要引用代码中的变量。我希望数学运算中引用的变量像实际代码一样排版(所以我不想使用 mathtt 环境)。不幸的是,当我尝试执行此操作时出现错误。以下是示例:
\documentclass[11pt]{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[mathescape]
@pre: $ \langle \lstinline!a! \rangle $
\end{lstlisting}
\end{document}
我收到以下错误消息:
ERROR: Extra }, or forgotten \endgroup.
--- TeX said ---
<recently read> \egroup
l.6 @pre: $ \langle \lstinline!a!
\rangle $
我也尝试过使用\lstinline{a}
。我也尝试过将其嵌入到和中\mbox
。\parbox
我也尝试过使用并在数学公式周围\begin{lstlisting}[escapechar=^]
添加一个额外的。^
我无法简单地离开转义环境,因为我将这些内联字符包裹在像\left(
和 这样的大符号中\right)
。
答案1
我认为你想要一个保存箱。
\documentclass[11pt]{article}
\usepackage{listings}
\begin{document}
\newsavebox\boxa
\savebox\boxa{\lstinline{a}}
\begin{lstlisting}[mathescape]
@pre: $ \langle \usebox{\boxa} \rangle $
\end{lstlisting}
\end{document}