93 votos

¿Cómo puedo ver las matemáticas LaTeX en cualquier página web y en el correo electrónico?

Se trata de una continuación de esta pregunta cerrada .

Abro una página al azar, por ejemplo algo en arXiv a las 8:05 p.m. EST, y veo todos estos signos de dólar, y suspiro y me gustaría poder ver fórmulas matemáticas bien formateadas en su lugar, al igual que en MO. ¿Es posible? ¿Se puede escribir un script de Greasemonkey para aplicar jsMath a posteriori aunque los autores de la página no hayan pensado en ello? ¿Un complemento de Mozilla Firefox?

Por favor, comparta sus soluciones. Viendo que esta es una comunidad activa de personas con intereses similares, estoy seguro de que cientos o miles de matemáticos se beneficiarían de una solución.

4 votos

Un addon/plugin/script sería genial. Por ejemplo, hace tiempo que quiero abrir un blog de matemáticas, pero una de las principales razones por las que no lo he hecho es porque el único servicio de blogs que admite LaTeX parece ser Wordpress, pero no me gusta Wordpress y no soporto escribir "latex" después de todos mis signos de dólar es demasiado molesto para mí.

2 votos

10 votos

Estoy bastante seguro de que la respuesta a (el significado denotativo de) cada una de tus preguntas es "sí". Lo que realmente quieres pedir, por supuesto, es que alguien de aquí escriba ese guión. Te recomiendo que revises tu pregunta para que pregunte lo que claramente quieres preguntar. No me gustan los actos de habla indirectos.

73voto

En Script MathML de Greasemonkey escrito por Steve Cheng y enlazado en Respuesta de Scott Morrison funcionó sólo parcialmente para mí en Firefox en Windows 7: no mostró muchos \mathbb , \mathcal y \mathfrak porque faltaban los caracteres Unicode correspondientes en las fuentes. Instalación de Fuentes STIX y Asana Math no ayudó, de hecho empeoró el aspecto de la pantalla.

Así que reescribí el script (un trabajo largo y tedioso encontrar los códigos Unicode correctos y ponerlos en los lugares adecuados). También añadí arxiv.org, front.math.ucdavis.edu, MathSciNet, y mail.google.com a los sitios soportados por defecto, y añadí varios caracteres y comandos TeX que faltaban en el script original.

Sí, funciona con gmail (!) si cambia a la vista HTML básica. Así que ahora puedes leer un correo electrónico de tu colaborador y ver las matemáticas tipografiadas allí mismo. Dime que no has deseado y rezado siempre por esto. Yo sí.

Aquí están las instrucciones detalladas para el método que produce buenos resultados utilizando Mozilla Firefox en Windows 7. No he probado en otros sistemas, que son bienvenidos a compartir sus experiencias en los comentarios.

  1. Haga clic en aquí para instalar la extensión Greasemonkey para Firefox.

  2. Descargue un script de Greasemonkey modificado desde aquí y guárdalo en tu Escritorio.

  3. En la barra de menús de Firefox, Archivo > Abrir archivo, navegue hasta el script descargado y ábralo. Greasemonkey te ofrecerá instalarlo. Hazlo.

Eso es todo. Comprueba cómo funciona mirando algunos resúmenes de arXiv como este , o este .

Incluso cuando los autores utilizan notaciones personalizadas, como \red o \cE En mi experiencia, eliminar los signos de dólar, poner las matemáticas en un tipo de letra diferente y utilizar subíndices y superíndices aumenta considerablemente la legibilidad.

Edita: También arreglé las fórmulas mostradas con dólares dobles, que el script original no manejaba correctamente. Así que ahora también se puede ver este y este .

Así que al final se trataba más de un servicio a la comunidad que de una pregunta. Disfruten de los resultados.

0 votos

Funciona bien con Firefox en Ubuntu 9.10

0 votos

VA: ¡Gran trabajo! Funciona bastante bien (Gentoo linux, Firefox 3.6.3 con xulrunner 1.9.2.3) con varias páginas contra las que lo probé, pero en ocasiones se rompe contra muy largo expresiones en línea. Por ejemplo, no le gusta demasiado arxiv.org/abs/1004.4623 .

