我想使用包autoref
中的hyperref
代码来创建对 minted 提供的浮动列表的引用。此代码
\documentclass[a4paper]{book}
\usepackage{minted}
\usepackage{hyperref}
\begin{document}
\chapter{My chapter}
Take a look at the code in \autoref{lst:mylisting}.
\begin{listing}[htb]
\begin{minted}{erlang}
foo
bar
\end{minted}
\caption{My listing}
\label{lst:mylisting}
\end{listing}
\end{document}
应该生成类似 的内容,Listing 1.1
并在其周围添加链接。我不想使用Listing~\ref{lst:mylisting}
,因为它与 生成的所有其他链接不一致autoref
。
有任何想法吗?
答案1
诀窍是定义一个名为\listingname
或的宏,用于\listingautorefname
存储应用作引用的名称hyperref
。 在您的例子中,添加行
\providecommand*{\listingautorefname}{Listing}
产生正确的引用。
答案2
\usepackage{listings}
如果您使用\usepackage{listings}
,请\usepackage{minted}
改用以下方法:
a) 更改标题和参考
将标题更改为Code 1.1: Blablabla
并将引用更改为see foo in Code 1.1
。
\renewcommand{\lstlistingname}{Code}
b) 仅更改参考
标题保持不变,Listing 1.1: Blablabla
但引用将更改为see foo in code 1.1
。
\providecommand*{\lstlistingautorefname}{code}