是否有一个通用的设置来告诉 TeX 段落的最后一行不能只有一个单词?例如,而不是这样:
这是一个示例段落,这里有一个词
。
你会得到:
这是一个示例段落,这里有
一个词。
另外,有没有类似 InDesign 的 Balance Ragged Lines 的东西?而不是这个:
对于居中的文本,如果此行中包含更多单词会更好。
你会得到:
对于居中的文本,如果此行中包含更多单词会更好。
供参考,我目前正在使用 LuaLaTex、memoir
类和fontspec
包microtype
。
答案1
只要您的段落足够长,您就可以限制\parfillskip
填充最后一行的 的延伸。具体指代一个单词并不容易,但您可以使其延伸至最多(例如)行的一半)。您可能需要增加\emergencystretch
或\tolerance
允许段落的其余部分具有足够的灵活性,以将多余的单词推到最后一行:
\documentclass{article}
\setlength\textwidth{6cm}
\def\a{One two three four five six. }
\def\b{\a\a\a\a}
\begin{document}
\b Bad.
Red yellow green. \b Blue black white bad.
\bigskip\hrule\bigskip
\setlength\parfillskip{0pt plus .4\textwidth}
\setlength\emergencystretch{.1\textwidth}
\b Bad.
Red yellow green. \b Blue black white bad.
\end{document}
类似地,如果你使用于定心的胶水只有有限的拉伸:
\documentclass{article}
\setlength\textwidth{9cm}
\def\a{One two three four five six. }
\def\b{\a\a\a\a}
\begin{document}
\begin{center}
With centered text it would be better if more words were
on this line.
\end{center}
{\csname @flushglue\endcsname=0pt plus .25\textwidth
\begin{center}
With centered text it would be better if more words were
on this line.
\end{center}}
\end{document}