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:
parent
018537c291
commit
6a533e5bd6
|
@ -1,5 +1,12 @@
|
||||||
|
|
||||||
|
|
||||||
x = 5
|
x**2 + y**2 = r**2
|
||||||
resultado = x * 2
|
r=?
|
||||||
valor_test = 100
|
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}$$
|
|
@ -1,8 +1,9 @@
|
||||||
{
|
{
|
||||||
"window_geometry": "1383x700+203+1261",
|
"window_geometry": "1272x700+331+1194",
|
||||||
"sash_pos_x": 721,
|
"sash_pos_x": 440,
|
||||||
"symbolic_mode": true,
|
"symbolic_mode": true,
|
||||||
"show_numeric_approximation": true,
|
"show_numeric_approximation": true,
|
||||||
"keep_symbolic_fractions": true,
|
"keep_symbolic_fractions": true,
|
||||||
"auto_simplify": false
|
"auto_simplify": false,
|
||||||
|
"latex_panel_visible": true
|
||||||
}
|
}
|
1182
main_calc_app.py
1182
main_calc_app.py
File diff suppressed because it is too large
Load Diff
|
@ -396,7 +396,16 @@ class PureAlgebraicEngine:
|
||||||
# Intentar convertir a objeto Ecuación de sympy
|
# Intentar convertir a objeto Ecuación de sympy
|
||||||
# Usar _get_complete_context para incluir 'last' y otras variables
|
# Usar _get_complete_context para incluir 'last' y otras variables
|
||||||
eval_context = self._get_complete_context()
|
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):
|
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)
|
# Si no se pudo parsear como Eq(LHS,RHS), tratar como expresión que contiene un igual (posible error o comparación)
|
||||||
|
|
|
@ -12,11 +12,14 @@ sympy>=1.12
|
||||||
matplotlib>=3.7.0
|
matplotlib>=3.7.0
|
||||||
numpy>=1.24.0
|
numpy>=1.24.0
|
||||||
|
|
||||||
|
# Panel de ecuaciones LaTeX renderizadas
|
||||||
|
pywebview>=4.0.0
|
||||||
|
|
||||||
# Opcional: Para ayuda mejorada con Markdown
|
# Opcional: Para ayuda mejorada con Markdown
|
||||||
markdown>=3.4.0
|
markdown>=3.4.0
|
||||||
|
|
||||||
# Opcional: Para visor HTML en ayuda
|
# Opcional: Para visor HTML/LaTeX en el tercer panel (recomendado)
|
||||||
# tkinterweb>=3.24.0 # Descomenta si quieres soporte HTML completo
|
tkinterweb>=3.24.0 # Para renderizado LaTeX con KaTeX
|
||||||
# tkhtmlview>=0.2.0 # Alternativa para HTML
|
# tkhtmlview>=0.2.0 # Alternativa para HTML
|
||||||
|
|
||||||
# Testing (opcional)
|
# Testing (opcional)
|
||||||
|
|
Loading…
Reference in New Issue