I am using MathJax to display formulae on my web sites. Out of the box, MathJax recognises many functions like sin
, cos
, ..., but many are missing, such as sech
(hyperbolic secant) and csch
(hyperbolic cosecant). I know I can still use these functions in formulae by means of \text
, such as
\text{sech} u
However, I would rather make \sech
work. To this end, I tried
<div style="display:none"> $\DeclareMathOperator{\sech}{sech} \DeclareMathOperator{\csch}{csch}$ </div>
right after <body>
. (I also tried to add an asterisk after DeclareMathOperator
.)
This almost works. The problem is that now
\sech^2 u
places the square above sech
, instead of after it (proof). Is there a way to fix this? What is the prefered way to define new functions ('operators') in MathJax? Surely there is a good way, for who can live without a full spectrum of hyperbolic functions?!
MathJax can display mathematical notation written in LaTeX or MathML markup. Because MathJax is meant only for math display, whereas LaTeX is a document layout language, MathJax only supports the subset of LaTeX used to describe mathematical notation.
KaTeX, according to most benchmarks I've seen, is faster than MathJax, by a long shot. However, it has somewhat incomplete support for LaTeX, so that may be an issue. MathJax is pretty slow, relative to the others, but it has almost complete support for LaTeX. If that's the price you're willing to pay, then go for it.
The \DeclareMathOperator
macro does not provide a means of declaring an operator that always has limits in the super- and subscript positions, which is why your \sech
get the superscript placed above it when used in displayed equations.
What you want is the following:
<div style="display:none"> $ \newcommand{\sech}{\mathop{\rm sech}\nolimits} \newcommand{\csch}{\mathop{\rm csch}\nolimits} $ </div>
This will get you operators that work like \sin
and \cos
. Note that the spacing will be better with this form than with your versions using \text{...}
, since \mathop
will provide the proper spacing around the operator name (however there is a bug in MathJax that causes the space to be lost when there is a super- or subscript; this will be fixed in the next release).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With