Ссылка с помощью 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в реальном документе, не делайте этого.

введите описание изображения здесь

Связанный контент