0 votos

Willie: no expresiones largas. El script original simplemente no podía manejar ecuaciones mostradas con dólares dobles. Y ahora lo hace.

37voto

Escribí un pequeño programa llamado GmailTeX que añade $\TeX$ a Gmail. Puedes conseguirlo aquí .

alt text

GmailTeX ahora incluye el modo "en vivo" totalmente automático, igual que cuando escribes una pregunta / respuesta en MO. (En realidad, más rápido que la actual vista previa de matemáticas MO).

Añadido el 9/1/2010: Gracias a Kristi Tsukida, ahora está disponible como un Google Chrome extensión para facilitar la instalación.

10voto

A estas alturas, conozco tres formas de conseguirlo:

  1. MathJax .
  2. display-latex2 descrito en la otra respuesta (escrito por Steve Cheng, al que he hecho algunas modificaciones).
  3. ASCIIMathML escrito por Peter Jipsen.

Creo que la mejor opción con diferencia es utilizar MathJax, un proyecto activo con un equipo de desarrollo muy profesional. Es gratuito, de código abierto y está respaldado por la American Mathematical Society, la American Physical Society y SIAM, entre otras. Es el camino a seguir, si puedes instalarlo en tu servidor.

(En la versión anterior de esta respuesta, mencioné varios problemas. Fueron resueltos muy rápidamente por los desarrolladores, que son realmente impresionantes, y a los que no puedo elogiar lo suficiente).

Escribí un script Greasemonkey muy sencillo que le permite utilizar su instalación local de MathJax en cualquier página web y en Gmail (en las vistas "HTML básico" e "imprimir").

La misma página web también contiene un script de Greasemonkey que le permite elegir entre los tres motores matemáticos instalados localmente.

A largo plazo, lo mejor sería que arXiv, MathSciNet y Gmail utilizaran MathJax en sus servidores. He hecho un Solicitud de Gmail Lab para esto. Si más gente lo apoya, quizá lo hagan, sería estupendo.


Aquí tienes instrucciones detalladas. No me atrevo a plantear esta pregunta con demasiada frecuencia. Así que para ediciones menores voy a actualizar este sitio web en su lugar.

Instrucciones de instalación

Esta solución asume que usted tiene acceso a un servidor web y puede instalar programas Javascript en él.

En primer lugar, descargue e instale MathJax y las fuentes web MathJax. Instale MathJax en su servidor web. Instale las fuentes MathJax desde el directorio MathJax-webfonts(-beta2)/fonts/HTML-CSS/TeX/otf.

La personalización se realiza editando el archivo MathJax/config/MathJax.js. Es necesario establecer

webFont: null,

para que MathJax utilice las fuentes MathJax TeX instaladas localmente. A continuación, descargue mathjaxthispage.user.js y guárdelo en su escritorio. El script asume que su instalación de MathJax reside en http://localhost/MathJax . Si es diferente, edite el script en consecuencia. En la barra de menús de Firefox, Archivo > Abrir archivo, navegue hasta el script descargado y ábralo. Greasemonkey te ofrecerá instalarlo; hazlo. Empieza a navegar.

Silenciar los errores de TeX (opcional)

Los siguientes ajustes hacen que la experiencia de visualización sea más agradable cuando se navega por las páginas con macros TeX no estándar, por ejemplo arXiv.org.

extensiones: ["tex2jax.js", "TeX/noErrors.js", "TeX/noUndefined.js"],

y dentro del bloque TeX, el siguiente código

