Implementación de un panel LaTeX expandible en la interfaz de la calculadora, permitiendo la visualización de ecuaciones y asignaciones. Se añaden mejoras en la gestión de resultados interactivos, incluyendo la limpieza del contexto antes de evaluaciones y la actualización dinámica del panel LaTeX. Se ajustan configuraciones de la ventana y se optimizan los bindings de teclado. Se actualizan las dependencias para incluir soporte para renderizado de LaTeX.

This commit is contained in:
Miguel 2025-06-07 19:38:57 +02:00
parent 018537c291
commit 6a533e5bd6
5 changed files with 1166 additions and 80 deletions

View File

@ -1,5 +1,12 @@
x = 5
resultado = x * 2
valor_test = 100
x**2 + y**2 = r**2
r=?
x=3
y=6
r
r=?
$$Brix = \frac{Brix_{syrup} \cdot \delta_{syrup} + (Brix_{water} \cdot \delta_{water} \cdot Rateo)}{\delta_{syrup} + \delta_{water} \cdot Rateo}$$
$$Brix_{Bev} = \frac{Brix_{syr} + Brix_{H_2O} \cdot R_M}{R_M + 1}$$

View File

@ -1,8 +1,9 @@
{
"window_geometry": "1383x700+203+1261",
"sash_pos_x": 721,
"window_geometry": "1272x700+331+1194",
"sash_pos_x": 440,
"symbolic_mode": true,
"show_numeric_approximation": true,
"keep_symbolic_fractions": true,
"auto_simplify": false
"auto_simplify": false,
"latex_panel_visible": true
}

File diff suppressed because it is too large Load Diff

View File

@ -396,7 +396,16 @@ class PureAlgebraicEngine:
# Intentar convertir a objeto Ecuación de sympy
# Usar _get_complete_context para incluir 'last' y otras variables
eval_context = self._get_complete_context()
equation_obj = sympify(line, locals=eval_context, parse_function=lambda s: Eq(*s.split('=',1)))
# Dividir la ecuación manualmente para evitar problemas de parsing
parts = line.split('=', 1)
if len(parts) != 2:
raise ValueError("Ecuación debe tener exactamente un signo '='")
left_str, right_str = parts[0].strip(), parts[1].strip()
left_expr = sympify(left_str, locals=eval_context)
right_expr = sympify(right_str, locals=eval_context)
equation_obj = Eq(left_expr, right_expr)
if not isinstance(equation_obj, sp.Equality):
# Si no se pudo parsear como Eq(LHS,RHS), tratar como expresión que contiene un igual (posible error o comparación)

View File

@ -12,11 +12,14 @@ sympy>=1.12
matplotlib>=3.7.0
numpy>=1.24.0
# Panel de ecuaciones LaTeX renderizadas
pywebview>=4.0.0
# Opcional: Para ayuda mejorada con Markdown
markdown>=3.4.0
# Opcional: Para visor HTML en ayuda
# tkinterweb>=3.24.0 # Descomenta si quieres soporte HTML completo
# Opcional: Para visor HTML/LaTeX en el tercer panel (recomendado)
tkinterweb>=3.24.0 # Para renderizado LaTeX con KaTeX
# tkhtmlview>=0.2.0 # Alternativa para HTML
# Testing (opcional)