![\ref{lst:...} 未正确引用子节中的 \label{lst:...}](https://linux22.com/image/343361/%5Cref%7Blst%3A...%7D%20%E6%9C%AA%E6%AD%A3%E7%A1%AE%E5%BC%95%E7%94%A8%E5%AD%90%E8%8A%82%E4%B8%AD%E7%9A%84%20%5Clabel%7Blst%3A...%7D.png)
我正在写一份文档,其中有一些图表、表格和源代码(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
包裹。