
現在、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
、正しい定義が使用されず、動作が中断されます。