根据俄语(捷克语、波兰语等)的排版传统,我们有以下公式分解规则:
如果一行无法容纳一个等式,排字员应将等式的一部分放在下一行。首先,允许在二元关系符号(=、< 等)和符号 +、- 处中断。其次,允许在乘法符号处中断(但不能在除法处中断!)。
中断处的符号应在下一行的开头重复。如果乘法中断,则应使用“x”符号。
问题是如何实现这种行为。
可以看出,对于显示的方程式来说这不是问题,因为拆分总是手动完成的。有趣的是嵌入的方程式,LaTeX 可以在不重复操作符号的情况下拆分它。
可能但保守的解决方案是完全关闭段落内的公式断句。不幸的是,这可能会导致单词之间的间距过大。
答案1
我发现russmath
包裹(不在 CTAN 上)完美地解决了这个问题。它定义了一种通用方法,可以通过\bbin{<expr>}
和\brel{<expr>}
命令相应地声明正确的可分解二进制运算和关系。
它使用以下代码
\global\relpenalty=10000
\global\binoppenalty=10000
\makeatletter
\def\m@th{\mathsurround=0pt}
\def\@thick{\hbox{\m@th$\mskip\thickmuskip$}}
\def\@med{\hbox{\m@th$\mskip\medmuskip$}}
\def\brel#1{\discretionary{\@thick\hbox{\m@th$#1$}}{}{} #1}
\def\bbin#1{\discretionary{\@med\hbox{\m@th$#1$}}{}{} #1}
\makeatother
以下是一些示例包装文档(俄语):
答案2
这些也是波兰规则。在多行显示方程中,这很简单:写下所需的符号。有趣的部分是未显示的情况。Jacek Czekaj 的宏集在这种情况下应该很有用:
http://www.gust.org.pl/bachotex/2010/program
(Jacek Czekaj,Uniwersytet Śląski,Instytut Matematyki,Katowice,Polska`Pots.tex' 和其他有用的纯 TeX 包
本文首先介绍了为纯 TeX 设计的 pots.tex 包。这是一组宏,提供了方便的方法来排版数学公式,尊重旧的传统和惯例,并支持以 UTF-8 标准编码波兰字符。随后,本文介绍了如何在扩展 TeX 中包含图形,以及其他为纯 TeX 设计的有用的包,这些包没有很好的文档记录。)