ConTeXt:当公式环境放置在 TEXpage 环境内时间距不好

ConTeXt:当公式环境放置在 TEXpage 环境内时间距不好

我正在做一个需要大量使用数学环境和 TEXpage 环境的项目。我注意到,当公式环境放在 TEXpage 环境中时,会出现错误的间距,就好像我的设置\setupformulae[spacebefore=none, spaceafter=none]没用一样。这是一个错误还是我做错了什么?

这是我的代码:

\setupformulae[align=flushleft, spacebefore=none, spaceafter=none]

\starttext

%\startTEXpage

Puisque l'on passe d'un rangement à l'autre en effectuant une permutation de \math{n} boules, on a :

\startformula
\#A = n!
\stopformula

Puisque placer \math{n} boules dans \math{n} boîtes revient à prendre une \math{n}-liste d'éléments d'un ensemble à \math{n} éléments, on a : 
\startformula
\#\Omega = n^n
\stopformula

On peut ainsi calculer :

\startformula
P(A) = \frac{\#A}{\#\Omega} = \frac{n!}{n^n}
\stopformula

%\stopTEXpage

\stoptext

以下是发生的事情没有TEXpage 环境(\startTEXpage\stopTEXpage评论):

没有 TEXpage 环境

以下是发生的事情TEXpage 环境(\startTEXpage\stopTEXpage未注释):

使用 TEXpage 环境

页面确实被裁剪到内容,但公式前后出现了错误的间距。有什么解释吗?提前感谢您的帮助!

答案1

您可以将新的间距模型反向移植到旧的 ConTeXt。但这不是一个好主意。现在我可能会破坏一些东西。更好更新上下文

\unexpanded\def\startdisplaymath
  {\ifhmode
     \par
   \fi
   \bgroup
   \informulatrue
   \beforedisplayspace
   \setdisplaydimensions
   \startinnermath
   \begingroup} % less interference with upcoming a \over b

\unexpanded\def\stopdisplaymath
  {\endgroup    % less interference with upcoming a \over b
   \stopinnermath
   \afterdisplayspace
   \egroup}

\setupformulae[align=flushleft, spacebefore=none, spaceafter=none]

\starttext

\startTEXpage

Puisque l'on passe d'un rangement à l'autre en effectuant une permutation de \math{n} boules, on a :

\startformula
\#A = n!
\stopformula

Puisque placer \math{n} boules dans \math{n} boîtes revient à prendre une \math{n}-liste d'éléments d'un ensemble à \math{n} éléments, on a :

\startformula
\#\Omega = n^n
\stopformula

On peut ainsi calculer :

\startformula
P(A) = \frac{\#A}{\#\Omega} = \frac{n!}{n^n}
\stopformula

\stopTEXpage

\stoptext

在此处输入图片描述

相关内容