使用 cleveref 时是否需要使用不间断空格?

使用 cleveref 时是否需要使用不间断空格?

我碰到关于应在哪些情况下使用不间断空格的问题。

为了交叉引用,我使用cleveref。尽管其文档没有明确指出有关不间断空格的任何内容,但显然使用 cleveref 后,我不再需要在tie命令前加上\cref{}。我说得对吗?

我之所以问这个问题,是因为 linterschktexlacheck编辑器的集成警告我引入了平局。现在,在几乎完成论文(使用不间断空格)并重新审视这个问题后,我觉得这是不必要的。此外,删除不间断空格将导致分页出现不可忽略的差异。

关于使用不间断空格的普遍共识是什么cleveref?它似乎确实没有必要,甚至可能对盒子粘合惩罚模型的间距施加了不必要的限制。如果我必须删除它,是否有regex可以从命令行运行的快速方法?

强制性MWE

\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
See~\cref{sec:massenergy} for more details.

\section{Mass-Energy Relationship}\label{sec:massenergy}
According to blah blah ....

\end{document}

在此处输入图片描述

答案1

在 a 之前放置一个不间断空格的想法\ref是,您不希望短语Section 1跨过两行。cleveref但是,使用 ,\cref不仅提供数字,还提供前一个单词。因此,应用前置不间断空格的需要得到了缓解。

例如,在 OP 的案例中,使用See~\cref{...}可防止“See”和“Section”之间的换行,这不仅是没有必要的,而且正如我们在下面的 MWE 中看到的那样,实际上通过减少可用的断点数量来防止正确的边距。

在第一行中,在 之前使用了不间断空格,\cref而在第二行中则没有。

\documentclass{article}
\usepackage[showframe,pass]{geometry}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
.\hspace{4.35in minus .1in}See~\cref{sec:massenergy} for more details.

.\hspace{4.35in minus .1in}See \cref{sec:massenergy} for more details.

\section{Mass-Energy Relationship}\label{sec:massenergy}
According to blah blah ....

\end{document}

在此处输入图片描述

对于已经使用此类不间断空格编码的源代码,我建议使用编辑器将 全局替换~\cref\ \cref

答案2

~简短回答:不,使用时 无需输入 \cref

~请注意,标签名称(例如sectionfigure、 )和标签编号之间需要绑定 。在您给出的示例中, 和之间不需要theorem绑定 。~Seesection

引自cleveref文档给了我们一些该包自动使用的提示 ~

第 13 页: …\crefrange{thm1}{thm2}排版为

theorems~\ref{thm1}\crefrangeconjunction\ref{thm2}

相关内容