为什么 scrartcl 会在换行单词后的标题内产生换行符?

为什么 scrartcl 会在换行单词后的标题内产生换行符?

使用时\documentclass{article},MWE

\documentclass{article}
\begin{document}
\section{methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl (Compound 1)}
\end{document}

将产生: 文章给出了预期的结果

但是,如果使用相应的 KOMA-Script 类,

\documentclass{scrartcl}
\begin{document}
\section{methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl (Compound 1)}
\end{document}

将返回:

scrartcl 会在标题中产生令人不快的换行符

'Compound' 和 '1' 之间的换行符显然是不必要的。可以通过添加 来防止这种情况发生~,但如果不理解 scrartcl 的行为方式,我认为这更像是一种解决方法。我正在使用最新 TeX Live 2019 中的 pdflatex。感谢您的帮助。

答案1

所发生的情况是,倒数第二行中的连字符被 TeX 视为错误,从而设置了\finalhyphendemerits=5000

如果只有两行,倒数第二行会有一个带连字符的单词,因此 TeX 倾向于多加一行。

解决方法:将章节标题设置\finalhyphendemerits为零。

\documentclass{scrartcl}
\usepackage{etoolbox}

\makeatletter
\appto\raggedsection{\finalhyphendemerits=\z@}
\makeatother

\begin{document}

\section{methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl
(Compound 1)}

\end{document}

在此处输入图片描述

注意领带Compound~1建议全部上下文,但这不是重点。

\raggedright在普通文本中可以复制相同的行为:

\documentclass{article}

\begin{document}

\raggedright

methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-%
methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl\-methyl (Compound 1)

\end{document}

在此处输入图片描述

如果我\finalhyphendemerits=0在后面添加\raggedright,输出将有两行长。

在此处输入图片描述

相关内容