Actualizando Mathjax a la versión 4

Aquí, por cierto, hay un ejemplo de corrección de pruebas matemáticas mediante IA en esta versión de desarrollo en acción:

ProofreadMathAI

El usuario puede opcionalmente resaltar una expresión matemática específica en el editor de markdown y solicitar que se corrija. Sería bueno tener eso como una opción en el nuevo editor de matemáticas.

1 me gusta

@sam Resulta que KaTeX no está funcionando del todo bien en el nuevo complemento. Si le echas un vistazo, es claramente un problema de fuente faltante y, de hecho, la consola indica que hay un montón de archivos de fuente (Woff-v2) que no se encuentran.

Las fuentes realmente existen en la ubicación correcta, que debería ser en una carpeta llamada ‘fonts’ adyacente a la hoja de estilo. Ambos archivos existen en mi versión de desarrollo, por ejemplo:
http://localhost:4200/plugins/discourse-math/katex/katex.min.css
y
http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX_Size2-Regular.woff2

Cuando miramos la pestaña Red de la consola, parece que está intentando descargar algo como
http://localhost:4200/t/mi-tema/fonts/KaTeX_Size2-Regular.woff2

Por lo tanto, el navegador está buscando en una carpeta ‘fonts’ adyacente a la URL del tema, lo cual es claramente incorrecto.

Supongo que todo esto tiene algo que ver con la función loadKaTeX definida en el katex-bundle, que supongo carga KaTeX de una manera no estándar, lo que provoca que KaTeX realmente no sepa dónde reside el archivo CSS. Sin embargo, no sé cómo arreglarlo.

2 Me gusta

Muchas gracias Mark, he procedido a fusionar tus commits, echaré un vistazo a lo de Katex hoy.

¿Esto es solo a través de un prompt personalizado para la personalidad del corrector de pruebas?

No te preocupes por eso, Mark y yo tenemos esto bajo control.

3 Me gusta

¡Genial en ambos aspectos!

Exactamente, sí. Es obviamente una suerte que “Corregir” sea una descripción lo suficientemente cercana a lo que quiero que haga.

3 Me gusta

Acabo de enviar una corrección para KaTeX, avísame si funciona. Necesito consultarlo con @david para confirmar que es seguro; nuestro patrón para cargar CSS no es compatible con enlaces relativos dentro del archivo CSS porque estamos incrustando una hoja de estilo.

2 Me gusta

Nota, moví esto a un nuevo tema dedicado porque se estaba perdiendo y volviendo ruidoso en el tema principal de matemáticas. Tengo muchas ganas de esta actualización, siento que estamos muy cerca.

5 Me gusta

¡KaTeX parece estar funcionando bien para mí con tu último commit!

Me parece que algunas pruebas no han pasado, pero estoy de acuerdo en que la funcionalidad está toda ahí.

¡Yo también estoy emocionado! :rocket:

4 Me gusta

Si alguien está ansioso por probar esta nueva versión o si (como yo) no puede esperar ya que tiene clases que la usarán en unos días, entonces puede instalar esta versión independiente aquí:

Me basé en este commit, creo, y lo cambié para que obtenga MathJax de una CDN, en lugar de internamente.

Puede verlo en acción en esta publicación en mi sitio de Discourse.

1 me gusta

Creo que vale la pena señalar que esta mejora será significativamente más que una mejora de MathJax. También:

  • Relajará el análisis de una manera que funcionará mejor con los LLM, como se solicitó aquí y
  • Solucionará problemas con el nuevo editor enriquecido, como se informó aquí.
2 Me gusta

@sam y @david

Veo que esta solicitud de extracción (pull request) se ha fusionado y también noto que ambos dedicaron bastante trabajo para llevarla a buen término, ¡así que muchas gracias por eso!

No planeo instalar esta versión todavía, ya que ya la tengo funcionando suficientemente bien en mi sitio de Discourse; sin embargo, tengo un par de preguntas.

  1. Sobre el calendario de lanzamientos: El código ya aparece en main en GitHub. Supongo que si alguien instalara una instancia de Discourse completamente nueva hoy, automáticamente tendría esta versión completamente nueva del complemento de matemáticas. ¿Es eso correcto?
  2. Sobre los cargadores (loaders): Por lo que puedo deducir del código, parece que se abandonó la idea de definir las funciones loadMathjax y loadKatex en el núcleo. La última versión parece volver a loadScript, aunque no me queda claro de dónde viene el script. ¿Es eso correcto? Si es así, ¿por qué?

¡Gracias de nuevo!

3 Me gusta

Actualmente estoy en la última versión estable +17 en una instancia de producción bastante cargada de matemáticas.

Me alegra mucho ver que [grid] ahora funciona correctamente en Meta; es una gran mejora en la calidad de vida para las publicaciones con mucha densidad matemática. Estoy dispuesto a hacer concesiones con [center] cuando sea necesario.

Como contexto, anteriormente encontré algunos casos extremos relacionados con las matemáticas dentro de [grid] / [details], que documenté aquí (en caso de que todavía sea útil):

Gracias de nuevo a todos los que trabajan en la actualización de MathJax 4; es genial ver que este nivel de pulido está llegando.

2 Me gusta

Estoy viendo el error de MathJax “Nidificación errónea de estructuras de ecuaciones” cuando uso \begin{align}...\end{align} dentro de $$...$$. Esto parece ser MathJax aplicando de forma más estricta la regla de “no anidar entornos de ecuaciones” durante el trabajo de actualización a la versión 4.

En la práctica, el patrón fiable de Discourse es usar aligned dentro del envoltorio $$:

$$
{\large
\begin{aligned}
a &= b \\
  &= c
\end{aligned}
}
$$

Esto evita anidar una estructura de ecuación de visualización (align) dentro de otro envoltorio de visualización ($$...$$), que es lo que desencadena el error.

1 me gusta

Estoy de acuerdo con tu análisis @Ethsim2.

Este comportamiento concuerda con MathJaxV4, así como con LaTeX puro, así que supongo que aquí no hay ningún “error”. ¡Sin embargo, definitivamente vale la pena señalar que usar aligned en lugar de align es el camino a seguir!

1 me gusta