LaTeX 中单词之间的间距异常

LaTeX 中单词之间的间距异常

似乎 LaTeX 编译器会随机地在文本中的某个地方留出一些单词。代码总是相同的,只是它有时会选择随机地在两个单词之间留出很大的间隙。请帮忙! 如第一张图片所示

这是代码

答案1

在这里我没有看到 TeX 行为的随机性。

TeX 排版构成参考书目项目的段落文本,使其对齐。URL 表示一个非常长的最后一个单词,无法用连字符连接,并且无法放入 TeX 正在构建的文本行的剩余水平空间中。因此 URL 单独占一行,这导致 URL 上方的行不包含太多文本,因此为了保持对齐,该行单词之间的水平空间变得非常大。

我建议使用\raggedright/调整\rightskip或者使用包网址用于排版 URL。使用该包,您可以配置将 URL 拆分为多行,而无需使用连字符破折号。问题的答案强制在 URL 中换行可能对你有用。
如果你想手动操作,你可以在 TeX 代码中插入\discretionary{}{}{}URL 中可能跨行断开的那些字符之间。

由于您没有透露您的 (La)TeX 代码,因此我无法提供有关如何修改它的详细建议。

答案2

您发布的屏幕截图包含您所说的“LaTeX 编译器在文本中的某个地方随机地将一些单词隔开”的三个实例。我甚至会进一步说,除了编号为 12、13 和 16 的条目外,以下条目也受到过多单词间空白的影响:14、17 和 22。此外,条目 18 的行严重溢出。

然而,与你的说法相反,绝对不是随机的或者说这里发生了什么不可预测的事情。如果你随便看一眼这七个条目,你应该注意到它们都在书目条目的末尾有一个很长的 URL 字符串。LaTeX 根本不知道如何换行这些长字符串。LaTeX 能做的下一个最好的事情就是开始插入大量的单词间空格,以努力不创建不完整的行。

解决办法是什么?您需要为 LaTeX 提供一种方法来换行 URL 字符串。这可以相当容易地实现。您应该 (a) 加载包xurl并 (b) 将所有 URL 字符串包含在\url指令中。例如,

\url{https://wiki.geogebra.org/en/Scripting_Commands}

通过此设置,LaTeX 将能够插入换行符任何地方在 URL 字符串中。

如果您的 TeX 安装时间太长(比如说,超过两年),该xurl包可能尚未安装。如果\usepackage{xurl}抛出错误消息,您应该将其替换为\usepackage{hyphens,spaces]{url}

顺便说一句,看起来您已经努力“转义”了_URL 字符串中出现的所有 TeX 特殊字符(主要是下划线)。您需要删除这些转义字符。

相关内容