![我怎样才能通过在单词边界上始终使用连字符或断字来使我的文本永远不会超出右边距?](https://linux22.com/image/234159/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E9%80%9A%E8%BF%87%E5%9C%A8%E5%8D%95%E8%AF%8D%E8%BE%B9%E7%95%8C%E4%B8%8A%E5%A7%8B%E7%BB%88%E4%BD%BF%E7%94%A8%E8%BF%9E%E5%AD%97%E7%AC%A6%E6%88%96%E6%96%AD%E5%AD%97%E6%9D%A5%E4%BD%BF%E6%88%91%E7%9A%84%E6%96%87%E6%9C%AC%E6%B0%B8%E8%BF%9C%E4%B8%8D%E4%BC%9A%E8%B6%85%E5%87%BA%E5%8F%B3%E8%BE%B9%E8%B7%9D%EF%BC%9F.png)
我见过几种不同的方法可以使长单词不超过右边距,但所有这些方法都是基于段落的。我需要一种可以应用于整个文本而不是一次只应用于其中一部分的解决方案。我可以接受连字符,但如果可以在单词边界处换行,那就更好了。
答案1
我想我有点不确定你在问什么问题:如何禁用连字符,或者如何防止单词超出边缘。
当 LaTeX 让单词溢出到右边距时,它会报告“水平盒子过满”,并发出警告。这是它告诉你找不到符合其自身挑剔的排版规则的段落布局的方式,这限制了它愿意将单词拉开多远以保持完全对齐。这有点烦人,让你考虑重新措辞段落以使其在排版上更具吸引力。但特别是如果这不是最终版本,你可能不在乎。你可以通过将以下内容放入其中来减少挑剔程度:
\sloppy
或者正如 sparhawk 在评论中所建议的那样:
\emergencystretch 3em
紧接着\begin{document}
,然后你会看到溢出到页边距的单词少了很多——可能没有。对于普通文档,它应该适用于整个文档,除非你禁用它,或将其包含在括号内等。
禁用连字符并强制在单词边界处换行将使其更多的很可能,而不是更少,因为存在不良的水平盒子,这会使单词溢出到边距,因为它增加了插入所需的空间。但是,如果您想禁用整个文档中的连字,请尝试输入:
\usepackage[none]{hyphenat}
在序言中。
答案2
接受的答案表明\sloppy
。然而,根据这个相关答案,\sloppy
可能会产生不完美的结果,因此通常最好使用\emergencystretch 3em
。
请查看链接的答案,其中有一些出色的视觉示例,说明后者是如何成为更好的解决方案的。
答案3
一般来说,没有办法让任意文本保持对齐并限制单词间距。frabjous 建议\sloppy
放宽单词间空间限制。
另一个解决方案是放弃对齐文本。使用包中的\raggedright
或 better是另一个解决方案。后者提供更好的文本,因为它更有可能连字。当然,如果你不想要连字,前者更好。\RaggedRight
ragged2e