使用 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 的变化(https://github.com/latex3/latex2e/issues/652):

\changes{v2.17k}{2021/08/24}{将计数器移到方程式内部并用 mathopen 保护,以更好地与 hyperref 兼容,发布 gh/652} 与 hyperref 一样,计数器递增会创建一个框来提升锚点,它应该位于不会影响间距的位置。目前,来自 hyperref 的代码用于避免此问题:如果 fleqn 未激活,则计数器设置在方程式内部,潜在框由 mathopen 保护,以避免对后续一元符号产生副作用。如果 fleqn 被激活,它必须在外面以避免标签问题。这个解决方案是暂时的,不一定是最好的。}

因此,方程式的定义会根据是否fleqn 设置了包选项而有所不同。但由于仅在本地nccmath设置\@fleqntrue,因此它不会使用正确的定义,因此会中断。

相关内容