我不确定这个问题是否有用,但我有一个奇怪的 LaTeX 源文件,其中\crefname{figure}{Fig.}{Figs.}
需要在 之后\begin{document}
。
我试图创建一个最小的工作示例,但在最简单的示例中,\crefname
序言确实有效。
因此,不知何故,在我真正的 LaTeX 源中,它使用了大量软件包,有些东西干扰了\crefname
。
有人能想到一个可能的解释吗?我需要花很多时间来调试这个问题(而且我可能不会花这些时间,因为我已经知道一个解决方法,那就是把声明放在后面\begin{document}
. 之后)。
我在 macOS 上的 texlive 2021 中使用 lualatex。
回答:感谢大家的评论,我终于解决了这个问题。最初,我
\usepackage{polyglossia}
\setmainlanguage{english}
当我用它替换它时
\usepackage[english]{babel}
问题消失:\crefname
现在生效。
答案1
所以该cleveref
包实际上有选项可以帮你做到这一点。甚至对于图形、表格和其他可以引用的对象也是一致的。
正如我在评论中提到的,capitalise
或capitalize
选项会将小写缩写\cref
变为大写缩写,而非缩写版本保持\Cref
不变(无论如何它都是大写的。)
要更改标签和数字之间的空格,包选项也可以满足您的要求:以下命令\crefdefaultlabelformat{}
允许您在参考文献中添加括号或空格(有关详细信息,请参阅手册第 12 页)同样,这可确保所有参考文献(而不仅仅是图形)的输出一致。
编辑:使用上述选项会导致引用多个对象时间距略有不一致,因此您还需要使用\crefpairconjunction
和调整连词\crefrangeconjunction
在一个独立的例子中,它看起来像这样:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[capitalise]{cleveref}
\crefdefaultlabelformat{\!#2#1#3}
\newcommand{\crefpairconjunction}{\! and }
\newcommand{\crefrangeconjunction}{\! to }
\begin{document}
\cref{fig:somefigure}.
\cref{fig:somefigure,fig:otherfigure}.
\cref{fig:somefigure,fig:otherfigure,fig:morefigure}.
\Cref{fig:somefigure}.
\Cref{fig:somefigure,fig:otherfigure}.
\Cref{fig:somefigure,fig:otherfigure,fig:morefigure}.
\begin{figure}[ht]
\caption{Some figure.\label{fig:somefigure}}
\end{figure}
\begin{figure}[ht]
\caption{Some other figure.\label{fig:otherfigure}}
\end{figure}
\begin{figure}[ht]
\caption{Yet another figure.\label{fig:morefigure}}
\end{figure}
\end{document}