如何修改 cleveref 和 varioref 中的标签输出?

如何修改 cleveref 和 varioref 中的标签输出?

编辑:本页底部提到的解决方案非常适合标签输出。但现在我正在努力解决 \crefname 和计数器之间的距离问题。我希望 fig. 和数字之间的距离更小一些,而不是空格。我希望 fig\,1 而不是 fig.~1,但似乎我迷失在 cref 手册的代码中了。

我结合使用了variorefcleverefhyperref使用 - 我想说 - 更“复杂”的引用行为。它使我能够简单地使用\vref{labelname}来获取输出

第 1 页上的表 1

我的 MWE 如下所示:

\documentclass{scrreprt}

\usepackage[T1]{fontenc}%Kodierung
\usepackage[utf8]{inputenc}%%Kodierung
\usepackage[english,ngerman]{babel}%language
\usepackage[format=plain,indention=1em,labelfont=bf,font=footnotesize,justification=justified,position=bottom]{caption}  %schönere Captions durch den \caption-Befehl

%%%%%%%%%%
%REFERENCES
%%%%%%%%%%
\usepackage[ngerman]{varioref}  
\usepackage[linktocpage=true,bookmarksopen,hidelinks,ngerman,hyperfootnotes=false]{hyperref}%Hyperrefpaket    
\usepackage[ngerman,nameinlink,sort]{cleveref}

\renewcommand*babel\reftextfaraway[1]{auf S.\,\pageref{#1}}%
\addto\extrasngerman{\renewcommand{\reftextfaraway}[1]{auf S.\,\pageref{#1}}} %Short page labels


\begin{document}

\chapter{Chapter 1}

\begin{table}
\caption{Text}
\label{text}
\end{table}

\newpage

\vref{text}

\end{document}

现在,我想要的是:当我使用“ref”命令时,我想改变表格或图形或文本中任何名称的方式。而不是

第 1 页上的图 1

我想要得到(最好是德语,但我猜这可以通过通用触发器或 babel 来实现)

第 1 页图 1

通过研究,我已经弄清楚了如何通过添加此代码来修改浮点数本身中的标签(因为我正在使用 babel 包,所以需要这样做):

\addto\captionsngerman{\renewcommand{\figurename}{Abb.}}
\addto\captionsngerman{\renewcommand{\tablename}{Tab.}}

另外,我在论坛上找到了一种修改页面标签输出的方法,但我无法更改引用命令的文本输出。我试过

\addto\captionsngerman{\renewcommand{\crefname}{Abb.}}

但是,这只是给我一个缺少控制序列的错误。

答案1

正如所讨论的cleveref(第 12 页),使用(不要重新定义)\crefname\Crefname宏:

\addto\captionsngerman{
    % Second argument is singular, third is plural
    \crefname{figure}{abb.}{abb.}
    \Crefname{figure}{Abb.}{Abb.}
}

相关内容