optidef による参照が機能しない

optidef による参照が機能しない

独自のラベル (P) を持つ最適化問題があります。ただし、は\ref{e}方程式ではなく最適化問題を参照します。\tag(P) がなければ、すべてが機能します。これに対処する方法はありますか?

\documentclass[11pt,a4paper]{scrreprt}

\usepackage{amsmath}
\usepackage{optidef}
\usepackage{hyperref}

\begin{document}
    
\begin{mini}|s|
    {}{c^\top x}
    {\tag{P}\label{P}}
    {}
    \addConstraint{Ax}{=b}
    \addConstraint{x}{\geq 0}.
\end{mini}

\begin{align}
    1+e^{i \pi} = 0 \label{e}
\end{align} 

Reference to \ref{P}

Reference to \ref{e}
    
\end{document}

答え1

\theHequation環境内で修正できますmini

\documentclass[11pt,a4paper]{scrreprt}

\usepackage{amsmath}
\usepackage{optidef}
\usepackage{hyperref}

\newcommand{\ui}{\mathrm{i}}% if you really want upright

\AddToHook{env/mini/begin}{%
  \edef\theHequation{mini\unexpanded\expandafter{\theequation}}%
}

\begin{document}

\begin{mini}|s|
    {}{c^\top x}
    {\tag{P}\label{P}}
    {}
    \addConstraint{Ax}{=b}
    \addConstraint{x}{\geq 0}.
\end{mini}

\begin{align}
    1+\exp(\ui \pi) = 0 \label{e}
\end{align} 

Reference to \ref{P}

Reference to \ref{e}
    
\end{document}

リンクは正しい場所を指します。

余談ですが、\i数式モードでは機能しません (とにかくドットのない i が生成されます)。\i実際のドキュメントで再定義する場合は、再定義しないでください。

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

関連情報