前言中的 crefname 被忽略

前言中的 crefname 被忽略

我不确定这个问题是否有用,但我有一个奇怪的 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包实际上有选项可以帮你做到这一点。甚至对于图形、表格和其他可以引用的对象也是一致的。

正如我在评论中提到的,capitalisecapitalize选项会将小写缩写\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}

相关内容