.md →
TangleLatex API#
TangleLatex renders a KaTeX formula in which named numbers are draggable. Mark
them with \tangle{name} inside latex and configure each name in parameters; a
parameter can show its formatted number or stay symbolic until it is dragged or
edited, and repeated markers share one value. The live numbers land in values
while you drag, so downstream cells recompute as the equation changes.
See also: Tangle widgets for the same drag gesture in plain prose, Matrix for editing numbers as a grid, and Slider2D for two coupled parameters on one canvas.
Bases: AnyWidget
Render a KaTeX formula with draggable named numeric parameters.
Put \tangle{name} markers in latex and configure each name in
parameters. A parameter can display its formatted number directly or
remain symbolic until it is dragged or edited. Repeated markers share one
value and update together.
Examples:
import marimo as mo
from wigglystuff import TangleLatex
formula = mo.ui.anywidget(
TangleLatex(
latex=r"f(x) = angle{a}x^2 + angle{b}x + angle{a}",
parameters={
"a": {
"value": 2.5,
"min_value": -5,
"max_value": 5,
"step": 0.1,
"display": "symbol",
},
"b": {
"value": 1,
"min_value": -10,
"max_value": 10,
"step": 0.5,
"display": "symbol",
},
},
reveal_all_on_drag=True,
)
)
formula
Create a TangleLatex widget.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
latex
|
str
|
KaTeX source containing one or more |
required |
parameters
|
Mapping[str, Mapping[str, Any]]
|
Mapping from marker name to its numeric configuration.
|
required |
display_mode
|
bool
|
Render using KaTeX display mode. |
True
|
editor
|
str
|
Numeric click editor style: |
'popover'
|
reveal_all_on_drag
|
bool
|
Reveal every symbolic parameter as a number while any parameter is actively dragged. When false, reveal only the selected parameter. |
False
|
theme
|
str
|
Color theme: |
'auto'
|
**kwargs
|
Any
|
Forwarded to |
{}
|
Source code in wigglystuff/tangle_latex.py
Synced traitlets#
| Traitlet | Type | Notes |
|---|---|---|
latex |
str |
LaTeX source containing \tangle{name} markers. |
parameters |
dict |
Per-parameter config (value, bounds, step, digits, color, symbol, ...). |
values |
dict |
Live current value for each parameter; updates while dragging. |
display_mode |
bool |
Render the formula in display mode. |
editor |
str |
Exact-value editor style: "popover" or "inline". |
reveal_all_on_drag |
bool |
Reveal every tangle value while dragging any one of them. |
theme |
str |
"auto", "light", or "dark". |
error |
str |
Validation/render error surfaced from the widget. |