fleqn を使用した方程式の相互参照 - 記事クラスの誤った参照

fleqn を使用した方程式の相互参照 - 記事クラスの誤った参照

現在、amsmath および nccmath パッケージで fleqn 環境を使用しているときに、方程式の相互参照に関する問題が発生しています。方程式を左揃えにしたいので、fleqn 環境を使用しています。ただし、方程式を相互参照しようとすると、方程式ではなくセクション番号が相互参照されているようです。なぜそうなるのかはわかりません。

MWE は次のとおりです。

\documentclass[11pt]{article}
\usepackage{amsfonts, amsmath, amssymb, nccmath}

\begin{document}

\section{Intro}

Yup Yup

\section{Booyah} \label{sec: booyah}

Find Equation \ref{Eq:GGS_distribution_function_2} below Equation \ref{Eq:GGS_distribution_function} in section \ref{sec: booyah}.

\begin{fleqn}
\begin{equation}
R_F(d_p) = \left(\frac{d_p}{d_{p,max}}\right)^m 
\label{Eq:GGS_distribution_function}
\end{equation}
\end{fleqn}

\begin{fleqn}
\begin{equation}
R_F(d_p) = 5
\label{Eq:GGS_distribution_function_2}
\end{equation}
\end{fleqn}

\end{document}

ここに画像の説明を入力してください

答え1

nccmath を削除することもできます:

\documentclass[11pt,fleqn]{article}
\usepackage{amsfonts, amsmath, amssymb}

\setlength{\mathindent}{0pt}
\begin{document}

\section{Intro}

Yup Yup

\section{Booyah} \label{sec: booyah}

Find Equation \ref{Eq:GGS_distribution_function_2} below Equation \ref{Eq:GGS_distribution_function} in section \ref{sec: booyah}.


\begin{equation}
R_F(d_p) = \left(\frac{d_p}{d_{p,max}}\right)^m
\label{Eq:GGS_distribution_function}
\end{equation}

\begin{equation}
R_F(d_p) = 5
\label{Eq:GGS_distribution_function_2}
\end{equation}

\end{document}

ここに画像の説明を入力してください

破綻の理由は、2021年のamsmathの変化です(参考:):

\changes{v2.17k}{2021/08/24}{カウンターを方程式内に移動し、mathopen でガードして、hyperref との互換性を高めます。問題 gh/652} hyperref の増分と同様に、カウンターはアンカーを上げるためのボックスを作成しますが、間隔に影響を与えない場所に配置する必要があり、現在、この問題を回避するために hyperref のコードが使用されています。fleqn がアクティブでない場合、カウンターは方程式内に設定され、潜在的なボックスは、後続の単項記号への副作用を回避するために mathopen によってガードされます。fleqn がアクティブである場合は、ラベルの問題を回避するために外側に配置する必要があります。この解決策は一時的なものであり、必ずしも最善とは限りません。}

したがって、パッケージ オプションがfleqn 設定されているかどうかに応じて、方程式は異なって定義されます。ただし、ローカルにのみnccmath設定されているため\@fleqntrue、正しい定義が使用されず、動作が中断されます。

関連情報