我的问题涉及这里。我正在尝试为 hyperref 定义新命令。例如,我想调用一些方程式:函数、约束或约束集。为此,我尝试按照超链接中提供的说明进行操作。
\def\HyLang@english{%
\def\functionautorefname{Function}%
\def\conssetautorefname{Constraint set}%
\def\consautorefname{Constraint}%
}
并且,我使用它失败了,如下所示:
\begin{equation}\label{consset:sum_all=1}
y_j^A+y_j^I+y_j^P=1 \qquad \forall j\in J
\end{equation}
\autoref{consset:sum_all=1} ensures that everything is alright!
仍然打印为:
等式(<eq number>)
确保一切正常!
我想要的是:
约束集(<eq number>)
确保一切正常!
有没有什么快速的解决办法?
答案1
\autoref
无法知道您所指的是哪种类型的对象。
您可以使用cleveref
更加可定制且功能更强大的功能。
\documentclass{article}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{cleveref}
\crefformat{equation}{#2Equation~\textup{(#1)}#3} % by default eq. (<eq>) is used
\crefformat{constraint}{#2Constraint~\textup{(#1)}#3}
\begin{document}
\begin{equation}\label{eq}
equation
\end{equation}
\begin{equation}\label[constraint]{co}
constraint
\end{equation}
We can refer to \cref{eq} and to \cref{co}.
\end{document}