当我使用ntheorem
该thref
选项时,每次我使用该amsmath
split
命令时,编号都会向前跳过一个。
以下是一个例子:
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath,thref]{ntheorem}
\begin{document}
\begin{equation}
a = b
\end{equation}
\begin{equation}
b = c
\end{equation}
\begin{equation}
\begin{split}
a & = b\\
&= c
\end{split}
\end{equation}
\end{document}
最后一个方程应该编号为 (3),但实际编号为 (4)。删除后thref
即可解决问题。
有人能告诉我如何解决这个问题吗?任何帮助都将不胜感激。
答案1
我通常建议不要使用ntheorem
,但你可能更喜欢它amsthm
。你可以解决thref
。你可以用不是使用该选项并转到功能更强大的cleveref
软件包。
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath]{ntheorem}
\usepackage{cleveref}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}\label{test}
\begin{equation}
a = b
\end{equation}
\end{theorem}
\Cref{test} says something interesting.
\begin{equation}
b = c
\end{equation}
\begin{equation}
\begin{split}
a & = b\\
&= c
\end{split}
\end{equation}
\end{document}
答案2
答案3
你可以尝试这个:
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath,thref]{ntheorem}
\makeatletter
\newcommand\forcefirstchoice{\firstchoice@false}
\makeatother
\begin{document}
\begin{equation}
a = b
\end{equation}
\begin{equation}
b = c
\end{equation}
\begin{equation}\forcefirstchoice
\begin{split}
a & = b\\
&= c
\end{split}
\end{equation}
\begin{equation}\forcefirstchoice
\begin{split}
a & = b\\
&= c
\end{split}
\end{equation}
\end{document}
输出: