我已经使用 定义了两种语言\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标记为这样附上标题。否则,您只会让读者感到困惑。