答案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 特殊字符(主要是下划线)。您需要删除这些转义字符。