Pregunta ¿Cómo recuperar o reiniciar MathJax?


Necesito MathJax para volver a verificar toda mi página.

Quiero decir, cuando se crea la página, todo va muy bien. Pero necesito llamarlo después de window.onload para volver a rastrear la página, ya que sus contenidos han cambiado mientras tanto.

¿Cómo haría tal cosa?


32
2018-03-04 23:51


origen


Respuestas:


Ver http://docs.mathjax.org/en/latest/typeset.html:

Si está escribiendo una página web dinámica   donde el contenido contiene las matemáticas   puede aparecer después de MathJax ya   compuso el resto de la página, luego   necesitará decirle a MathJax que busque   las matemáticas en la página de nuevo cuando   ese nuevo contenido es producido. Que hacer   eso, necesitas usar el    MathJax.Hub.Typeset() método. Esta   causará los preprocesadores (si hay alguno)   fueron cargados) para ejecutar sobre la página   de nuevo, y luego MathJax buscará   Matemáticas no procesadas en la página   y componerlo, dejando sin cambios cualquier   Matemáticas que ya han sido compuestas.

Sin embargo, no debes simplemente llamar a este método directamente. [En su lugar] debe poner en cola la acción de composición tipográfica, [usando este] comando:

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

Demostración aquí: http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html


38
2018-03-04 23:56



Descubrí que la forma más sencilla de hacer actualizaciones dinámicas con MathML es dejar que MathJax haga los cambios de contenido (en lugar de la función jQuery .html (s), por ejemplo). Luego procesa las operaciones matemáticas mientras cambia el contenido.

<script type="text/javascript">
   function updateMathContent(s) {
       var math = MathJax.Hub.getAllJax("mathdiv")[0];
       MathJax.Hub.Queue(["Text", math, s]);
   }
</script>

...

<div id="mathdiv">
   <math xmlns="http://www.w3.org/1998/Math/MathML">
      <msup>
         <mi>x</mi>
         <mn>2</mn>
       </msup> 
   </math>
</div>

Así que simplemente use la función para reemplazar todo el contenido del div con el nuevo MathML y ​​funcionará. (El guión va en la cabeza)

Nota: Si tiene un div matemático vacío y agrega MathML más tarde, obtendrá un error de guión. Pero si las etiquetas matemáticas están presentes sin nada dentro de la llamada a updateMathContent funcionará.


4
2018-02-13 23:40