从清单 1. 到 \autoref 中的清单 1.

从清单 1. 到 \autoref 中的清单 1.

我使用列表在文档中显示代码,一切都很好,或者说我找到了解决方案,除了一个问题。当我自动引用列表时,它在文本中引用为“列表 1。”,但我宁愿将其引用为“1. 列表”。

有人能帮帮我吗?我到处都找过了,也没找到任何东西。

答案1

我怀疑您在匈牙利语文档中需要这个。我认为\autoref由于词形变化,它在匈牙利语中无法使用!但是,这里有一个可能的解决方案来改变顺序。

\documentclass{article}
\usepackage{regexpatch,listings,hyperref}

\def\lstlistingautorefname{listing}

\makeatletter
\xpatchcmd{\HyRef@autosetref}{\HyRef@currentHtag}{}{}{}
\xpatchcmd{\HyRef@autosetref}{\null}{\null.~\HyRef@currentHtag}{}{}
\xpatchcmd*{\HyRef@testreftype}{~}{}{}{}
\makeatother

\begin{document}

\begin{lstlisting}[caption={Example},label={listing:example}]
  code
\end{lstlisting}

\autoref{listing:example}

\end{document}

在此处输入图片描述

答案2

hair-splitter 的答案很棒,我发现了另一种方法,这种方法对我来说更容易理解,并且非常有效,适用于所有类型的自动引用内容:

\usepackage{hyperref}
\usepackage{cleveref}
\crefname{lstlisting}{source code}{source codes}  
\Crefname{lstlisting}{source code}{source codes}
\crefname{figure}{figure}{figures}  
\Crefname{figure}{figure}{figures}
\crefname{table}{table}{tables}  
\Crefname{table}{table}{tables}
\crefname{section}{title}{titles}  
\Crefname{section}{title}{titles}


\renewcommand{\autoref}[1]{\hyperref[#1]{\ref*{#1}. \nameCref{#1}}} ```

相关内容