我正在尝试让我的图形计数器遵循我的定理计数器。我创建了几个不同的环境:引理、示例、定义等。我已经让它们全部遵循我的定理计数器。
编号为 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
一个提议:
- 不要使用浮动图形,删除
\begin{figure}...\end{figure}
图形和标题周围 - 使用
caption
包和\captionof{figure}{foo text}
代替标准\caption
命令 - 重新定义图形输出命令
\thefigure
以获取\thetheorem.\arabic{figure}
输出 - (可选)使用定理重置图形计数器,即
@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
我也一直在寻找同样的东西,我认为答案更简单一些。使用我的方法,是否使用图形环境并不重要。
- 您需要将图形计数器覆盖为定理计数器:
\renewcommand{\thefigure}{\thesection.\arabic{theorem}}
\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}