打开资源管理器可访问性时括号周围的间距问题

Spacing issue around parenthesis when explorer accessibility is turned on

激活辅助功能资源管理器后,出现间距问题。 'f'、'M' 和 'cos' 之后的空格太大了。出于可读性原因,这些空间很小很重要,因为(例如)“M(x)”是单个对象,而不是“M (x)”可能暗示的两个独立的事物。

当前行为

预期行为

重现步骤:

  1. 打开https://jsbin.com/bohitetaka/edit?html,js,输出
  2. 通过将辅助功能资源管理器 属性 设置为 false 和 true,检查数学表达式的显示方式。

当 explorer 设置为 false 时,间距是正确的,但我也想要辅助功能。

这是因为资源管理器使用 semantic-enrichment 修改表达式的基础 MathML,并在括号周围添加 mrows,这反过来导致 MathJax 解释括号好像来自 \left...\right,它们的间距不同。

这已在 v3.1.3 via #583 中修复,但 back-ported v2.7 尚未修复。

目前,您可以使用以下配置解决此问题:

MathJax.Hub.Register.StartupHook('MathML Jax Ready', function () {
  var PARSE = MathJax.InputJax.MathML.Parse;
  PARSE.Augment({
    _AddChildren: PARSE.prototype.AddChildren,
    AddChildren: function (mml, node) {394
      this._AddChildren(mml, node);
      if (mml.type === "mrow" && (mml.open || mml.close)) {
        if (mml.open && !mml.data[0].stretchy) delete mml.open;
        if (mml.close && !mml.data[mml.data.length-1].sretchy) delete mml.close;
      }
    }
  });
});