由于没有用于将无意义的单词连字符化的模式,因此应使用诸如\hyphenation{longword}
\seqsplit{longword} 等方法对它们进行单独连字符化/断开。
然而,应该有一个解决方案来自动完成这一工作,因为连字/断开的需要取决于单词的位置,而对于可能位于行尾的任何单词进行单独连字并不容易。
\documentclass{article}
\begin{document}
This is a test for a word which is too long at the end of a line aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\
This is a test for a word which is too long at the end of a line http://test.com/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3\\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa This is a test for a word which is too long at the end of a line\\
http://test.com/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3 This is a test for a word which is too long at the end of a line\\
\end{document}
正如您所见,连字符/断字可能是不必要的,也可能是极其必要的。事实上,应该有一种方法可以禁止将文本延续到边距。这就是 MS Word 等文本编辑器所做的。我知道Tex
这远远无法与 MS Word 相比,但它可以提供线索。我认为将长单词发送到下一行是否比将其写在边距甚至更远的地方更好。
当此类词语很多时,问题就会出现,而且单独处理它们会相当困难。
答案1
我担心,你要么死,要么死。
- 事先标记好你的随机单词,然后就可以很好地将它们连字符化,或进行特殊处理
- 或者你要注意“段落中水平盒子过满”的警告,并
\hyphenation{...}
在必要时添加例外情况 - 或者选择 MS-Word 路线。
(这要求有点过分,TeX 无需标记形式的帮助就能识别出“vsraajlkuhzjsp”是一个随机词,而“Antidisestablishmentarianism”不是)
因此,我认为第一种方法是正确的一,例如,\rw{foobar}
在源文本中写类似的东西。然后,您可以让 TeX 操纵这些随机单词,包括使用\language
一组随机连字符模式(可以轻松编写)的特殊方法对它们进行连字符处理,或者使用一些宏在字符串的随机位置插入显式连字符或...
但如果标记不是一种选择,那么您当然可以选择选项 3:
- 你可以使用
\raggedright
Word 经常使用的方法隐藏此类问题 - 或者您可以使用类似的东西
\setlength\emergencystretch{.5\textwidth}
来在(几乎)所有情况下获得对齐的文本。当然,代价是段落看起来非常丑陋。
结果在您的文本上看起来会像这样(已\\
删除):