2012-06-29 12 views
17

Używam MathJax do wyświetlania formuł na moich stronach internetowych. Po wyjęciu z pudełka, MathJax rozpoznaje wiele funkcji, takich jak sin, cos, ..., ale wielu brakuje, takich jak sech (sęk hiperboliczny) i csch (hiperboliczny cosecant). Wiem, że mogę nadal korzystać z tych funkcji w formułach za pomocą \text, takich jakJak zdefiniować nową funkcję ("operator") w MathJax?

\text{sech} u 

Jednak wolałbym zrobić \sech pracy. W tym celu wypróbowałem:

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

zaraz po <body>. (Próbowałem także dodać gwiazdkę po DeclareMathOperator.)

Ta prawie działa. Problemem jest to, że teraz

\sech^2 u 

miejsca placu powyżejsech, zamiast po niej (proof). Czy istnieje sposób, aby to naprawić? Jaki jest preferowany sposób definiowania nowych funkcji ("operatorów") w MathJax? Na pewno jest dobra droga, bo kto może żyć bez pełnego spektrum funkcji hiperbolicznych ?!

+0

Nie jestem pewien, czy MathJax odpowiada w 100% na lateks, ale czy mógłbyś spróbować '\ sech \ nolimits^{2}'? – phg

+1

@phg: Dziękuję za komentarz. Tak, to działa, ale w pewnym sensie eliminuje korzyści z robienia '\ sech' pracy w pierwszej kolejności. Rzeczywiście, nawet '\ text {sech}^2' pobiera mniej znaków do wpisania niż' \ sech \ nolimits^2'. –

Odpowiedz

13

Makro \DeclareMathOperator nie zapewnia sposobu zadeklarowania operatora, który zawsze ma ograniczenia w pozycjach super i dolnych, dlatego Twój \sech otrzymuje indeks górny umieszczony powyżej, gdy jest używany w wyświetlanych równaniach.

Co chcesz jest następujący:

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

To będzie Ci podmioty, które działają jak \sin i \cos. Zauważ, że odstęp będzie lepszy w tym formularzu niż w twoich wersjach przy użyciu \text{...}, ponieważ \mathop zapewni właściwy odstęp wokół nazwy operatora (jednak w MathJax występuje błąd, który powoduje utratę miejsca, gdy jest super lub indeks dolny, zostanie to poprawione w następnym wydaniu).

+0

Dziękuję bardzo za odpowiedź! –

+0

Po prostu umieść to w makrze zgodnie z dokumentacją [MathJaX] (http://docs.mathjax.org/en/latest/tex.html#defining-tex-macros) i wszystko działało idealnie! Dodałem '

Powiązane problemy