22

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

\text{sech} u

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

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

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

几乎可以工作。问题是现在

\sech^2 u

将正方形放在上面 sech,而不是在它后面(证明)。有没有办法来解决这个问题?在 MathJax 中定义新函数(“运算符”)的首选方法是什么?肯定有一个好方法,因为没有全谱的双曲函数谁能生存?!

4

1 回答 1

19

\DeclareMathOperator宏不提供声明在上标和下标位置始终有限制的运算符的方法,这就是为什么在\sech显示的方程式中使用时将上标置于其上方的原因。

你想要的是以下内容:

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

这将为您提供像\sinand一样工作的运算符\cos。请注意,与使用 的版本相比,这种形式的间距会更好\text{...},因为\mathop它将在运算符名称周围提供适当的间距(但是,MathJax 中有一个错误会导致在存在上标或下标时空格丢失;这将在下一个版本中修复)。

于 2012-07-01T17:42:42.397 回答