我的书中有第 0 章用于回忆先决条件。图形环境应该遵循默认编号方案:\thechapter.\thefigure
。但是,该方案在第 0 章中被违反,而在“非零”章节中的行为符合预期。以下 MWE 说明了这个问题。我希望 sfigure
在第 0 章中遵循与其他章节相同的编号方案。
\documentclass{book}
\usepackage{graphicx}
\begin{document}
\setcounter{chapter}{-1}
\chapter{0th}
\begin{figure}
\includegraphics{example-image-a}
\caption{Image A}
\end{figure}
\begin{figure}
\includegraphics{example-image-b}
\caption{Image B}
\end{figure}
\chapter{1st}
\begin{figure}
\includegraphics{example-image-a}
\caption{Image A}
\end{figure}
\begin{figure}
\includegraphics{example-image-b}
\caption{Image B}
\end{figure}
\end{document}
答案1
\numberwithin{figure}{chapter}
请尝试使用包装中的标签amsmath
,并且MWE
是:
\documentclass{book}
\usepackage{graphicx}
\usepackage{amsmath}
\begin{document}
\numberwithin{figure}{chapter}
\setcounter{chapter}{-1}
\chapter{0th}
\begin{figure}
\includegraphics{example-image-a}
\caption{Image A}
\end{figure}
\begin{figure}
\includegraphics{example-image-b}
\caption{Image B}
\end{figure}
\clearpage
\chapter{1st}
\begin{figure}
\includegraphics{example-image-a}
\caption{Image A}
\end{figure}
\begin{figure}
\includegraphics{example-image-b}
\caption{Image B}
\end{figure}
\end{document}
答案2
最初book.cls
定义\thefigure
为:
\renewcommand \thefigure
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
\c@chapter
这意味着,仅当章节号 ( ) 大于 0 ( )时,才会显示章节计数器\z@
。这是为了避免在前言中使用章节计数器前缀。
为了避免这种情况,您可以删除该条件并使用:
\renewcommand\thefigure{\thechapter.\arabic{figure}}
在文档序言中。可以使用以下方法完成相同的操作:
\counterwithout{figure}{chapter}% only to have the counter only once in the reset list of chapter, which usually wouldn't be problematic
\counterwithin{figure}{chapter}
但是(如前所述),这也会在前言中显示“0.<FigureNo>”,其中章节不会编号。为了避免这种情况,您可以使用类似于 KOMA-Script 类的定义scrbook
:
\makeatletter
\renewcommand*{\thefigure}{\if@mainmatter\thechapter.\fi\@arabic\c@figure}
\makeatother
如果您的第 0 章中还有其他元素也使用章节计数器,那么您也可以调整上述所有内容。例如,对于表格,请用、by\thefigure
或by替换。\thetable
figure
table
\c@figure
\c@table
下面是一个包含所有相关计数器的示例,定义如下book.cls
:
\documentclass{book}
\usepackage{graphicx}
\renewcommand*{\thefigure}{\thechapter.\arabic{figure}}
\renewcommand*{\thetable}{\thechapter.\arabic{table}}
\renewcommand*{\theequation}{\thechapter.\arabic{equation}}
%\renewcommand*{\thelstlisting}{\thechapter.\arabic{lstlisting}}% if you use listings in your chapter 0
\begin{document}
\setcounter{chapter}{-1}
\chapter{0th}
\begin{figure}
\includegraphics{example-image-a}
\caption{Image A}
\end{figure}
\begin{figure}
\includegraphics{example-image-b}
\caption{Image B}
\end{figure}
\clearpage
\chapter{1st}
\begin{figure}
\includegraphics{example-image-a}
\caption{Image A}
\end{figure}
\begin{figure}
\includegraphics{example-image-b}
\caption{Image B}
\end{figure}
\end{document}