2012-06-29 63 views
17

我正在使用MathJax在我的網站上顯示公式。開箱即用,MathJax識別出許多功能,如sincos,...,但很多都缺失,如sech(雙曲正割)和csch(雙曲線西科斯)。我知道我仍然可以通過\text方式使用公式這些功能,如如何在MathJax中定義一個新函數('運算符')?

\text{sech} u 

不過,我寧願\sech工作。爲此,我<body>之後試圖

<div style="display:none"> 
    $\DeclareMathOperator{\sech}{sech} 
    \DeclareMathOperator{\csch}{csch}$ 
</div> 

。 (我也試過在DeclareMathOperator之後加一個星號。)

這個差不多的作品。問題是,現在

\sech^2 u 

地廣場上述sech,而不是之後(proof)。有沒有辦法來解決這個問題?在MathJax中定義新函數('運算符')的首選方式是什麼?當然,有一個好方法,誰可以沒有全方位的雙曲線功能?

+0

我不確定MathJax是否對應乳膠100%,但是你可以試試'\ sech \ nolimits^{2}'? – phg

+1

@phg:感謝您的評論。是的,這確實有效,但它首先消除了製作'sech'工作的好處。事實上,即使'\ text {sech}^2'所輸入的字符數少於\ sech \ nolimits^2'。 –

回答

13

\DeclareMathOperator宏沒有提供聲明操作符的方法,該操作符總是在超級和下標位置有限制,這就是爲什麼您的\sech在顯示的方程式中使用時會獲取放在其上方的上標。

你想要的是以下幾點:

<div style="display:none"> 
    $ 
    \newcommand{\sech}{\mathop{\rm sech}\nolimits} 
    \newcommand{\csch}{\mathop{\rm csch}\nolimits} 
    $ 
</div> 

這將讓你的工作就像\sin\cos運營商。請注意,使用此表格的間距比使用\text{...}的版本更好,因爲\mathop將在操作員名稱周圍提供適當的間距(但MathJax中存在一個錯誤,導致超空間時丟失空間或下標;這將在下一版中修復)。

+0

非常感謝您的回答! –

+0

只需根據[MathJaX文檔](http://docs.mathjax.org/en/latest/tex.html#defining-tex-macros)將其放入宏中即可,它的工作原理非常完美!我添加了