From a1a14f25b790bfa5e0ed9f68602446aca063c874 Mon Sep 17 00:00:00 2001 From: "Guilherme D. Garcia" Date: Sat, 17 Oct 2026 23:26:05 -0400 Subject: [PATCH] synkit:0.1.1 --- packages/preview/synkit/0.1.1/LICENSE | 21 + packages/preview/synkit/0.1.1/README.md | 280 ++ packages/preview/synkit/0.1.1/_symbols.typ | 83 + packages/preview/synkit/0.1.1/eg.typ | 313 ++ .../preview/synkit/0.1.1/gallery/tree_1.png | Bin 0 -> 47994 bytes .../preview/synkit/0.1.1/gallery/tree_1.typ | 14 + .../synkit/0.1.1/gallery/tree_1_refs.png | Bin 0 -> 127870 bytes .../synkit/0.1.1/gallery/tree_1_refs.typ | 15 + .../preview/synkit/0.1.1/gallery/tree_2.png | Bin 0 -> 170461 bytes .../preview/synkit/0.1.1/gallery/tree_2.typ | 50 + .../preview/synkit/0.1.1/gallery/tree_3.png | Bin 0 -> 65942 bytes .../preview/synkit/0.1.1/gallery/tree_3.typ | 28 + .../preview/synkit/0.1.1/gallery/tree_4.png | Bin 0 -> 69949 bytes .../preview/synkit/0.1.1/gallery/tree_4.typ | 23 + .../preview/synkit/0.1.1/gallery/tree_5.png | Bin 0 -> 42693 bytes .../preview/synkit/0.1.1/gallery/tree_5.typ | 13 + .../preview/synkit/0.1.1/gallery/tree_6.png | Bin 0 -> 19003 bytes .../preview/synkit/0.1.1/gallery/tree_6.typ | 10 + packages/preview/synkit/0.1.1/gloss.typ | 300 ++ packages/preview/synkit/0.1.1/lib.typ | 109 + packages/preview/synkit/0.1.1/movement.typ | 573 ++++ packages/preview/synkit/0.1.1/spheres.typ | 282 ++ packages/preview/synkit/0.1.1/syntax.typ | 2743 +++++++++++++++++ packages/preview/synkit/0.1.1/typst.toml | 13 + 24 files changed, 4870 insertions(+) create mode 100644 packages/preview/synkit/0.1.1/LICENSE create mode 100644 packages/preview/synkit/0.1.1/README.md create mode 100644 packages/preview/synkit/0.1.1/_symbols.typ create mode 100644 packages/preview/synkit/0.1.1/eg.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_1.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_1.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_1_refs.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_1_refs.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_2.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_2.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_3.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_3.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_4.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_4.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_5.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_5.typ create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_6.png create mode 100644 packages/preview/synkit/0.1.1/gallery/tree_6.typ create mode 100644 packages/preview/synkit/0.1.1/gloss.typ create mode 100644 packages/preview/synkit/0.1.1/lib.typ create mode 100644 packages/preview/synkit/0.1.1/movement.typ create mode 100644 packages/preview/synkit/0.1.1/spheres.typ create mode 100644 packages/preview/synkit/0.1.1/syntax.typ create mode 100644 packages/preview/synkit/0.1.1/typst.toml diff --git a/packages/preview/synkit/0.1.1/LICENSE b/packages/preview/synkit/0.1.1/LICENSE new file mode 100644 index 0000000000..a3b5d38d51 --- /dev/null +++ b/packages/preview/synkit/0.1.1/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Guilherme D. Garcia + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/synkit/0.1.1/README.md b/packages/preview/synkit/0.1.1/README.md new file mode 100644 index 0000000000..3f8a3321bc --- /dev/null +++ b/packages/preview/synkit/0.1.1/README.md @@ -0,0 +1,280 @@ +
+ + + + synkit logo + +
+ +
+ +![Typst Package](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fguilhermegarcia%2Fsynkit%2Fmain%2Ftypst.toml&query=%24.package.version&prefix=v&logo=typst&label=package&color=239DAD) +![MIT license badge](https://img.shields.io/badge/license-MIT-blue) +[![PDF manual badge](https://img.shields.io/badge/manual-.pdf-purple)](https://doi.org/10.5281/zenodo.19405774) + +
+ +`synkit` is a Typst package for drawing syntax trees from bracket notation. It focuses on fast authoring, clean output, and the kinds of features syntacticians and semanticists actually need in day-to-day work. + +## Installation + +```typst +#import "@preview/synkit:0.1.1": * +``` + +If you are working from a local clone instead, import `lib.typ` directly: + +```typst +#import "synkit/lib.typ": * +``` + +## Quick start + +A tree is a bracketed string. Nothing else is required: + +```typst +#tree("[S [NP [Det the] [N cat]] [VP [V sat] [PP [P on] [NP [Det the] [N mat]]]]]") +``` + +Spacing inside the string is up to you: `[NP[Det][N]]` and `[NP [Det ] [N] ]` parse identically, so a missing space before `]]` will never cost you a compile error. + +## Examples + +Every example below is complete: paste it under the import line and it compiles. Each one is also available as a standalone file in [`gallery/`](gallery/). + +### Movement arrows + +Nodes become targetable labels automatically, so arrows are declared separately from the tree itself. + +
+ Syntax tree with movement arrows +
+ +```typst +// Tree from Carnie (2013). +#tree( + "[ CP [] [ C' [ C Ø_{\[+Q\]+T+Mangez} ] [ TP [ DP vous ] [ T' [ T *t*_i ] [ VP [ *t*_{DP} ] [ V' [V *t*_i ] [DP des pommes] ] ] ] ] ] ]", + arrows: ( + (from: "t3", to: "T1"), + (from: "t2", to: "DP1"), + (from: "t1", to: "C1"), + ), + curved: true, +) +``` + +#### Finding label names + +You never create labels yourself, so the question is how to discover them. While they are meant to be intuitive because they simply foloow the name of a given node (plus a number), things can get less clear as your trees become more convoluted and your nodes contain specific symbols. In those scenarios, you can add `show-refs: true` to any tree and every reference name is printed next to its node: + +```typst +#tree( + "[ CP [] [ C' [ C Ø_{\[+Q\]+T+Mangez} ] [ TP [ DP vous ] [ T' [ T *t*_i ] [ VP [ *t*_{DP} ] [ V' [V *t*_i ] [DP des pommes] ] ] ] ] ] ]", + arrows: ( + (from: "t3", to: "T1"), + (from: "t2", to: "DP1"), + (from: "t1", to: "C1"), + ), + curved: true, + show-refs: true, +) +``` + +
+ The same tree with every node reference name displayed +
+ +Target whatever you need, then turn it back off. A few conventions are visible here: sister nodes of the same category are numbered in document order (`DP1`, `DP2`), bar levels drop the prime (`C'` is `Cbar1`), an empty node is `empty1`, and leaf content sits at `-down` (`DP2-down` is *des pommes*, under the triangle). Traces follow the same rule as everything else, taking their name from their own content (`t1`, `t2`, ...), and that is what `arrows` targets. Note that references are case-sensitive: `T1` is the T node, `t1` is the trace beneath it. + +### Semantic annotation and multidominance + +Annotations attach to node labels; `dominance` draws multidominance links with optional control points. + +
+ Syntax tree with semantic annotation and multidominance +
+ +```typst +// Tree from Fox & Johnson (2016, p. 7). +#tree( + "[IP [IP [IP [IP [DP† [D the_2] [\\muP every woman] ] [IP [I] [VP is smiling] ] ] [IP [and] [IP [DP‡ [D the_2] [\\muP every man] ] [IP [I] [VP is frowning] ] ] ] ] [\\lambda2] ] [QP [Q \\forall ] [\\muP\\* [\\muP] [CP who came in together] ] ] ]", + annotation: ( + ( + "IP1", + [$forall$_y_ [_y_ is a woman+man $and$ _y_ came in together] $arrow$ \ + [the woman part of _y_ is smiling and the man part of _y_ is frowning]], + ), + ( + "IP2", + [$lambda$_x_ : _x_ has a has a unique maximal woman part \ + and a unique maximal man part. \ + the woman part of x is smiling and \ + the man part of x is frowning], + ), + ( + "QP1", + [$lambda$_Q_$forall$_y_[_y_ is woman+man \ + $and$ _y_ came in together] $arrow$ _Q(y)_], + ), + ( + "IP3", + [the woman part of g(2) is smiling \ + and the man part of g(2) is frowning], + ), + ("DP†1", [the woman part \ of g(2)]), + ("DP‡1", [the man part \ of g(2)]), + ), + annotation-size: 0.8, + dominance: ( + (from: "muP4", to: "muP1", ctrl: (-6.1, 8.5)), + (from: "muP4", to: "muP2", ctrl: (-6, 5)), + ), + scale: 0.8, + spread: 0.8, + terminal-branch: true, +) +``` + +### Equivalences between two trees + +`#garden()` lays out several trees together and links them. Labels are suffixed by tree index (`P1-1` is `P1` in the first tree), and a tree can be flipped with `direction: "up"`. + +
+ Two syntax trees linked by equivalence lines +
+ +```typst +// Tree adapted from David Chiang's tutorial on tikz-qtree. +#garden( + ( + input: "[S [NP [Det the] [N cat]] [VP [V sat] [PP [P on] [NP [Det the] [N mat]]]]]", + spread: 1.55, + content-size: 1, + ), + ( + input: "[S [NP 猫が] [VP [PP [NP [NP マット] [Part の] [NP 上] ] [P に]] [V 座った]]]", + direction: "up", + content-size: 1, + ), + equivalence: ( + ("Det1-1", "NP1-2"), + ("P1-1", "P1-2"), + ("P1-1", "NP4-2"), + ("N1-1", "NP1-2"), + ("N2-1", "NP3-2"), + ("Det2-1", "NP3-2"), + ("V1-1", "V1-2"), + ), + gap: 2.5, + scale: 0.7, +) +``` + +### Color, fonts, and emoji + +Anything that appears in the string is a label, emoji included, so styling targets the same names you already wrote. + +
+ Styled syntax tree with color and emoji +
+ +```typst +#tree( + "[S [NP the 🐈] [VP[V sat][PP[P on] [NP the mat]]]]", + content-size: 1, + drop: 0.8, + spread: 1.5, + dash-branches: ( + ("VP1", "V1"), + ("S1", "VP1"), + ), + color: ( + ("S1", green.darken(20%)), + ("NP1", red), + ("NP2", red), + ("P1-down", blue), + ("VP1", "V1", orange), + ), + font: "Comic Sans MS", +) +``` + +### Inline movement in numbered examples + +`#move()` renders movement inside running text, so it composes with `#eg()` numbering. + +
+ Numbered example with inline movement notation +
+ +```typst +#show: eg-rules + +#eg(labels: (, ))[ + - Who do you think saw Mary? + - #move( + "[CP Who do you think [(CP)[TPsaw Mary]]]", + arrows: ((from: "who2", to: "who1", dash: "solid", color: black),), + ) +] +``` + +### Interlinear glosses + +`#gloss()` aligns the lines of a gloss automatically; small caps in grammatical labels come from `{...}`. + +
+ Numbered examples and interlinear glosses +
+ +```typst +#show: eg-rules + +#gloss(spacing: 1.2em, caption: [An example from Portuguese])[ + - eu gosto de maçã + - I like-{1sg.prs} of apple + - 'I like apples.' +] +``` + +## Philosophy + +There are two key design choices for this package. First, the syntax should be minimal, intuitive, and readable. As a result, a tree is separated from its add-ons (arrows, highlights, etc.) inside the `#tree()` function. Second, functions should be smart enough to detect patterns, which helps minimize the amount of code you have to type. These two points are clearly connected to each other. + +In practice, this means: + +1. **Labels are automatically created.** Every word or node you add to a tree automatically becomes a label that can later be targeted by an arrow, an annotation, or by an aesthetic adjustment (color, highlight, etc.). +2. **Triangles are automatically added.** `[XP content]` will trigger a triangle, but `[XP [X' [X content ] ] ]` will not. So, while you *can* add triangles manually, you will likely never have to do that. +3. **Terminal branches aren't displayed by default** (e.g., no line/link between a terminal node and its content `[X content]`). You can activate them if you so choose, but by default they won't be there. +4. **Spaces don't matter.** `[NP[Det][N]]` is the same as `[NP [Det ] [N] ]` or any other equivalent string. Thus, you will no longer get syntax errors if you forget a space between two `]]` (cf. `tikz-qtree` in LaTeX). + +## Highlights + +- Draw syntax trees with flexible bracket notation using `#tree()` +- Add movement arrows, curved paths, delinking, and trace targeting +- Don't worry about creating triangles manually: they are automatically added based on phrase structure +- Add multidominance and cross-tree equivalence lines between two trees using `#garden()` +- Add semantic annotation between node labels and branches +- Create numbered examples with `#eg()` and interlinear glosses with `#gloss()` +- Adjust spacing, direction, scale, highlighting, numbering, and colors with lightweight arguments +- Smart labels ensure that you never have to create labels yourself: every word, node and even emoji is its own label + +Literal square brackets inside labels can be written as `\[` and `\]`, which is useful for Adger-style feature bundles such as `DP_i\[wh, ~uOP~: INT\]`. + +## Manual + +Download the [**manual**](https://doi.org/10.5281/zenodo.19405774) for a comprehensive description of each function available. + +## Repository + +- GitHub: + +## Author + +**Guilherme D. Garcia** +Email: +Website: + +## License + +MIT diff --git a/packages/preview/synkit/0.1.1/_symbols.typ b/packages/preview/synkit/0.1.1/_symbols.typ new file mode 100644 index 0000000000..4295516218 --- /dev/null +++ b/packages/preview/synkit/0.1.1/_symbols.typ @@ -0,0 +1,83 @@ +// Shared symbol map (LaTeX-style shortcuts → Unicode) +// Used by syntax.typ and movement.typ + +#let symbol-map = ( + // Greek lowercase + "\\alpha": "α", + "\\beta": "β", + "\\gamma": "γ", + "\\delta": "δ", + "\\epsilon": "ε", + "\\zeta": "ζ", + "\\eta": "η", + "\\theta": "θ", + "\\iota": "ι", + "\\kappa": "κ", + "\\lambda": "λ", + "\\mu": "μ", + "\\nu": "ν", + "\\xi": "ξ", + "\\pi": "π", + "\\rho": "ρ", + "\\sigma": "σ", + "\\tau": "τ", + "\\upsilon": "υ", + "\\phi": "φ", + "\\chi": "χ", + "\\psi": "ψ", + "\\omega": "ω", + // Greek uppercase + "\\Alpha": "Α", + "\\Beta": "Β", + "\\Gamma": "Γ", + "\\Delta": "Δ", + "\\Epsilon": "Ε", + "\\Zeta": "Ζ", + "\\Eta": "Η", + "\\Theta": "Θ", + "\\Iota": "Ι", + "\\Kappa": "Κ", + "\\Lambda": "Λ", + "\\Mu": "Μ", + "\\Nu": "Ν", + "\\Xi": "Ξ", + "\\Pi": "Π", + "\\Rho": "Ρ", + "\\Sigma": "Σ", + "\\Tau": "Τ", + "\\Upsilon": "Υ", + "\\Phi": "Φ", + "\\Chi": "Χ", + "\\Psi": "Ψ", + "\\Omega": "Ω", + // Common symbols + "\\emptyset": "∅", + "\\varnothing": "∅", + "\\forall": "∀", + "\\exists": "∃", + "\\rightarrow": "→", + "\\leftarrow": "←", + "\\infty": "∞", + "\\root": "√", + // Logical operators + "\\wedge": "∧", + "\\land": "∧", + "\\vee": "∨", + "\\lor": "∨", + "\\neg": "¬", + "\\to": "→", + "\\iff": "⇔", + "\\models": "⊨", + "\\proves": "⊢", +) + +// Apply symbol substitutions to a string +#let apply-symbols(s) = { + let result = s + for (key, val) in symbol-map { + if result.contains(key) { + result = result.replace(key, val) + } + } + result +} diff --git a/packages/preview/synkit/0.1.1/eg.typ b/packages/preview/synkit/0.1.1/eg.typ new file mode 100644 index 0000000000..df4814b517 --- /dev/null +++ b/packages/preview/synkit/0.1.1/eg.typ @@ -0,0 +1,313 @@ +// Linguistic example environment with automatic numbering +// Similar to linguex's \ex. command in LaTeX +// +// Create a numbered linguistic example +// +// Generates numbered examples (1), (2), etc. similar to linguex in LaTeX. +// +// Arguments: +// - body (content): The example content +// - number-dy (length): Vertical offset for the number (optional; default: 0.4em) +// - caption (string): Caption for outline (hidden in document; optional) +// - title (content): Optional title shown on the same line as the number +// - labels (array): Optional labels for sub-examples in list mode (e.g., (, )) +// +// Returns: Numbered example that can be labeled and referenced +// +// Smart modes — detected automatically from body content: +// +// Single item (auto-numbered): +// #eg[#move("[CP Who ...]", arrows: (...))] +// +// Sub-examples with list syntax (auto-lettered): +// #eg[ +// - Who do you think saw Mary? +// - #move("[CP Who ...]", arrows: (...)) +// ] +// +// Sub-examples with labels: +// #eg(labels: (, ))[ +// - Who do you think saw Mary? +// - #move("[CP Who ...]", arrows: (...)) +// ] +// +// Legacy table mode (when body is a table — backward compatible): +// #eg()[ +// #table( +// columns: 3, +// stroke: none, +// align: (left + bottom, left + bottom, left + top), +// [#eg-num-label()], [#subex-label()], [sentence a], +// [], [#subex-label()], [sentence b], +// ) +// ] + +// Counters +#let example-counter = counter("linguistic-example") +#let subex-counter = counter("linguistic-subexample") + +// Alphabet for sub-example lettering (a, b, c...) +#let letters = "abcdefghijklmnopqrstuvwxyz" + +// Classify body content to determine rendering mode +// Typst's `- item` syntax creates list.item elements in a sequence (not wrapped in a list) +#let _classify-body(body) = { + if body.func() == list.item { return "list" } + if body.func() == table { return "legacy" } + if body.has("children") { + for child in body.children { + if child.func() == list.item { return "list" } + if child.func() == table { return "legacy" } + } + } + "single" +} + +// Extract list items from body (may be nested in a sequence) +#let _extract-items(body) = { + if body.func() == list.item { return (body,) } + if body.has("children") { + return body.children.filter(c => c.func() == list.item) + } + () +} + +// Build a grid from list items with auto numbering and lettering +#let _build-subex-grid(items, labels, numbered: true) = { + let cells = () + for (i, item) in items.enumerate() { + // Column 1: example number on first row only (skip when title handles numbering) + if numbered { + let num-cell = if i == 0 { + context { + subex-counter.update(0) + example-counter.step() + [(#(example-counter.get().first() + 1))] + } + } else { [] } + cells.push(num-cell) + } + + // Column 2: sub-example letter (a., b., c.) + let letter-fig = figure( + box(baseline: 0pt, context { + set par(first-line-indent: 0em) + subex-counter.step() + let n = subex-counter.get().first() + [#letters.at(n).] + }), + kind: "linguistic-subexample", + supplement: none, + numbering: none, + ) + // Attach label if provided (label must immediately follow figure, no whitespace) + let letter-cell = if labels != () and i < labels.len() { + [#letter-fig#labels.at(i)] + } else { + letter-fig + } + + cells.push(letter-cell) + cells.push(item.body) + } + + let col-spec = if numbered { + (2em, 2em, 1fr) + } else { + (2em, 1fr) + } + + grid( + columns: col-spec, + row-gutter: 1em, + align: left + bottom, + ..cells, + ) +} + +// Main example function +#let eg( + number-dy: 0.4em, + caption: none, + title: none, + labels: (), + body, +) = { + // Build the smart body content (list or plain) + // numbered: false when title branch handles the example number + let _build-smart-body(body, labels, numbered: true) = { + let mode = _classify-body(body) + if mode == "list" { + let items = _extract-items(body) + _build-subex-grid(items, labels, numbered: numbered) + } else { + body + } + } + + let content = if title != none { + // Title case: (num | title) / ([] | smart body) + let num = context { + subex-counter.update(0) + example-counter.step() + [(#(example-counter.get().first() + 1))] + } + let smart-body = _build-smart-body(body, labels, numbered: false) + grid( + columns: (auto, 1fr), + column-gutter: 0.75em, + row-gutter: 0.3em, + align: (left + top, left + top), + num, title, + [], smart-body, + ) + } else { + let mode = _classify-body(body) + if mode == "list" { + // List mode: auto number + auto letter sub-examples + let items = _extract-items(body) + _build-subex-grid(items, labels) + } else if mode == "single" { + // Single-item mode: auto number to the left + let num = context { + subex-counter.update(0) + example-counter.step() + [(#(example-counter.get().first() + 1))] + } + grid( + columns: (auto, 1fr), + column-gutter: 0.75em, + align: (left + bottom, left + bottom), + num, body, + ) + } else { + // Legacy table mode: user manages numbering via eg-num-label() / subex-label() + let step = context { + subex-counter.update(0) + example-counter.step() + [] + } + grid( + columns: (auto, 1fr), + column-gutter: 0pt, + align: (left + top, left + top), + step, body, + ) + } + } + figure( + align(left, content), + caption: if caption != none { caption } else { none }, + outlined: caption != none, + kind: "linguistic-example", + supplement: none, + numbering: "(1)", + placement: none, + gap: 0pt, + ) +} + +// Display the current example number inside an eg() body. +// +// Use as the first-column cell of a 3-column table (num | sub-label | content) +// when no title is provided. Because it lives in the same table, it can share +// bottom alignment with the sub-example labels and the sentence text. +// +// Example: +// #eg(caption: "Example")[ +// #table( +// columns: 3, +// stroke: none, +// align: (left + bottom, left + bottom, left + top), +// [#eg-num-label()], [#subex-label()], [sentence a], +// [], [#subex-label()], [sentence b], +// ) +// ] +#let eg-num-label() = { + // No figure wrapper — a plain box behaves consistently with subex-label() + // in table cells without requiring explicit bottom alignment. + box(baseline: 0pt, context { + set par(first-line-indent: 0em) + let n = example-counter.get().first() + [(#n)] + }) +} + +// Create a sub-example label for use in tables +// +// Generates automatic lettering (a., b., c., ...) for table rows. +// Place in the first column of each row and attach a label after it. +// +// Returns: Labelable letter marker (a., b., c., ...) +// +// Example: +// #eg(caption: "A syntax example")[ +// #table( +// columns: 4, +// stroke: none, +// align: left, +// [#subex-label()], [sentence a], +// [#subex-label()], [sentence b], +// ) +// ] +// +// See @eg-syn, @eg-a, and @eg-b. +#let subex-label() = { + // Figure must be outermost so labels attach to it (not to context) + // Box with baseline ensures proper vertical alignment in table cells + // Reset first-line-indent to avoid misalignment in documents with paragraph indentation + figure( + box(baseline: 0pt, context { + set par(first-line-indent: 0em) + subex-counter.step() + let n = subex-counter.get().first() + // get() returns value BEFORE step, so n=0,1,2... gives a,b,c... + [#letters.at(n).] + }), + kind: "linguistic-subexample", + supplement: none, + numbering: none, + ) +} + +// Show rules for linguistic examples +// +// Apply this to enable proper reference formatting for eg() and subex-label(). +// References render as (1), (1a), (1b), etc. +// +// Usage: #show: eg-rules +#let eg-rules(doc) = { + show ref: it => { + let el = it.element + if el != none and el.func() == figure { + if el.kind == "linguistic-example" { + // Reference to main example: (1) + // at() returns value before step, so add 1 + link(el.location(), context { + let loc = el.location() + let num = example-counter.at(loc).first() + 1 + [(#num)] + }) + } else if el.kind == "linguistic-subexample" { + // Reference to sub-example: (1a) + // Subex is inside parent eg, so example-counter already stepped (no +1) + // Subex counter: at() returns value before step (0,1,2...) + link(el.location(), context { + let loc = el.location() + let parent-num = example-counter.at(loc).first() + let letter-num = subex-counter.at(loc).first() + let letter = letters.at(letter-num) + [(#parent-num#letter)] + }) + } else { + it + } + } else { + it + } + } + // Hide captions in document (they still appear in outline) + show figure.where(kind: "linguistic-example"): it => it.body + show figure.where(kind: "linguistic-subexample"): it => it.body + doc +} diff --git a/packages/preview/synkit/0.1.1/gallery/tree_1.png b/packages/preview/synkit/0.1.1/gallery/tree_1.png new file mode 100644 index 0000000000000000000000000000000000000000..959266d8868489a4c017b3f4dc175a4985f1804f GIT binary patch literal 47994 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

a>+xd#j;czXQzE-X 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

}^rDw=?!$bXMnzS1QkabWJSHa?(Pm%O!WbEb5uI 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

Veoe^A3>u*aRFP+F~Xj&Ta+m%Db=Zz1>(Sx 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 literal 0 HcmV?d00001 diff --git a/packages/preview/synkit/0.1.1/gallery/tree_3.typ b/packages/preview/synkit/0.1.1/gallery/tree_3.typ new file mode 100644 index 0000000000..58f24f9064 --- /dev/null +++ b/packages/preview/synkit/0.1.1/gallery/tree_3.typ @@ -0,0 +1,28 @@ +#import "@preview/synkit:0.1.1": * +#set page(height: auto, width: auto, margin: (bottom: 1em, top: 1em, x: 1em)) + +Tree adapted from David Chiang's tutorial on `tikz-qtree`. + +#garden( + ( + input: "[S [NP [Det the] [N cat]] [VP [V sat] [PP [P on] [NP [Det the] [N mat]]]]]", + spread: 1.55, + content-size: 1, + ), + ( + input: "[S [NP 猫が] [VP [PP [NP [NP マット] [Part の] [NP 上] ] [P に]] [V 座った]]]", + direction: "up", + content-size: 1, + ), + equivalence: ( + ("Det1-1", "NP1-2"), + ("P1-1", "P1-2"), + ("P1-1", "NP4-2"), + ("N1-1", "NP1-2"), + ("N2-1", "NP3-2"), + ("Det2-1", "NP3-2"), + ("V1-1", "V1-2"), + ), + gap: 2.5, + scale: 0.7, +) diff --git a/packages/preview/synkit/0.1.1/gallery/tree_4.png b/packages/preview/synkit/0.1.1/gallery/tree_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd6e7ede1818ae36c68e2444145bc6f33b7a878 GIT binary patch literal 69949 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 G2L2xlXLMx% literal 0 HcmV?d00001 diff --git a/packages/preview/synkit/0.1.1/gallery/tree_5.typ b/packages/preview/synkit/0.1.1/gallery/tree_5.typ new file mode 100644 index 0000000000..3328494fd0 --- /dev/null +++ b/packages/preview/synkit/0.1.1/gallery/tree_5.typ @@ -0,0 +1,13 @@ +#import "@preview/synkit:0.1.1": * +#show: eg-rules +#set page(height: 3cm, width: 10cm, margin: (bottom: 1em, top: 1em, x: 1em)) + +In-line movement coupled with a numbered example. + +#eg(labels: (, ))[ + - Who do you think saw Mary? + - #move( + "[CP Who do you think [(CP)[TPsaw Mary]]]", + arrows: ((from: "who2", to: "who1", dash: "solid", color: black),), + ) +] diff --git a/packages/preview/synkit/0.1.1/gallery/tree_6.png b/packages/preview/synkit/0.1.1/gallery/tree_6.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9700ca10c5a90a1ef6450ef98b2829f368a19f GIT binary patch literal 19003 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 DFUP26 literal 0 HcmV?d00001 diff --git a/packages/preview/synkit/0.1.1/gallery/tree_6.typ b/packages/preview/synkit/0.1.1/gallery/tree_6.typ new file mode 100644 index 0000000000..39cf8a500f --- /dev/null +++ b/packages/preview/synkit/0.1.1/gallery/tree_6.typ @@ -0,0 +1,10 @@ +#import "@preview/synkit:0.1.1": * +#show: eg-rules +#set page(height: auto, width: auto, margin: (bottom: 1em, top: 1em, x: 1em)) + +#gloss(spacing: 1.2em, caption: [An example from Portuguese])[ + - eu gosto de maçã + - I like-{1sg.prs} of apple + - 'I like apples.' +] + diff --git a/packages/preview/synkit/0.1.1/gloss.typ b/packages/preview/synkit/0.1.1/gloss.typ new file mode 100644 index 0000000000..61d8dc216c --- /dev/null +++ b/packages/preview/synkit/0.1.1/gloss.typ @@ -0,0 +1,300 @@ +// Interlinear glossed examples with automatic numbering +// Creates aligned word-by-word glosses; wrap text in {} for small-caps +// +// Generates numbered glossed examples that share the (1), (2)... sequence with eg(). +// +// Arguments: +// - body (content): List items — all but last are alignment lines, last is free translation +// - per (int or none): Lines per sub-gloss group (none = single gloss) +// - labels (array): Optional labels for sub-glosses (e.g., (, )) +// - caption (string): Caption for outline (hidden in document; optional) +// - spacing (length): Vertical spacing between gloss lines (default: 0.75em) +// - title (content or none): Title line shown above the gloss (not space-parsed) +// +// Returns: Numbered glossed example that can be labeled and referenced +// +// Single gloss: +// #gloss()[ +// - eu gosto de maçã +// - I like-{1sg.prs} of apple +// - 'I like apples' +// ] +// +// With title: +// #gloss(title: [Inuktitut])[ +// - Qasuiirsarvigssarsingitluinarnarpuq +// - tired not cause-to-be place-for suitable ... +// - 'Someone did not find a completely suitable resting place.' +// ] +// +// Sub-glosses: +// #gloss(per: 3, labels: (, ))[ +// - eu gosto de maçã +// - I like-{1sg.prs} of apple +// - 'I like apples' +// - elle aime les pommes +// - she like.{3sg.prs} the.{pl} apple.{pl} +// - 'She likes apples' +// ] + +#import "eg.typ": example-counter, letters, subex-counter + +// Extract list items from body (may be nested in a sequence) +#let _extract-items(body) = { + if body.func() == list.item { return (body,) } + if body.has("children") { + return body.children.filter(c => c.func() == list.item) + } + () +} + +// Recursively convert Typst content to a plain string +// Handles text nodes, sequences, and spaces +#let _content-to-string(c) = { + if type(c) == str { return c } + if c.has("text") { return c.text } + if c.has("children") { + let result = "" + for child in c.children { + if child.has("text") { result += child.text } else if child.has("children") { + for grandchild in child.children { + if grandchild.has("text") { result += grandchild.text } else { result += " " } + } + } else { result += " " } + } + return result + } + " " +} + +// Format a single gloss token: text inside {} gets small-capped +// "like-{1prs.sg}" → like- + sc(1prs.sg) +#let _format-gloss-token(token) = { + if not token.contains("{") { return [#token] } + // Split by { and } to find small-cap regions + let result = [] + let remaining = token + while remaining.contains("{") { + let open = remaining.position("{") + let before = remaining.slice(0, open) + remaining = remaining.slice(open + 1) + if remaining.contains("}") { + let close = remaining.position("}") + let sc-text = remaining.slice(0, close) + remaining = remaining.slice(close + 1) + result = result + [#before] + smallcaps[#sc-text] + } else { + // No closing brace, treat { as literal + result = result + [#before\{#remaining] + remaining = "" + } + } + if remaining != "" { + result = result + [#remaining] + } + result +} + +// Tokenize alignment lines into arrays of tokens +#let _tokenize-lines(line-strings) = { + line-strings.map(line => line.split(regex("\\s+")).filter(s => s != "")) +} + +// Build a full gloss grid: optional prefix columns + aligned tokens + free translation row +// prefix-cols: number of extra columns before the token columns (for number/letter) +// prefix-cells: flat array of cells to prepend to each row (length = prefix-cols per row) +#let _build-full-gloss(items, spacing, title: none, prefix-cols: 0, prefix-cells: (), escape: ()) = { + let n = items.len() + let align-items = items.slice(0, n - 1) + let free-trans = items.last().body + + let line-strings = align-items.map(it => _content-to-string(it.body)) + let tokenized = _tokenize-lines(line-strings) + // Escaped lines don't contribute to column count (they span all columns) + let non-escaped-tokens = tokenized.enumerate().filter(((i, _)) => i not in escape).map(((_, t)) => t) + let max-token-cols = if non-escaped-tokens.len() > 0 { + calc.max(..non-escaped-tokens.map(t => t.len())) + } else { + 1 + } + let total-cols = prefix-cols + max-token-cols + + let cells = () + + // Title row (spans all columns; steals first alignment row's prefix cells) + if title != none { + if prefix-cols > 0 { + for p in range(prefix-cols) { + if p < prefix-cells.len() { + cells.push(prefix-cells.at(p)) + } else { + cells.push([]) + } + } + } + cells.push(grid.cell(colspan: max-token-cols, title)) + } + + // Alignment rows + for (row-idx, row) in tokenized.enumerate() { + // Prefix cells for this row (skip first row's prefix if title already used them) + if prefix-cols > 0 { + let base = row-idx * prefix-cols + for p in range(prefix-cols) { + if title != none and row-idx == 0 { + cells.push([]) + } else if base + p < prefix-cells.len() { + cells.push(prefix-cells.at(base + p)) + } else { + cells.push([]) + } + } + } + // Token cells (escaped lines span all token columns without tokenization) + if row-idx in escape { + cells.push(grid.cell(colspan: max-token-cols, align-items.at(row-idx).body)) + } else { + for col in range(max-token-cols) { + if col < row.len() { + cells.push(_format-gloss-token(row.at(col))) + } else { + cells.push([]) + } + } + } + } + + // Free translation row (spans all token columns) + if prefix-cols > 0 { + for _ in range(prefix-cols) { cells.push([]) } + } + cells.push(grid.cell(colspan: max-token-cols, free-trans)) + + let col-spec = () + for _ in range(prefix-cols) { col-spec.push(2em) } + for _ in range(max-token-cols) { col-spec.push(auto) } + + grid( + columns: col-spec, + column-gutter: 0.75em, + row-gutter: spacing, + align: left + bottom, + ..cells, + ) +} + +// Main gloss function +#let gloss( + per: none, + labels: (), + caption: none, + spacing: 0.75em, + title: none, + escape: (), + body, +) = { + let items = _extract-items(body) + + let content = if per != none and items.len() > per { + // Sub-glosses mode: chunk items into groups of `per` + let groups = () + let i = 0 + while i + per <= items.len() { + groups.push(items.slice(i, i + per)) + i += per + } + if i < items.len() { + groups.push(items.slice(i)) + } + + // Build each sub-gloss as a flat grid, then stack them + let sub-blocks = () + for (gi, group) in groups.enumerate() { + // Build prefix cells: number (first row only) + letter (first row only) + let n-align-lines = group.len() - 1 // all but free translation + let prefix = () + for row in range(n-align-lines) { + if row == 0 { + // Number cell + if gi == 0 { + prefix.push(context { + subex-counter.update(0) + example-counter.step() + [(#(example-counter.get().first() + 1))] + }) + } else { + prefix.push([]) + } + // Letter cell + let letter-fig = figure( + box(baseline: 0pt, context { + set par(first-line-indent: 0em) + subex-counter.step() + let n = subex-counter.get().first() + [#letters.at(n).] + }), + kind: "linguistic-subexample", + supplement: none, + numbering: none, + ) + let letter-cell = if labels != () and gi < labels.len() { + [#letter-fig#labels.at(gi)] + } else { + letter-fig + } + prefix.push(letter-cell) + } else { + prefix.push([]) // empty number + prefix.push([]) // empty letter + } + } + + let group-title = if gi == 0 { title } else { none } + sub-blocks.push(_build-full-gloss( + group, + spacing, + title: group-title, + prefix-cols: 2, + prefix-cells: prefix, + escape: escape, + )) + } + + stack(dir: ttb, spacing: spacing * 2, ..sub-blocks) + } else { + // Single gloss mode: number in prefix column + let n-align-lines = items.len() - 1 + let prefix = () + for row in range(n-align-lines) { + if row == 0 { + prefix.push(context { + subex-counter.update(0) + example-counter.step() + [(#(example-counter.get().first() + 1))] + }) + } else { + prefix.push([]) + } + } + + _build-full-gloss( + items, + spacing, + title: title, + prefix-cols: 1, + prefix-cells: prefix, + escape: escape, + ) + } + + figure( + align(left, content), + caption: if caption != none { caption } else { none }, + outlined: caption != none, + kind: "linguistic-example", + supplement: none, + numbering: "(1)", + placement: none, + gap: 0pt, + ) +} diff --git a/packages/preview/synkit/0.1.1/lib.typ b/packages/preview/synkit/0.1.1/lib.typ new file mode 100644 index 0000000000..79110c778c --- /dev/null +++ b/packages/preview/synkit/0.1.1/lib.typ @@ -0,0 +1,109 @@ +// synkit — A toolkit to draw syntax trees +// Version 0.1.1 + +#import "syntax.typ": garden, tree +#import "movement.typ": blank, move +#import "eg.typ": eg, eg-rules +#import "gloss.typ": gloss +#import "spheres.typ": spheres + +/// Draw a syntax tree from bracket notation. +/// Optional arguments include spacing, arrows, annotations, color, +/// numbering, font controls, and `show-refs`; see the package manual for the +/// full list. +/// +/// ```typ +/// #tree("[CP [C' [C did] [TP [DP she] [T' [T e] [VP [V leave]]]]]]") +/// ``` +#let tree = tree + +/// Draw multiple syntax trees in a single canvas with cross-tree equivalence lines. +/// +/// Each positional argument is a spec dict with the tree-specific keys supported +/// by `garden()` (`input`, `direction`, `spread`, `drop`, `content-size`, +/// `node-size`, `triangle`, `terminal-branch`, `bottom`). +/// Node anchors are suffixed with tree index: `"np1-1"` = first NP in tree 1. +/// +/// ```typ +/// #garden( +/// (input: "[S [NP the cat] [VP [V sat]]]", direction: "down"), +/// (input: "[S [NP 猫が] [VP [V 座った]]]", direction: "up"), +/// equivalence: (("np1-1", "np1-2"),), +/// gap: 2.0, +/// ) +/// ``` +#let garden = garden + +/// Draw inline movement notation with subscripted bracket labels and +/// rectangular arrows below the text. Optional arguments include `arrows`, +/// `delinks`, `scale`, `content-size`, `line-width`, and `protect`. +/// +/// ```typ +/// #move( +/// "[CP Who do you think [(CP)[TPsaw Mary]]]", +/// arrows: ((from: "who2", to: "who1", dash: "solid", color: black),), +/// ) +/// ``` +#let move = move + +/// Render a blank underline representing an empty position. +/// Use `width` to adjust its length. +/// +/// ```typ +/// The word #blank(width: 3em) means "house". +/// ``` +#let blank = blank + +/// Numbered linguistic example with automatic (1), (2)... numbering. +/// Wrap content directly for a single example, or use list syntax for +/// automatically lettered sub-examples. Use `labels` to make individual +/// sub-examples referenceable. +/// Apply `#show: eg-rules` to enable reference formatting. +/// Optional arguments include `caption`, `title`, and `labels`. +/// +/// ```typ +/// #eg(labels: (, ))[ +/// - Who do you think saw Mary? +/// - #move( +/// "[CP Who do you think [(CP)[TPsaw Mary]]]", +/// arrows: ((from: "who2", to: "who1", dash: "solid", color: black),), +/// ) +/// ] +/// ``` +#let eg = eg + +/// Show rules for linguistic examples. +/// +/// Apply this to enable proper reference formatting for eg(). +/// References render as (1), (1a), (1b), etc. +/// +/// Usage: `#show: eg-rules` +#let eg-rules = eg-rules + +/// Create an interlinear glossed example with automatic numbering. +/// Shares the same (1), (2)... sequence as eg(). +/// Apply `#show: eg-rules` to enable reference formatting. +/// Optional arguments include `per`, `labels`, `caption`, `spacing`, +/// `title`, and `escape`. +/// +/// ```typ +/// #gloss()[ +/// - eu gosto de maçã +/// - I like.1prs.sg.pres of apple +/// - 'I like apples' +/// ] +/// ``` +#let gloss = gloss + +/// Draw a Lewis-style system of spheres for conditional semantics. +/// +/// The diagram contains one solid sphere, four dotted concentric guides, +/// labelled parabolic proposition boundaries, and optional region shading. +/// +/// ```typ +/// #spheres( +/// center-label: $w$, +/// parabolas: ((label: $phi$, angle: 45, depth: 2, shade: (2, 3)),), +/// ) +/// ``` +#let spheres = spheres diff --git a/packages/preview/synkit/0.1.1/movement.typ b/packages/preview/synkit/0.1.1/movement.typ new file mode 100644 index 0000000000..54479a7f3d --- /dev/null +++ b/packages/preview/synkit/0.1.1/movement.typ @@ -0,0 +1,573 @@ +// Movement module for synkit +// Draws inline movement notation with subscripted bracket labels +// and rectangular arrows below the text. +// Usage: #move("[CP Who do you think [(CP)[TPsaw Mary]]]", +// arrows: ((from: "who2", to: "who1"),)) + +#import "@preview/cetz:0.5.2" +#import "_symbols.typ": apply-symbols as _apply-symbols, symbol-map as _symbol-map + +// Draw a delink mark (two perpendicular bars) at a point along a line. +#let _draw-delink(mx, my, tang-x, tang-y, sw) = { + let len = calc.sqrt(tang-x * tang-x + tang-y * tang-y) + if len == 0 { return } + let dir-x = tang-x / len + let dir-y = tang-y / len + let perp-x = -dir-y + let perp-y = dir-x + let bar = 0.15 + let gap = 0.03 + for sign in (-1, 1) { + let cx = mx + sign * gap * dir-x + let cy = my + sign * gap * dir-y + cetz.draw.line( + (cx - bar * perp-x, cy - bar * perp-y), + (cx + bar * perp-x, cy + bar * perp-y), + stroke: sw, + ) + } +} + +/// Render a blank underline, representing an empty position (e.g. where +/// something used to be before moving). Use standalone in regular text. +#let blank(width: 2em) = box( + width: width, height: 0.8em, baseline: 50%, + stroke: (bottom: 0.5pt + black), +) + +// Internal helpers — shared between _move-layout and move() rendering +// so measurements stay consistent. +#let _blank-box() = box(width: 2em, height: 0.8em, stroke: (bottom: 0.5pt + black)) + +#let _t-trace-box(subscript, fsz, sub-fsz) = { + text(size: fsz, style: "italic", "t") + text(size: sub-fsz, baseline: 0.2em, style: "italic", _apply-symbols(subscript)) +} + +// ── Classify a word buffer into word / blank / t-trace ──────────────────── +#let _classify-word(buf) = { + if buf == "__" { + (type: "blank") + } else if buf.len() >= 3 and buf.starts-with("t_") { + (type: "t-trace", subscript: buf.slice(2)) + } else { + (type: "word", text: buf) + } +} + +// ── Move tokenizer ────────────────────────────────────────────────────────── +// Splits inline movement notation into tokens: +// [LABEL → bracket-open with label +// [(LABEL) → bracket-open with parenthesized label +// ] → bracket-close +// → trace marker (visible, creates anchor) +// word → bare word +#let _move-tokenize(input) = { + let tokens = () + let chars = input.clusters() + let i = 0 + let buf = "" + let n = chars.len() + + while i < n { + let ch = chars.at(i) + + if ch == "[" { + // Flush word buffer + if buf != "" { + tokens.push(_classify-word(buf)) + buf = "" + } + // Scan label after [ + i = i + 1 + let label = "" + if i < n and chars.at(i) == "(" { + // Parenthesized label: [(LABEL) + let paren-buf = "(" + i = i + 1 + while i < n and chars.at(i) != ")" { + paren-buf = paren-buf + chars.at(i) + i = i + 1 + } + if i < n { + paren-buf = paren-buf + ")" + i = i + 1 + } // consume ) + label = paren-buf + } else { + // Regular label: [LABEL (until whitespace, [, ], <, or end) + while i < n and chars.at(i) != " " and chars.at(i) != "[" and chars.at(i) != "]" and chars.at(i) != "<" { + label = label + chars.at(i) + i = i + 1 + } + } + tokens.push((type: "bracket-open", label: label)) + } else if ch == "]" { + if buf != "" { + tokens.push(_classify-word(buf)) + buf = "" + } + tokens.push((type: "bracket-close")) + i = i + 1 + } else if ch == "<" { + if buf != "" { + tokens.push(_classify-word(buf)) + buf = "" + } + // Scan trace name until > + i = i + 1 + let name = "" + while i < n and chars.at(i) != ">" { + name = name + chars.at(i) + i = i + 1 + } + if i < n { i = i + 1 } // consume > + tokens.push((type: "trace", name: name)) + } else if ch == " " { + if buf != "" { + tokens.push(_classify-word(buf)) + buf = "" + } + i = i + 1 + } else { + buf = buf + ch + i = i + 1 + } + } + if buf != "" { tokens.push(_classify-word(buf)) } + tokens +} + +// ── Assign anchors to move tokens ─────────────────────────────────────────── +// Words and traces share a common counter pool (case-insensitive). +// Bracket labels get their own anchors too. +// Strip punctuation and symbol shortcuts for anchor naming +// \lambda → lambda, chocolate? → chocolate +#let _strip-anchor(s) = { + let result = s + // Strip subscript suffix: Who_i → Who + let upos = result.position("_") + if upos != none and upos > 0 { + result = result.slice(0, upos) + } + // Strip formatting markers + for p in ("**", "*", "@", "&", "~") { + result = result.replace(p, "") + } + for p in ("?", "!", ".", ",", ";", ":", "'", "'") { + result = result.replace(p, "") + } + // Strip backslash from symbol shortcuts: \lambda → lambda + for (key, _val) in _symbol-map { + if result.contains(key) { + result = result.replace(key, key.slice(1)) + } + } + result +} + +// ── Format a word for move(): handles *italic*, **bold**, @smallcaps@, +// &underline&, ~strike~, and Word_i subscripts. +// Returns Typst content ready for rendering. +#let _move-format-word(raw, fsz, sub-fsz) = { + // Split subscript: Who_i → main="Who", sub-text="i" + let main = raw + let sub-text = none + let upos = raw.position("_") + if upos != none and upos > 0 { + main = raw.slice(0, upos) + sub-text = raw.slice(upos + 1) + } + + // Detect formatting markers + let is-bold = main.starts-with("**") and main.ends-with("**") and main.len() >= 5 + let is-italic = not is-bold and main.starts-with("*") and main.ends-with("*") and main.len() >= 3 + let is-smallcaps = main.starts-with("@") and main.ends-with("@") and main.len() >= 3 + let is-underline = main.starts-with("&") and main.ends-with("&") and main.len() >= 3 + let is-strike = main.starts-with("~") and main.ends-with("~") and main.len() >= 3 + + // Strip markers + let inner = if is-bold { main.slice(2, main.len() - 2) } + else if is-italic { main.slice(1, main.len() - 1) } + else if is-smallcaps { main.slice(1, main.len() - 1) } + else if is-underline { main.slice(1, main.len() - 1) } + else if is-strike { main.slice(1, main.len() - 1) } + else { main } + + // Apply symbol substitution + let display = _apply-symbols(inner) + + // Apply formatting + let body = if is-bold { text(size: fsz, weight: "bold", display) } + else if is-italic { text(size: fsz, style: "italic", display) } + else if is-smallcaps { text(size: fsz, smallcaps(display)) } + else if is-underline { text(size: fsz, underline(display)) } + else if is-strike { text(size: fsz, strike(display)) } + else { text(size: fsz, _apply-symbols(main)) } + + // Append subscript + if sub-text != none { + body + text(size: sub-fsz, baseline: 0.2em, style: "italic", _apply-symbols(sub-text)) + } else { + body + } +} + +#let _move-assign-anchors(tokens) = { + let counts = (:) + let result = () + for tok in tokens { + if tok.type == "word" { + let key = _strip-anchor(lower(tok.text)).replace("'", "bar").replace("'", "bar").replace(" ", "-") + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + result.push((..tok, anchor: key + str(c))) + } else if tok.type == "trace" { + let key = lower(tok.name).replace("'", "bar").replace("'", "bar").replace(" ", "-") + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + result.push((..tok, anchor: key + str(c))) + } else if tok.type == "blank" { + let key = "trace" + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + result.push((..tok, anchor: key + str(c))) + } else if tok.type == "t-trace" { + let key = "trace" + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + result.push((..tok, anchor: key + str(c))) + } else if tok.type == "bracket-open" and tok.label != "" { + // Strip parens for anchor naming: (CP) → cp + let raw = tok.label.replace("(", "").replace(")", "") + let key = lower(raw).replace("'", "bar").replace("'", "bar").replace(" ", "-") + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + result.push((..tok, anchor: key + str(c))) + } else { + result.push((..tok, anchor: none)) + } + } + result +} + +// ── Compute layout positions for move tokens (measure-based) ──────────────── +// Must be called inside a context block. Uses measure() for accurate widths. +// Returns array of layout entries with x-positions, plus total width. +#let _move-layout(tokens, fsz, sub-fsz, scale-factor) = { + let unit = scale-factor * 1cm // canvas unit length + let space-w = measure(text(size: fsz, " ")).width / unit + let x = 0.0 + let entries = () + let prev-type = none + + for tok in tokens { + if tok.type == "bracket-open" { + // Space before bracket if preceded by word, trace, or bracket-close + if prev-type == "word" or prev-type == "trace" or prev-type == "bracket-close" or prev-type == "blank" or prev-type == "t-trace" { + x = x + space-w + } + let entry-x = x + let bw = measure(text(size: fsz, "[")).width / unit + x = x + bw + // Subscript label width + let sub-w = 0.0 + if tok.label != "" { + sub-w = measure(text(size: sub-fsz, _apply-symbols(tok.label))).width / unit + x = x + sub-w + } + entries.push((..tok, x: entry-x, width: bw + sub-w, bw: bw, anchor-x: entry-x + bw * 0.5)) + prev-type = "bracket-open" + } else if tok.type == "bracket-close" { + // No space before closing bracket + let entry-x = x + let bw = measure(text(size: fsz, "]")).width / unit + x = x + bw + entries.push((..tok, x: entry-x, width: bw, anchor-x: entry-x)) + prev-type = "bracket-close" + } else if tok.type == "trace" { + if prev-type != none { x = x + space-w } + let entry-x = x + let display = "⟨" + _apply-symbols(tok.name) + "⟩" + let w = measure(text(size: fsz, display)).width / unit + x = x + w + entries.push((..tok, x: entry-x, width: w, anchor-x: entry-x + w * 0.5)) + prev-type = "trace" + } else if tok.type == "word" { + if prev-type != none { x = x + space-w } + let entry-x = x + let w = measure(_move-format-word(tok.text, fsz, sub-fsz)).width / unit + x = x + w + entries.push((..tok, x: entry-x, width: w, anchor-x: entry-x + w * 0.5)) + prev-type = "word" + } else if tok.type == "blank" { + if prev-type != none { x = x + space-w } + let entry-x = x + let w = measure(_blank-box()).width / unit + x = x + w + entries.push((..tok, x: entry-x, width: w, anchor-x: entry-x + w * 0.5)) + prev-type = "blank" + } else if tok.type == "t-trace" { + if prev-type != none { x = x + space-w } + let entry-x = x + let w = measure(_t-trace-box(tok.subscript, fsz, sub-fsz)).width / unit + x = x + w + entries.push((..tok, x: entry-x, width: w, anchor-x: entry-x + w * 0.5)) + prev-type = "t-trace" + } + } + (entries: entries, total-width: x) +} + +/// Draw inline movement notation with subscripted bracket labels and +/// rectangular arrows below the text. +/// +/// - input (string): Bracket notation with movement markers. +/// - `[LABEL ...]` — opening bracket with subscript label +/// - `[(LABEL)...]` — bracket with parenthesized subscript label +/// - `` — visible trace/copy marker; creates a named anchor +/// - bare words — rendered as plain text; auto-create anchors +/// +/// - arrows (array): Movement arrows drawn below the text. +/// Each entry is a dict with `from`, `to`, and optional `dash`, `color`, +/// `line-width`. Anchors are auto-numbered by occurrence (case-insensitive): +/// "Who" → `who1`, `` → `who2`. +/// - protect (bool): When `true`, reserves vertical space for arrows below the +/// text. Use this for standalone output such as gallery PNG exports. The +/// default `false` keeps baseline alignment cleaner inside table cells and +/// numbered examples. (default: `false`) +/// +/// Example: +/// ``` +/// #move( +/// "[CP Who do you think [(CP)[TPsaw Mary]]]", +/// arrows: ((from: "who2", to: "who1", dash: "solid", color: black),), +/// ) +/// ``` +#let move( + input, + arrows: (), + delinks: (), + scale: 1.0, + content-size: 1, + line-width: 1.0, + protect: false, +) = { + let scale-factor = scale + + // Tokenize and assign anchors + let tokens = _move-tokenize(input) + let tokens = _move-assign-anchors(tokens) + + // Render (layout computed inside context for accurate measure()) + context { + let fsz = content-size * 1em / scale-factor + let sub-fsz = fsz * 0.65 + + // Layout with real measurements + let layout = _move-layout(tokens, fsz, sub-fsz, scale-factor) + let entries = layout.entries + + // Build name-to-pos mapping: anchor → x-center + let name-to-pos = (:) + for e in entries { + if e.anchor != none { + name-to-pos.insert(e.anchor, e.anchor-x) + } + } + let _norm = luma(15%) + let sw = 0.018 * line-width + let arrow-mark-scale = 0.5 + + // Render the canvas, then trim it to text-only height so table cells + // with bottom alignment put "b." at the text level. + let unit = scale-factor * 1cm + let box-w = layout.total-width * unit + + let canvas-body = cetz.canvas(length: unit, { + import cetz.draw: * + + // ── Render text elements ────────────────────────────── + // Fixed-height box ensures consistent baseline alignment across all elements. + let ref-h = measure(text(size: fsz, "Hgy[")).height + let _aligned(body) = box(height: ref-h, align(horizon, body)) + + for e in entries { + if e.type == "bracket-open" { + content( + (e.x, 0), + _aligned(text(size: fsz, "[")), + anchor: "west", + ) + // Draw subscript label + if e.label != "" { + content( + (e.x + e.bw, -0.08), + text(size: sub-fsz, _apply-symbols(e.label)), + anchor: "north-west", + ) + } + } else if e.type == "bracket-close" { + content( + (e.x, 0), + _aligned(text(size: fsz, "]")), + anchor: "west", + ) + } else if e.type == "trace" { + content( + (e.x, 0), + _aligned(text(size: fsz, "⟨" + _apply-symbols(e.name) + "⟩")), + anchor: "west", + ) + } else if e.type == "word" { + content( + (e.x, 0), + _aligned(_move-format-word(e.text, fsz, sub-fsz)), + anchor: "west", + ) + } else if e.type == "blank" { + content( + (e.x, 0), + _aligned(_blank-box()), + anchor: "west", + ) + } else if e.type == "t-trace" { + content( + (e.x, 0), + _aligned(_t-trace-box(e.subscript, fsz, sub-fsz)), + anchor: "west", + ) + } + } + + // ── Draw rectangular arrows below text ──────────────── + let head-back = 0.12 + let base-drop = 0.35 // gap below text baseline to start arrow + let rect-count = 0 + + for arrow in arrows { + let is-dict = type(arrow) == dictionary + let raw-from = if is-dict { arrow.at("from") } else { arrow.at(0) } + let raw-to = if is-dict { arrow.at("to") } else { arrow.at(1) } + let paint = if is-dict { arrow.at("color", default: _norm) } else { _norm } + let dash-style = if is-dict { arrow.at("dash", default: "solid") } else { "solid" } + let arrow-lw = if is-dict { arrow.at("line-width", default: 1.0) } else { 1.0 } + + if raw-from in name-to-pos and raw-to in name-to-pos { + let fx = name-to-pos.at(raw-from) + let tx = name-to-pos.at(raw-to) + + let a-sw = sw * arrow-lw + let is-wavy = dash-style == "wavy" + let shaft-stroke = if dash-style == "solid" or is-wavy { + (paint: paint, thickness: a-sw) + } else { + (paint: paint, thickness: a-sw, dash: dash-style) + } + let head-stroke = (paint: paint, thickness: a-sw) + let mark-style = (end: ">", fill: paint, scale: arrow-mark-scale) + + // Rectangular arrow below text + let stagger = rect-count * 0.35 + rect-count = rect-count + 1 + + let bar-y = -(base-drop + 0.5 + stagger) + let drop-y = -(base-drop) + + if is-wavy { + // Wavy: smooth sine wave along each leg + let amp = 0.035 // wave amplitude + let wlen = 0.10 // wave length (one full cycle) + let samples-per-cycle = 12 // points per cycle for smoothness + + // Sine-wave along a vertical segment + let _wavy-v(x0, y0, y1, stk) = { + let dist = calc.abs(y1 - y0) + let sgn = if y1 > y0 { 1 } else { -1 } + let cycles = calc.max(1, calc.round(dist / wlen)) + let total = int(cycles * samples-per-cycle) + for k in range(total) { + let t0 = k / total + let t1 = (k + 1) / total + let py0 = y0 + sgn * t0 * dist + let py1 = y0 + sgn * t1 * dist + let px0 = x0 + amp * calc.sin(t0 * cycles * 2 * calc.pi) + let px1 = x0 + amp * calc.sin(t1 * cycles * 2 * calc.pi) + line((px0, py0), (px1, py1), stroke: stk) + } + } + + // Sine-wave along a horizontal segment + let _wavy-h(y0, x0, x1, stk) = { + let dist = calc.abs(x1 - x0) + let sgn = if x1 > x0 { 1 } else { -1 } + let cycles = calc.max(1, calc.round(dist / wlen)) + let total = int(cycles * samples-per-cycle) + for k in range(total) { + let t0 = k / total + let t1 = (k + 1) / total + let px0 = x0 + sgn * t0 * dist + let px1 = x0 + sgn * t1 * dist + let py0 = y0 + amp * calc.sin(t0 * cycles * 2 * calc.pi) + let py1 = y0 + amp * calc.sin(t1 * cycles * 2 * calc.pi) + line((px0, py0), (px1, py1), stroke: stk) + } + } + + // From: drop down (wavy) + _wavy-v(fx, drop-y, bar-y, shaft-stroke) + // Horizontal bar (wavy) + _wavy-h(bar-y, fx, tx, shaft-stroke) + // To: rise up (wavy stops early, straight into arrowhead) + let clear = 0.18 // clearance for a clean arrowhead + _wavy-v(tx, bar-y, drop-y - clear, shaft-stroke) + line((tx, drop-y - clear), (tx, drop-y - head-back), stroke: shaft-stroke) + let tiny = 0.01 + line((tx, drop-y - head-back - tiny), (tx, drop-y), stroke: head-stroke, mark: mark-style) + } else { + // From: drop down + line((fx, drop-y), (fx, bar-y), stroke: shaft-stroke) + // Horizontal bar + line((fx, bar-y), (tx, bar-y), stroke: shaft-stroke) + // To: rise up with arrowhead + line((tx, bar-y), (tx, drop-y - head-back), stroke: shaft-stroke) + let tiny = 0.01 + line((tx, drop-y - head-back - tiny), (tx, drop-y), stroke: head-stroke, mark: mark-style) + } + + // Delink mark on horizontal bar + if (rect-count - 1) in delinks { + let mid-x = (fx + tx) / 2 + _draw-delink(mid-x, bar-y, 1.0, 0.0, (paint: paint, thickness: a-sw)) + } + } + } + }) + + // When protect is true, extend the box downward to cover arrows + // so subsequent content doesn't overlap. When false (default), + // keep the box text-height only — correct for table cells with + // align: bottom. + if protect and arrows.len() > 0 { + let base-drop = 0.35 + let depth = base-drop + 0.5 + (arrows.len() - 1) * 0.35 + let arrow-depth = (depth + 0.15) * unit + let ref-content = text(size: fsz, "Hgy[") + let ref-height = measure(ref-content).height + box( + width: box-w, + height: ref-height + arrow-depth, + baseline: arrow-depth, + clip: false, + { + hide(ref-content) + place(top + left, canvas-body) + }, + ) + } else { + box(width: box-w, clip: false, { + hide(text(size: fsz, "Hgy[")) + place(top + left, canvas-body) + }) + } + } +} diff --git a/packages/preview/synkit/0.1.1/spheres.typ b/packages/preview/synkit/0.1.1/spheres.typ new file mode 100644 index 0000000000..850529fd06 --- /dev/null +++ b/packages/preview/synkit/0.1.1/spheres.typ @@ -0,0 +1,282 @@ +// Conditional-semantics sphere diagrams +// Draws a solid sphere of worlds, four dotted concentric guides, and +// labelled parabolic proposition boundaries. + +#import "@preview/cetz:0.5.2" + +#let _rotate(point, angle) = { + let (x, y) = point + let theta = angle * 1deg + ( + x * calc.cos(theta) - y * calc.sin(theta), + x * calc.sin(theta) + y * calc.cos(theta), + ) +} + +#let _parabola-point(vertex, angle, opening, t) = { + let offset = _rotate((opening * t * t, t), angle) + (vertex.at(0) + offset.at(0), vertex.at(1) + offset.at(1)) +} + +#let _tail-extent(vertex, angle, opening, target-radius, side) = { + let extent = 0.0 + let point = vertex + while calc.sqrt(point.at(0) * point.at(0) + point.at(1) * point.at(1)) <= target-radius { + extent += 0.025 + point = _parabola-point(vertex, angle, opening, side * extent) + assert(extent < 10, message: "spheres: could not extend parabola beyond the outermost circle") + } + extent +} + +#let _parabola-points(vertex, angle, opening, negative-extent, positive-extent, steps: 64) = { + range(steps + 1).map(i => { + let t = -negative-extent + ((negative-extent + positive-extent) * i / steps) + _parabola-point(vertex, angle, opening, t) + }) +} + +#let _normalize-ids(value) = { + if value == () { + () + } else if type(value) == str { + (value,) + } else { + value + } +} + +#let _simple-shade-region(id, value) = { + if type(value) == array { + assert(value.len() == 2, message: "spheres: shade must be a pair of circle depths") + (inside: id, band: value) + } else { + assert(type(value) == dictionary, message: "spheres: shade must be a pair or dictionary") + let between = value.at("between") + let region = (inside: id, band: between) + if "fill" in value { + region.insert("fill", value.at("fill")) + } + region + } +} + +/// Draw a Lewis-style system of spheres for conditional semantics. +/// +/// Four dotted guide circles surround a filled solid sphere: two guides lie +/// inside it and two outside it. The five concentric lines are numbered from +/// the centre outwards, so depth `3` is the solid sphere boundary. +/// +/// Each `parabolas` entry is a dictionary with `label`, `angle`, and `depth`. +/// Optional keys are `id`, `touch-angle`, `label-position`, and +/// `label-offset`. Add `shade: (inner, outer)` to shade that parabola between +/// two circle depths. `touch-angle` controls where the vertex sits on the selected +/// circle and defaults to the parabola angle. All parabolas share the same +/// `parabola-opening`. Both tails use the same extent. That extent is the +/// average of the two lengths needed to reach a virtual outer guide set by +/// `parabola-tail-gap`, while still keeping both endpoints outside guide 5. +/// Angles are numeric degrees: `0` opens right and positive values rotate +/// counterclockwise. +/// +/// Each `shading` entry may contain `inside`, `outside`, `band`, and `fill`. +/// Named inside regions are intersected, outside regions are subtracted, and +/// the result is clipped to the radial band `(inner-depth, outer-depth)`. +/// Use depth `0` for the centre of the diagram. +#let spheres( + center-label: $w$, + parabolas: (), + shading: (), + parabola-opening: 4.0, + parabola-tail-gap: 1.0, + scale: 1.0, + circle-fill: luma(88%), + shading-fill: luma(70%), + stroke: luma(15%), + guide-stroke: luma(58%), + line-width: 1.0, +) = { + assert(type(scale) == int or type(scale) == float, message: "spheres: scale must be numeric") + assert(scale > 0, message: "spheres: scale must be greater than zero") + assert(parabola-opening > 0, message: "spheres: parabola-opening must be greater than zero") + assert(parabola-tail-gap >= 0, message: "spheres: parabola-tail-gap must be at least zero") + + let ids = () + let normalized-parabolas = () + for (index, spec) in parabolas.enumerate() { + assert(type(spec) == dictionary, message: "spheres: every parabola must be a dictionary") + let id = spec.at("id", default: "__parabola-" + str(index + 1)) + let angle = spec.at("angle") + let touch-angle = spec.at("touch-angle", default: angle) + let depth = spec.at("depth") + assert(type(id) == str and id != "", message: "spheres: a parabola id must be a non-empty string") + assert(not id in ids, message: "spheres: duplicate parabola id " + repr(id)) + assert( + (type(angle) == int or type(angle) == float) and angle >= 0 and angle <= 360, + message: "spheres: parabola angle must be between 0 and 360 degrees", + ) + assert( + (type(touch-angle) == int or type(touch-angle) == float) and touch-angle >= 0 and touch-angle <= 360, + message: "spheres: parabola touch-angle must be between 0 and 360 degrees", + ) + assert( + type(depth) == int and depth >= 1 and depth <= 5, + message: "spheres: parabola depth must be an integer from 1 to 5", + ) + ids.push(id) + normalized-parabolas.push((..spec, id: id)) + } + + let shading-regions = shading + for spec in normalized-parabolas { + let shade = spec.at("shade", default: none) + if shade != none { + let entries = if type(shade) == dictionary { + (shade,) + } else if type(shade) == array and shade.len() == 2 and type(shade.at(0)) == int { + (shade,) + } else { + shade + } + for entry in entries { + shading-regions.push(_simple-shade-region(spec.id, entry)) + } + } + } + + for region in shading-regions { + assert(type(region) == dictionary, message: "spheres: every shading region must be a dictionary") + let inside = _normalize-ids(region.at("inside", default: ())) + let outside = _normalize-ids(region.at("outside", default: ())) + assert(inside.len() > 0, message: "spheres: a shading region needs at least one inside parabola") + for id in inside + outside { + assert(id in ids, message: "spheres: shading refers to unknown parabola " + repr(id)) + } + let band = region.at("band", default: (0, 5)) + assert(type(band) == array and band.len() == 2, message: "spheres: a shading band must be a pair") + let inner = band.at(0) + let outer = band.at(1) + assert( + type(inner) == int and type(outer) == int and inner >= 0 and outer <= 5 and inner < outer, + message: "spheres: shading bands must satisfy 0 <= inner < outer <= 5", + ) + } + + let radius-step = 0.55 + let solid-depth = 3 + let solid-radius = solid-depth * radius-step + let sw = 0.018 * line-width + let curve-stroke = stroke + + let parabola-data = normalized-parabolas.map(spec => { + let vertex = _rotate((spec.depth * radius-step, 0), spec.at("touch-angle", default: spec.angle)) + let target-radius = (5 + parabola-tail-gap) * radius-step + let negative-extent = _tail-extent( + vertex, + spec.angle, + parabola-opening, + target-radius, + -1, + ) + let positive-extent = _tail-extent( + vertex, + spec.angle, + parabola-opening, + target-radius, + 1, + ) + let outside-negative = _tail-extent(vertex, spec.angle, parabola-opening, 5 * radius-step, -1) + let outside-positive = _tail-extent(vertex, spec.angle, parabola-opening, 5 * radius-step, 1) + let target-average = (negative-extent + positive-extent) / 2 + let extent = calc.max(target-average, outside-negative, outside-positive) + let points = _parabola-points( + vertex, + spec.angle, + parabola-opening, + extent, + extent, + ) + ( + spec: spec, + points: points, + vertex: vertex, + extent: extent, + ) + }) + let parabola-map = (:) + for data in parabola-data { + parabola-map.insert(data.spec.id, data) + } + + cetz.canvas(length: scale * 1cm, { + import cetz.draw: * + + let _parabola-region(id) = { + let points = parabola-map.at(id).points + line(..points, close: true, stroke: none, fill: none) + } + + let _radial-band(inner, outer) = { + if inner == 0 { + circle((0, 0), radius: outer * radius-step, stroke: none, fill: none) + } else { + boolean( + { circle((0, 0), radius: outer * radius-step, stroke: none, fill: none) }, + { circle((0, 0), radius: inner * radius-step, stroke: none, fill: none) }, + op: "difference", + stroke: none, + fill: none, + ) + } + } + + // Base fill. + circle((0, 0), radius: solid-radius, stroke: none, fill: circle-fill) + + // Declarative shaded intersections. + for region in shading-regions { + let inside = _normalize-ids(region.at("inside", default: ())) + let outside = _normalize-ids(region.at("outside", default: ())) + let band = region.at("band", default: (0, 5)) + let shape = _parabola-region(inside.first()) + for id in inside.slice(1) { + shape = boolean(shape, _parabola-region(id), op: "intersection", stroke: none, fill: none) + } + for id in outside { + shape = boolean(shape, _parabola-region(id), op: "difference", stroke: none, fill: none) + } + boolean( + shape, + _radial-band(band.at(0), band.at(1)), + op: "intersection", + stroke: none, + fill: region.at("fill", default: shading-fill), + ) + } + + // Dotted guides, then the solid boundary. + for depth in (1, 2, 4, 5) { + circle( + (0, 0), + radius: depth * radius-step, + stroke: (paint: guide-stroke, thickness: sw, dash: "dotted"), + fill: none, + ) + } + circle((0, 0), radius: solid-radius, stroke: (paint: guide-stroke, thickness: sw), fill: none) + + // Visible proposition boundaries and their labels. + for data in parabola-data { + let spec = data.spec + line(..data.points, stroke: (paint: curve-stroke, thickness: sw)) + + let label-t = spec.at("label-position", default: -0.72) + let t = label-t * data.extent + let base = _parabola-point(data.vertex, spec.angle, parabola-opening, t) + let offset = spec.at("label-offset", default: (0, 0)) + let label-pos = (base.at(0) + offset.at(0), base.at(1) + offset.at(1)) + content(label-pos, spec.at("label"), anchor: "west") + } + + content((0, 0), center-label, anchor: "center") + }) +} diff --git a/packages/preview/synkit/0.1.1/syntax.typ b/packages/preview/synkit/0.1.1/syntax.typ new file mode 100644 index 0000000000..4de039d95d --- /dev/null +++ b/packages/preview/synkit/0.1.1/syntax.typ @@ -0,0 +1,2743 @@ +// Syntax tree module for synkit +// Draws phrase structure trees from bracket notation input. +// Usage: #tree("[CP [C' [C did] [TP [DP she] [T' [T e] [VP [V leave]]]]]]") + +#import "@preview/cetz:0.5.2" +#import "_symbols.typ": apply-symbols as _apply-symbols, symbol-map as _symbol-map + +// ── Constants ──────────────────────────────────────────────────────────────── +#let _leaf-w = 1.0 // horizontal width per leaf +#let _v-gap = 1.2 // vertical gap between levels +#let _loff = 0.25 // label offset for anchor connections + + +// ── Tokenizer ──────────────────────────────────────────────────────────────── +// Splits bracket notation into tokens: "[", "]", and word strings. +#let _tokenize(input) = { + let tokens = () + let buf = "" + let brace-depth = 0 + let literal-bracket-depth = 0 + let chars = input.clusters() + let skip-next = false + for (i, ch) in chars.enumerate() { + if skip-next { + skip-next = false + } else if ch == "\\" and i + 1 < chars.len() and (chars.at(i + 1) == "[" or chars.at(i + 1) == "]") { + // Escaped square brackets are literal label characters, not tree structure. + let next = chars.at(i + 1) + if next == "[" { + literal-bracket-depth = literal-bracket-depth + 1 + } else { + literal-bracket-depth = calc.max(0, literal-bracket-depth - 1) + } + buf = buf + next + skip-next = true + } else if ch == "{" { + brace-depth = brace-depth + 1 + buf = buf + ch + } else if ch == "}" { + brace-depth = calc.max(0, brace-depth - 1) + buf = buf + ch + } else if brace-depth > 0 or literal-bracket-depth > 0 { + // Inside braces or escaped literal brackets: everything is literal. + buf = buf + ch + } else if ch == "[" or ch == "]" { + if buf.trim() != "" { tokens.push(buf.trim()) } + buf = "" + tokens.push(ch) + } else if ch == " " or ch == "\t" or ch == "\n" { + if buf.trim() != "" { tokens.push(buf.trim()) } + buf = "" + } else { + buf = buf + ch + } + } + if buf.trim() != "" { tokens.push(buf.trim()) } + tokens +} + +// ── Strip formatting markers for anchor naming ────────────────────────────── +// Removes *, **, _subscript, and ^superscript from a label to get the bare name. +#let _strip-fmt(label) = { + let s = label + // Remove escapes for literal formatting characters before stripping markers. + // This keeps anchors usable for labels like \muP\* -> muP, not muP\. + s = s + .replace("\\*", "") + .replace("\\@", "") + .replace("\\&", "") + .replace("\\~", "") + .replace("\\[", "") + .replace("\\]", "") + // Strip subscript: first _ and everything after (e.g., CP_i → CP) + if s.contains("_") { + let idx = s.position("_") + s = s.slice(0, idx) + } + // Strip superscript: first ^ and everything after (e.g., NP^max → NP) + if s.contains("^") { + let idx = s.position("^") + s = s.slice(0, idx) + } + // Strip literal feature suffixes after the base label (e.g., C'{INT,...} → C') + if s.contains("{") { + let idx = s.position("{") + s = s.slice(0, idx) + } + if s.contains("[") { + let idx = s.position("[") + s = s.slice(0, idx) + } + // Strip *, @, &, ~ for bold/italic/smallcaps/underline/strikethrough + s = s.replace("*", "") + s = s.replace("@", "") + s = s.replace("&", "") + s = s.replace("~", "") + // Strip angle brackets and commas (for semantic type labels like → ett) + s = s.replace("<", "") + s = s.replace(">", "") + s = s.replace(",", "") + // Strip symbol shortcuts: \lambda → lambda, \phiP → phiP, etc. + for (key, _val) in _symbol-map { + if s.contains(key) { + s = s.replace(key, key.slice(1)) // \lambda → lambda + } + } + s +} + +// ── Anchor key ─────────────────────────────────────────────────────────────── +// Canonical anchor stem used everywhere labels become automatic anchor names. +#let _anchor-key(label) = { + _strip-fmt(label).replace("'", "bar").replace("\u{2019}", "bar").replace(" ", "-") +} + +// ── Anchor name ────────────────────────────────────────────────────────────── +// Normalizes a label into an anchor name: lowercase, ' → p, spaces → -, append count. +#let _anchor-name(label, count) = { + _anchor-key(label) + str(count) +} + +// ── Parser ─────────────────────────────────────────────────────────────────── +// Recursive descent parser: tokens → tree node. +// Returns (node, next-position, updated-counts). +// Node: (label: str, anchor: str, children: array, is-leaf: bool) +#let _parse(tokens, pos, counts) = { + if tokens.at(pos) == "[" { + // Empty node: [ ] → blank placeholder + if tokens.at(pos + 1) == "]" { + let key = "empty" + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + return ( + ( + label: "", + anchor: key + str(c), + children: (), + is-leaf: false, + ), + pos + 2, + counts, + ) + } + // Non-terminal: [LABEL children... ] + let label = tokens.at(pos + 1) + let key = _anchor-key(label) + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + let anchor = key + str(c) + let children = () + let p = pos + 2 + while tokens.at(p) != "]" { + if tokens.at(p) == "[" { + let (child, np, nc) = _parse(tokens, p, counts) + children.push(child) + p = np + counts = nc + } else { + // Bare word = leaf child + let leaf-label = tokens.at(p) + let lk = _anchor-key(leaf-label) + let lc = counts.at(lk, default: 0) + 1 + counts.insert(lk, lc) + children.push(( + label: leaf-label, + anchor: lk + str(lc), + children: (), + is-leaf: true, + )) + p = p + 1 + } + } + // Skip closing ] + ( + ( + label: label, + anchor: anchor, + children: children, + is-leaf: false, + ), + p + 1, + counts, + ) + } else { + // Bare word at top level + let label = tokens.at(pos) + let key = _anchor-key(label) + let c = counts.at(key, default: 0) + 1 + counts.insert(key, c) + ( + ( + label: label, + anchor: key + str(c), + children: (), + is-leaf: true, + ), + pos + 1, + counts, + ) + } +} + + +// ── Collect all leaf labels under a node ───────────────────────────────────── +#let _collect-leaves(node) = { + if node.is-leaf or node.children.len() == 0 { return (node.label,) } + let result = () + for child in node.children { + result = result + _collect-leaves(child) + } + result +} + +// ── Find a node by anchor in the parsed tree ───────────────────────────────── +#let _find-node(node, anchor) = { + if node.anchor == anchor { return node } + if node.children.len() == 0 { return none } + for child in node.children { + let found = _find-node(child, anchor) + if found != none { return found } + } + none +} + +// ── Collect all leaf anchors under a node ──────────────────────────────────── +#let _collect-leaf-anchors(node) = { + if node.is-leaf or node.children.len() == 0 { return (node.anchor,) } + let result = () + for child in node.children { + result = result + _collect-leaf-anchors(child) + } + result +} + +// ── Detect trace leaves ───────────────────────────────────────────────────── +// A trace is any leaf whose label starts with *t* (explicit italic marker). +// Plain t/T is only a trace when followed by a subscript: t_i, T_DP, etc. +// Bare t or T without subscript is treated as a regular node (e.g., tense head). +#let _is-trace(label) = { + let s = label + // Explicit italic markers → always a trace + if s.starts-with("*t*") or s.starts-with("*T*") { return true } + // T0, t0, t^x → NOT traces (null heads, etc.) + if s.contains("0") or s.contains("^") { return false } + // Plain t/T: only a trace when followed by _subscript + if not s.contains("_") { return false } + let main = s.slice(0, s.position("_")) + main == "t" or main == "T" +} + +// Walk tree and collect trace info: (trace-number, leaf-anchor, parent-anchor, word-index-in-parent) +#let _find-traces(node, parent-anchor: none) = { + // Match traces as leaves OR as bracketed nodes with no children (e.g., [*t*_DP]) + if node.is-leaf or (node.children.len() == 0 and _is-trace(node.label)) { + if _is-trace(node.label) { + return ((leaf-anchor: node.anchor, parent-anchor: parent-anchor, label: node.label),) + } + return () + } + let result = () + for child in node.children { + result = result + _find-traces(child, parent-anchor: node.anchor) + } + result +} + +// ── Estimate rendered character count (strips formatting markers) ──────────── +// Counts visible characters after stripping *, @, &, _subscript, and ^superscript. +#let _esc-star = "\u{FFFD}" // placeholder for escaped \* +#let _esc-at = "\u{FFFC}" +#let _esc-amp = "\u{FFFB}" +#let _esc-tilde = "\u{FFFA}" +#let _esc-lbrack = "\u{FFF9}" +#let _esc-rbrack = "\u{FFF8}" + +#let _normalize-escapes(s) = { + s + .replace("\\*", _esc-star) + .replace("\\@", _esc-at) + .replace("\\&", _esc-amp) + .replace("\\~", _esc-tilde) + .replace("\\[", _esc-lbrack) + .replace("\\]", _esc-rbrack) +} + +#let _restore-escapes(s) = { + s + .replace(_esc-star, "*") + .replace(_esc-at, "@") + .replace(_esc-amp, "&") + .replace(_esc-tilde, "~") + .replace(_esc-lbrack, "[") + .replace(_esc-rbrack, "]") +} + +#let _find-brace-end(s) = { + let depth = 0 + for (i, ch) in s.clusters().enumerate() { + if ch == "{" { depth = depth + 1 } + if ch == "}" { depth = depth - 1 } + if depth == 0 { + return i + } + } + none +} + +#let _annotation-boundary(ch) = { + ( + ch == " " + or ch == "\t" + or ch == "\n" + or ch == "{" + or ch == "}" + or ch == "[" + or ch == "]" + or ch == "_" + or ch == "^" + ) +} + +#let _is-bracketed-subscript(s) = { + if type(s) != str { return false } + let trimmed = s.trim() + trimmed.starts-with("[") and trimmed.ends-with("]") +} + +#let _parse-label-parts(label) = { + let chars = label.clusters() + let main-chars = () + let rest-chars = () + let in-rest = false + for (i, ch) in chars.enumerate() { + if not in-rest and (ch == "_" or ch == "^" or (i > 0 and (ch == "{" or ch == "["))) { + in-rest = true + rest-chars.push(ch) + } else if in-rest { + rest-chars.push(ch) + } else { + main-chars.push(ch) + } + } + let main = if main-chars.len() == 0 { "" } else { main-chars.join() } + let rest = if rest-chars.len() == 0 { "" } else { rest-chars.join() } + let sub-text = none + let sup-text = none + let sub-braced = false + let sup-braced = false + let tail-text = "" + let rest-arr = rest.clusters() + let cursor = 0 + + while cursor < rest-arr.len() { + let ch = rest-arr.at(cursor) + if ch != "_" and ch != "^" { + tail-text = tail-text + rest-arr.slice(cursor).join() + break + } + + let after = rest-arr.slice(cursor + 1) + let ann = "" + let braced = false + let consumed = 0 + if after.len() > 0 and after.at(0) == "{" { + braced = true + let depth = 0 + let ann-chars = () + let end-found = false + for (j, ach) in after.enumerate() { + if ach == "{" { + depth = depth + 1 + if depth > 1 { ann-chars.push(ach) } + } else if ach == "}" { + depth = depth - 1 + if depth == 0 { + consumed = j + 1 + end-found = true + break + } else { + ann-chars.push(ach) + } + } else if depth >= 1 { + ann-chars.push(ach) + } + } + ann = if ann-chars.len() == 0 { "" } else { ann-chars.join() } + if not end-found { + consumed = after.len() + } + } else { + // LaTeX-style lazy scope: an unbraced _/^ grabs the next character. + // If that character starts a symbol command, keep the whole command. + if after.len() > 0 { + if after.at(0) == "\\" { + let ann-chars = ("\\",) + consumed = 1 + for ach in after.slice(1) { + if ach.match(regex("[A-Za-z]")) != none { + ann-chars.push(ach) + consumed = consumed + 1 + } else { + break + } + } + ann = ann-chars.join() + } else { + ann = after.at(0) + consumed = 1 + } + } + } + + if ch == "_" and sub-text == none { + sub-text = ann + sub-braced = braced + } else if ch == "^" and sup-text == none { + sup-text = ann + sup-braced = braced + } else { + tail-text = tail-text + ch + if braced { "{" + ann + "}" } else { ann } + } + cursor = cursor + 1 + consumed + } + + ( + main: main, + sub-text: sub-text, + sup-text: sup-text, + sub-braced: sub-braced, + sup-braced: sup-braced, + tail-text: tail-text, + ) +} + +#let _rendered-len(s) = { + let parts = _parse-label-parts(_normalize-escapes(_apply-symbols(s))) + let result = parts.main + parts.tail-text + // Strip formatting markers and braces + result = result.replace("*", "").replace("@", "").replace("&", "").replace("~", "").replace("{", "").replace("}", "") + result = _restore-escapes(result) + // Strip sub/superscript markers but keep the content (it contributes to width) + // _text and ^text → text is rendered smaller, count at ~0.7x + let words = result.split(" ") + let total = 0 + for w in words { + total = total + w.clusters().len() + total = total + 1 // space between words + } + let ann = "" + if parts.sup-text != none { ann = ann + parts.sup-text } + if parts.sub-text != none { ann = ann + parts.sub-text } + ann = _restore-escapes(_apply-symbols(ann).replace("*", "").replace("@", "").replace("&", "").replace("~", "")) + total = total + calc.ceil(ann.clusters().len() * 0.7) + calc.max(0, total - 1) // remove trailing space +} + +// ── Leaf count (triangle-aware) ────────────────────────────────────────────── +// If a node is in the triangle set, use at least 2 leaf widths for spacing. +// When \n breaks are present, use the widest line's word count instead of total. +// Wide leaf labels claim proportionally more slots. +#let _leaf-count(node, tri-set, leaf-w: 1.0, content-size: 0.8, annotation-leaf-widths: (:), is-horiz: false) = { + if node.is-leaf or node.children.len() == 0 { + if is-horiz { + return 1 + } + // Check if the label is wider than one slot + let char-w = 0.22 * content-size + let label-w = _rendered-len(node.label) * char-w + let slots = calc.max(1, calc.ceil(label-w / leaf-w)) + return slots + } + if node.anchor in tri-set { + if is-horiz { + let lines = _collect-leaves(node).join(" ").split(" \\n ") + let lines = if lines.len() == 1 { _collect-leaves(node).join(" ").split("\\n") } else { lines } + return calc.max(1, lines.len()) + } + // Use minimal slot count — triangle text overflows visually, + // and rightward collision with siblings is resolved in the layout loop. + return 2 + } + let total = 0 + for child in node.children { + total = total + _leaf-count( + child, + tri-set, + leaf-w: leaf-w, + content-size: content-size, + annotation-leaf-widths: annotation-leaf-widths, + is-horiz: is-horiz, + ) + } + if is-horiz { + return total + } + // Ensure non-leaf node's own label fits within the allocated width. + // Node labels use full-size font (char-w ≈ 0.22), so wide labels like + // ⟨st,⟨st,t⟩⟩ need more slots than their leaf count would suggest. + // Uses exact (non-ceiled) width to avoid over-spacing. + let char-w = 0.22 + let label-w = _rendered-len(node.label) * char-w + let needed = label-w / leaf-w + let annotation-needed = annotation-leaf-widths.at(node.anchor, default: 0) + calc.max(total, needed, annotation-needed) +} + +// ── Layout ─────────────────────────────────────────────────────────────────── +// Recursive layout: positions each node based on leaf-proportional spacing. +// Triangle nodes are collapsed to a single leaf with combined label. +// Returns flat list of (label, anchor, x, y, parent-xy, is-leaf, is-triangle). +#let _syntax-layout( + node, + x0, + y, + parent-xy, + parent-anchor, + leaf-w, + v-gap, + tri-set, + is-horiz: false, + append-map: (:), + content-size: 0.8, + level: 0, + drop-map: (:), + node-spacing-map: (:), + sister-spacing-map: (:), + sister-node-map: (:), + annotation-map: (:), + annotation-leaf-widths: (:), + annotation-gaps: (:), +) = { + if node.is-leaf or node.children.len() == 0 { + let x = x0 + leaf-w / 2 + return ( + ( + label: node.label, + anchor: node.anchor, + x: x, + y: y, + par: parent-xy, + par-anchor: parent-anchor, + is-leaf: true, + is-terminal: node.is-leaf, // true only for bare words, not empty bracket nodes + is-triangle: false, + ), + ) + } + + // Triangle node: collapse entire subtree into parent + single combined leaf + if node.anchor in tri-set { + let lc = _leaf-count( + node, + tri-set, + leaf-w: leaf-w, + content-size: content-size, + annotation-leaf-widths: annotation-leaf-widths, + is-horiz: is-horiz, + ) + let my-x = x0 + lc * leaf-w / 2 + let leaves = _collect-leaves(node) + let combined-label = leaves.join(" ") + let tri-leaves = leaves // individual labels for _display-label rendering + return ( + ( + label: node.label, + anchor: node.anchor, + x: my-x, + y: y, + par: parent-xy, + par-anchor: parent-anchor, + is-leaf: false, + is-triangle: true, + tri-label: combined-label, + tri-leaves: tri-leaves, + tri-y: y - v-gap - annotation-gaps.at(node.anchor, default: 0), + tri-span: lc * leaf-w, // allocated vertical span for horizontal triangles + ), + ) + } + + // Non-terminal: lay out children, then center self + let result = () + let cursor = x0 + let child-positions = () + + // Reserve extra annotation width outside the subtree, not between children. + // This keeps siblings as tight as their own labels allow while still giving + // the parent annotation enough room at the next level up. + let natural-w = node + .children + .map(c => _leaf-count( + c, + tri-set, + leaf-w: leaf-w, + content-size: content-size, + annotation-leaf-widths: annotation-leaf-widths, + is-horiz: is-horiz, + ) * leaf-w) + .sum(default: 0) + let reserved-w = if is-horiz { + natural-w + } else { + calc.max(natural-w, annotation-leaf-widths.at(node.anchor, default: 0) * leaf-w) + } + let cursor = x0 + calc.max(0, (reserved-w - natural-w) / 2) + + for (i, child) in node.children.enumerate() { + let child-leaves = _leaf-count( + child, + tri-set, + leaf-w: leaf-w, + content-size: content-size, + annotation-leaf-widths: annotation-leaf-widths, + is-horiz: is-horiz, + ) + // Per-gap horizontal multiplier: node-specific > level > default. + // A node-specific entry scales the gap after that child, i.e. between + // this child and its next sister. + let h-mult = if child.anchor in sister-node-map { + sister-node-map.at(child.anchor) + } else if str(level + 1) in sister-spacing-map { + sister-spacing-map.at(str(level + 1)) + } else { 1.0 } + let child-width = child-leaves * leaf-w + // Pre-check: if this child is a single leaf, check if its label overflows + // leftward into the previous sibling's space. If so, push cursor right. + let _overflow-pad = 0.2 * calc.min(child-width, 1.0) // scale padding with effective slot width + if child.is-leaf and not is-horiz { + let char-w = 0.22 * content-size + let label-chars = _rendered-len(child.label) + let text-half-w = calc.max(label-chars * char-w / 2, 0.3 * calc.min(child-width, 1.0)) + let slot-half-w = child-width / 2 + let left-overflow = text-half-w - slot-half-w + if left-overflow > 0 { + cursor = cursor + left-overflow + _overflow-pad + } + } + // Pre-check: if this child is a triangle, check if its text would overflow + // leftward into the previous sibling's space. If so, push cursor right first. + if child.anchor in tri-set and not is-horiz { + let leaves = _collect-leaves(child) + let joined = leaves.join(" ") + let lines = joined.split(" \\n ") + let lines = if lines.len() == 1 { joined.split("\\n") } else { lines } + let char-w = 0.22 * content-size + let widest-chars = lines.fold(0, (acc, l) => { + calc.max(acc, _rendered-len(l.trim())) + }) + let text-half-w = calc.max(widest-chars * char-w / 2, 0.3 * calc.min(child-width, 1.0)) + let slot-half-w = child-width / 2 + let left-overflow = text-half-w - slot-half-w + if left-overflow > 0 { + cursor = cursor + left-overflow + _overflow-pad + } + } + // Per-child vertical gap: node-specific override > level override > default + let child-gap = ( + v-gap + * if child.anchor in node-spacing-map { + node-spacing-map.at(child.anchor) + } else if str(level + 1) in drop-map { + drop-map.at(str(level + 1)) + } else { 1.0 } + ) + // Extra gap when *this* node (the parent) has an annotation + if node.anchor in annotation-gaps { + child-gap = child-gap + annotation-gaps.at(node.anchor) + } + let child-nodes = _syntax-layout( + child, + cursor, + y - child-gap, + none, + none, + leaf-w, + v-gap, + tri-set, + is-horiz: is-horiz, + append-map: append-map, + content-size: content-size, + level: level + 1, + drop-map: drop-map, + node-spacing-map: node-spacing-map, + sister-spacing-map: sister-spacing-map, + sister-node-map: sister-node-map, + annotation-map: annotation-map, + annotation-leaf-widths: annotation-leaf-widths, + annotation-gaps: annotation-gaps, + ) + result = result + child-nodes + let child-pos = if child.is-leaf or child.anchor in tri-set { + child-nodes.at(0) + } else { + child-nodes.at(-1) + } + child-positions.push(child-pos) + cursor = cursor + child-width + // If this child is a triangle in a vertical tree, check if rendered text + // overflows its slot width. Push cursor so the next sibling doesn't overlap. + // In horizontal trees, triangle text extends outward, not into sibling space. + if child.anchor in tri-set and not is-horiz { + let leaves = _collect-leaves(child) + let joined = leaves.join(" ") + let lines = joined.split(" \\n ") + let lines = if lines.len() == 1 { joined.split("\\n") } else { lines } + let char-w = 0.22 * content-size + let widest-chars = lines.fold(0, (acc, l) => { + calc.max(acc, _rendered-len(l.trim())) + }) + let text-half-w = calc.max(widest-chars * char-w / 2, 0.3 * calc.min(child-width, 1.0)) + let slot-half-w = child-width / 2 + let overflow = text-half-w - slot-half-w + if overflow > 0 { + cursor = cursor + overflow + _overflow-pad + } + } + // Post-check: scan the child's entire subtree for rightward overflow. + // Any node whose label extends past cursor pushes cursor further right, + // preventing cross-depth overlaps with the next sibling's subtree. + if not is-horiz and child-nodes.len() > 0 { + let _post-pad = 0.15 * calc.min(child-width, 1.0) + for cn in child-nodes { + let cw = if cn.is-leaf or cn.at("is-terminal", default: false) { + 0.22 * content-size + } else { 0.22 } + let hw = _rendered-len(cn.label) * cw / 2 + let right-edge = cn.x + hw + if right-edge > cursor { + cursor = right-edge + _post-pad + } + } + } + // Post-check: if this child is a single leaf, check if its label overflows + // rightward into the next sibling's space. Push cursor if so. + if child.is-leaf and not is-horiz { + let char-w = 0.22 * content-size + let label-chars = _rendered-len(child.label) + let text-half-w = calc.max(label-chars * char-w / 2, 0.3 * calc.min(child-width, 1.0)) + let slot-half-w = child-width / 2 + let overflow = text-half-w - slot-half-w + if overflow > 0 { + cursor = cursor + overflow + _overflow-pad + } + } + // If this child has an append annotation, push cursor to make room + if child.anchor in append-map { + let app-text = append-map.at(child.anchor) + // Strip formatting markers for width estimation + let stripped = app-text.replace("@", "").replace("*", "").replace("&", "").replace("~", "") + let app-char-w = 0.15 // subscript chars are smaller + let app-width = stripped.clusters().len() * app-char-w + cursor = cursor + app-width + } + + // Apply local spread to the actual gap between adjacent sisters. + // Default center-to-center distance is (left-slot + right-slot) / 2. + // Multiplying that quantity makes spread-local behave like drop-local: + // 0.5 halves the local spread, 1.5 increases it by 50%. + if i < node.children.len() - 1 { + let next-child = node.children.at(i + 1) + let next-leaves = _leaf-count( + next-child, + tri-set, + leaf-w: leaf-w, + content-size: content-size, + annotation-leaf-widths: annotation-leaf-widths, + is-horiz: is-horiz, + ) + let next-width = next-leaves * leaf-w + let pair-mult = calc.max(h-mult, 0.0) + let extra-gap = (pair-mult - 1.0) * (child-width + next-width) / 2 + cursor = cursor + extra-gap + } + } + + // Center this node over its children's span + let first-child-x = child-positions.at(0).x + let last-child-x = child-positions.at(-1).x + let my-x = (first-child-x + last-child-x) / 2 + + // Update children's parent pointers + let updated-result = () + for entry in result { + let is-direct-child = node.children.any(c => c.anchor == entry.anchor) + if is-direct-child { + updated-result.push((..entry, par: (my-x, y), par-anchor: node.anchor)) + } else { + updated-result.push(entry) + } + } + + // Add this node + updated-result.push(( + label: node.label, + anchor: node.anchor, + x: my-x, + y: y, + par: parent-xy, + par-anchor: parent-anchor, + is-leaf: false, + is-triangle: false, + )) + + updated-result +} + +// ── Display label ──────────────────────────────────────────────────────────── +// Renders a node label as content. Handles: +// ' → prime symbol (′) +// **text** → bold +// *text* → italic +// label_x → subscript x +// label^x → superscript x +// label^x_y → both superscript and subscript +#let _display-label(label) = { + // ── Angle bracket protector: → ⟨et,t⟩ ── + let label = _normalize-escapes(label.replace("<", "⟨").replace(">", "⟩")) + // ── Auto-italic traces: t_X or T_X → *t*_X or *T*_X ── + // Only when there is a subscript (bare t/T without subscript is a regular node) + let label = { + let label-parts = _parse-label-parts(label) + let main = label-parts.main + let bare = main.replace("*", "").replace("@", "").replace("&", "").replace("~", "") + if not bare.contains("0") and (bare == "t" or bare == "T") and label-parts.sub-text != none { + "*" + main + "*" + if label.len() > main.len() { label.slice(main.len()) } else { "" } + } else { label } + } + let parts = _parse-label-parts(label) + let main = parts.main + let sub-text = parts.sub-text + let sup-text = parts.sup-text + let tail-text = parts.tail-text + // Helper: italicize Greek Unicode characters within a string + let _greek-set = "αβγδεζηθικλμνξπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΠΡΣΤΥΦΧΨΩ" + let _italicize-greek(s) = { + if type(s) != str { return s } + let chars = s.clusters() + if not chars.any(c => _greek-set.contains(c)) { return s } + let out = [] + let buf = "" + for c in chars { + if _greek-set.contains(c) { + if buf != "" { out = out + [#buf]; buf = "" } + out = out + emph(c) + } else { + buf = buf + c + } + } + if buf != "" { out = out + [#buf] } + out + } + let _display-chars(s) = { + let display = _restore-escapes(_apply-symbols(s)) + let display = if display.contains("'") or display.contains("'") { + let parts = display.split("'") + let parts = if parts.len() == 1 { display.split("'") } else { parts } + parts.at(0) + "′" + parts.slice(1).join("′") + } else { display } + let chars = display.clusters() + let parts = () + let buf = "" + for (i, ch) in chars.enumerate() { + if ch == "0" and i > 0 and chars.at(i - 1).match(regex("\d")) == none { + if buf != "" { parts.push((text: buf)) } + buf = "" + parts.push((zero: true)) + } else { + buf = buf + ch + } + } + if buf != "" { parts.push((text: buf)) } + if parts.any(p => p.keys().contains("zero")) { + // Has auto-superscript zeros: build mixed content + let out = [] + for p in parts { + if p.keys().contains("zero") { + out = out + [#super[0]] + } else { + out = out + _italicize-greek(p.text) + } + } + out + } else { + display // plain string, no zeros to superscript + } + } + let _plain-content(s) = { + let content = _display-chars(s) + if type(content) == str { + _italicize-greek(content) + } else { + content + } + } + let _inline-content(s) = { + let pieces = () + let active = none + let active-buf = "" + let buf = "" + let chars = s.clusters() + let i = 0 + while i < chars.len() { + let ch = chars.at(i) + let token = if ch == "*" and i + 1 < chars.len() and chars.at(i + 1) == "*" { + "**" + } else if ch == "*" or ch == "@" or ch == "&" or ch == "~" { + ch + } else { none } + if token != none { + if active == none { + if buf != "" { pieces.push((text: buf, style: none)) } + buf = "" + active = token + } else if active == token { + pieces.push((text: active-buf, style: token)) + active = none + active-buf = "" + } else { + active-buf = active-buf + token + } + i = i + token.len() + } else { + if active == none { + buf = buf + ch + } else { + active-buf = active-buf + ch + } + i = i + 1 + } + } + if active != none { + buf = buf + active + active-buf + } + if buf != "" { pieces.push((text: buf, style: none)) } + let out = [] + for piece in pieces { + let body = _plain-content(piece.text) + if piece.style == "**" { + out = out + [*#body*] + } else if piece.style == "*" { + out = out + emph(body) + } else if piece.style == "@" { + out = out + smallcaps(body) + } else if piece.style == "&" { + out = out + underline(body) + } else if piece.style == "~" { + out = out + strike(body) + } else { + out = out + body + } + } + out + } + let _sub-content(s) = if _is-bracketed-subscript(s) { + _inline-content(s) + } else { + emph(_inline-content(s)) + } + let body = _inline-content(main) + let result = if sup-text != none and sup-text != "" and sub-text != none and sub-text != "" { + let sup-display = _inline-content(sup-text) + let sub-display = _sub-content(sub-text) + let sup-r = [#super[#sup-display]] + let sub-r = [#sub[#sub-display]] + [#body#sup-r#sub-r] + } else if sup-text != none and sup-text != "" { + let sup-display = _inline-content(sup-text) + [#body#super[#sup-display]] + } else if sub-text != none and sub-text != "" { + let sub-display = _sub-content(sub-text) + [#body#sub[#sub-display]] + } else { body } + // Append tail text (e.g., +T+mangez after _{[+Q]}) + let final = if tail-text != "" { + [#result#_inline-content(tail-text)] + } else { result } + final +} + +// ── Inline formatter for append text ──────────────────────────────────────── +// Processes @...@ segments as smallcaps, &...& as underline, *...* as italic, +// **...** as bold. Everything else is plain text. +#let _format-inline(s) = { + let parts = s.split("@") + let result = () + for (i, part) in parts.enumerate() { + if calc.rem(i, 2) == 1 { + // Odd segments: smallcaps + result.push(smallcaps(part)) + } else if part != "" { + result.push(part) + } + } + result.join() +} + +// ── Estimate label half-width in canvas units ─────────────────────────────── +// Used for horizontal trees where branch offsets must clear the label width. +#let _label-half-w(label) = { + let stripped = _strip-fmt(label) + let char-w = 0.28 // approximate character width in canvas units + _apply-symbols(stripped).clusters().len() * char-w / 2 + 0.05 +} + +// ── Delink mark ───────────────────────────────────────────────────────────── +// Draws two perpendicular bars at a given point along a given tangent direction. +// (mx, my): midpoint on the path; (tang-x, tang-y): tangent direction (will be normalized). +#let _draw-delink(mx, my, tang-x, tang-y, sw) = { + let len = calc.sqrt(tang-x * tang-x + tang-y * tang-y) + if len == 0 { return } + let dir-x = tang-x / len + let dir-y = tang-y / len + let perp-x = -dir-y + let perp-y = dir-x + let bar = 0.15 + let gap = 0.03 + for sign in (-1, 1) { + let cx = mx + sign * gap * dir-x + let cy = my + sign * gap * dir-y + cetz.draw.line( + (cx - bar * perp-x, cy - bar * perp-y), + (cx + bar * perp-x, cy + bar * perp-y), + stroke: sw, + ) + } +} + + +// ── Main function ──────────────────────────────────────────────────────────── +/// Draw a syntax tree from bracket notation +/// +/// Parses a bracket-notation string and renders a phrase structure tree. +/// Each node receives an automatic anchor name (lowercased label + counter, +/// e.g. `"cp1"`, `"tp2"`) that can be used for cross-node arrows. +/// +/// Arguments: +/// - input (string): Bracket notation, e.g. `"[CP [C' [C did] [TP ...]]]"` +/// - arrows (array): Cross-node arrows. Each entry is either `(from, to)` or a +/// dict with keys: `from`, `to`, `color`, `bend` (arc depth, auto if omitted), +/// `shift` (horizontal bias of arc apex, default `0`), `dash` (`"dashed"`, +/// `"solid"`, `"dotted"`, etc.). Arrow names use the automatic anchors +/// and always target leaf content (the "down" position). (default: `()`) +/// - scale (number): Uniform scale factor (default: `1.0`) +/// - drop (number): Multiplier for vertical distance between levels +/// (default: `1.0`). A value of `1.2` increases branch length by 20%. +/// - spread (number): Horizontal width per leaf in canvas units (default: `1.0`) +/// - triangle (array): Anchor names whose branch should render as a triangle +/// for elided structure, e.g. `("dp1",)` (default: `()`) +/// - curved (bool): Draw arrows as Bézier curves (default: `false`) +/// - direction (string): Growth direction of the tree: `"down"` (default), +/// `"up"`, `"right"`, or `"left"`. +/// - highlight (array): Anchor names to draw a box around (like `\fbox` in LaTeX). +/// Bare names default to the node label; use `"dp1down"` to box the leaf content +/// instead. (default: `()`) +/// - bottom (bool): Align all terminal words at the bottom of the tree. When `true`, +/// leaves are pushed to the lowest level regardless of depth. (default: `false`) +/// - dash-branches (array): Array of `(parent, child)` anchor pairs whose branch +/// line should be dashed instead of solid, e.g. `dash-branches: (("np1", "det1"),)`. +/// (default: `()`) +/// - delinks (array): Anchor names matching arrow `from` fields. The delink mark +/// (two perpendicular bars) is drawn on the matching arrow's shaft, e.g. +/// `delinks: ("dp3",)`. Only interpreted when a matching arrow exists. (default: `()`) +/// - index (array): Coreference subscripts. Array of single-key dicts mapping anchor +/// names to index strings, e.g. `(("cp1": "i"), ("np2": "j"))`. Rendered as +/// subscripts after the node label. (default: `()`) +/// - drop-local (array): Per-level or per-node branch length multipliers. +/// Each entry is a tuple where the first element is a level number (int) or +/// anchor name (string): +/// - `(1, 1.5)` — all level-1 branches are 50% longer +/// - `("ip2", 0.5)` — only the branch arriving at `ip2` is 50% shorter +/// Node-specific entries override level entries. (default: `()`) +/// - spread-local (array): Per-level or per-node horizontal spacing multipliers +/// between sister nodes. Same format as `drop-local`: +/// - `(1, 1.5)` — level-1 sisters are 50% wider apart +/// - `("ip2", 0.5)` — the gap after `ip2` is 50% narrower +/// (default: `()`) +/// - dominance (array): Long-distance dominance lines (no arrowheads). Each entry +/// is a tuple `("from-anchor", "to-anchor")` or a dict with optional `ctrl`: +/// `(from: "np4", to: "np1", ctrl: (-1.0, -0.5))`. Lines depart south and +/// arrive north, matching branch connection points. (default: `()`) +/// - color (array): Colorize nodes, leaf content, or branches. Each entry is a tuple: +/// - `("np1", red)` — color the node label text of `np1` +/// - `("np1down", blue)` — color the leaf/content text under `np1` +/// - `("vp1", "v1", yellow)` — color the branch from `vp1` to `v1` +/// (default: `()`) +/// - annotation (array): Semantic annotations displayed between a node label and +/// its branches. Each entry is `("anchor", content)` where content is Typst +/// content (use `$...$` for math/logic). Example: +/// `annotation: (("dp1", $lambda Q forall x$),)` (default: `()`) +/// - annotation-size (float): Size multiplier for annotation text relative to base +/// font size. The vertical gap between node and branches adjusts automatically. +/// (default: `0.70`) +/// - annotation-leading (length or auto): Line spacing for multi-line annotations. +/// Use smaller values like `0.3em` to tighten line spacing. +/// (default: `auto`, which uses `0.45em`) +/// - show-refs (bool): Show generated node references near labels for debugging. +/// Triangle nodes also show their `-down` content reference. (default: `false`) +/// +/// Returns: CeTZ drawing of the syntax tree +/// +/// Example: +/// ``` +/// #tree("[CP [C' [C did] [TP [DP she] [T' [T e] [VP [V leave]]]]]]") +/// ``` +#let tree( + input, + arrows: (), + scale: 1.0, + spread: 1.0, + triangle: (), + content-size: 0.8, + node-size: 1.0, + curved: false, + direction: "down", + highlight: (), + bottom: false, + terminal-branch: false, + dash-branches: (), + delinks: (), + index: (), + append: (), + drop: 1.0, + drop-local: (), + spread-local: (), + dominance: (), + color: (), + annotation: (), + annotation-size: 0.70, + annotation-leading: auto, + line-width: 1.0, + font: none, + numbers: (), + numbers-size: 0.85, + show-refs: false, +) = { + let scale-factor = scale + let is-horiz = direction == "right" or direction == "left" + let leaf-w = spread + let v-gap = if is-horiz { 1.2 * drop * 1.05 } else { 1.2 * drop } + + // ── Build drop-local lookup maps ───────────────────── + let _drop-map = (:) // str(level) → multiplier + let _node-spacing-map = (:) // anchor → multiplier + // Normalize: single entry → array + let ls-entries = if drop-local == () { + () + } else if type(drop-local.at(0, default: none)) != array { + (drop-local,) + } else { + drop-local + } + for entry in ls-entries { + let key = entry.at(0) + let mult = entry.at(1) + if type(key) == int { + _drop-map.insert(str(key), mult) + } else if type(key) == str { + _node-spacing-map.insert(key, mult) + } + } + + // ── Build spread-local lookup maps ────────────────────────────── + let _sister-spacing-map = (:) // str(level) → multiplier + let _sister-node-map = (:) // anchor → multiplier + let ss-entries = if spread-local == () { + () + } else if type(spread-local.at(0, default: none)) != array { + (spread-local,) + } else { + spread-local + } + for entry in ss-entries { + let key = entry.at(0) + let mult = entry.at(1) + if type(key) == int { + _sister-spacing-map.insert(str(key), mult) + } else if type(key) == str { + _sister-node-map.insert(key, mult) + } + } + + // ── Build color lookup maps ─────────────────────────────────── + // Normalize: single tuple → array of tuples + let color-entries = if color == () { + () + } else if type(color.at(0, default: none)) != array { + // Single entry like (\"np1\", red) — wrap it + (color,) + } else { + color + } + // node-color-map: anchor → color (for node labels) + // down-color-map: anchor → color (for leaf content, keyed without "down" suffix) + // branch-color-map: "parent|child" → color (for branches) + let node-color-map = (:) + let down-color-map = (:) + let branch-color-map = (:) + for entry in color-entries { + if entry.len() == 3 { + // Branch color: (parent-anchor, child-anchor, color) + let key = entry.at(0) + "|" + entry.at(1) + branch-color-map.insert(key, entry.at(2)) + } else if entry.len() == 2 { + let name = entry.at(0) + let c = entry.at(1) + if type(name) == str and name.ends-with("-down") { + let base = name.slice(0, name.len() - 5) + down-color-map.insert(base, c) + } else { + node-color-map.insert(name, c) + } + } + } + // Bottom-aligned leaves require terminal branches; otherwise looks weird + let terminal-branch = if bottom { true } else { terminal-branch } + + // Parse + let tokens = _tokenize(input) + let (tree, _, _) = _parse(tokens, 0, (:)) + + // Build triangle set from anchor names + let tri-set = triangle + + // Auto-triangle: phrase nodes (label len > 1, ends in P) with only leaf children + let _auto-tri(node) = { + let result = () + if not node.is-leaf and node.children.len() > 0 { + let stripped = _strip-fmt(node.label) + let is-phrase = (stripped.len() > 1 and lower(stripped).ends-with("p")) or node.label.ends-with(">") + let all-leaves = node.children.all(c => c.is-leaf) + + if is-phrase and all-leaves { + result.push(node.anchor) + } + + for child in node.children { + result = result + _auto-tri(child) + } + } + result + } + let tri-set = tri-set + _auto-tri(tree) + + // Build append map: anchor → formatted subscript text + let append-map = (:) + for entry in append { + let (anchor, text-str) = entry + append-map.insert(anchor, text-str) + } + + // Build annotation map: anchor → Typst content + let annotation-map = (:) + for entry in annotation { + let (anchor, annotation-content) = entry + annotation-map.insert(anchor, annotation-content) + } + let annotation-gap = calc.max(annotation-size * (0.45 / 0.70), 0.25) + + let _body = context { + let em-in-cu = text.size / (scale-factor * 1cm) + let fsz = 12 * scale-factor * 1pt + + // Measure annotation widths and heights; compute per-anchor gaps + let annotation-leaf-widths = (:) + let annotation-gaps = (:) + // Resolve annotation leading + let annotation-leading-val = if annotation-leading == auto { 0.45em } else { annotation-leading } + for (anchor, annotation-content) in annotation-map { + let annotation-body = { + set text(size: fsz * annotation-size) + set par(leading: annotation-leading-val) + annotation-content + } + let measured = measure(annotation-body) + // Convert measured width to leaf-width units (each leaf = leaf-w * scale-factor * 1cm) + let width-in-units = measured.width / (leaf-w * scale-factor * 1cm) + annotation-leaf-widths.insert(anchor, width-in-units) + // Convert measured height to canvas units for vertical gap + let height-in-units = measured.height / (scale-factor * 1cm) + let gap = calc.max(height-in-units + 0.30, annotation-gap) + annotation-gaps.insert(anchor, gap) + } + + // Layout (triangle-aware) + let nodes = _syntax-layout( + tree, + 0.0, + 0.0, + none, + none, + leaf-w, + v-gap, + tri-set, + is-horiz: is-horiz, + append-map: append-map, + content-size: content-size, + level: 0, + drop-map: _drop-map, + node-spacing-map: _node-spacing-map, + sister-spacing-map: _sister-spacing-map, + sister-node-map: _sister-node-map, + annotation-map: annotation-map, + annotation-leaf-widths: annotation-leaf-widths, + annotation-gaps: annotation-gaps, + ) + + // Bottom-align: push all leaves and triangle text to the lowest y in the tree + if bottom { + let min-y = nodes.fold(0.0, (acc, e) => { + if e.is-leaf { calc.min(acc, e.y) } else { acc } + }) + // Also consider triangle leaf positions + let min-y = nodes.fold(min-y, (acc, e) => { + if e.at("is-triangle", default: false) { calc.min(acc, e.at("tri-y")) } else { acc } + }) + nodes = nodes.map(e => { + if e.is-leaf { (..e, y: min-y) } else if e.at("is-triangle", default: false) { + (..e, tri-y: min-y, bottom-aligned: true) + } else { e } + }) + } + + // Reduce terminal-to-parent gap when no branch line is drawn + // (skip when bottom-aligned, since bottom alignment should take precedence) + if not terminal-branch and not bottom { + nodes = nodes.map(e => { + if e.at("is-terminal", default: false) and e.par != none { + // Horizontal trees need more gap (labels extend from position) + let pull = if is-horiz { 0.2 } else { 0.5 } + let mid-y = e.y + (e.par.at(1) - e.y) * pull + (..e, y: mid-y) + } else { e } + }) + } + + // Align terminal leaves with sibling triangles when terminal branches are drawn + if terminal-branch and not bottom { + // Build parent → min child y map (considering tri-y for triangles) + let parent-min-y = (:) + for e in nodes { + if e.par != none { + let pk = e.at("par-anchor", default: "") + if pk != "" { + let cy = if e.at("is-triangle", default: false) { e.at("tri-y") } else if e.is-leaf { e.y } else { none } + if cy != none { + let cur = parent-min-y.at(pk, default: cy) + parent-min-y.insert(pk, calc.min(cur, cy)) + } + } + } + } + // Push terminal leaves to their parent's min child y + nodes = nodes.map(e => { + if e.at("is-terminal", default: false) and e.par != none { + let pk = e.at("par-anchor", default: "") + if pk != "" and pk in parent-min-y { + let target-y = parent-min-y.at(pk) + if target-y < e.y { + (..e, y: target-y, is-terminal-aligned: true) + } else { e } + } else { e } + } else { e } + }) + } + + // Direction transform: map layout coords (always computed as "down") to final coords + let _tx(x, y) = { + if direction == "up" { (x, -y) } else if direction == "right" { (-y, -x) } else if direction == "left" { + (y, -x) + } else { (x, y) } + } + // Growth direction vector (from parent toward child in final coords) + let (gdx, gdy) = if direction == "up" { (0, 1) } else if direction == "right" { (1, 0) } else if ( + direction == "left" + ) { + (-1, 0) + } else { (0, -1) } + + // Build per-node outgoing offset (from center to where branch departs) + // and incoming offset (from center to where branch arrives). + // Vertical: symmetric, fixed _loff. + // Horizontal: labels are aligned (left for "right", right for "left"), + // so outgoing = full label width, incoming = small gap. + let node-out = (:) // offset for branches leaving this node + let node-in = (:) // offset for branches arriving at this node + for e in nodes { + if is-horiz { + let full-w = _label-half-w(e.label) * 2 + let is-tri = e.at("is-triangle", default: false) + node-out.insert(e.anchor, if is-tri { full-w + 0.25 } else { full-w }) + node-in.insert(e.anchor, 0.05) + } else { + node-out.insert(e.anchor, _loff) + node-in.insert(e.anchor, _loff) + } + } + + // Increase node-out for nodes with annotations to push branches below the annotation + for (anchor, _) in annotation-map { + let current = node-out.at(anchor, default: _loff) + node-out.insert(anchor, current + annotation-gaps.at(anchor, default: annotation-gap)) + } + + // Transform all node coordinates + nodes = nodes.map(e => { + let (nx, ny) = _tx(e.x, e.y) + let new-par = if e.par != none { + let (px, py) = _tx(e.par.at(0), e.par.at(1)) + (px, py) + } else { none } + let result = (..e, x: nx, y: ny, par: new-par) + if e.at("is-triangle", default: false) { + let (_, ty-raw) = _tx(e.x, e.at("tri-y")) + // For horizontal directions, tri position needs both coords + let (tri-nx, tri-ny) = _tx(e.x, e.at("tri-y")) + (..result, tri-y: tri-ny, tri-x: tri-nx) + } else { result } + }) + + // Build name-to-pos dict (outside canvas, following geom.typ pattern) + // Also build arrow-off-map: per-anchor arrow clearance (distance from reference to below text) + let _text-half-h = 0.2 + let _arrow-gap = 0.25 + let name-to-pos = (:) + let arrow-off-map = (:) + let label-hw-map = (:) // per-anchor label half-width (horizontal semi-axis for degree arrows) + let regular-off = _text-half-h + _arrow-gap // 0.45: from text center to below text + gap + for e in nodes { + name-to-pos.insert(e.anchor, (e.x, e.y, _loff)) + arrow-off-map.insert(e.anchor, regular-off) + label-hw-map.insert(e.anchor, _rendered-len(e.label) * 0.28 / 2 + 0.05) + } + + // Add "down" positions: point to leaf content below each non-leaf node. + // Walk the parsed tree to find leaf descendants for each node. + let _build-down(node, ntp, aom, lhw) = { + if node.is-leaf or node.children.len() == 0 { + // Leaf: "-down" is same as the node + ntp.insert(node.anchor + "-down", ntp.at(node.anchor)) + aom.insert(node.anchor + "-down", regular-off) + lhw.insert(node.anchor + "-down", _rendered-len(node.label) * 0.28 / 2 + 0.05) + return (ntp, aom, lhw) + } + // Triangle node: "-down" = the combined label position (tri-y) + let tri-entry = nodes.filter(e => e.anchor == node.anchor and e.at("is-triangle", default: false)) + if tri-entry.len() > 0 { + let te = tri-entry.at(0) + ntp.insert(node.anchor + "-down", (te.x, te.at("tri-y"), _loff)) + // Triangle text: top is at tri-y + gdy*tri-text-gap, so offset = tri-text-gap + text-height + gap + let tri-off = 0.05 + _text-half-h * 2 + _arrow-gap + aom.insert(node.anchor + "-down", tri-off) + // Triangle text width: use the widest line of the combined label + let tri-label = te.at("tri-label") + let tri-lines = tri-label.split(" \\n ") + let tri-lines = if tri-lines.len() == 1 { tri-label.split("\\n") } else { tri-lines } + let widest = tri-lines.fold(0, (acc, l) => calc.max(acc, _rendered-len(l.trim()))) + let char-w = 0.22 * content-size + let tri-hw = calc.max(widest * char-w / 2, 0.3) + lhw.insert(node.anchor + "-down", tri-hw) + return (ntp, aom, lhw) + } + // Non-triangle non-leaf: find leaf descendants, average their positions + let leaf-anchors = _collect-leaf-anchors(node) + let found = leaf-anchors.filter(a => a in ntp) + if found.len() > 0 { + let avg-x = found.map(a => ntp.at(a).at(0)).fold(0.0, (a, b) => a + b) / found.len() + let ys = found.map(a => ntp.at(a).at(1)) + let leaf-y = if gdy < 0 { calc.min(..ys) } else { calc.max(..ys) } + ntp.insert(node.anchor + "-down", (avg-x, leaf-y, _loff)) + aom.insert(node.anchor + "-down", regular-off) + // Span of leaf descendants as half-width + let xs = found.map(a => ntp.at(a).at(0)) + let span-hw = if xs.len() > 1 { + (calc.max(..xs) - calc.min(..xs)) / 2 + 0.3 + } else { + ( + _rendered-len(nodes.filter(e => e.anchor == found.at(0)).at(0, default: (label: "XX")).label) * 0.28 / 2 + + 0.05 + ) + } + lhw.insert(node.anchor + "-down", span-hw) + } + // Recurse into children + for child in node.children { + (ntp, aom, lhw) = _build-down(child, ntp, aom, lhw) + } + (ntp, aom, lhw) + } + (name-to-pos, arrow-off-map, label-hw-map) = _build-down(tree, name-to-pos, arrow-off-map, label-hw-map) + + // Give every trace's own anchor its trace-specific position/offset. + let trace-infos = _find-traces(tree) + // Traces swallowed by a triangle render no node of their own, so show-refs + // never sees them; collect their positions here and inject them below. + let trace-tri-refs = () + for ti in trace-infos { + // The trace's own anchor (t1, t2, ...) is the only name for it. Below we + // give that name a trace-tuned arrow offset, and register a position for + // it when the trace is swallowed by a triangle and has none otherwise. + let trace-anchor = ti.leaf-anchor + // Check if this trace is inside a triangle + let parent-is-tri = ti.parent-anchor in tri-set + if parent-is-tri { + // Find the triangle entry to get its position + let tri-entries = nodes.filter(e => e.anchor == ti.parent-anchor and e.at("is-triangle", default: false)) + if tri-entries.len() > 0 { + let te = tri-entries.at(0) + let tri-leaves = te.at("tri-leaves") + // Find the trace's word index in the leaf list (skip \n markers) + let word-idx = 0 + let total-words = tri-leaves.filter(w => w != "\\n").len() + for (i, leaf) in tri-leaves.enumerate() { + if leaf == "\\n" { continue } + if _is-trace(leaf) { break } + word-idx = word-idx + 1 + } + // Use the triangle's "down" position as base (same y that works for arrows) + let down-key = ti.parent-anchor + "-down" + if down-key in name-to-pos { + let (down-x, down-y, down-loff) = name-to-pos.at(down-key) + let down-off = arrow-off-map.at(down-key, default: regular-off) + // Estimate x offset for the trace word within the text + let char-w = 0.22 * content-size + let tri-label = te.at("tri-label") + let tri-text-lines = tri-label.split(" \\n ") + let tri-text-lines = if tri-text-lines.len() == 1 { tri-label.split("\\n") } else { tri-text-lines } + let widest = tri-text-lines.fold(0, (acc, l) => calc.max(acc, _rendered-len(l.trim()))) + let half-w = calc.max(widest * char-w / 2, 0.3) + let vert-growth = direction == "down" or direction == "up" + let frac = (word-idx + 0.5) / total-words + // Shift from text anchor to text center: + // Triangle text is rendered with anchor "north"/"south" at tri-y + gdy*0.05. + // Regular nodes use anchor "center", so their position IS the center. + // To match, offset by tri-text-gap + text-half-height toward growth. + let tri-text-gap = 0.05 + let center-shift = tri-text-gap + _text-half-h * content-size + // sub[] extends the trace word visually to the right (in physical + // units), shifting its apparent center; compensate in canvas units. + // Only subscripted traces (t_i) carry a sub[]; *t* does not. + let has-sub = ti.label.contains("_") + let x-sub-correction = if has-sub { -0.08 / scale } else { 0.0 } + let (trace-x, trace-y) = if vert-growth { + (down-x - half-w + frac * 2 * half-w + x-sub-correction, down-y + gdy * center-shift) + } else { + (down-x + gdx * center-shift, down-y - half-w + frac * 2 * half-w + x-sub-correction) + } + name-to-pos.insert(trace-anchor, (trace-x, trace-y, _loff)) + // Arrows resolve a bare name to its "-down" form when one exists, + // so the trace tuning has to live under both keys. + name-to-pos.insert(trace-anchor + "-down", (trace-x, trace-y, _loff)) + trace-tri-refs.push((pos: (trace-x, trace-y), name: trace-anchor)) + // Extra clearance: Typst's sub[] positions subscripts beyond the + // content bounding box that CeTZ measures for anchor placement. + // The overflow is constant in physical units, so we divide by + // scale to keep the physical gap consistent across scales. + let trace-off = regular-off + (if has-sub { 0.20 / scale } else { 0.0 }) + arrow-off-map.insert(trace-anchor, trace-off) + arrow-off-map.insert(trace-anchor + "-down", trace-off) + let trace-hw = _rendered-len(ti.label) * 0.28 / 2 + 0.05 + label-hw-map.insert(trace-anchor, trace-hw) + label-hw-map.insert(trace-anchor + "-down", trace-hw) + } + } + } else { + // Non-triangle: trace is a regular leaf, use its position + if ti.leaf-anchor in name-to-pos { + let trace-pos = name-to-pos.at(ti.leaf-anchor) + let trace-off = _text-half-h + 0.05 + let trace-hw = _label-half-w(ti.label) + // Arrows resolve a bare name to its "-down" form when one exists, so + // the trace tuning has to live under both keys. + for key in (trace-anchor, trace-anchor + "-down") { + name-to-pos.insert(key, trace-pos) + arrow-off-map.insert(key, trace-off) + label-hw-map.insert(key, trace-hw) + } + } + } + } + + // Resolve highlight names into a set of actual node anchors to box. + // Default: bare name → node itself (unlike arrows which default to "down"). + // "dp3-down" → box the leaf descendants of dp3. + let box-set = () + for h in highlight { + if h.ends-with("-down") { + let base = h.slice(0, h.len() - 5) + let target = _find-node(tree, base) + if target != none { + box-set = box-set + _collect-leaf-anchors(target) + } + } else if h.ends-with("up") { + let base = h.slice(0, h.len() - 2) + box-set.push(base) + } else { + box-set.push(h) + } + } + + // Build index lookup: anchor → subscript string. + // Default: bare name → leaf content ("down"), like arrows. + // "dp1up" → attach index to the DP node label itself. + let index-map = (:) + for entry in index { + for (k, v) in entry.pairs() { + if k.ends-with("up") { + index-map.insert(k.slice(0, k.len() - 2), v) + } else if k.ends-with("-down") { + let base = k.slice(0, k.len() - 5) + let target = _find-node(tree, base) + if target != none { + for leaf in _collect-leaf-anchors(target) { + index-map.insert(leaf, v) + } + } + } else { + // Bare name: default to "down" only if node has exactly one leaf descendant. + // For complex nodes (CP with many children), stay on the node itself. + let target = _find-node(tree, k) + if target != none and not target.is-leaf and target.children.len() > 0 { + let leaves = _collect-leaf-anchors(target) + if leaves.len() == 1 { + index-map.insert(leaves.at(0), v) + } else { + index-map.insert(k, v) + } + } else { + index-map.insert(k, v) + } + } + } + } + + // Build numbers lookup: anchor → circled digit + let numbers-map = (:) + let _circled = ("①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩", + "⑪", "⑫", "⑬", "⑭", "⑮", "⑯", "⑰", "⑱", "⑲", "⑳") + // Normalize: single entry (("a", 1),) vs array of entries + let num-entries = if numbers.len() > 0 and type(numbers.at(0)) == str { + (numbers,) + } else { numbers } + for entry in num-entries { + let anchor = entry.at(0) + let n = entry.at(1) + let display = if n >= 1 and n <= 20 { _circled.at(n - 1) } else { "(" + str(n) + ")" } + numbers-map.insert(anchor, display) + } + + // Normalize arrows: + // - single dict: (from: "a", to: "b") → wrapped in array + // - single flat pair: ("a", "b") → wrapped in array + // - array of arrows: (("a", "b"), ...) → used as-is + let arrows = if type(arrows) == dictionary { + (arrows,) + } else if arrows.len() > 0 and type(arrows.at(0)) == str { + (arrows,) + } else { arrows } + + // Colors + let _norm = luma(15%) + + box(inset: 1.2em, baseline: 40%, { + cetz.canvas(length: scale-factor * 1cm, { + import cetz.draw: * + + let node-fsz = fsz * node-size // non-terminal node labels + let content-fsz = fsz * content-size // terminal/leaf content + let sw = 0.05em * scale-factor * line-width + let arrow-sw = 0.018 + let arrow-mark-scale = 0.5 + let ref-color = luma(55%) + let ref-fsz = fsz * 0.55 + let ref-items = () + + let draw-ref(pos, name, side) = { + if show-refs { + let (x, y) = pos + let off = 0.26 + let (rx, ry, anch) = if side == "below" { + (x, y - off, "north") + } else if side == "above" { + (x, y + off, "south") + } else if side == "before" { + (x - off, y, "east") + } else { + (x + off, y, "west") + } + content( + (rx, ry), + box( + fill: white, + stroke: 0.25pt + red, + inset: (x: 0.22em, y: 0.10em), + text(size: ref-fsz, fill: ref-color, font: "Courier New", weight: "bold", name), + ), + anchor: anch, + ) + } + } + + let ref-side-node = if direction == "up" { "above" } else if direction == "right" { + "before" + } else if direction == "left" { "after" } else { "below" } + let ref-side-down = if direction == "up" { "below" } else if direction == "right" { + "after" + } else if direction == "left" { "before" } else { "above" } + + // Traces inside triangles have no node of their own to label. + if show-refs { + for tr in trace-tri-refs { + ref-items.push((pos: tr.pos, name: tr.name, side: ref-side-down)) + } + } + + // ── Draw edges ────────────────────────────────────────────────── + // Triangle nodes still get a line FROM their parent TO them; + // the triangle itself replaces the lines from the node to its children. + for e in nodes { + if e.par != none and (terminal-branch or not e.at("is-terminal", default: false)) { + let branch-key = e.at("par-anchor", default: "") + "|" + e.anchor + let col = branch-color-map.at(branch-key, default: _norm) + let is-dashed = ( + e.at("par-anchor", default: none) != none + and dash-branches.any(pair => { + pair.at(0) == e.par-anchor and pair.at(1) == e.anchor + }) + ) + let edge-stroke = if is-dashed { + (paint: col, thickness: sw, dash: "dashed") + } else { + (paint: col, thickness: sw) + } + let par-off = node-out.at(e.par-anchor, default: _loff) + let child-off = node-in.at(e.anchor, default: _loff) + line( + (e.par.at(0) + gdx * par-off, e.par.at(1) + gdy * par-off), + (e.x - gdx * child-off, e.y - gdy * child-off), + stroke: edge-stroke, + ) + } + } + + // ── Draw triangles ────────────────────────────────────────────── + for e in nodes { + if e.at("is-triangle", default: false) { + let col = _norm + let tri-label = e.at("tri-label") + // Triangle label position + let tlx = e.at("tri-x", default: e.x) + let tly = e.at("tri-y") + let vert-growth = direction == "down" or direction == "up" + // Compute half-spread for triangle base + let half-w = if vert-growth { + // Vertical trees: base width from text character width + let char-w = 0.22 * content-size + let tri-text-lines = tri-label.split(" \\n ") + let tri-text-lines = if tri-text-lines.len() == 1 { tri-label.split("\\n") } else { tri-text-lines } + let widest = tri-text-lines.fold(0, (acc, l) => calc.max(acc, _rendered-len(l.trim()))) + calc.max(widest * char-w / 2, 0.3) + } else { + // Horizontal trees: base height proportional to number of text lines + let tri-text-lines = tri-label.split(" \\n ") + let tri-text-lines = if tri-text-lines.len() == 1 { tri-label.split("\\n") } else { tri-text-lines } + let n-lines = tri-text-lines.len() + let line-h = 0.55 // approximate height per line in canvas units + calc.max(n-lines * line-h / 2, 0.4) + } + // Apex: node center offset toward children (same as branch offset) + let has-sub = e.anchor in annotation-map + let tri-off = node-out.at(e.anchor, default: _loff) + let apex = (e.x + gdx * tri-off, e.y + gdy * tri-off) + // Base endpoints (perpendicular to growth) + let (b1, b2) = if vert-growth { + ( + (tlx - half-w, tly - gdy * _loff), + (tlx + half-w, tly - gdy * _loff), + ) + } else { + // Extend base outward so the triangle depth matches the apex-to-text distance + let base-ext = _loff + ( + (tlx + gdx * base-ext, tly - half-w), + (tlx + gdx * base-ext, tly + half-w), + ) + } + line(apex, b1, stroke: (paint: col, thickness: sw)) + line(apex, b2, stroke: (paint: col, thickness: sw)) + line(b1, b2, stroke: (paint: col, thickness: sw)) + } + } + + // ── Draw node labels ──────────────────────────────────────────── + for e in nodes { + let col = if e.at("is-terminal", default: false) { + down-color-map.at(e.at("par-anchor", default: ""), default: _norm) + } else { + node-color-map.at(e.anchor, default: _norm) + } + let display = _display-label(e.label) + // Use smaller font for terminal content (leaves), full size for node labels. + // Also treat bracketed nodes with no uppercase letters as content-sized + // (e.g., [and] is a conjunction, not a syntactic category). + let _has-upper = _strip-fmt(e.label).match(regex("[A-Z]")) != none + let sz = if e.at("is-terminal", default: false) or (e.is-leaf and not _has-upper) { content-fsz } else { + node-fsz + } + // Append coreference subscript if present + let idx = index-map.at(e.anchor, default: none) + // Build base label with optional coreference index + let base-label = if idx != none { + let idx-style = if _is-bracketed-subscript(idx) { "normal" } else { "italic" } + [#text(size: sz, fill: col, display)#sub[#text( + font: font, + size: sz * 0.75, + style: idx-style, + fill: col, + idx, + )]] + } else { + text(size: sz, fill: col, display) + } + // Append is drawn separately below, so label-content is just the base + let label-content = base-label + let boxed = e.anchor in box-set + let label-body = if boxed { + box(stroke: 0.5pt + col, inset: 2pt, label-content) + } else { + label-content + } + + // CeTZ anchor for label alignment in horizontal trees + let label-anchor = if direction == "right" { "west" } else if direction == "left" { "east" } else { "center" } + + if e.at("is-triangle", default: false) { + // Draw the node label (e.g. "DP") + content((e.x, e.y), label-body, anchor: label-anchor) + if show-refs { ref-items.push((pos: (e.x, e.y), name: e.anchor, side: ref-side-node)) } + // Draw combined triangle label using _display-label for formatting + let tri-leaves = e.at("tri-leaves") + let tri-leaf-boxed = highlight.any(h => h == e.anchor + "-down") + let tri-col = down-color-map.at(e.anchor, default: _norm) + // Build rendered content for each leaf, split by \n markers + let lines = ((),) // array of arrays (one per line) + for leaf in tri-leaves { + if leaf == "\\n" { + lines.push(()) // start a new line + } else { + lines.at(-1).push(leaf) + } + } + let line-contents = lines.map(words => { + // Render each word, then join into a single text element + // to avoid paragraph-level line spacing from content joins + let rendered = words.map(w => _display-label(w)) + let joined = text(size: content-fsz, fill: tri-col, rendered.join([ ])) + if tri-leaf-boxed { box(stroke: 0.5pt + tri-col, inset: 2pt, joined) } else { joined } + }) + let tri-align = if direction == "right" { left } else if direction == "left" { right } else { center } + let tri-body = if line-contents.len() > 1 { + align(tri-align, stack(spacing: 0.35em, ..line-contents)) + } else { + line-contents.at(0) + } + let is-bottom-aligned = e.at("bottom-aligned", default: false) + let tri-text-gap = if is-bottom-aligned { 0 } else if is-horiz { 0.80 } else { 0.05 } + let tlx2 = e.at("tri-x", default: e.x) + let tly2 = e.at("tri-y") + // Bottom-aligned triangles should use the same directional anchoring + // as regular terminals so mixed triangle/non-triangle leaves keep the + // same shape-to-text gap. + let tri-anchor = if direction == "up" { "south" } else if ( + direction == "down" + ) { "north" } else if ( + direction == "right" + ) { "west" } else { "east" } + let tri-label-pos = (tlx2 + gdx * tri-text-gap, tly2 + gdy * tri-text-gap) + content(tri-label-pos, tri-body, anchor: tri-anchor) + if show-refs { ref-items.push((pos: tri-label-pos, name: e.anchor + "-down", side: ref-side-down)) } + } else { + // In horizontal trees, pull terminal leaves closer to their parent + let (lx, ly) = (e.x, e.y) + let cur-anchor = label-anchor + let is-terminal = e.at("is-terminal", default: false) + let is-term-aligned = e.at("is-terminal-aligned", default: false) + // Synchronize terminal nodes with triangles when terminal branches are drawn + if (is-terminal or is-term-aligned) and terminal-branch and not bottom { + let tri-text-gap = if is-horiz { 0.80 } else { 0.05 } + lx = lx + gdx * tri-text-gap + ly = ly + gdy * tri-text-gap + cur-anchor = if direction == "up" { "south" } else if direction == "down" { "north" } else if ( + direction == "right" + ) { "west" } else { "east" } + } else if not is-horiz and is-terminal { + // Vertical terminal content should grow away from the tree, not be + // centered on the terminal point. Center anchoring makes words with + // different glyph shapes look vertically misaligned even when their + // layout coordinates are identical. + cur-anchor = if direction == "up" { "south" } else { "north" } + } else if is-horiz and is-terminal and e.par != none { + let pull = 0.4 // fraction of distance to reclaim + lx = lx + (e.par.at(0) - lx) * pull + ly = ly + (e.par.at(1) - ly) * pull + } + content((lx, ly), label-body, anchor: cur-anchor) + if show-refs { ref-items.push((pos: (lx, ly), name: e.anchor, side: ref-side-node)) } + } + // Draw circled number to the left of the node + let num-display = numbers-map.at(e.anchor, default: none) + if num-display != none { + let label-hw = _label-half-w(e.label) + let num-body = text(size: sz * numbers-size, num-display) + let num-gap = 0.08 // small gap between number and label + content((e.x - label-hw - num-gap, e.y), num-body, anchor: "east") + } + // Draw append subscript as separate content (doesn't affect branch targeting) + let app = append-map.at(e.anchor, default: none) + if app != none { + let app-content = _format-inline(app) + let app-body = sub[#text(size: sz * 0.75, fill: col, app-content)] + // Estimate label half-width to position append at the right edge + let label-hw = _label-half-w(e.label) + // Position to the right of the label, anchored at west (left edge of append) + content((e.x + label-hw, e.y), app-body, anchor: "north-west") + } + // Draw annotation between node label and branches + let annotation-content = annotation-map.at(e.anchor, default: none) + if annotation-content != none and not e.at("is-terminal", default: false) { + let annotation-y-off = _loff + 0.10 + let annotation-body = { + set text(size: fsz * annotation-size, fill: col) + set par(leading: annotation-leading-val) + set align(center) + annotation-content + } + let annotation-anchor = if direction == "up" { "south" } else if direction == "right" { "west" } else if ( + direction == "left" + ) { "east" } else { "north" } + content( + (e.x + gdx * annotation-y-off, e.y + gdy * annotation-y-off), + annotation-body, + anchor: annotation-anchor, + ) + } + } + + // ── Draw arrows (only for vertical trees) ──────────────────────── + if not is-horiz { + let head-back = 0.12 + // Compute extremal position along growth axis for rectangular arrow clearance + // For "down": lowest y; for "up": highest y; for "right": rightmost x; for "left": leftmost x + let y-floor = { + let vals = nodes.map(e => { + let v = if direction == "right" or direction == "left" { e.x } else { e.y } + if e.at("is-triangle", default: false) { + let tv = if direction == "right" or direction == "left" { e.at("tri-x", default: e.x) } else { + e.at("tri-y") + } + if direction == "up" or direction == "left" { calc.max(v, tv) } else { calc.min(v, tv) } + } else { + v + } + }) + if direction == "up" or direction == "left" { + vals.fold(0.0, (a, b) => calc.max(a, b)) + } else { + vals.fold(0.0, (a, b) => calc.min(a, b)) + } + } + + // Parse degree suffix: "np1-300" → (base: "np1", degree: 300) + // Checks full name in name-to-pos first to avoid conflicts with + // anchors that naturally end in dash-digits (e.g. "n-31" from label "N 3"). + let _parse-deg(name) = { + if name in name-to-pos { return (name, none) } + let m = name.match(regex("^(.+)-(\d{1,3})$")) + if m != none { + let base = m.captures.at(0) + let deg = int(m.captures.at(1)) + if base in name-to-pos { return (base, deg) } + } + (name, none) + } + + // Resolve arrow names: + // - "vp3" or "vp3-down" → leaf content below node (default) + // - "vp3-top" → node label itself (arrow exits from side) + let _resolve(name) = { + if name.ends-with("-top") or name.ends-with("-down") { + name + } else { + let base = name + if base + "-down" in name-to-pos { base + "-down" } else { base } + } + } + + // Rectangular arrows share one floor. It must clear the tree and also + // lie beyond every arrow endpoint, otherwise an endpoint offset (e.g. a + // trace's extra clearance) can reach past the floor and the vertical + // leg vanishes or points the wrong way. + let rect-floor = { + let base-clearance = 1.0 + let leg-min = 0.25 // shortest visible leg from an endpoint to the floor + let sign = if direction == "up" or direction == "left" { 1 } else { -1 } + let along(x, y) = if direction == "right" or direction == "left" { x } else { y } + let floor = y-floor + sign * base-clearance + for arrow in arrows { + let is-dict = type(arrow) == dictionary + let raws = if is-dict { (arrow.at("from"), arrow.at("to")) } else { (arrow.at(0), arrow.at(1)) } + for (i, raw) in raws.enumerate() { + let (base, deg) = _parse-deg(raw) + // -top endpoints exit sideways at label height: never near the floor + if base.ends-with("-top") { continue } + let name = _resolve(base) + if name not in name-to-pos { continue } + let (px, py, _) = name-to-pos.at(name) + // Same offsets as the endpoint code below (from gets +0.15) + let off = arrow-off-map.at(name, default: 0.45) + (if i == 0 { 0.15 } else { 0.0 }) + let (ex, ey) = if deg != none { + let rad = deg * calc.pi / 180 + let hw = label-hw-map.at(name, default: 0.35) + 0.25 // _deg-h-pad + (px + hw * calc.cos(rad), py + off * calc.sin(rad)) + } else { + (px + gdx * off, py + gdy * off) + } + let p = along(ex, ey) + sign * leg-min + floor = if sign < 0 { calc.min(floor, p) } else { calc.max(floor, p) } + } + } + floor + } + + let rect-count = 0 // counter for staggering rectangular arrows + for arrow in arrows { + let is-dict = type(arrow) == dictionary + let raw-from = if is-dict { arrow.at("from") } else { arrow.at(0) } + let raw-to = if is-dict { arrow.at("to") } else { arrow.at(1) } + let paint = if is-dict { arrow.at("color", default: _norm) } else if arrow.len() >= 3 { + arrow.at(2) + } else { _norm } + let bend-val = if is-dict { arrow.at("bend", default: none) } else { none } + let shift-val = if is-dict { arrow.at("shift", default: 0.0) } else { 0.0 } + let dash-style = if is-dict { arrow.at("dash", default: "dashed") } else { "dashed" } + let arrow-lw = if is-dict { arrow.at("line-width", default: 1.0) } else { 1.0 } + + // Check if this arrow should be delinked (match raw from or to name) + let is-delinked = delinks.any(d => d == raw-from or d == raw-to) + + let (from-base, from-deg) = _parse-deg(raw-from) + let (to-base, to-deg) = _parse-deg(raw-to) + + // Check for -top suffix (node label as endpoint) + let from-is-top = from-base.ends-with("-top") + let to-is-top = to-base.ends-with("-top") + let from-name = _resolve(from-base) + let to-name = _resolve(to-base) + // For -top: strip suffix and use the node position directly + if from-is-top { + from-name = from-base.slice(0, from-base.len() - 4) + } + if to-is-top { + to-name = to-base.slice(0, to-base.len() - 4) + } + + if from-name in name-to-pos and to-name in name-to-pos { + let (fx, fy, f-loff) = name-to-pos.at(from-name) + let (tx, ty, t-loff) = name-to-pos.at(to-name) + + // Offset: -top endpoints exit from the side of the label, + // regular endpoints offset in growth direction (below text) + // Extra padding on "from" offset: the arrowhead mark at the "to" + // end visually shortens the line, creating implicit clearance there. + // The "from" end has no mark, so we add equivalent padding (~0.15). + let f-off = arrow-off-map.at(from-name, default: 0.45) + 0.15 + let t-off = arrow-off-map.at(to-name, default: 0.45) + // For degree: exit at specified angle on invisible ellipse around node + // Horizontal semi-axis = label half-width + gap (clears text edge) + // Vertical semi-axis = arrow offset (already includes gap) + // For -top: exit horizontally from label side + // Default: offset in growth direction (below text) + let _deg-h-pad = 0.25 // horizontal padding beyond text edge + if from-deg != none { + let rad = from-deg * calc.pi / 180 + let hw = label-hw-map.at(from-name, default: 0.35) + _deg-h-pad + fx = fx + hw * calc.cos(rad) + fy = fy + f-off * calc.sin(rad) + } else if from-is-top { + let side = if tx < fx { -1 } else { 1 } // left or right based on target + let hw = _label-half-w(nodes.filter(e => e.anchor == from-name).at(0, default: (label: "XX")).label) + fx = fx + side * hw + } else { + // Offset in growth direction (same as "to" endpoint) + fx = fx + gdx * f-off + fy = fy + gdy * f-off + } + if to-deg != none { + let rad = to-deg * calc.pi / 180 + let hw = label-hw-map.at(to-name, default: 0.35) + _deg-h-pad + tx = tx + hw * calc.cos(rad) + ty = ty + t-off * calc.sin(rad) + } else if to-is-top { + let side = if fx < tx { -1 } else { 1 } + let hw = _label-half-w(nodes.filter(e => e.anchor == to-name).at(0, default: (label: "XX")).label) + tx = tx + side * hw + } else { + tx = tx + gdx * t-off + ty = ty + gdy * t-off + } + let dx = tx - fx + let dy = ty - fy + let len = calc.sqrt(dx * dx + dy * dy) + if len == 0 { continue } + + let a-sw = arrow-sw * arrow-lw + let shaft-stroke = if dash-style == "solid" { + (paint: paint, thickness: a-sw) + } else { + (paint: paint, thickness: a-sw, dash: dash-style) + } + let head-stroke = (paint: paint, thickness: a-sw) + let mark-style = (end: ">", fill: paint, scale: arrow-mark-scale) + + // bend or shift present → force curved for this arrow + let is-curved = curved or bend-val != none or shift-val != 0.0 + if is-curved { + // Quadratic Bézier (parabolic arc) + // Auto-calculate bend if not specified: proportional to distance + let bend = if bend-val != none { bend-val } else { + calc.max(calc.abs(dx) * 0.3, calc.abs(dy) * 0.3, 0.6) + } + // Control point: centered perpendicular to growth, offset in growth direction + let cp = if direction == "right" or direction == "left" { + let mid-y = (fy + ty) / 2 + shift-val + let ext = if direction == "right" { + calc.max(fx, tx) + bend + } else { + calc.min(fx, tx) - bend + } + (ext, mid-y) + } else { + let mid-x = (fx + tx) / 2 + shift-val + let ext = if direction == "up" { + calc.max(fy, ty) + bend + } else { + calc.min(fy, ty) - bend + } + (mid-x, ext) + } + // Convert quadratic to cubic: C1 = P0 + 2/3*(cp - P0), C2 = P2 + 2/3*(cp - P2) + let c1 = (fx + 2.0 / 3.0 * (cp.at(0) - fx), fy + 2.0 / 3.0 * (cp.at(1) - fy)) + let c2 = (tx + 2.0 / 3.0 * (cp.at(0) - tx), ty + 2.0 / 3.0 * (cp.at(1) - ty)) + // Tangent at endpoint (cubic: B'(1) = 3(P3 - C2)) + let tang-x = tx - c2.at(0) + let tang-y = ty - c2.at(1) + let ed = calc.sqrt(tang-x * tang-x + tang-y * tang-y) + let (tang-x, tang-y) = if ed > 0 { (tang-x / ed, tang-y / ed) } else { (dx / len, dy / len) } + let hb = calc.min(head-back, len * 0.4) + let hax = tx - tang-x * hb + let hay = ty - tang-y * hb + bezier((fx, fy), (hax, hay), c1, c2, stroke: shaft-stroke) + let tiny = 0.01 + line((hax - tang-x * tiny, hay - tang-y * tiny), (tx, ty), stroke: head-stroke, mark: mark-style) + if is-delinked { + // Cubic midpoint at t=0.5, using actual drawn endpoint (hax, hay) + let mx = 0.125 * fx + 3 * 0.125 * c1.at(0) + 3 * 0.125 * c2.at(0) + 0.125 * hax + let my = 0.125 * fy + 3 * 0.125 * c1.at(1) + 3 * 0.125 * c2.at(1) + 0.125 * hay + // Cubic tangent at t=0.5 + let dtx = 3 * (0.25 * (c1.at(0) - fx) + 0.5 * (c2.at(0) - c1.at(0)) + 0.25 * (hax - c2.at(0))) + let dty = 3 * (0.25 * (c1.at(1) - fy) + 0.5 * (c2.at(1) - c1.at(1)) + 0.25 * (hay - c2.at(1))) + _draw-delink(mx, my, dtx, dty, (paint: paint, thickness: sw)) + } + } else { + // Rectangular (right-angle) path along growth axis + // Base floor: same for all arrows (endpoints drop to here) + let stagger = rect-count * 0.5 + rect-count = rect-count + 1 + let sign = if direction == "up" or direction == "left" { 1 } else { -1 } + let bar-val = rect-floor + sign * stagger + let hb = head-back + if direction == "right" or direction == "left" { + // Horizontal growth: vertical bar + line((fx, fy), (bar-val, fy), stroke: shaft-stroke) + line((bar-val, fy), (bar-val, ty), stroke: shaft-stroke) + line((bar-val, ty), (tx + gdx * hb, ty), stroke: shaft-stroke) + let tiny = 0.01 + line((tx + gdx * (hb + tiny), ty), (tx, ty), stroke: head-stroke, mark: mark-style) + if is-delinked { + let mid-y = (fy + ty) / 2 + _draw-delink(bar-val, mid-y, 0.0, 1.0, (paint: paint, thickness: sw)) + } + } else { + // Vertical growth: horizontal bar + line((fx, fy), (fx, bar-val), stroke: shaft-stroke) + line((fx, bar-val), (tx, bar-val), stroke: shaft-stroke) + line((tx, bar-val), (tx, ty + gdy * hb), stroke: shaft-stroke) + let tiny = 0.01 + line((tx, ty + gdy * (hb + tiny)), (tx, ty), stroke: head-stroke, mark: mark-style) + if is-delinked { + let mid-x = (fx + tx) / 2 + _draw-delink(mid-x, bar-val, 1.0, 0.0, (paint: paint, thickness: sw)) + } + } + } + } + } + } // end if not is-horiz (arrows) + + // ── Draw dominance lines ────────────────────────────────────── + // Normalize: single entry → array of entries + let dom-entries = if dominance == () { + () + } else if type(dominance.at(0, default: none)) != array and type(dominance.at(0, default: none)) != dictionary { + // Single entry like ("np4", "np1") — wrap it + if type(dominance) == dictionary { (dominance,) } else { (dominance,) } + } else { + dominance + } + for entry in dom-entries { + let is-dict = type(entry) == dictionary + let raw-from = if is-dict { entry.at("from") } else { entry.at(0) } + let raw-to = if is-dict { entry.at("to") } else { entry.at(1) } + let ctrl-val = if is-dict { entry.at("ctrl", default: none) } else { none } + let dom-color = if is-dict { entry.at("color", default: _norm) } else { _norm } + let dom-dash = if is-dict { entry.at("dash", default: "solid") } else { "solid" } + + if raw-from in name-to-pos and raw-to in name-to-pos { + let (fx, fy, _) = name-to-pos.at(raw-from) + let (tx, ty, _) = name-to-pos.at(raw-to) + + // Depart south (node-out), arrive north (node-in) — matching branches + let f-out = node-out.at(raw-from, default: _loff) + let t-in = node-in.at(raw-to, default: _loff) + fx = fx + gdx * f-out + fy = fy + gdy * f-out + tx = tx - gdx * t-in + ty = ty - gdy * t-in + + let dx = tx - fx + let dy = ty - fy + let len = calc.sqrt(dx * dx + dy * dy) + if len == 0 { continue } + + let dom-stroke = (paint: dom-color, thickness: sw, dash: dom-dash) + + // Default S-curve: depart in growth direction, arrive against it + // ctrl adjusts (adds to) these defaults + let v-reach = calc.abs(dy) + let h-reach = calc.abs(dx) + let lift1 = calc.max(v-reach * 0.50, h-reach * 0.20, 0.50) + let dip2 = -calc.max(v-reach * 0.25, 0.40) + // Apply growth direction sign + let (default-c1y, default-c2y) = if direction == "up" { + (-lift1, -dip2) + } else { + (lift1, dip2) + } + let adj0 = if ctrl-val != none { ctrl-val.at(0) } else { 0 } + let adj1 = if ctrl-val != none { ctrl-val.at(1) } else { 0 } + let ctrl1 = (fx + dx * 0.30, fy + default-c1y + adj0) + let ctrl2 = (tx - dx * 0.30, ty + default-c2y + adj1) + bezier((fx, fy), (tx, ty), ctrl1, ctrl2, stroke: dom-stroke) + } + } + + // ── Draw debug references last so they stay in the foreground ─── + for ref-item in ref-items { + draw-ref(ref-item.pos, ref-item.name, ref-item.side) + } + }) + }) + } + + if font != none { + set text(font: font) + _body + } else { + _body + } +} + +// ── Multi-tree group ────────────────────────────────────────────────────────── +// Renders multiple syntax trees in a single canvas with cross-tree +// equivalence lines. Follows the geom-group() pattern from phonokit. +// +// Each positional argument is a spec dict with the same keys as tree(): +// (input: "[S [NP ...] [VP ...]]", direction: "down", spread: 1.0, ...) +// +// Node anchors are suffixed with tree index: "np1-1" = first NP in tree 1. +// The "-down" variant goes before the index: "np1-down-1". +// +// Equivalence entries: ("np1-1", "np1-2") or (from: "np1-1", to: "np1-2", ...) + +#let garden( + ..trees, + equivalence: (), + gap: 2.0, + scale: 1.0, + line-width: 1.0, + font: none, +) = { + let specs = trees.pos() + let scale-factor = scale + + let _body = context { + let fsz = 12 * scale-factor * 1pt + let _norm = luma(15%) + + // ── Per-tree computation ────────────────────────────────────────────── + let all-td = () // array of tree-data dicts + + for (idx, spec) in specs.enumerate() { + let tidx = idx + 1 + let input = spec.at("input") + let direction = spec.at("direction", default: "down") + let spread-val = spec.at("spread", default: 1.0) + let drop-val = spec.at("drop", default: 1.0) + let content-size = spec.at("content-size", default: 0.8) + let node-size = spec.at("node-size", default: 1.0) + let triangle-arg = spec.at("triangle", default: ()) + let terminal-branch = spec.at("terminal-branch", default: false) + let bottom = spec.at("bottom", default: true) + + let is-horiz = direction == "right" or direction == "left" + let leaf-w = spread-val + let v-gap = if is-horiz { 1.2 * drop-val * 1.05 } else { 1.2 * drop-val } + + // Parse + let tokens = _tokenize(input) + let (tree, _, _) = _parse(tokens, 0, (:)) + + // Auto-triangle + let tri-set = triangle-arg + let _auto-tri(node) = { + let result = () + if not node.is-leaf and node.children.len() > 0 { + let stripped = _strip-fmt(node.label) + let is-phrase = stripped.len() > 1 and lower(stripped).ends-with("p") + let all-leaves = node.children.all(c => c.is-leaf) + if is-phrase and all-leaves { result.push(node.anchor) } + for child in node.children { result = result + _auto-tri(child) } + } + result + } + let tri-set = tri-set + _auto-tri(tree) + + // Layout + let nodes = _syntax-layout( + tree, + 0.0, + 0.0, + none, + none, + leaf-w, + v-gap, + tri-set, + is-horiz: is-horiz, + append-map: (:), + content-size: content-size, + level: 0, + drop-map: (:), + node-spacing-map: (:), + sister-spacing-map: (:), + sister-node-map: (:), + annotation-map: (:), + annotation-leaf-widths: (:), + ) + + // Bottom-align + if bottom { + terminal-branch = true + let min-y = nodes.fold(0.0, (acc, e) => if e.is-leaf { calc.min(acc, e.y) } else { acc }) + let min-y = nodes.fold(min-y, (acc, e) => { + if e.at("is-triangle", default: false) { calc.min(acc, e.at("tri-y")) } else { acc } + }) + nodes = nodes.map(e => { + if e.is-leaf { (..e, y: min-y) } else if e.at("is-triangle", default: false) { + (..e, tri-y: min-y, bottom-aligned: true) + } else { e } + }) + } + + // Terminal pull (reduce gap when no branch line drawn) + if not terminal-branch { + nodes = nodes.map(e => { + if e.at("is-terminal", default: false) and e.par != none { + let pull = if is-horiz { 0.2 } else { 0.5 } + (..e, y: e.y + (e.par.at(1) - e.y) * pull) + } else { e } + }) + } + + // Direction transform + let _tx(x, y) = { + if direction == "up" { (x, -y) } else if direction == "right" { (-y, -x) } else if direction == "left" { + (y, -x) + } else { (x, y) } + } + let (gdx, gdy) = if direction == "up" { (0, 1) } else if direction == "right" { (1, 0) } else if ( + direction == "left" + ) { (-1, 0) } else { (0, -1) } + + // Node out/in offsets for branch connections + let node-out = (:) + let node-in = (:) + for e in nodes { + if is-horiz { + let full-w = _label-half-w(e.label) * 2 + let is-tri = e.at("is-triangle", default: false) + node-out.insert(e.anchor, if is-tri { full-w + 0.25 } else { full-w }) + node-in.insert(e.anchor, 0.05) + } else { + node-out.insert(e.anchor, _loff) + node-in.insert(e.anchor, _loff) + } + } + + // Transform coordinates + nodes = nodes.map(e => { + let (nx, ny) = _tx(e.x, e.y) + let new-par = if e.par != none { + let (px, py) = _tx(e.par.at(0), e.par.at(1)) + (px, py) + } else { none } + let result = (..e, x: nx, y: ny, par: new-par) + if e.at("is-triangle", default: false) { + let (tri-nx, tri-ny) = _tx(e.x, e.at("tri-y")) + (..result, tri-y: tri-ny, tri-x: tri-nx) + } else { result } + }) + + // Build name-to-pos, arrow-off-map, label-hw-map with tree-index suffix + let _text-half-h = 0.2 + let _arrow-gap = 0.25 + let regular-off = _text-half-h + _arrow-gap + let ntp = (:) + let aom = (:) + let lhw = (:) + let sfx = "-" + str(tidx) + for e in nodes { + ntp.insert(e.anchor + sfx, (e.x, e.y, _loff)) + aom.insert(e.anchor + sfx, regular-off) + lhw.insert(e.anchor + sfx, _rendered-len(e.label) * 0.28 / 2 + 0.05) + } + + // Build -down entries (leaf content positions) + let _build-down-g(node, ntp, aom, lhw) = { + if node.is-leaf or node.children.len() == 0 { + ntp.insert(node.anchor + "-down" + sfx, ntp.at(node.anchor + sfx)) + aom.insert(node.anchor + "-down" + sfx, regular-off) + lhw.insert(node.anchor + "-down" + sfx, _rendered-len(node.label) * 0.28 / 2 + 0.05) + return (ntp, aom, lhw) + } + let tri-entry = nodes.filter(e => e.anchor == node.anchor and e.at("is-triangle", default: false)) + if tri-entry.len() > 0 { + let te = tri-entry.at(0) + ntp.insert(node.anchor + "-down" + sfx, (te.x, te.at("tri-y"), _loff)) + let tri-off = 0.05 + _text-half-h * 2 + _arrow-gap + aom.insert(node.anchor + "-down" + sfx, tri-off) + let tri-label = te.at("tri-label") + let tri-lines = tri-label.split(" \\n ") + let tri-lines = if tri-lines.len() == 1 { tri-label.split("\\n") } else { tri-lines } + let widest = tri-lines.fold(0, (acc, l) => calc.max(acc, _rendered-len(l.trim()))) + let char-w = 0.22 * content-size + lhw.insert(node.anchor + "-down" + sfx, calc.max(widest * char-w / 2, 0.3)) + return (ntp, aom, lhw) + } + let leaf-anchors = _collect-leaf-anchors(node) + let found = leaf-anchors.map(a => a + sfx).filter(a => a in ntp) + if found.len() > 0 { + let avg-x = found.map(a => ntp.at(a).at(0)).fold(0.0, (a, b) => a + b) / found.len() + let ys = found.map(a => ntp.at(a).at(1)) + let leaf-y = if gdy < 0 { calc.min(..ys) } else { calc.max(..ys) } + ntp.insert(node.anchor + "-down" + sfx, (avg-x, leaf-y, _loff)) + aom.insert(node.anchor + "-down" + sfx, regular-off) + let xs = found.map(a => ntp.at(a).at(0)) + let span-hw = if xs.len() > 1 { + (calc.max(..xs) - calc.min(..xs)) / 2 + 0.3 + } else { + ( + _rendered-len( + nodes.filter(e => e.anchor + sfx == found.at(0)).at(0, default: (label: "XX")).label, + ) + * 0.28 + / 2 + + 0.05 + ) + } + lhw.insert(node.anchor + "-down" + sfx, span-hw) + } + for child in node.children { + (ntp, aom, lhw) = _build-down-g(child, ntp, aom, lhw) + } + (ntp, aom, lhw) + } + (ntp, aom, lhw) = _build-down-g(tree, ntp, aom, lhw) + + // Compute tree vertical extents + let y-min = nodes.fold(0.0, (acc, e) => { + let y = e.y + if e.at("is-triangle", default: false) { calc.min(acc, y, e.at("tri-y")) } else { calc.min(acc, y) } + }) + let y-max = nodes.fold(0.0, (acc, e) => { + let y = e.y + if e.at("is-triangle", default: false) { calc.max(acc, y, e.at("tri-y")) } else { calc.max(acc, y) } + }) + + all-td.push(( + nodes: nodes, + ntp: ntp, + aom: aom, + lhw: lhw, + tidx: tidx, + sfx: sfx, + direction: direction, + gdx: gdx, + gdy: gdy, + is-horiz: is-horiz, + node-out: node-out, + node-in: node-in, + tri-set: tri-set, + content-size: content-size, + node-size: node-size, + terminal-branch: terminal-branch, + y-min: y-min, + y-max: y-max, + )) + } + + // ── Stack trees vertically ──────────────────────────────────────────── + let y-offsets = () + for (i, td) in all-td.enumerate() { + if i == 0 { + y-offsets.push(0.0) + } else { + let prev = all-td.at(i - 1) + let prev-bottom = prev.y-min + y-offsets.at(i - 1) + y-offsets.push(prev-bottom - gap - td.y-max) + } + } + + // Apply y-offsets to nodes and merge name-to-pos + let shared-ntp = (:) + let shared-aom = (:) + let shared-lhw = (:) + for (i, td) in all-td.enumerate() { + let y-off = y-offsets.at(i) + all-td.at(i).nodes = td.nodes.map(e => { + let new-par = if e.par != none { (e.par.at(0), e.par.at(1) + y-off) } else { none } + let result = (..e, y: e.y + y-off, par: new-par) + if e.at("is-triangle", default: false) { + (..result, tri-y: e.at("tri-y") + y-off) + } else { result } + }) + for (key, val) in td.ntp.pairs() { + shared-ntp.insert(key, (val.at(0), val.at(1) + y-off, val.at(2))) + } + for (key, val) in td.aom.pairs() { shared-aom.insert(key, val) } + for (key, val) in td.lhw.pairs() { shared-lhw.insert(key, val) } + } + + // ── Render ──────────────────────────────────────────────────────────── + let sw = 0.05em * scale-factor * line-width + + box(inset: 1.2em, baseline: 40%, { + cetz.canvas(length: scale-factor * 1cm, { + import cetz.draw: * + + // Draw each tree + for td in all-td { + let nodes = td.nodes + let gdx = td.gdx + let gdy = td.gdy + let direction = td.direction + let is-horiz = td.is-horiz + let node-fsz = fsz * td.node-size + let content-fsz = fsz * td.content-size + + // ── Edges ── + for e in nodes { + if e.par != none and (td.terminal-branch or not e.at("is-terminal", default: false)) { + let par-off = td.node-out.at(e.at("par-anchor", default: ""), default: _loff) + let child-off = td.node-in.at(e.anchor, default: _loff) + line( + (e.par.at(0) + gdx * par-off, e.par.at(1) + gdy * par-off), + (e.x - gdx * child-off, e.y - gdy * child-off), + stroke: (paint: _norm, thickness: sw), + ) + } + } + + // ── Triangles ── + for e in nodes { + if e.at("is-triangle", default: false) { + let tri-label = e.at("tri-label") + let tlx = e.at("tri-x", default: e.x) + let tly = e.at("tri-y") + let vert = direction == "down" or direction == "up" + let half-w = if vert { + let char-w = 0.22 * td.content-size + let tl = tri-label.split(" \\n ") + let tl = if tl.len() == 1 { tri-label.split("\\n") } else { tl } + calc.max(tl.fold(0, (acc, l) => calc.max(acc, _rendered-len(l.trim()))) * char-w / 2, 0.3) + } else { + let tl = tri-label.split(" \\n ") + let tl = if tl.len() == 1 { tri-label.split("\\n") } else { tl } + calc.max(tl.len() * 0.55 / 2, 0.4) + } + let tri-off = td.node-out.at(e.anchor, default: _loff) + let apex = (e.x + gdx * tri-off, e.y + gdy * tri-off) + let (b1, b2) = if vert { + ((tlx - half-w, tly - gdy * _loff), (tlx + half-w, tly - gdy * _loff)) + } else { + let bx = _loff + ((tlx + gdx * bx, tly - half-w), (tlx + gdx * bx, tly + half-w)) + } + line(apex, b1, stroke: (paint: _norm, thickness: sw)) + line(apex, b2, stroke: (paint: _norm, thickness: sw)) + line(b1, b2, stroke: (paint: _norm, thickness: sw)) + } + } + + // ── Labels ── + for e in nodes { + let display = _display-label(e.label) + let _has-upper = _strip-fmt(e.label).match(regex("[A-Z]")) != none + let sz = if e.at("is-terminal", default: false) or (e.is-leaf and not _has-upper) { + content-fsz + } else { node-fsz } + let label-body = text(size: sz, fill: _norm, display) + let label-anchor = if direction == "right" { "west" } else if direction == "left" { "east" } else { + "center" + } + + if e.at("is-triangle", default: false) { + content((e.x, e.y), label-body, anchor: label-anchor) + let tri-leaves = e.at("tri-leaves") + let lines = ((),) + for leaf in tri-leaves { + if leaf == "\\n" { lines.push(()) } else { lines.at(-1).push(leaf) } + } + let line-contents = lines.map(words => { + text(size: content-fsz, fill: _norm, words.map(w => _display-label(w)).join([ ])) + }) + let tri-align = if direction == "right" { left } else if direction == "left" { right } else { center } + let tri-body = if line-contents.len() > 1 { + align(tri-align, stack(spacing: 0.35em, ..line-contents)) + } else { line-contents.at(0) } + let is-bottom-aligned = e.at("bottom-aligned", default: false) + let tri-text-gap = if is-bottom-aligned { 0 } else if is-horiz { 0.80 } else { 0.05 } + let tlx2 = e.at("tri-x", default: e.x) + let tly2 = e.at("tri-y") + let tri-anchor = if direction == "up" { "south" } else if ( + direction == "down" + ) { "north" } else if direction == "right" { "west" } else { "east" } + content((tlx2 + gdx * tri-text-gap, tly2 + gdy * tri-text-gap), tri-body, anchor: tri-anchor) + } else { + let (lx, ly) = (e.x, e.y) + let cur-anchor = label-anchor + if is-horiz and e.at("is-terminal", default: false) and e.par != none { + lx = lx + (e.par.at(0) - lx) * 0.4 + ly = ly + (e.par.at(1) - ly) * 0.4 + } else if not is-horiz and e.at("is-terminal", default: false) { + cur-anchor = if direction == "up" { "south" } else { "north" } + } + content((lx, ly), label-body, anchor: cur-anchor) + } + } + } + + // ── Equivalence lines ────────────────────────────────────────────── + let eq-entries = if equivalence.len() > 0 and type(equivalence.at(0)) == str { + (equivalence,) + } else { equivalence } + + for eq in eq-entries { + let is-dict = type(eq) == dictionary + let raw-from = if is-dict { eq.at("from") } else { eq.at(0) } + let raw-to = if is-dict { eq.at("to") } else { eq.at(1) } + let eq-color = if is-dict { eq.at("color", default: _norm) } else { _norm } + let eq-dash = if is-dict { eq.at("dash", default: "dashed") } else { "dashed" } + let eq-lw = if is-dict { eq.at("line-width", default: 1.0) } else { 1.0 } + + // Resolve: bare "np1-1" → "np1-down-1" if available (default to leaf text). + // "np1-1-top" → "np1-1" (node label position, stripping -top). + let _resolve-eq(name) = { + // -top: strip suffix, target node label + if name.ends-with("-top") { + return name.slice(0, name.len() - 4) + } + // Already has -down: use as-is + if name.contains("-down") { return name } + // Try resolving to -down (leaf content) + let m = name.match(regex("^(.+)-(\d+)$")) + if m != none { + let base = m.captures.at(0) + let tidx-str = m.captures.at(1) + let down-key = base + "-down-" + tidx-str + if down-key in shared-ntp { return down-key } + } + name + } + let from-name = _resolve-eq(raw-from) + let to-name = _resolve-eq(raw-to) + + if from-name in shared-ntp and to-name in shared-ntp { + let (fx, fy, _) = shared-ntp.at(from-name) + let (tx, ty, _) = shared-ntp.at(to-name) + + // Offset endpoints in their respective tree's growth direction + let _get-tidx(name) = { + let m = name.match(regex("-(\d+)$")) + if m != none { int(m.captures.at(0)) } else { 1 } + } + let from-td = all-td.at(_get-tidx(from-name) - 1) + let to-td = all-td.at(_get-tidx(to-name) - 1) + // Uniform offset for equivalence lines so endpoints align vertically + let eq-off = 0.45 + let f-off = eq-off + let t-off = eq-off + fx = fx + from-td.gdx * f-off + fy = fy + from-td.gdy * f-off + tx = tx + to-td.gdx * t-off + ty = ty + to-td.gdy * t-off + + let a-sw = 0.018 * eq-lw + let eq-stroke = if eq-dash == "solid" { + (paint: eq-color, thickness: a-sw) + } else { + (paint: eq-color, thickness: a-sw, dash: eq-dash) + } + line((fx, fy), (tx, ty), stroke: eq-stroke) + } + } + }) + }) + } + + if font != none { + set text(font: font) + _body + } else { + _body + } +} diff --git a/packages/preview/synkit/0.1.1/typst.toml b/packages/preview/synkit/0.1.1/typst.toml new file mode 100644 index 0000000000..cfe7f0f486 --- /dev/null +++ b/packages/preview/synkit/0.1.1/typst.toml @@ -0,0 +1,13 @@ +[package] +categories = ["utility", "text", "visualization"] +disciplines = ["linguistics"] +name = "synkit" +version = "0.1.1" +exclude = ["gallery/"] +keywords = ["linguistics", "syntax", "semantics", "morphology"] +entrypoint = "lib.typ" +authors = ["Guilherme D. Garcia "] +license = "MIT" +description = "A toolkit to create syntactic representations" +repository = "https://github.com/guilhermegarcia/synkit" +homepage = "https://gdgarcia.ca/synkit"