相对于文本方向在 MathJax 中缩放

Scaling in MathJax with respect to text direction

我在一个阿拉伯语网站上工作(默认文本方向是 "right to left"),我使用 "Noto Naskh Arabic" 字体表示阿拉伯文本,使用 Latin-Modern 表示拉丁文本由以下 css 代码定义:

*[dir="ltr"] {
        font-size: 20px !important;
        font-family:"Latin-Modern";
}

用户可能需要输入数学方程式,为此我使用 'Mathjax',问题是:

  1. 分数显示时没有水平线
  2. 公式在阿拉伯语和拉丁语段落之间以不同的大小显示,就像我写

    这里有一些英文文本 $\int f(x)dx $

我已经使用 css

解决了第一个问题
span:lang(ar).MathJax { 
    direction: ltr !important;  
    font-family:"Latin-Modern";
    }

对于第二个问题,我想知道是否有一种方法可以自动为阿拉伯文段落中嵌入的方程和英文段落中嵌入的方程分别指定比例。

看来主要问题是您首先必须扩展。我猜你这样做是因为 MathJax 在 RTL 上下文中渲染太大。

MathJax 似乎在检测周围字体的正确 ex-height 时遇到问题。这可能是由各种问题引起的,从字体没有正确的 ex-height 到糟糕的 CSS 交互;从快速测试来看,它不是字体。

作为解决方法,您可以在 MathJax 配置中禁用字体匹配

MathJax.Hub.Config({
     "HTML-CSS": {matchFontHeight: false},
     SVG: {matchFontHeight: false},
     CommonHTML: {matchFontHeight: false}
});

然后您还应该禁用您应用的缩放。