这是对此事的后续报道问题.考虑示例代码:
\documentclass{minimal}
\begin{document}
A text with an inline equation which is broken in to two parts
but is not wanted right here $v_{initial} = 11111$.
\end{document}
不做任何修改,在符号TeX
后拆分内联公式=
。可以修改代码,在内联数学的内容周围添加括号:${v_{initial} = 11111}$
,然后TeX
不拆分公式,因此它会在右边距运行并TeX
出现overfull box
。
现在LuaTeX
,它的回调可以改变段落构建算法(post_linebreak_filter
)。是否可以添加一些 lua 代码,在TeX
输入内联数学表达式时触发,这样可以看到
11111
太短,无法单独出现在下一行v_{initial}
不是那么“长”,所以可以将其推到下一行,而不会在行上留下“太多”空白- 并且值得添加一些胶水前内联数学,以便整个内联数学位于第二行的开头?
答案1
我认为这里不需要 lua 回调:
\documentclass{minimal}
\begin{document}
\binoppenalty=\maxdimen
\relpenalty=\maxdimen
\emergencystretch=3em
A text with an inline equation which is broken in to two parts
but is not wanted right here $v_{initial} = 11111$.
\end{document}