4.1 KiB
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
- Abrir panel LaTeX: Click en el botón 📐 en el borde derecho
- Escribir ecuaciones: Las ecuaciones se detectan automáticamente
- Ver renderizado: MathJax renderiza las ecuaciones en tiempo real
- 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.