Calc/RENDERIZADO_LATEX.md

4.1 KiB

Sistema de Renderizado LaTeX Simplificado

Problema Original

El panel LaTeX no se renderizaba correctamente porque faltaba el motor de renderizado matemático (MathJax) y las fuentes matemáticas apropiadas.

Solución Implementada

🌐 Sistema Único: tkinterweb + MathJax 3

  • Dependencia requerida: tkinterweb
  • Motor de renderizado: MathJax 3 optimizado
  • Fuentes matemáticas: STIX Two Math, Computer Modern Serif
  • Configuración automática de delimitadores LaTeX ($$...$$, $...$)
  • Re-renderizado dinámico cuando se agregan nuevas ecuaciones
// MathJax configurado automáticamente
window.MathJax = {
    tex: {
        inlineMath: [['$', '$']],
        displayMath: [['$$', '$$']],
        processEscapes: true,
        processEnvironments: true,
        packages: {'[+]': ['ams', 'newcommand', 'configmacros']}
    },
    startup: {
        ready: function () {
            MathJax.startup.defaultReady();
            console.log('✅ MathJax 3 listo');
        }
    }
};

Instalación

Dependencia Requerida

pip install tkinterweb

Nota: Si no tienes tkinterweb instalado, la aplicación se cerrará automáticamente con un mensaje de error claro.

Características Técnicas

Renderizado Optimizado

  • MathJax 3 para ecuaciones LaTeX profesionales
  • Fuentes matemáticas mejoradas (STIX Two Math, Computer Modern Serif)
  • Re-renderizado automático cuando se agregan ecuaciones
  • Indicador de estado que muestra si MathJax está activo

Integración Perfecta

  • Panel expandible en el lado derecho de la calculadora
  • Sincronización automática con las evaluaciones
  • Detección inteligente de ecuaciones, asignaciones y comentarios
  • Indicador visual cuando hay contenido disponible

Tipos de Contenido Soportados

  • Ecuaciones: x**2 + 2*x = 8
  • Asignaciones: a = 5
  • Expresiones simbólicas: sin(x) + cos(x)
  • Comentarios: # Esto es un comentario

Uso

  1. Abrir panel LaTeX: Click en el botón 📐 en el borde derecho
  2. Escribir ecuaciones: Las ecuaciones se detectan automáticamente
  3. Ver renderizado: MathJax renderiza las ecuaciones en tiempo real
  4. Cerrar panel: Click en ✕ o en el botón 📐 nuevamente

Solución de Problemas

Si ves "Cargando MathJax..."

  • Causa: MathJax no se ha cargado completamente
  • Solución: Espera unos segundos, MathJax se carga desde CDN
  • Verificación: El indicador cambiará a " MathJax activo"

Si la aplicación se cierra al inicio

  • Causa: tkinterweb no está instalado
  • Solución: pip install tkinterweb
  • Verificación: Reinicia la aplicación

Si las ecuaciones no se renderizan

  • Causa: Error en la sintaxis LaTeX
  • Solución: Verifica que la sintaxis LaTeX sea correcta
  • Verificación: Revisa la consola del navegador (F12 en tkinterweb)

Ventajas del Sistema Simplificado

🎯 Confiabilidad

  • Un solo sistema = menos puntos de falla
  • Dependencia mínima = fácil instalación
  • Error claro si falta la dependencia

🚀 Rendimiento

  • MathJax 3 optimizado para velocidad
  • Sin fallbacks = código más limpio
  • Carga asíncrona = no bloquea la UI

🔧 Mantenimiento

  • Código simplificado = fácil de mantener
  • Sin lógica compleja de detección de sistemas
  • Comportamiento predecible

Arquitectura

Calculadora MAV
├── Panel de Entrada (izquierda)
├── Panel de Salida (centro)  
└── Panel LaTeX (derecha, expandible)
    └── tkinterweb.HtmlFrame
        └── MathJax 3 + HTML optimizado
            ├── Ecuaciones renderizadas
            ├── Fuentes matemáticas
            └── Indicador de estado

Conclusión

El sistema simplificado con tkinterweb + MathJax 3 proporciona:

  • Renderizado LaTeX profesional
  • Instalación simple (una dependencia)
  • Comportamiento predecible
  • Mantenimiento fácil
  • Experiencia de usuario consistente

Resultado: Panel LaTeX que funciona perfectamente sin fallbacks ni complejidad innecesaria.