有没有什么办法可以避免短线?

有没有什么办法可以避免短线?

是否有一个通用的设置来告诉 TeX 段落的最后一行不能只有一个单词?例如,而不是这样:

这是一个示例段落,这里有一个词

你会得到:

这是一个示例段落,这里有
一个词。

另外,有没有类似 InDesign 的 Balance Ragged Lines 的东西?而不是这个:


对于居中的文本,如果此行中包含更多单词会更好。

你会得到:


对于居中的文本,如果此行中包含更多单词会更好。

供参考,我目前正在使用 LuaLaTex、memoir类和fontspecmicrotype

答案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}

相关内容