![使用 optidef 引用不起作用](https://linux22.com/image/472834/%E4%BD%BF%E7%94%A8%20optidef%20%E5%BC%95%E7%94%A8%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有一个关于我自己的标签 (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
在实际文档中重新定义,请不要这样做。