使用时\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}
将返回:
'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
,输出将有两行长。