我不喜欢我的数学运算溢出到第二行。例如,我现在正在做的就是吐出这样的内容,
...just some talking then we have some maths Aut(G)
< H/K and lo! it has spilled onto another line...
不过,我觉得下面这个更简洁,
...just some talking then we have some maths
Aut(G) < H/K and lo! it has not spilled onto another
line...
有没有办法让 LaTeX 帮我做这个?我以为命令\mbox
会起作用,或者在序言中输入\relpenalty=10000' and
\binoppenalty=10000',但这些命令很“愚蠢”,不会思考 - 它们会吐出,
...just some talking then we have some maths Aut(G) < H/K
and lo! it has spilled onto another line, and has
gone into the margin...
然后我们将溢出的内容放入边距中。我在搜索时看到的其他修复方法也是如此。我想知道是否有某种“智能”的东西,一个我可以使用或可以放入序言中的包,它可以让数学模式坚持到边距,但将数学块保持在同一行上。
提前致谢!
(还有另外两个‘明显’的修复方法:
我可以使用双美元符号或方括号将我的数学公式放在一行中。但是,我做对于较长的数学字符串可以使用它,但对于像 Aut(G) < H/K 这样的短字符串,这只是小题大做,并且在阅读时会分散注意力。
我可以浏览我的文档并查看此问题的每个实例,然后在段落前面添加单词或删除单词,以使数学位于一行中。但是,我正在尝试编写一些可以使用不同类文件很好地呈现的内容,并且此修复在很大程度上取决于我将使用的类文件(因为字体大小等)
答案1
由于您没有提供实际示例,因此很难给出具体建议,但一般来说,如果您避免在数学中打破界限,那么您在段落中就会有一个很大的不可打破的单位。除非所有换行选项都是无限糟糕。
所以......如果您想阻止它这样做,您需要让它的其他选项之一不那么糟糕,例如,您可能会发现\sloppy
允许单词间距拉伸到足以找到不会粘在边缘的数学位置。
答案2
第一个解决方法是将数学写成数学:
...just some talking then we have some maths
$\Aut(G) < H/K$ and it won't easily split across
lines...
记得放
\usepackage{amsmath}
\DeclareMathOperator{\Aut}{Aut}
在你的序言中。如果某个公式仍然跨行拆分,那么
$\Aut(G) < \nobreak H/K$
将阻止它(但段落可能会因设置不当而结束)。