有时\raggedright
,如果一行太长,但只是稍微长一点,它会被缩短而不是被拆分。以下是一个例子:
\documentclass{article}
\raggedright
\begin{document}
This is a line that is shrunk to fit the page width despite the use of raggedright.
This is a line that is shrunk to fit the page width despite the use of \ldots
\end{document}
有办法防止这种情况吗?具体来说,我希望文档中的所有文本都是右对齐的,并且我希望确保文档中所有地方的文本都不会缩小(也不会拉伸,但这对于右对齐的文本来说从来都不是问题)。
答案1
你可以使用以下方法修复单词间距固定宽度的字间空间:
\documentclass{article}
\raggedright
\begin{document}
This is a line that is shrunk to fit the page width despite the use of raggedright.
This is a line that is shrunk to fit the page width despite the use of \ldots
\begingroup
\spaceskip=1\fontdimen2\font
\xspaceskip=0pt\relax % just to be sure
This is a line that is shrunk to fit the page width despite the use of raggedright.
This is a line that is shrunk to fit the page width despite the use of \ldots
\endgroup
\end{document}
答案2
我认为我已经找到了自己问题的可能答案。显然,TeX 使用\pretolerance
和\tolerance
来决定是否可以接受换行。设置\pretolerance = 0
似乎会产生所需的行为(设置\tolerance = 0
则不会)。我不确定这是如何工作的,或者它是否仍然适用于其他更复杂的例子,但它似乎是这个简单示例的最佳解决方案。