无需 chngcntr 即可连续编号标题?

无需 chngcntr 即可连续编号标题?

和许多人一样,我需要连续的图表标题编号,而不是像 这样的基于章节的编号Figure 1.2。我使用scrreprtcaption包来处理我的文档。我还需要罗马表格编号,并通过更改标题标签格式来实现,如下所示:

\DeclareCaptionLabelFormat{table}{#1~#2}
\captionsetup[table]{labelformat=table}
\renewcommand\thetable{\Roman{table}}

由于它们重新开始,Table I表格列表中的每一章看起来都非常奇怪,我尝试了 -package chngcntr。它很好地解决了数字问题,但它覆盖了罗马数字。我该怎么办?

答案1

有两种选择。第一种可能性是

\usepackage{chngcntr}
\counterwithout{table}{chapter}
\renewcommand{\thetable}{\Roman{table}}

我认为更清楚。第二是

\usepackage{chngcntr}
\renewcommand{\thetable}{\Roman{table}}
\counterwithout*{table}{chapter}

这稍微更有效率(可能快几纳秒)。

区别在于 的 * 版本\counterwithout不会改变 的定义\thetable,而普通版本则\counterwithout应用 的默认定义\arabic

答案2

由于您caption无论如何都要加载包,因此您可以使用within=none(获取figuretable编号连续)或tablewithin=none(仅获取table连续编号)来加载它,例如

\documentclass{scrreprt}
\usepackage[within=none]{caption}
\renewcommand\thetable{\Roman{table}}
\begin{document}
\chapter{A}
\begin{table}
\caption{A}
\end{table}
\chapter{B}
\begin{table}
\caption{B}
\end{table}
\end{document}

这样,您就不需要额外的包,也不需要摆弄chngcntr加载hyperref顺序。

相关内容