TeX: {

       noErrors: {
           inlineDelimiters: ["",""],  
               multiLine: false,            
               style: {
               "font-family": "serif",
                   "font-size":   "120%",
                   "color":       "gray",
                   "border":      ""
                   }
       },

       noUndefined: {
           attributes: {
               mathcolor: "red",
                   mathbackground: "#FFEEEE",
                   mathsize: "100%"
                   }
       }, 

// El resto sigue...

Si no tiene las extensiones noErrors.js y noUndefined.js en su directorio MathJax/extensions, puede obtenerlas de una versión más reciente disponible en https://sourceforge.net/projects/mathjax/develop

Uso de la salida MathMML nativa (opcional)

Con Mozilla Firefox, tiene la opción de utilizar el MathMML nativo en lugar de la salida HTML-CSS, que es más rápida. Para ello, tendrá que establecer lo siguiente en MathJax/config/MathJax.js :

jax: ["input/TeX", "output/NativeMML"],

A continuación, añada lo siguiente a su archivo userContent.css (véase Personalizar Mozilla ):

math { font-size: 112% } [mathvariant="double-struck"] {font-family: MathJax_AMS; } [mathvariant="script"] {familia de fuente: MathJax_Script; } [mathvariant="fraktur"] {familia de fuente: MathJax_Fraktur;} [mathvariant="-tex-caligraphic"] {familia de fuente: MathJax_Caligraphic; } [mathvariant="bold-script"] {familia de fuente: MathJax_Script; font-weight: bold;} [mathvariant="bold-fraktur"] {familia de fuente: MathJax_Fraktur; font-weight: bold;} [mathvariant="monospace"]{familia de fuente: monospace}

La primera línea controla la ampliación de la salida matemática, y puedes cambiarla a tu gusto. Las otras líneas son necesarias para corregir un error con la visualización de Mozilla (de lo contrario, Mozilla no muestra MathML correctamente).

Para mantener la coherencia de las fuentes, también puede escribir 'about:config' (sin las comillas) en la barra de direcciones y cambiar la variable font.mathfont-family por

MathJax_Main, MathJax_Math, MathJax_Size1, MathJax_Size2, MathJax_Size3, MathJax_Typewriter, MathJax_AMS, MathJax_Caligraphic, MathJax_Fraktur, MathJax_SansSerif

5voto

Jarrod Dixon Puntos 9201

Sí, es claramente posible escribir un script GreaseMonkey que cargue la librería jsMath, y luego llame al código apropiado.

De hecho, puede buscar fácilmente la llamada a la función adecuada para volver a renderizar una página utilizando jsMath, inspeccionando el elemento "(Re)process math" de esta página. Para su comodidad:

<a onclick="jsMath.ConvertTeX();jsMath.Process(document);">(Re)process math</a>

También puede consultar descripción de construir un script GreaseMonkey que cargue una librería externa. Parece lo suficientemente complicado (esperar a asegurarse de que la biblioteca se ha cargado antes de llamarla) como para que no me interesen los detalles.

1 votos

Intenté juguetear con versiones más sencillas de esto: Greasemonkey insertando etiquetas <SCRIPT> apropiadas. Desafortunadamente, esto probablemente no funcionará con jsMath, ya que el propio autor en la página web afirma que jsMath no funcionará si se llama desde un dominio diferente al que está instalado. Además, Firefox no permite insertar scripts locales. Realmente espero que Mathscinet instale jsMath pronto. (sí, soy demasiado vago para hacer clic en "PDF" :))

4voto

Jeff Atwood Puntos 31111

Aquí tienes una solución que es fácil y no requiere que instales Greasemonkey (en concreto, puedes usarlo con Chrome), pero es bastante cutre. Visita una página con matemáticas (como este resumen arXiv ), pegue lo siguiente en la barra de direcciones de su navegador y pulse intro:

javascript:var e=document.createElement("script");e.type="text/javascript";e.src="http://www.mathjax.org/MathJax/MathJax.js";document.getElementsByTagName('head')[0].appendChild(e);setTimeout(function(){MathJax.Hub.Config({config:["MMLorHTML.js"],extensions:["tex2jax.js","TeX/noErrors.js"],tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]]},jax: ["input/TeX"],MMLorHTML:{prefer:"MML"}});MathJax.Extension.tex2jax.PreProcess(document);MathJax.Hub.Process(document);},300);void(0);

Si ha funcionado, crea un nuevo marcador en tu navegador con la línea anterior como "ubicación". Cuando llegues a una página en la que quieras procesar las matemáticas, haz clic en el marcador.

