参考请求:内联数学中的换行符

参考请求:内联数学中的换行符

我发现内联数学中的自动换行有点晦涩难懂。有没有一份全面的总结,说明哪里可能发生自动换行,哪里不可能发生自动换行,惩罚是什么,等等?我想这应该在 LaTeX 配套书或 TeX 书中,但在哪里呢?但我也接受任何参考资料。另外,是否可以为 LaTeX 建议特别好的断点?

具体来说,我正在考虑诸如此类的事情$\{x \in X \mid P(x) \allowbreak\ \text{and}\ \allowbreak Q(x)\}$。这是正确的用法吗?可能不是。

答案1

这一点也不晦涩,因为只有一条规则:可以在可能自动插入的惩罚下进行换行。

TeXbook 第 96 页解释了换行点的一般规则。

TeX 自动在关系原子和二元运算原子后插入惩罚。插入的惩罚分别为\relpenalty\binoppenalty。默认值

\relpenalty=500
\binoppenalty=700

您可以在公式中的任何位置手动添加惩罚;如果您在 TeX 会自动添加惩罚的地方这样做,它不会在特定情况下添加它(TeXbook,第 174 页)。

其实还有另一条规则:如果这些惩罚(隐式或显式)出现在子公式中,基本上在和之间(不界定参数)或和之间,则{不会产生任何后果。子公式是不可分割的(其中的空间是“冻结的”)。}\left\right

标准示例是$x=\nobreak0$,或者,在正确的 LaTeX 中$x=\nolinebreak0$,因为命令会插入价值 10000 的惩罚,从而禁止换行。

在其他情况下,你可以在逗号后添加惩罚,以解决有问题的段落的情况:

$x_1,\linebreak[0],x_2,\dots,x_n$

(在纯 TeX 中,它会是\allowbreak)。默认情况下,TeX 在数学模式下不会在逗号后换行,如上所述,但手动插入的惩罚允许这样做。

\documentclass{article}

\begin{document}

\parbox{0pt}{
  $x=y$                         % line break
  $x=\nolinebreak y$            % no line break
  $x+y$                         % line break
  $x+\nolinebreak y$            % no line break
  $x,y$                         % no line break
  $x,\linebreak[0]y$            % line break
  ${x=\linebreak y}$            % no break because of the braces
  $\left(x=\linebreak y\right)$ % no break because of \left and \right
}

\end{document}

在此处输入图片描述

由于 施加了零宽度,因此空格被压缩\parbox{0pt},这只是为了触发尽可能多的换行符。

在你的例子中,\allowbreak应该去空格,因此如果实际进行了换行,后者将被丢弃。

相关内容