2012-06-29 14 views
17

Estoy usando MathJax para mostrar fórmulas en mis sitios web. Fuera de la caja, mathjax reconoce muchas funciones como sin, cos, ..., pero muchos están desaparecidos, como sech (secante hiperbólica) y csch (cosecante hiperbólica). Sé que todavía puedo utilizar estas funciones en las fórmulas por medio de \text, como¿Cómo se define una nueva función ('operador') en MathJax?

\text{sech} u 

Sin embargo, preferiría hacer \sech trabajo. Con este fin, he intentado

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

justo después <body>. (También intentado añadir un asterisco después de DeclareMathOperator.)

Este casi obras. El problema es que ahora

\sech^2 u 

lugares del cuadrado anterior sech, en lugar de después de ella (proof). ¿Hay alguna manera de arreglar esto? ¿Cuál es la forma preferida de definir nuevas funciones ('operadores') en MathJax? Seguramente hay una buena manera, ¿para quién puede vivir sin un espectro completo de funciones hiperbólicas?

+0

No estoy seguro de si mathjax corresponde a 100% de látex, pero podría intentar '\ \ sech nolimits^{2}'? – phg

+1

@phg: Gracias por tu comentario. Sí, eso funciona, pero elimina el beneficio de hacer que '\ sech' funcione en primer lugar. De hecho, incluso '\ text {sech}^2' toma menos caracteres para escribir que' \ sech \ nolimits^2'. –

Respuesta

13

El macro \DeclareMathOperator no proporciona un medio para declarar un operador que siempre tiene límites en las posiciones super e subíndice, por lo que su \sech obtiene el superíndice colocado encima cuando se usa en las ecuaciones mostradas.

Lo que se quiere es la siguiente:

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

esto le ayudará a los operadores que funcionan como \sin y \cos. Observe que el espacio será mejor con esta forma que con sus versiones usando \text{...}, ya \mathop proporcionará el espacio apropiado alrededor del nombre del operador (sin embargo hay un error en mathjax que hace que el espacio que se pierde cuando hay un super o subíndice; esto se solucionará en la próxima versión).

+0

¡Muchas gracias por su respuesta! –

+0

Simplemente ponga esto en una macro según la [documentación de MathJaX] (http://docs.mathjax.org/en/latest/tex.html#defining-tex-macros) ¡y funcionó perfectamente! Agregué '

Cuestiones relacionadas