Подтвердить что ты не робот

Как определить новую функцию ( "оператор" ) в MathJax?

Я использую 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, а не после него (proof). Есть ли способ исправить это? Каков предпочтительный способ определения новых функций ( "операторов" ) в MathJax? Конечно, есть хороший способ: кто может жить без полного спектра гиперболических функций?!

4b9b3361

Ответ 1

Макрос \DeclareMathOperator не предоставляет средство объявления оператора, который всегда имеет ограничения в положениях супер- и индексов, поэтому ваш \sech получает надстрочный указатель над ним, когда он используется в отображаемых уравнениях.

Вы хотите следующее:

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

Это даст вам операторов, которые работают как \sin и \cos. Обратите внимание, что интервал будет лучше с этой формой, чем с вашими версиями, используя \text{...}, так как \mathop обеспечит правильное расстояние вокруг имени оператора (однако в MathJax есть ошибка, которая заставляет пространство теряться, когда есть супер- или индекс, это будет исправлено в следующем выпуске).