将 autoref 与 minted 及其列表环境一起使用

将 autoref 与 minted 及其列表环境一起使用

我想使用包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}

相关内容