使用浮点数时,方程的编号存在问题tcolorbox
。我希望方程按出现的顺序编号。
这是 MWE
\documentclass{article}
\usepackage{tikz}
\usepackage{tcolorbox}
\newtcolorbox{myframe}[1][]{#1}
\begin{document}
\begin{equation} 1+2=3 \end{equation}
used with theorem \ref{theorem}
\begin{myframe}[float,floatplacement=t]
This is the theorem:
\begin{equation} 1+1=2. \label{theorem} \end{equation}
\end{myframe}
gives
\begin{equation} 2+2=4. \end{equation}
\end{document}
有没有办法正确地对方程式进行编号?谢谢。
编辑更准确地说,我希望编号按照出现的顺序进行,浮子位于任何位置。
答案1
这使用了\tag
amsmath 中的命令。要使它工作,您需要添加\mytag
到每个编号方程中。重新标记方程需要运行两次,而\ref
正确运行则需要运行 3 次。
如果您希望将章节号作为公式号的前缀,则必须重新格式化\tag
内部内容\mytag
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{tcolorbox}
\newtcolorbox{myframe}[1][]{#1}
\newcounter{myequation}
\newcommand{\neweqmap}[1]% #1 = original euqation number
{\stepcounter{myequation}%
\expandafter\xdef\csname eqmap#1\endcsname{\themyequation}}
\makeatletter
\newcommand{\mytag}{\@ifundefined{eqmap\theequation}{}%
{\stepcounter{equation}%
\tag{\csname eqmap\theequation\endcsname}}%
\protected@write\@auxout{}{\string\neweqmap{\theequation}}}
\makeatother
\begin{document}
\begin{equation} 1+2=3 \mytag \end{equation}
used with theorem \ref{theorem}
\begin{myframe}[float,floatplacement=t]
This is the theorem:
\begin{equation} 1+1=2. \mytag\label{theorem} \end{equation}
\end{myframe}
gives
\begin{equation} 2+2=4. \mytag \end{equation}
\end{document}
答案2
只需改变出现的顺序:
\documentclass{article}
\usepackage{tikz}
\usepackage{tcolorbox}
\newtcolorbox{myframe}[1][]{#1}
\begin{document}
\begin{myframe}[float,floatplacement=t]
This is the theorem:
\begin{equation} 1+1=2. \label{theorem} \end{equation}
\end{myframe}
\begin{equation} 1+2=3 \end{equation}
used with theorem \ref{theorem}
gives
\begin{equation} 2+2=4. \end{equation}
\end{document}