如何在MathJax中定义一个新函数('operator')?

时间:2012-06-29 19:34:29

标签: mathjax

我正在使用MathJax在我的网站上显示公式。开箱即用,MathJax识别许多函数,如sincos,...,但很多函数都缺失,例如sech(双曲线割线)和csch(双曲线)余割)。我知道我仍然可以通过\text在公式中使用这些函数,例如

\text{sech} u

但是,我宁愿让\sech工作。为此,我尝试了

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

<body>之后。 (我还尝试在DeclareMathOperator之后添加一个星号。)

几乎有效。问题是现在

\sech^2 u

将方块放在 sech之上,而不是放在它之后(proof)。有没有办法来解决这个问题?在MathJax中定义新函数('运算符')的首选方法是什么?当然,有一种好方法可以让没有全方位双曲线功能的人生活?!

1 个答案:

答案 0 :(得分:14)

\DeclareMathOperator宏没有提供一种声明操作符的方法,该操作符总是在超级和下标位置有限制,这就是为什么你的\sech在显示时使用上面的上标方程。

您想要的是以下内容:

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

这将使您的运算符与\sin\cos类似。请注意,此格式的间距比使用\text{...}的版本更好,因为\mathop将在运算符名称周围提供适当的间距(但MathJax中存在导致空间为的空格当有超级或下标时丢失;这将在下一个版本中修复。)