\ref{lst:...} 未正确引用子节中的 \label{lst:...}

\ref{lst:...} 未正确引用子节中的 \label{lst:...}

我正在写一份文档,其中有一些图表、表格和源代码(lstlistings),全部带有编号的标题,例如图 3.2.1 标题

除小节外,所有功能均正常工作,在\label{lst:code}文档中显示为代码 3.2.1,其中 3 对应于章节,2 对应于节,1 对应于节内的连续列表数,相应的\ref{lst:code}将显示为 3.2.2,其中第二个 2 对应于小节。

所有其他参考文献都正常工作。即使我将编号设置为小节(使用 4 个数字而不是 3 个),参考文献(列表)的编号仍为 3 个数字。

我可以以某种方式操纵 \ref{} 的列表设置方式吗?

感谢您的帮助。

\documentclass[a4paper,11pt]{report}
\usepackage[ngerman]{babel}
\usepackage{listingsutf8}
\usepackage{chngcntr}

\begin{document}
\counterwithin{lstlisting}{section}
\lstset{
    showstringspaces=false,
    extendedchars=true,
    inputencoding=utf8,
}
\chapter{Chapter}
\chapter{Chapter}
\chapter{Chapter}
\chapter{Chapter}
\section{section}
\section{section}
\section{section}
\subsection{Program.cs}
\subsection{Program.cs}

Code \ref{lst:code}

\lstset{caption=Code}\label{lst:code}
\begin{lstlisting}
static void Main() {
Application.Run(new Form());
}
\end{lstlisting}

\end{document}

返回结果:

  • 第四章

  • 4.3 节

  • 4.3.2 小节

  • 4.3.1 Codecaption 的数量

  • 4.3.2 参考文献的编号,但应为 4.3.1

答案1

代替

\lstset{caption=Code}\label{lst:code}

您需要提供\label使用label键值:

\lstset{caption=Code,label=lst:code}

请参阅当前第 18 页顶部文档为了listings包裹

在此处输入图片描述

相关内容