Edit(VA): Considere la posibilidad de instalar MathJax localmente. No querrá costarle ancho de banda a la organización de MathJax. Y con una instalación local, usted tiene todo el control, y puede configurar MathJax en un archivo de configuración local. En ese caso, puede utilizar un bookmarklet más corto (sustituya 'localhost' por su servidor):

  javascript:
  var e=document.createElement("script");
  e.type="text/javascript";
  e.src="http://localhost/MathJax/MathJax.js";
  document.getElementsByTagName('head')[0].appendChild(e);
  setTimeout(function(){
      MathJax.Extension.tex2jax.PreProcess(document);
      MathJax.Hub.Process(document);
    },200);
  void(0);

Cómo funciona

La idea básica es cargar MathJax desde mathjax.org así:

var e  = document.createElement("script");
e.type = "text/javascript";
e.src  = "http://www.mathjax.org/MathJax/MathJax.js";
document.getElementsByTagName("head")[0].appendChild(e);

Luego configuras MathJax y procesas la página así:

MathJax.Hub.Config({
    config:["MMLorHTML.js"],
    extensions:["tex2jax.js","TeX/noErrors.js"],
    tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]]},
    jax: ["input/TeX"],
    MMLorHTML:{prefer:"MML"}
});
MathJax.Extension.tex2jax.PreProcess(document);
MathJax.Hub.Process(document);

Esta solución simplemente ejecuta todo esto junto en una línea y le dice al navegador que lo ejecute. MathJax se carga de forma asíncrona, por lo que javascript intentará ejecutar el segundo paso antes de que MathJax termine de cargarse. Para evitar esto, he insertado una pequeña pausa (0.1 seg) después del primer paso para darle a MathJax la oportunidad de cargar. Esto funciona bien para mí, pero puede que tenga que ajustar este número ... es al final de la línea (en milisegundos).

Cuestiones

  • Al igual que con la solución de VA, esto no parece funcionar con la vista estándar de Gmail.
  • Mathjax.org puede no estar contento con la gente que carga el script de ellos para ver páginas web al azar.
  • Para mí, esto funciona en Chrome, pero deja la página en Firefox (javascript debe estar sobrescribiendo el contenido de la página). ¿Alguien sabe cómo solucionarlo? Si es así, por favor, edite esta respuesta (es CW). Edit (VA): He aumentado el tiempo de espera a 0,3 segundos y he añadido 'void();' al final. En mis pruebas, ahora funciona en Chrome, Firefox, Internet Explorer y Opera.

MathML

Si su navegador soporta MathML, esta solución debería producir una salida MathML, pero aún no lo he probado (porque a mí no me funciona en Firefox). Si usted puede conseguir la salida MathML, por favor deje un comentario diciéndolo. Si tuviste que hacer algo especial, por favor edita esta respuesta (es CW).

Edit(VA): Creo que los únicos navegadores que soportan MathML ahora son Firefox e IE con MathPlayer instalado. Usar la salida por defecto (HTML-CSS) debería funcionar muy bien si tienes instaladas las fuentes MathJax en tu máquina. O puede esperar a que salgan las fuentes STIX oficiales (han sido 13 años de retrasos pero ¿quizás salgan realmente el 17 de mayo?) e instalarlas.

Además, noErrors.js y noUndefined.js no forman parte actualmente de la distribución estándar de MathJax. Pero se pueden obtener de las compilaciones recientes como se explica en la otra respuesta.

2 votos

Anton, gracias por tu solución. Pero por favor, edítala para animar a la gente a usar su instalación local de MathJax. En primer lugar, se obtiene un mayor control sobre la pantalla de esta manera, y puede configurar fácilmente un montón de cosas. En segundo lugar, si todo el mundo utiliza el servidor de MathJax, irán a la quiebra, y la comunidad sufrirá.

2 votos

Greasemonkey está integrado en Chrome. Así que instalarlo o no instalarlo no es un problema.

1 votos

+1 por la idea correcta. Algo así DEBERÍA ser la mejor solución, ya que debería funcionar en todos los navegadores: Mozilla, Chrome, Safari, IE, Opera, etc, siempre que tenga fuentes MathJax instaladas localmente y esté usando salida HTML-CSS, no MathMML. Este applet en particular funciona para mí en Chrome. Pero se rompe en Firefox (donde me da una ventana en blanco con '2' en ella). ¿Podrían los gurús de javascript arreglarlo?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X