如何在 lstlisting 中交叉引用方程式?

如何在 lstlisting 中交叉引用方程式?

假设我们有以下代码:

\documentclass[reqno]{amsart}
\usepackage{geometry}
\geometry{margin=2in,top=3cm}
\usepackage{microtype}
\usepackage{listings}
\usepackage{hyperref}

\begin{document}

\begin{equation}\label{eq:1}
f(x)=x+2
\end{equation}

\begin{lstlisting}[language=Mathematica, basicstyle=\scriptsize] 
f[x_]:=f[x]=x+2 (* See \ref{eq:1} *)
\end{lstlisting}

\end{document}

得出:

在此处输入图片描述

然而,\ref{eq:1}lstlisting显然不起作用。

我们如何创建交叉eq:1引用lstlisting

答案1

该扩展listings提供了几种转为 LaTeX 的机制。

\documentclass[reqno]{amsart}
\usepackage{geometry}
\geometry{margin=2in,top=3cm}
\usepackage{microtype}
\usepackage{listings}
\usepackage{hyperref}

\lstset{escapeinside=||}

\begin{document}

\begin{equation}\label{eq:1}
f(x)=x+2
\end{equation}

\begin{lstlisting}[language=Mathematica, basicstyle=\scriptsize] 
f[x_]:=f[x]=x+2 (* See |\ref{eq:1}| *)
\end{lstlisting}

\end{document}

上述输出

相关内容