使用 lstinputlisting 标签

使用 lstinputlisting 标签

我正在使用该listings包将源代码包含在我的.tex文档中。现在我想引用这些lstinputlisting代码。因此,我正在使用此包

lstinputlisting[label=lst:mat.h, title=\textbf{src:} mat.h]{src/mat.h}

包含文件和

\ref{list:mat.h}

来引用它。现在我没有收到错误消息,但我只得到了(子)部分的编号,而不是此列表的编号。有什么办法可以解决这个问题吗?

答案1

如果不使用该caption选项,则\label应用\@currentlabel上次修改的设置\refstepcounter,显然在 OP 中这是某种\subsection操作。

解决方案:caption=...作为可选参数中的一个选项应用\lstinputlisting——这也将打印列表编号并将列表添加到List of Listings

\documentclass{article}

\usepackage{listings}
\begin{document}

\lstinputlisting[label={foo},caption={A difficult example in C}, language={C}]{helloworldexample.c}

In \ref{foo} we saw that \dots
\end{document}

非常hellowordexample.c简短,但足以进行测试:

#include<stdio.h>

int main(int argc,char **argv)
{
  printf("Hello World!\n");
  return(0);
}

在此处输入图片描述

相关内容