使用 eqname 时 hyperref 出错

使用 eqname 时 hyperref 出错

我想在旁边写上方程的名称而不是数字。我遵循了第一个答案的结构在方程编号下方添加方程名称。但是好像链接转错了。

稍微改变一下给出的答案,这里就有 MWE:

\documentclass{article}
\usepackage{amsmath}
\newcommand{\eqname}[1]{\tag*{#1}}% Tag equation with name
\usepackage{hyperref}
\begin{document}

\begin{equation} \label{f}
f(x) = a   \eqname{(Constant)} 
\end{equation}

\begin{equation} \label{g} 
g(x) = ax  
\end{equation}


See \eqref{f} and \eqref{g}.
\end{document}

现在,\eqref{f}显示为(常数)和\eqref{g}(1),但通过单击两个都链接文档转到第一个方程,即名为 Constant 的方程。我无法通过单击其引用 (1) 转到第二个方程。

我该怎么做才能解决这个问题?提前致谢。

答案1

的环境amsmath得到了更好的支持hyperref。可以使用gather而不是equation来修复此示例,其中的方程标有名称:

\documentclass{article}
\usepackage{amsmath}
\newcommand{\eqname}[1]{\tag*{#1}}% Tag equation with name
\usepackage{hyperref}
\begin{document}

\begin{gather} \label{f}
f(x) = a   \eqname{(Constant)}
\end{gather}

\begin{equation} \label{g}
g(x) = ax
\end{equation}


See \eqref{f} and \eqref{g}.
\end{document}

答案2

我建议利用\theHequation

\documentclass{article}
\usepackage{amsmath}
\usepackage{hyperref}

\newcounter{eqname}
\renewcommand{\theHequation}{%
  \theHsection.\arabic{equation}-\arabic{eqname}%
}

\newcommand{\eqname}[1]{% Tag equation with name
  \stepcounter{eqname}%
  \tag{#1}%
}

\begin{document}

\begin{equation} \label{f}
f(x) = a   \eqname{Constant}
\end{equation}

\begin{equation} \label{g}
g(x) = ax
\end{equation}

\begin{equation} \label{gg}
g(x) = ax
\end{equation}

\begin{equation} \label{ff}
f(x) = a   \eqname{Test}
\end{equation}

See \eqref{f} and \eqref{g}.
See \eqref{ff} and \eqref{gg}.
\end{document}

相关内容