cleveref 中的“and”之后换行

cleveref 中的“and”之后换行

Cleveref 将对定理类环境的长引用列表格式化为“Thm. 1, Prop. 2, ..., and Cor. 3”。有没有办法在“and”之后允许换行?“Thm.”、 “Prop.”、 “Cor.”等之间的换行以及以下数字应该保持禁止。

例如,在下面的代码中,

没有性爱,但却是一段非常巧妙的填充空间的文字。(Thm. 1.1.1 和 Cor. 1.2.1.10)。

超出页边距,这不是我希望的。

\documentclass{article}
\usepackage{cleveref}
\usepackage{lipsum}
\newtheorem{thmSS}{Theorem}[subsection]
\newtheorem{corSSS}{Corollary}[subsubsection]
\crefname{thmSS}{Thm.}{Thms.}
\crefname{corSSS}{Cor.}{Cors.}
\begin{document}
\section{Clever section title}
\lipsum[1]
No sex, but an overly, very clever space-filling text. (\cref{mythm,mycor}).
\lipsum[1]
\subsection{Clever subsection title}
\begin{thmSS}\label{mythm}Clever theorem\end{thmSS}
\subsection{Another clever subsection title}
\subsubsection{Clever subsubsection title}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}\label{mycor}Clever corollary\end{corSSS}
\end{document}

我不想使用 \begin{sloppypar}...\end{sloppyppar},因为它会在“and”之前引入换行符,从而导致单词之间的空格在视觉上太长。

答案1

两者之间的连接是一个可以重新定义的命令(\crefpairgroupconjunction)。它应该在 \begin{document} 之后完成(或通过 \AtBeginDocument),如果涉及 babel,则应在语言设置中执行。但重新定义它并因此删除 nonbreakspace 不会对您的情况有太大​​帮助,TeX 仍然不会中断,您还需要一些 \emergencystretch:

\documentclass{article}
\usepackage{cleveref}
\usepackage{lipsum}
\newtheorem{thmSS}{Theorem}[subsection]
\newtheorem{corSSS}{Corollary}[subsubsection]
\crefname{thmSS}{Thm.}{Thms.}
\crefname{corSSS}{Cor.}{Cors.}
\begin{document}
\renewcommand\crefpairgroupconjunction{ and  }
\section{Clever section title}
\lipsum[1]
{\emergencystretch2em No sex, but an overly, very clever space-filling text. (\cref{mythm,mycor}).\par}
\lipsum[1]
\subsection{Clever subsection title}
\begin{thmSS}\label{mythm}Clever theorem\end{thmSS}
\subsection{Another clever subsection title}
\subsubsection{Clever subsubsection title}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}Clever corollary\end{corSSS}
\begin{corSSS}\label{mycor}Clever corollary\end{corSSS}
\end{document}

在此处输入图片描述

答案2

对于偶尔需要删除的无法破坏的空间,您可以本地重新定义\crefpairgroupconjunction

No sex, but some overly, very clever space-filling text.
\begingroup\renewcommand\crefpairgroupconjunction{ and }(\cref{mythm,mycor})\endgroup.

在此处输入图片描述

相关内容