如何使列表里的标签编号保持一致?

如何使列表里的标签编号保持一致?

我已经使用 定义了两种语言\lstdefinelanguag,然后使用 来设置它们\lstset。重点是,稍后当我编写一些列表并将它们标记为。

\begin{lstlisting}[language=JavaScript,label={lst:animate}]
\\just some function
\end{lstlisting}

当我使用 引用标签编号时,它们不一致\ref。我的文档中的第一个和第二个列表都获得值1。我猜是因为它们是不同的语言。但是,我有来自同一种语言的 3 个列表,它们同样都具有列表值。有什么想法可以让列表值持续增加吗?

答案1

由于您没有提供 MWE,因此只能猜测,但引用的数字是否与列表所在的部分编号一致?为了能够引用列表,需求有标题!你问题中的那个没有标题,所以标签引用了最后被引用的计数器。

\documentclass{article}
\usepackage{listings}

\begin{document}

\section{bla}
\section{bla}

\begin{lstlisting}[label=lst:foo]
  foo
\end{lstlisting}

First listing without caption: \ref{lst:foo} -- ups! Section number!

Second listing with caption: \ref{lst:bar} -- this looks right!

\begin{lstlisting}[label=lst:bar,caption=bar]
  bar
\end{lstlisting}

\end{document}

在此处输入图片描述

标题和其他几个编号的文档元素\refstepcounter{...}与相应的计数器和标签有关总是指上次执行此操作的计数器\label。如果列表没有标题,那么这可能是\section我示例中的标题,也可能是其他标题,具体取决于您的实际文档。这很有意义:如果您引用清单 1那么应该有一个清单 1标记为这样附上标题。否则,您只会让读者感到困惑。

相关内容