MathJax

Tagged: 

This topic contains 32 respuestas, has 5 voices, and was last updated by  ptrivino Hace 9 años, 11 meses.

  • Author
    Entradas
  • #18727

    ptrivino
    Member

    Hola, es mi primer post.

    Me gustaría saber como incorporar el script 

    <script type=“text/javascript”
    src=“http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML”>
    </script>a todos mis ficheros creados con MathJax. He probado añadiéndolo al config.xml de un nuevo estilo creado por mi, pero estáclaro que no he sabido hacerlo. El script permite que todas las fómulas matemáticas incorporadas usando el lenguaje MathML se muestren correctamente en cualquier navegador. Moodle 2.7 lo incorpora por defecto así que supongo que subido a Moodle no sería necesario, pero si en otros LMS o visto como web.Hasta ahora he editado los HTML para incorporarlo pero me parece tonto.He leido varios post sobre incorporar js pero no como hacerlo.Muchas gracias.

  • #18728

    ptrivino
    Member

    Perdón, quería decir creados con exe, no con mathjax, obviamente.

  • #18729

    Anónimo

    Hola ptrivino:

    A la hora de introducir archivos .js, tienes que tener en cuenta que los navegadores, por cuestiones de seguridad, no admiten intercambio de datos entre diferentes dominios, es decir, si el contenido está alojado en el dominio http://midominio.net y el .js está en http://cdn.mathjax.org , el navegador no va a permitir intercambio de datos entre tu contenido y el .js

    Solución:

    1) Descarga el .js que quieras utilizar e incorpóralo a tu estilo

    2) En el config.xml, en el campo extra head, pon esto:

    <script type=“text/javascript” src=“nombre_del_archivo_descargado.js></script>

    Debería funcionar

  • #18757

    ptrivino
    Member

    Bien, el código que propongo al principio funciona correctamente si lo añado editando el HTML generado por exe. Es el procedimiento indicado en MathJax para TODAS las páginas web en cualquier dominio que quieran utilizarlo. El problema no es ejecutar el script en otro dominio.

    La pregunta es: ¿Cual es la manera explícita correcta de escribir el script (lo que tu dices si quieres) en el fichero config.xml? ¿Antes o después de CDATA[[?

    Si quiero incorporarlo a TODO exe, ¿en que fichero debo inscribirlo?

    Gracias.

  • #18758

    Anónimo

    Hola ptrivino:

    Te había entendido mal. Prueba a poner esto en extra-head:

    <![CDATA[<script type=“text/javascript” src=http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&#8221;></script>]]>

    Cuidado con el copy/paste, porque creo que las comillas han cambiado al pasar por el editor html. En un editor de texto, asegurate de que se trate del carácter comilla doble.

    Supongo que ese .js no intercambia datos. Si no, tendrías que aplicar el procedimiento descrito antes (descargarlo e incorporarlo a la hoja de estilos para evitar problemas).

  • #18759

    Anónimo

    Leyendo mi anterior mensaje, creo que no he sido muy claro. Un par de aclaraciones:

    • La solución descrita sólo funciona en exe20. Ahora puedes descargarte la rc1, y en pocos días tendrás la versión oficial (ver Actualidad)
    • En la hoja de estilos, debes añadir un archivo config.xml que, entre otras cosas, permite “inyectar” código al html generado, tanto en head como en body
    • Puedes coger como ejemplo el estilo INTEF de la versión exe20 (el que se usa por defecto).

    Igual me ha lanzado a darte una solución para la 20 y estás trabajando con la 7.2. Te recomiendo tratar este tema con la 20, ya que te permite solucionarlo de manera mucho más sencilla.

  • #18762

    ptrivino
    Member

    Muchas gracias.

    Estoy trabajando en la 2rc1, claro. Hay que estar a la última 😉

    Lo que ya viene dentro de CDATA lo dejo, ¿no?

  • #18763

    Anónimo

    Sí. Si partes de uno de los estilo existentes, deja el contenido de los campos extra-head y extra-body.

    Por ejemplo, en el estilo INTEF:

    <extra-head><![CDATA[<meta name=”viewport” content=”width=device-width, initial-scale=1″ /> <script type=“text/javascript” src=http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&#8221;></script>]]></extra-head>

    Cuéntanos a ver qué tal… 🙂

  • #18786

    ptrivino
    Member

    Funciona perfectamente…. una vez realizada la exportación.

    ¿Sería posible colocarlo en algún sitio para que se visualizara durante el desarrollo?

    ¿Es interesante integrarlo en exelearning como ha hecho moodle por defecto? En matemáticas ahora es el estándar.

    ¿Sustituira atto a TinyMCE en exelearning?

    Gracias.

  • #18787

    Anónimo

    Hola ptrivino:

    Me alegro de que funcione. Si nos pasas un ejemplo, puedo hacer alguna prueba para ver si se puede activar en edición (no soy usuario de Mathjax). Cuando dices en edición, ¿a qué te refieres? ¿a la página que vemos en eXeLearning? ¿a cuándo se edita con TinyMCE? ¿a ambas?

    Sobre el editor, no creo que esté previsto incorporar atto a exelearning. Sólo es mi opinión personal, pero me parece mucho más interesante utilizar un editor como TinyMCE, que es un proyecto autónomo y utilizado en muchas aplicaciones que un editor como atto, que es específico de Moodle.

    Haciendo una búsqueda rápida, he encontrado este enlace, donde se plantea desarrollar un plugin de TinyMCE para mathjax. Me parece mucho más interesante desarrollar una solución que sirva para TinyMCE en cualquier aplicación donde se use este plugin que una solución específica para una aplicación concreta.

    En todo caso, sería interesante abrir un Feature Request para valorar este tema (utilización de mathjax en exelearning).

  • #18788

    La revisión del editor matemático está comtemplada en la hoja de ruta https://exelearning.net/caracteristicas/#tab2

    pero sin especificar la solución. Mathjax tiene muy buen pinta.

    Hace tiempo Ignacio comentó que estaba trabajando en este aspecto para otro proyecto pero no recuerdo si estaba basado en mathjax. ¿Retomamos el tema?

  • #18789

    ptrivino
    Member

    Hola,

    Creo que lo adecuado sería que al cerrar la edición del idevice se representara el código MathML o latex con MathJax. Te mando un elp con código MathML, incorporando el script MathJax  a exe debería visualizarse correctamente al cerrar TinyMCE.

    En realidad MathJax no es un editor sino simplemente un renderizador del código y desde luego con unas opciones en el botón derecho alucinantes. 

    Mi ámbito de interés sería el desarrollo de micro-idevice que generaran ejercicios aleatorios de matemáticas para incorporarse a exe.

    Gracias por mantener el foro tan activo.

    Archivos adjuntos:
    You must be logged in to view attached files.
  • #18791

    Anónimo

    Hola ptrivino:

    No sé como se debería ver, pero yo veo las fórmulas bien, tanto en Tiny como en exe (y sin poner en el estilo la llamada al .js). Te adjunto un par de pantallazos. Lo estoy viendo con Firefox. ¿Tal vez sea el propio navegador el que incluya el soporte  MathXML?

  • #18794

    Anónimo

    Me respondo a mi mismo. He probado en Chrome y he visto que no se ve bien. También he comprobado que en edición no se ve bien y sí en lo exportado. Como esto del config.xml es nuevo, no sé si hay alguna manera de incorporar la llamada para que también funcione en edición.

    He abierto este ticket para analizar esta petición: https://forja.cenatic.es/tracker/index.php?func=detail&aid=2182&group_id=197&atid=886

    Si a álguien le urge usar mathjax, y quiere verlo mientras trabaja en exe, puede meter la llamada al .js en el propio html. Lo mejor es:

    1. Poner un idevice tipo texto libre al principio de la página.
    2. Ponerlo en modo html
    3. Pegar este código (asegurarse de que las comillas sean las normales): <script type=”text/javascript” src=”http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML”></script >
    4. Guardar el idevice
    5. Seguir trabajando, pero en idevices diferentes al que hemos incluido la llamada. De ese modo, se evita el borrado de la llamada en sucesivas ediciones.
  • #19129

    Marin
    Member

    Hi

    I’ve used Google translate to follow this conversation, so I might have missed something.

    I’ve been developing Science and Maths lesson in Moodle and only recently discovered exelearning, which is an awesome tool; one that I have been looking for for months now. However, I also need the Mathjax to work.

    I tried to do what José Miguel.said,but the editor just deletes the javascript that I insert. I don’t know what I’m doing wrong.

    I want to import these lessons as SCORM modules into moodle; and eventually I want them to be available offline, so inserting this script is actually not a final solution and I would really like to find one.

    I would like to contribute to this project in any way I can, so please let me know if I can help in any way. 

    Marinda

     

  • #19155

    Anónimo

    Hi Marinda:

    It doesn’t work in the exported material or just when edited with eXeLearning?

    First make sure you have created created correctly the style with the config.xml file calling to the Mathjax .js file.

    1. Export the style you ar using
    2. Modify the config.xml file as described in this post.
    3. Import the stye with a diferent name

    You can check the result just using the preview option. Mathjax should work fine there.

    If you want to see Mathjax working in eXeLearning, you must include the call to the script in an idevice as HTML. As you have seen, reediting the idevice will clear the call to the script, but you can place the call in a free text idevice and then create a separated idevice for your content. This way, reediting your content will nor clear the call to the script.

  • #19273

    Anónimo

    Hi Marinda:

    Just to make sure there is no misunderstanding. This a modified style that includes the call to the .js file. I recommend you to do this test with Chrome, because Firefox has a Mathjax interpreterand it alway shows correctly the content. Just follow these steps:

    1. Tools->Style Manager
    2. Import style
    3. Choose Marinda.zip file. THe style should be correctly imported and will be listed in the style menu
    4. Open math.elp file
    5. Select Marinda style. The content is not correctly shown in eXeLearning
    6. If you choose Tools/Preview you will see that the content is shown correctly and if you export it, it will also be shown corectly.

    You only need to include the call in an idevice as HTML if you want to see the content in eXeLearning, but it is better to place it in a separate idevice

    Please, let us know if you have any problem.

  • #19366

    Marin
    Member

    Hi Jose

    Thank you very much. This helped and it works now.

    Regards

    Marinda

  • #19614

    Ignacio Gros
    Keymaster

    Hola. Llego un poco tarde a este hilo.

    He hecho algunas pruebas.

    Podéis probar MathJax en eXe 2.0:

    1. Descargad mathjax_in_exe.zip. Ahí encontraréis, además de un ejemplo:
    1. Un archivo llamado tinymce_3.5.7_settings.js que debe sustituir al que tenéis en la carpeta “scripts” del lugar en el que tengáis los archivos de eXe.
    2. Una carpeta llamada “tinymath” que hay que pegar en el directorio “scripts\tinymce_3.5.7\jscripts\tiny_mce\plugins” del lugar en el que tengáis los archivos de eXe.
  • Abrid eXe.
  • Abrid el archivo example.elp del zip.
  • Veréis que en el elp están las instrucciones:

    • Ctrl+M para habilitar/deshabilitar MathJax.
    • Clic en la fórmula para editarla.
    • $ para añadir una fórmula.

    Lo he probado en FF y Chrome y parece que todo va bien, pero eso es mejor que lo comprueben otros, porque me pasa lo mismo que a José Miguel: no soy usuario de MathJax.

    Exportaciones

    Para que todo funcione al exportar necesitaréis un Estilo como Marinda.zip o cualquier otro que incluya el JS de cdn.mathjax.org en “extra-head” (archivo config.xml). Podéis instalar el Estilo desde Herramientas – Gestor de estilos.

    CDN o MathJax incluido en eXe

    En el ejemplo se usa la CDN de MathJax. Tal vez se podría incluir MathJax en eXe. Para las exportaciones creo que es mejor seguir usando el modelo actual. Si alguien tiene un servidor con una instalación de MathJax propia podría usar ese JS especificándolo en el archivo config.xml de su Estilo.

    Saludos.

    Marinda:

    Please ask if you have any questions or problems with the translation.

    Regards,

    Ignacio

    Archivos adjuntos:
    You must be logged in to view attached files.
  • #19617

    Anónimo

    Hi Ignacio:

    I think it would be great if we could manage extra options to Tinymce and to exe’s edition context

    https://forja.cenatic.es/tracker/index.php?func=detail&aid=2181&group_id=197&atid=886

    This way, we could adapt consistently edition and export from style manager. 

    What do you think?

  • #19647

    ptrivino
    Member

    En cuanto pueda lo pruebo. Gracias.

  • #20066

    ptrivino
    Member

    Hola,

    siento haber tardado tanto en contestar, pero hay muchas horas, grupos, tutoría, etc…

    Ignacio he probado tu solución y funciona perfectamente. El editor es latex y no sirve pero yo incrusto el código MathML generado con otro programa. Lo importante es que ya se muestra renderizado durante la edición. Gracias.

    ¿Sería interesante incorporarlo por defecto a exe?

  • #20067

    ptrivino
    Member

    He contestado muy rápido. Lo siento.

    He mirado el código HTML y lo que hace es insertar un montón de código porquería. Lo que queremos es simplemente llame al renderizador del CDN de mathjax o incorporar el js en exe, no que cree nuevo código que además no permite modificar con el botón derecho.

    Repito, en mi opinión esta solución no hace lo que yo quiero. Sólo hace lo que yo quiero insertar el script mencionado en el primer mensaje. Pero no se ve en modo edición.

    ¿Alguna otra idea?

  • #20068

    Anónimo

    Hola ptrivino:

    Tal y como comento en este hilo, para cargar los .js en tiempo de edición, es necesario hacer mejoras en la línea descrita en este FR: https://forja.cenatic.es/tracker/index.php?func=detail&aid=2181&group_id=197&atid=886

    De mientras, si te urge, lo único que se me ocurre es preparar un estilo que sobrecargue alguna función existente y desde ahí incluir la llamada a los .js necesarios.

  • #20069

    Anónimo

    Hola ptrivino:

    Tal y como comento en este hilo, para cargar los .js en tiempo de edición, es necesario hacer mejoras en la línea descrita en este FR: https://forja.cenatic.es/tracker/index.php?func=detail&aid=2181&group_id=197&atid=886

    De mientras, si te urge, lo único que se me ocurre es preparar un estilo que sobrecargue algún archivo .js existente y desde ahí incluir la llamada a los .js necesarios.

  • #20090

    Ignacio Gros
    Keymaster

    Gracias por las pruebas, ptrivino.Si no funciona del todo bien descartamos incluirlo, claro.De momento no añadiremos nuevas opciones en config.xml porque antes tenemos que cerrar algunas mejoras en curso. De todas formas queda apuntado para más adelante. De momento, tratándose de TinyMCE, creo que lo más sencillo es editar su archivo de configuración (tinymce_3.5.7_settings.js en la carpeta webui/scripts). Ahí puedes añadir nuevos plugins, etc.Por favor, avísanos si das con una solución. Así vemos si podría incorporarse en eXe.Muchas gracias.

  • #20094

    ptrivino
    Member

    Hola,

    creo que mis investigaciones van a ir mas por añadir mathjax.js en my_theme.js. Ya os contaré si consigo algo que funcione correctamente.

    Gracias.

  • #20101

    Ignacio Gros
    Keymaster

    Hola ptrivino.

    Un ejemplo, por si quieres usar la función de eXe para cargar SCRIPTS:

    $exe.loadScript(“http…latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&#8221″,”alert(‘Done’)”);

    El segundo parámetro (el alert) es opcional. Esa función se ejecuta cuando carga el archivo.

    Ya nos dirás. 

    Saludos.

  • #20125

    Ignacio Gros
    Keymaster

    Hola ptrivino.

    He hecho una prueba con el plugin para TinyMCE para comprobar lo que comentabas:

    “He mirado el código HTML y lo que hace es insertar un montón de código porquería”.

    Cuando entras en TinyMCE, activas MathJax en el editor con Ctrl+M.

    En alguna ocasión también me he encontrado con más HTML del esperado al ver el código fuente.

    Creo que si antes de guardar deshabilitas MathJax (de nuevo Ctrl+M) obtienes otra vez el código esperado.

    Por favor, ¿puedes comprobarlo? Si ese fuese el único problema del plugin tal vez podríamos hacer lo que hace ese Ctrl+M antes de guardar el contenido del editor.

    Gracias.

  • #20126

    Ignacio Gros
    Keymaster

    En mi mensaje anterior decía:

    “Creo que si antes de guardar deshabilitas MathJax (de nuevo Ctrl+M) obtienes otra vez el código esperado”.

    Veo que ptrivino tiene razón: se genera el código necesario para que la fórmula se vea bien sin necesidad del JS de MathJax. Si cargamos el JS en la página en la que se muestra la fórmula es suficiente. No habría que guardar todo ese código.

    El plugin no hace lo que queremos. Por lo menos podréis seguir usando el código generado con otras herramientas y mostrarlo como queréis en las páginas generadas con eXe.

    De momento no se me ocurre nada más, pero seguiremos probando.

    Avisa si encuentras alguna solución interesante, por favor.

  • #20179

    ptrivino
    Member

    Mi desconocimiento en general y de exe en particular me impide ayudar en la resolución de este problema. Pero al menos voy a intentar centrar lo que quiero.

    1.- El tema se resuelve al exportar. Si hemos incluido el script citado en el xml del estilo al exportar se ve el código mathML renderizado correctamente. Si trabajo con exe desde firefox además lo veo en tiempo de edición.

    2.- Creo que merece la pena incluirlo como renderizador por defecto cuando escribo código latex (¿cuál se utiliza ahora?) o MathML (incluso ASCIIMath u otros). No me meto ya con incluir un editor de fórmulas matemáticas porque se puede usar uno externo y pegar el código. Seguro que hay plugin para tinyMCE que lo incluyen.

    Eso implica que cuando se abre el programa exelearning en cualquier navegador para empezar a editar ya venga la llamada a mathjax.js

    3.- En alguna configuración deberiamos poder elegir entre:

         a) trabajar off-line, entonces debería exportar con todos los ficheros la carpeta mathjax, que incluye todos los js y escribir una llamada local a mathjax.js

         b) trabajar on-line, entonces simplimente deberia incluir una llamada al CDN de mathjax.

         c) No incluir nada porque no voy a trabajar con fórmulas.

    En mi experiencia esto no sólo es necesario en Matemáticas, sino en todas las asignaturas de ciencias.

    No se si puedo ayudar de alguna manera. No encuentro los .py en exe portable, ni se si sería ahí donde habría que incorporarlo.

    Saludos.

  • #20186

    Ignacio Gros
    Keymaster

    Gracias, ptrivino.

    Incluyo tus sugerencias en la petición relacionada para estudiarlas en cuanto se pueda.

  • #20188

    ptrivino
    Member

    Gracias Ignacio. Yo seguiré pensando.

  • The topic ‘MathJax’ is closed to new replies.

    Skip to content