阻止 LaTeX 破坏内联数学等式

阻止 LaTeX 破坏内联数学等式

我希望这个问题以前没有被问过。至少我没有发现。我有一个内联数学方程式,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 放在等号后面可避免中断(但确实会导致框过满)。

相关内容