分割环境中的方程式编号因 ntheorem thref 而混乱

分割环境中的方程式编号因 ntheorem thref 而混乱

当我使用ntheoremthref选项时,每次我使用该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

解决方法:splitaligned环境替换:

\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}

输出:

引用

相关内容