127 lines
4.1 KiB
Markdown
127 lines
4.1 KiB
Markdown
# 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
|
|
|
|
```javascript
|
|
// 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
|
|
```bash
|
|
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. |