fleqnオプションとamsmath,cleverefについて

fleqnオプションとamsmath,cleverefについて

- たか ま の投稿
返信数: 2

お世話になっています。

現在fleqnオプション下でamsmath,cleverefを利用しているのですが,別行立て数式中で\labelを利用した場合,ラベルの位置が少しずれてしまいます。

\documentclass[fleqn]{article}%
\usepackage{amsmath}%
\usepackage{cleveref}%
 
\begin{document}%
\begin{equation}%
a=b%
\end{equation}%
\begin{equation}\label{hoge}%
b=c%
\end{equation}%
\end{document}
 
コンパイルはTeXLive2024のLuaHBTeX1.18.0を使っています。
fleqnオプション,amsmath,cleverefをどれか一つでも外すと正常になるようです。
どなたかお力添え願えればと思います。
たか ま への返信

Re: fleqnオプションとamsmath,cleverefについて

- ya ra の投稿

原因は分からないですが、調べてみるとちょうど同じような質問が StackOverflow に投稿されていました。

https://stackoverflow.com/questions/79158518/latex-package-conflict-between-cleveref-and-amsmath

状況は異なりますが、回答されている方法を用いると本件の問題も解決します。

解決方法

プリアンブルに以下を追加します。

\RemoveFromHook{label}[firstaid/cleveref]%
\makeatletter%
\AddToHook{label}[firstaid/cleveref]%
  {\ifx%
    \@currentcounter\@empty%
  \else%
    \firstaid@cref@updatelabeldata{\@currentcounter}%
  \fi}%
\makeatother%

まとめると次のようになります。

\documentclass[fleqn]{article}%
\usepackage{amsmath}%
\usepackage{cleveref}%

\RemoveFromHook{label}[firstaid/cleveref]%
\makeatletter%
\AddToHook{label}[firstaid/cleveref]%
  {\ifx%
    \@currentcounter\@empty%
  \else%
    \firstaid@cref@updatelabeldata{\@currentcounter}%
  \fi}%
\makeatother%

\begin{document}%

\begin{equation}%
  a=b%
\end{equation}%
\begin{equation}\label{hoge}%
  b=c%
\end{equation}%

\end{document}