LuaTeX 可以做些什么来自动改变数学内联内的换行符吗?

LuaTeX 可以做些什么来自动改变数学内联内的换行符吗?

这是对此事的后续报道问题.考虑示例代码:

\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}

相关内容