如何让图形编号按照与方程编号相同的顺序运行,例如 (1.2.3) 方程....图 1.2.4?对于我定义的环境,我使用\newtheorem{thm}[equation]{THM}
,但我不知道如何对预定义的环境(例如图形)执行相同的技巧。
答案1
所需的编号方案可能会造成混淆,因为使用figure
环境编写的数字可能会偏离您在代码中编写它们的位置(请参见下面的示例代码,其中数字的出现顺序并不自然)。
如果您想要这种方案,例如使用amsmath
包及其\numberwithin
命令,您可以将equation
和计数器figure
与节编号绑定在一起:然后,在包的帮助下,etoolbox
您可以使figure
环境增加equation
计数器,反之亦然:
\documentclass{book}
\usepackage{amsmath}
\usepackage{etoolbox}
\numberwithin{figure}{section}
\numberwithin{equation}{section}
\AtBeginEnvironment{figure}{\stepcounter{equation}}
\AtBeginEnvironment{equation}{\stepcounter{figure}}
\begin{document}
\chapter{Test}
\section{test}
\begin{equation}
a=b
\end{equation}
\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for `\includegraphics`
\caption{A test figure}
\label{fig:test}
\end{figure}
\begin{equation}
c=d
\end{equation}
\end{document}
答案2
您想使用与计算等式相同的计数器来计算数字吗?这里有一个解决方案:
\documentclass{article}
\makeatletter
% \dupcntr{slave}{master} has the slave counter be an alias for the master counter
\newcommand*{\dupcntr}[2]{%
\expandafter\let\csname c@#1\expandafter\endcsname\csname c@#2\endcsname
}
\dupcntr{figure}{equation}
\renewcommand\thefigure{\theequation}
\makeatother
\begin{document}
% snip
\end{document}
该解决方案借鉴了 TeX stackexchange 讨论从属重复计数器
答案3
该包xassoccnt
支持多个计数器(不仅仅是两个!)的耦合和解耦,并\DeclareCoupledCounters
定义一个计数器组名——这不是使用“共享”计数器方法(该功能尚不支持xassoccnt
)
\documentclass{book}
\usepackage{xassoccnt}
\DeclareCoupledCounters[name=figurequation]{figure,equation}
\begin{document}
\begin{equation}
E=mc^2
\end{equation}
\begin{equation}
c^2 = a^2 + b^2
\end{equation}
\begin{figure}[ht]
\caption{Foo figure}
\end{figure}
\begin{figure}[ht]
\caption{Foo figure}
\end{figure}
\begin{figure}[ht]
\caption{Foo figure}
\end{figure}
\begin{figure}[ht]
\caption{Foo figure}
\end{figure}
\begin{equation}
c^2 = a^2 + b^2
\end{equation}
\end{document}