我有一个为 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}