使用 lstinputlisting 进行线路标记和引用?

使用 lstinputlisting 进行线路标记和引用?

假设我将以下 Fortran 代码保存为 hello.f:

PROGRAM HELLO  
  PRINT '(A)', 'Hello, world'  
  STOP  
END  

我知道我可以把它导入到 LaTeX 中

\begin{lstlisting}[caption={Hello}, escapechar=|]  
   PROGRAM HELLO  
     PRINT '(A)', 'Hello, world'     |\label{line:h1}|
     STOP  
   END  
\end{lstlisting} 

~\ref{line:h1}稍后我可以以常规文本模式使用。是否可以使用 执行相同操作\lstinputlisting

\lstinputlisting[caption={Hello}]{./fortran/code/hello.f}

答案1

您必须将标签添加到文件中,因此 hello.f 的内容应该是

PROGRAM HELLO  
  PRINT '(A)', 'Hello, world'     |\label{line:h1}|
  STOP  
END  

然后在\lstinputlisting命令中添加转义字符:

\documentclass{article}
\usepackage{listings}
\begin{document}
\lstinputlisting[caption={Hello}, escapechar=|]{hello.f}
See line~\ref{line:h1}.
\end{document}

运行 LaTeX 两次后(为了获得正确的参考),我得到以下输出:

在此处输入图片描述

相关内容