【问题标题】:How to use Persian variable in MathJax?如何在 MathJax 中使用波斯变量?
【发布时间】:2019-02-08 09:51:54
【问题描述】:

我想显示一个波斯变量,但它显示为单个字母 س ر م ا ی ه 而不是 سرمایه。有人可以解决这个问题吗?

这是我的代码:

function createFormula() {
  var value = '`a*b/(5+9)-6+8/9+9+"سرمایه"/895+9+' + '"' + 'c' + '"' + '`';
  document.querySelector('#formula').textContent = value;
  MathJax.Hub.Queue(["Typeset", MathJax.Hub, 'formula']);
}

//show س ر م ا ی ه  insted سرمایه
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<input type="button" id="btn" value="show text" onclick="createFormula()">
<br>
<span id="formula" style></span>

JSFiddle

【问题讨论】:

    标签: javascript jquery mathjax


    【解决方案1】:

    通过进行两项更改,我能够正确显示文本:

    function createFormula() {
        MathJax.Hub.Config({
            "HTML-CSS": { mtextFontInherit: true }
        });
         
        var value='`a*b/(5+9)-6+8/9+9+\\text{'+
    	  'سرمایه'
    	  +'}/895+9+'+'"'+'c'+'"'+'`';
        document.querySelector('#formula').textContent =value;
        MathJax.Hub.Queue(["Typeset",MathJax.Hub,'formula']); 
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
    <input type="button" id="btn" value="show text" onclick="createFormula()">
    <br>
    <span id="formula" style></span>

    【讨论】:

    • 另一个注意事项 - 我将波斯文文本移到 JavaScript 中的自己的行中,以便更容易编辑,因为大多数代码编辑器的双向支持都很差。它不会改变结果。
    • @lindrev - 当然!对了,我又测试了一遍,貌似mtextFontInherit就够了。不需要\text{}
    • @Kobi 配置将mtextfontinherit 设置为 HTML-CSS 输出,但随后使用将加载 CommonHTML 输出的组合配置文件,因此此设置在用户切换到 HTML-CSS 之前无效输出。无论如何,相关问题是github.com/mathjax/MathJax/issues/474。一些浏览器不能正确地跨跨度组合字符,在这种情况下 \text 会有所帮助。
    • @PeterKrautzberger - mtextFontInherit 可能是一种解决方法,但我认为在这种情况下它是必需的 - 结果是只创建了一个 span 而不是多个 spans(对于每个字母)。
    • 不完全。 mtextfontinherit 指定 MathJax 不会将自己的字体用于 mtext 元素中的内容(而是将其留给 CSS)。但是,相关的波斯 Unicode 字符无论如何都不会被 MathJax 的字体所覆盖,因此通过 MathJax 的字体回退行为docs.mathjax.org/en/latest/font-support.html,此类内容也会发生同样的事情。
    猜你喜欢
    • 2013-11-04
    • 2015-05-11
    • 2014-10-25
    • 2016-11-25
    • 1970-01-01
    • 2018-12-14
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多