我希望这个问题以前没有被问过。至少我没有发现。我有一个内联数学方程式,LaTeX 将其分成两部分。在这种情况下,我更希望将整个简短的方程式放在一行中。有什么办法可以做到这一点吗?我已经尝试过将其放入,\mbox
但这破坏了整个布局。这是一个例子:
\documentclass{minimal}
\usepackage{siunitx}
\begin{document}
A text with an inline equation which is broken in to two parts
but is not wanted right here $v_{initial} = \SI{1000}{m/s}$.
\end{document}
其结果将是:
A text with an inline equation which is broken in to two parts but is not wanted right here v_{initial} =
1000m/s.
答案1
将数学表达式放入大括号内{...}
,这样它就成为一个数学原子,并且不会在行末断开。
${v_{initial} = \SI{1000}{m/s}}$
为了防止箱子过满使用\sloppy
或改善sloppypar
环境:
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{sloppypar}
A text with an inline equation which is broken in to two parts
but is not wanted right here ${v_{initial} = \SI{1000}{m/s}}$.
\end{sloppypar}
\end{document}
答案2
正如其他答案所提到的,您可以使用一组额外的,{}
但这基本上相当于使用\mbox{......}
,就像所有这样的拳击一样二事情。它可以防止换行,但它也会将所有空白冻结在其自然大小,并防止拉伸或收缩,这使得将不可分割的框放入段落变得更加困难。
通常情况下,最好不要冻结空白,而是防止换行。TeX 会在二元运算符和关系之后断行,而 LaTeX 默认将在这些位置断行的惩罚设置为
\binoppenalty=700
\relpenalty=500
所以如果你设置
\binoppenalty=10000
\relpenalty=10000
然后,就可以防止文档(或环境)的其余部分出现换行,而无需在每个内联表达式中添加标记,并允许 TeX 拉伸或收缩空白以使表达式适合周围的段落。
答案3
公式中括号内的部分不会发生换行:
${v_{initial} = \SI{1000}{m/s}}$
答案4
TeX 认为等号是中断内联方程式的好地方。将 \nolinebreak 放在等号后面可避免中断(但确实会导致框过满)。