我对列表编号有疑问这主题。编号不会重新开始,而是继续。
\AtBeginDocument{%
\renewcommand{\thelstlisting}{%
\ifnum\value{subsection}=0
\thesection.\arabic{lstlisting}%
\else
\ifnum\value{subsubsection}=0
\thesubsection.\arabic{lstlisting}%
\else
\thesubsubsection.\arabic{lstlisting}%
\fi
\fi
}
}
对于小节 4.2.1,它应该从头开始,但它继续,所以我得到 4.2.1.2(因为有一个先前的列表)。
答案1
这与我已经建议你回答的问题没有什么不同标题和章节、小节和小小节
唯一的补充是\AtBeginDocument
必要的,因为listings
在那里定义了计数器。
\documentclass{article}
\usepackage{listings,chngcntr}
\AtBeginDocument{%
\counterwithin*{lstlisting}{section}
\counterwithin*{lstlisting}{subsection}
\counterwithin*{lstlisting}{subsubsection}
\renewcommand{\thelstlisting}{%
\ifnum\value{subsection}=0
\thesection.\arabic{lstlisting}%
\else
\ifnum\value{subsubsection}=0
\thesubsection.\arabic{lstlisting}%
\else
\thesubsubsection.\arabic{lstlisting}%
\fi
\fi
}%
}
\begin{document}
\section{A section}
\begin{lstlisting}[caption=Caption]
\caption{section.lstlisting}
\end{lstlisting}
\subsection{A subsection}
\begin{lstlisting}[caption=Caption]
\caption{subsection.lstlisting}
\end{lstlisting}
\begin{lstlisting}[caption=Caption]
\caption{subsection.lstlisting}
\end{lstlisting}
\subsubsection{A subsubsection}
\begin{lstlisting}[caption=Caption]
\caption{subsubsection.lstlisting}
\end{lstlisting}
\subsection{A subsection}
\begin{lstlisting}[caption=Caption]
\caption{subsection.lstlisting}
\end{lstlisting}
\section{A section}
\begin{lstlisting}[caption=Caption]
\caption{section.lstlisting}
\end{lstlisting}
\end{document}
答案2
我找到了答案,这要感谢@LudovicC. 发布的链接。由于我的所有列表都在里面,所以subsubsections
我在序言中添加了这行代码
\AtBeginDocument{\counterwithin{lstlisting}{subsubsection}}
我不认为这是正确的解决方案,但就我而言它有效!