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

时间:2017-07-02 12:47:19

标签: right-to-left mathjax

我正在使用阿拉伯语的网站(默认文字方向是"从右到左")我正在使用" Noto Naskh Arabic"拉丁文本的阿拉伯语文本和拉丁语 - 现代字体,我通过以下css代码定义:

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

用户可能需要输入数学方程式,并且我正在使用' Mathjax'为此,问题在于:

  1. 显示没有水平线的分数
  2. 当我写

    时,在阿拉伯语和拉丁语段落之间显示不同大小的方程式  这里有一些英文文本$ \ int f(x)dx $

  3. 我使用css来解决第一个问题

    span:lang(ar).MathJax { 
        direction: ltr !important;  
        font-family:"Latin-Modern";
        }
    

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

1 个答案:

答案 0 :(得分:1)

似乎主要问题是你必须首先进行扩展。我猜你这样做是因为MathJax在RTL上下文中渲染得太大了。

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

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

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

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