使用 \captionof 对列表进行分层编号

使用 \captionof 对列表进行分层编号

我正在使用包\captionof中的命令caption为生成的列表添加标题\inputminted。例如

\documentclass{report}

\usepackage{caption}
\usepackage{minted}

\begin{document}

\chapter{The first chapter}

\captionof{listing}{some code}
\begin{minted}{C}
#define X 1
\end{minted}

\chapter{The second chapter}

\captionof{listing}{some more code}
\begin{minted}{C}
#define Y 2
\end{minted}

\end{document}

这似乎是为 minted 生成的列表添加标题的唯一方法,同时仍允许列表跨越多页。让我非常恼火的是,我无法弄清楚如何按层次结构对生成的列表进行编号。它们显示为和,Listing 1但我更Listing 2希望根据它们所在的章节对它们进行编号(类似于浮点数的编号)。我该如何实现这一点?Listing 1.1Listing 2.1

答案1

\captionof{listing}{...}使用宏\thelisting来显示列表编号。如果需要更改此设置,并且列表编号按章节编号重置,请使用包\counterwithin{listing}{chapter}中的chngcntr宏(或者在 LaTeX 内核更新后,它包含在内核中)

\documentclass{report}
\usepackage{chngcntr}% Only needed unless using new LaTeX kernel update from early of April 2018
\usepackage{caption}
\usepackage{minted}
\counterwithin{listing}{chapter}
%\renewcommand{\thelisting}{\thechapter.\arabic{listing}}

\begin{document}

\chapter{The first chapter}



\captionof{listing}{some code}
\begin{minted}{C}
#define X 1
\end{minted}

\chapter{The second chapter}

\captionof{listing}{some more code}
\begin{minted}{C}
#define Y 2
\end{minted}

\end{document}

相关内容