如何使 lstlisting 中的行号引用与 autoref 配合使用

如何使 lstlisting 中的行号引用与 autoref 配合使用

关联为如何使行号引用与 一起工作的问题提供了答案lstlisting。但是,如果我使用\autoref它,它将仅返回数字,而不是类似 的内容Line 31

答案1

\autoref命令无法“知道”每个计数器的引用名称,必须将其作为单独的宏提供:

我使用了listingsOP 链接中 Marco Daniel 提供的示例,发现listings使用lstnumber作为计数器,因此

\newcommand{\lstnumberautorefname}{Line}

是需要定义的相关宏名(即计数器名称+autorefname作为后缀。

chapter“仅”预定义了标准计数器,例如,等、图形、页面、表格等。有关完整列表,请参阅hyperref手册。其他软件包可能会定义其他\...autorefname宏。

也请看一下包装cleveref

\documentclass{article}

\usepackage{listings}
\usepackage{hyperref}


\newcommand{\lstnumberautorefname}{Line}

\begin{document}




\lstset{escapeinside={(*@}{@*)}}
\begin{lstlisting}
 for i:=maxint to 0 do begin
   { comment }(*@\label{comment}@*) 
 end;
\end{lstlisting}
\autoref{comment} shows a comment.


\end{document}

在此处输入图片描述

相关内容