带有小节的数字定理:“定理 1.2.3.4”

带有小节的数字定理:“定理 1.2.3.4”

我希望我的定理编号像“定理 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}

相关内容