假设我们有以下代码:
\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}