如果内联数学公式太长,则将其全部移至新行

如果内联数学公式太长,则将其全部移至新行

我有一个为 A4 纸张创建的大型 tex 文档,我想将 A4 更改为 A5。 这样做之后,LaTeX 以有点尴尬的方式呈现了一些内联数学:

Something something x + y + z =
f(x).

我更希望 Latex 不会因为操作符和空格而中断,而是将整个内联数学运算移到新行

Something something
x + y + z = f(x).

我知道我能做到手动或者将其包装在一些新的环境中\\,但这会花费很多时间。

我还发现了这一点:

\binoppenalty=\maxdimen
\relpenalty=\maxdimen

但这并没有帮助,而且使事情变得更糟,因为有时部分数学运算会超出页面边界。

那么,是否有一种简单且无痛的方法可以自动将内联数学移动到新行而不是将其中断在尴尬的地方?

梅威瑟:

\documentclass{report}

\begin{document}
Something Something Something Something Something
Something 
$ x + y + z = f(x)$
\end{document}

糟糕的内联数学打破

答案1

您可以设置惩罚措施以防止数学内部中断,然后允许数学外部的空白更加灵活,以避免框过满

在此处输入图片描述

\documentclass{report}
\binoppenalty=10000
\relpenalty=10000
\sloppy

\begin{document}

\noindent X\dotfill X

Something Something Something Something Something
Something 
$ x + y + z = f(x)$
\end{document}

或者,如果您希望前一行简短,请在每个可以填满该行的数学表达式前添加空格

在此处输入图片描述

\documentclass{report}
\binoppenalty=10000
\relpenalty=10000

\everymath{\hskip 0pt plus 1fil\penalty50\hskip 0pt plus -1fil }

\begin{document}

\noindent X\dotfill X

Something Something Something Something Something
Something 
$ x + y + z = f(x)$


Something Something Something Something 
$ x + y + z = f(x)$
Something Something
\end{document}

相关内容