使用 autoref 引用算法中的行号

使用 autoref 引用算法中的行号

用于引用算法行号的 autoref 命令是什么?我尝试定义stepautorefnamelinenoautorefnamealglinenoautorefname命令,如下所示,但它们不像algorithmautorefname命令那样工作。

\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}

\usepackage[hidelinks,
            colorlinks  = true,
            linkcolor   = blue,
            urlcolor    = blue,
            citecolor   = blue,
            anchorcolor = blue]{hyperref}


\newcommand{\algorithmautorefname}{Algorithm}
\newcommand{\stepautorefname}{Step}
\newcommand{\linenoautorefname}{Line}
\newcommand{\alglinenoautorefname}{ALine}

\begin{document}

\begin{algorithm}
\caption{Algorithm} \label{alg:A}
\begin{algorithmic}
\REQUIRE $Input$
\STATE A
\STATE B
\STATE C
\STATE D \label{step:A4}
\end{algorithmic}
\end{algorithm}


In \autoref{step:A4} of \autoref{alg:A}
\end{document}

答案1

编译日志已经给出了有用的提示:

软件包 hyperref 警告:输入行 32 上没有‘ALC@unique’的自动引用名称。

因此命令名称前缀应该是ALC@unique。然后我们只需要确保该@字符在命令名称中是允许的,并且可以定义

\makeatletter
\newcommand{\ALC@uniqueautorefname}{Line}
\makeatother

从而得到期望的结果。

在此处输入图片描述

相关内容