При использовании 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
Обходной путь: замените split
на aligned
среду:
\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{aligned}
a & = b\\
&= c
\end{aligned}
\end{equation}
\end{document}
решение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}
Выход: