我希望我的定理编号像“定理 1.2.3.4”,其中 1 代表章节,2 代表节,3 代表小节,4 代表本小节中的第四个定理。
解决方案是使用\numberwithin{mytheorem}{subsection}
:
定理编号为章节.部分.小节.定理编号
但是,如果我将定理放在节中,而不是子节中,我会得到“定理 1.2.0.4”。在这种情况下,有可能得到“定理 1.2.4”吗?
答案1
正如 daleif 提到的:编号方案可能会让读者感到困惑,但这里有一个解决方案。
该命令\clevercnt
检查(子)部分计数器是否大于零,然后使用完整格式,否则使用另一种更短的格式。
\documentclass{book}
\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[subsection]
%\numberwithin{thm}{subsection}
\newcommand{\clevercnt}[1]{%
\ifnum\value{subsection} > 0
\thesubsection.\arabic{thm}%
\else
\ifnum\value{section} > 0
\thesection.\arabic{thm}%
\else
\thechapter.\arabic{thm}%
\fi
\fi
}
\renewcommand{\thethm}{\clevercnt{thm}}
\begin{document}
\chapter{Foo}
\begin{thm}
\end{thm}
\chapter{Second}
\section{Foo}
\begin{thm}
Hello
\end{thm}
\chapter{Second}
\section{Foo}
\begin{thm}
Hello
\end{thm}
\section{other}
\subsection{Foobar}
\begin{thm}
Hello
\end{thm}
\end{document}