如何让图形计数器跟随定理计数器?

如何让图形计数器跟随定理计数器?

我正在尝试让我的图形计数器遵循我的定理计数器。我创建了几个不同的环境:引理、示例、定义等。我已经让它们全部遵循我的定理计数器。

编号为 Chapter.Section.theorem。因此它将像这样:

第2章“第二章”

第 2.1 节 第一节

定义 2.1.1 - 第一个定义

定理 2.1.2 - 第一定理

第 2.2 节 第二节

第三章“第三章”

ETC...

但是,这些图似乎没有遵循计数器。第一个图(在第 2.4 节中)是图 2.3 ... 所以我试图让它与其他图保持一致,以便它看起来像:

示例 3.2.5 - 示例

图 3.2.6 - 示例 3.2.5 的图

有什么建议吗?我把我认为适用的所有代码都放在了下面。如果您需要更多/其他东西,请告诉我...

\documentclass{thesis} %This is my school's self-made document class

\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}

\theoremstyle{definition}   %Added by me
\newtheorem{example}[theorem]{Example}

%\makeatletter  %Added by me
%\let\c@theorem\c@figure
%\makeatother

\begin{document}

\begin{figure}
\caption{The Figure}
\end{figure}

\end{document}

我已尝试过\let\c@theorem\c@figure但似乎不起作用。

答案1

一个提议:

  1. 不要使用浮动图形,删除\begin{figure}...\end{figure}图形和标题周围
  2. 使用caption包和\captionof{figure}{foo text}代替标准\caption命令
  3. 重新定义图形输出命令\thefigure以获取\thetheorem.\arabic{figure}输出
  4. (可选)使用定理重置图形计数器,即@addtoreset{figure}{theorem}如果不需要,只需注释掉该行

\documentclass{book} % can't use thesis.cls here, since unknown!!!

\usepackage{caption}%
\usepackage[demo]{graphicx}%
\usepackage{amsthm}%

\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}

\theoremstyle{definition}   %Added by me
\newtheorem{example}[theorem]{Example}

%\makeatletter  %Added by me
%\let\c@theorem\c@figure
%\makeatother

\makeatletter
\@addtoreset{figure}{theorem}
\makeatother

\let\StandardTheFigure\thefigure
\renewcommand{\thefigure}{\thetheorem.\arabic{figure}}

\begin{document}

\chapter{My first chapter}

\section{The very first section}%

\begin{theorem}
\( E = m c^2 \)
\end{theorem}

\begin{center}
\includegraphics{somefig}
\captionof{figure}{The Figure}
\end{center}

\begin{theorem}
\( E^2 = p^2 c^2 + \left({m c^2}\right)^2 \)
\end{theorem}

\begin{center}
\includegraphics{somefig}
\captionof{figure}{Another figure}%
\end{center}


\end{document}

在此处输入图片描述

答案2

我也一直在寻找同样的东西,我认为答案更简单一些。使用我的方法,是否使用图形环境并不重要。

  1. 您需要将图形计数器覆盖为定理计数器:
    \renewcommand{\thefigure}{\thesection.\arabic{theorem}}
  2. \stepcounter{theorem}在使用 captionof 或 caption:或\addtocounter{theorem}{1}\之前,你需要将定理计数器增加一

\thefigure 正在调用图形计数器,而您基本上会覆盖该计数器。 \thesection 适用于 1.1,因为定理计数器也是以这种方式显示的,而 \arabic{theorem} 仅打印定理计数器。如果您使用 \begin{theorem},计数器会自动升高,但对于图形则不会,当您只是调用它时,这就是为什么当您使用图形时必须自己升高它的原因。所以总的来说:

\documentclass{book} % can't use thesis.cls here, since unknown!!!

\usepackage{caption}%
\usepackage[demo]{graphicx}%
\usepackage{amsthm}%

\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}

\theoremstyle{definition}   %Added by me
\newtheorem{example}[theorem]{Example}

\renewcommand{\thefigure}{\thesection.\arabic{theorem}}%IMPORTANT

\begin{document}

\chapter{My first chapter}

\section{The very first section}%

\begin{theorem}
\( E = m c^2 \)
\end{theorem}

\begin{figure}[h]
\centering
\stepcounter{theorem}%IMPORTANT
\includegraphics{somefig}
\caption{The Figure}
\end{figure}

\begin{theorem}
\( E^2 = p^2 c^2 + \left({m c^2}\right)^2 \)
\end{theorem}

\begin{center}
\stepcounter{theorem}%IMPORTANT
\includegraphics{somefig}
\captionof{figure}{Another figure}%
\end{center}


\end{document}

在此处输入图片描述

相关内容