如何正确使用 lstinputlisting 命令的引用?

如何正确使用 lstinputlisting 命令的引用?

在我的 tex 中我有这个命令:

\lstinputlisting[breaklines=true,label={lst:use_case_ip}]{ch5/code/get.txt}
\captionof{lstlisting}{HTTP Request where string was found}

产生 1.2 倍价值

当我使用 ref 命令时,例如

The listings \ref{lst:use_case_ip}

我得到的是 1.4.1 值……这完全是错误的

我的错误在哪里?

答案1

您的错误在于,它负责\caption生成机制将挑选用于交叉引用的锚点,并且您在分配标题之前使用了标签。\label\ref

\captionof不要使用 ,而要使用caption键;否则,将选择错误的字符串进行交叉引用:

\lstinputlisting[breaklines=true,caption={HTTP Request where string was found},label={lst:use_case_ip}]{ch5/code/get.txt}

您可以使用键控制标题的位置captionpos(可能的值:b底部、t顶部):

\lstset{
  captionpos=b
}

相关内容