2014-11-05 33 views
0

我的任務是將\overline符號轉換爲\overleftrightarrow\oversegment\overline。問題是這是我輸入的內容(我知道這是根本錯誤),但我無法修改它。MathJax將宏定義爲最終或最後

因此,基於此來源:http://docs.mathjax.org/en/latest/tex.html#defining-tex-macros

我定義我的宏:

MathJax.Hub.Config({ 
    TeX: { 
     Macros: { 
      overline: ["{\\overleftrightarrow{#1}}", 1], 
      oversegment: ["{\\overline{#1}}", 1] 
     } 
    } 
}); 

的問題是,當我有\oversegment輸入時,它會通過第二個宏轉換爲\overline,然後它被第一個宏再次轉換爲\overleftrightarrow,這是錯誤的。我只希望它只轉換一次並使其最終。

回答

2

給出處理宏的方式並不容易。最好的方法似乎是複製original function in the TeX input jax,即將此函數添加到您的內聯配置塊中。

<script type="text/x-mathjax-config"> 
    MathJax.Hub.Register.StartupHook("TeX Jax Ready", function() { 
    var MML = MathJax.ElementJax.mml; 
    MathJax.InputJax.TeX.Definitions.Add({ 
     macros: { 
      oversegment: ['UnderOver','00AF'] 
     } 
    }); 
    }); 
</script> 
+0

當我發現用宏嘗試的方式是不可能的,我認爲你的回答在給定的情況下是最好的 - 謝謝! – Karol 2014-11-18 22:19:10