Research-Stack/6-Documentation/reports/typst/logogram-bidi.typ
2026-05-11 22:18:31 -05:00

35 lines
753 B
Typst

#import "@preview/auto-bidi:0.1.0": auto-dir, rl, lr, force-lang
// Repo-local wrapper over auto-bidi. Prose may auto-flow RTL/LTR, while
// logograms stay protected as dense symbolic atoms.
#let logogram-atom(body, dir: "ltr") = {
let payload = if dir == "rtl" {
rl(body)
} else {
lr(body)
}
box(
inset: (x: 3pt, y: 1pt),
outset: 0pt,
stroke: 0.45pt + luma(120),
fill: luma(245),
payload,
)
}
#let logogram-flow(cells, dir: "ltr", gap: 3pt) = {
for cell in cells {
logogram-atom(cell, dir: dir)
h(gap)
}
}
#let logogram-demo() = [
#logogram-flow(("rho", "C=U Lambda U^T", "G=A^T A", "Gamma_i"))
#v(4pt)
#force-lang("he")[
#logogram-flow(("עד", "שער", "קבלה"), dir: "rtl")
]
]