2026-07-18 18:48:23 +02:00
|
|
|
@@show s : @eval :cpp show show @ @@
|
|
|
|
|
|
Typed arguments, calculated tables, spans, closed-world fonts, top-level fnt/ and env/
Sync with klammertext-dev through b90b0e09:
- Argument types end to end: :python_cast values are applied (Python
@eval receives real bools/numbers/lists), argument values are
validated against their argtype patterns with the argtype's
description as the error message, argtypes can declare :default
(overridable per declaration), and parameterized type families are
supported: rest(N) casts a rest argument to an N-dimensional list
(bar-count = dimension).
- Unified indexed_range syntax (selector with parenthesized subsets,
composable mnemonic names) for table lines and spans.
- Table klammer: caption fonts fixed in both targets, :column_width /
:leading / :colsep wired, :colspan and :rowspan render (HTML
attributes; \multicolumn / \multirow), calculated cell values (:calc)
with prefix operators, display-precision semantics, :calc_format and
:decimal period|comma.
- Fonts: closed-world resolution on the Klammertext font store
(infrastructure in mac/font_store; no Google Fonts links or fetch).
Default fonts live in the top-level fnt/; additional fonts install
into KLAMMERTEXT_FONTS directories via kdesc --font (list, samples,
preview, install — classification by font metadata). CSS font family
names are quoted (digit-initial families were silently lost).
- Environment files moved from mac/env/ to the top-level env/; shell
profiles source env/runtime.env. Dead per-host variants removed.
- Container: fnt/ ships in the image; curl removed (no network use).
2026-07-22 18:17:43 +02:00
|
|
|
@@@argtype caption_side |
|
|
|
|
|
the side of its element on which a caption is placed
|
|
|
|
|
:pattern top^|right^|bottom^|left
|
|
|
|
|
:default bottom
|
|
|
|
|
@@@
|
|
|
|
|
|
2026-07-18 18:48:23 +02:00
|
|
|
@@caption_arguments :
|
|
|
|
|
:caption
|
|
|
|
|
:number.bool true
|
Typed arguments, calculated tables, spans, closed-world fonts, top-level fnt/ and env/
Sync with klammertext-dev through b90b0e09:
- Argument types end to end: :python_cast values are applied (Python
@eval receives real bools/numbers/lists), argument values are
validated against their argtype patterns with the argtype's
description as the error message, argtypes can declare :default
(overridable per declaration), and parameterized type families are
supported: rest(N) casts a rest argument to an N-dimensional list
(bar-count = dimension).
- Unified indexed_range syntax (selector with parenthesized subsets,
composable mnemonic names) for table lines and spans.
- Table klammer: caption fonts fixed in both targets, :column_width /
:leading / :colsep wired, :colspan and :rowspan render (HTML
attributes; \multicolumn / \multirow), calculated cell values (:calc)
with prefix operators, display-precision semantics, :calc_format and
:decimal period|comma.
- Fonts: closed-world resolution on the Klammertext font store
(infrastructure in mac/font_store; no Google Fonts links or fetch).
Default fonts live in the top-level fnt/; additional fonts install
into KLAMMERTEXT_FONTS directories via kdesc --font (list, samples,
preview, install — classification by font metadata). CSS font family
names are quoted (digit-initial families were silently lost).
- Environment files moved from mac/env/ to the top-level env/; shell
profiles source env/runtime.env. Dead per-host variants removed.
- Container: fnt/ ships in the image; curl removed (no network use).
2026-07-22 18:17:43 +02:00
|
|
|
:caption_side.caption_side
|
2026-07-18 18:48:23 +02:00
|
|
|
:caption_font.font i
|
|
|
|
|
:caption_font_size.float .9
|
|
|
|
|
@@
|
|
|
|
|
|
|
|
|
|
@@reference spec | name :
|
|
|
|
|
__REF__*spec*__*name*__
|
|
|
|
|
@@
|
|
|
|
|
|
|
|
|
|
@@@argtype number | a number
|
|
|
|
|
:pattern 'float'^|'int'
|
|
|
|
|
:python_cast (lambda s: float(s))
|
|
|
|
|
@@@
|
|
|
|
|
|
|
|
|
|
@@@argtype length | a length specifier
|
|
|
|
|
#:pattern f^|none^|'float'w^|'float'h^|'int'px^|'float'em^|'int'pt
|
|
|
|
|
# The last pattern is a string, used where possible to determine its length
|
|
|
|
|
:pattern f^|none^|'float'w^|'float'h^|'int'px^|'float'em^|'int'pt^|"[^^"]+"^|'float'pw^|'float'ph
|
|
|
|
|
# :python_cast (lambda s : __import__("kutil").parse_length("tex", s))
|
|
|
|
|
@@@
|
|
|
|
|
|
|
|
|
|
@@@argtype lengths | a list of lengths
|
|
|
|
|
:pattern ('length'^|\s+)*
|
|
|
|
|
#:python_cast (lambda s : [__import__("kutil").parse_length("tex", e) for e in s.split()])
|
|
|
|
|
@@@
|
|
|
|
|
|
2026-07-25 21:16:21 +02:00
|
|
|
@@@argtype element_hpos |
|
|
|
|
|
the horizontal position of a block element (a table or an image) within
|
|
|
|
|
the text column: center, left, right, or a length, which places the
|
|
|
|
|
element's left edge that far from the left margin (e.g. ^:hpos 4em, ^:hpos
|
|
|
|
|
.25w). When the element is as wide as the text column, the positions are
|
|
|
|
|
indistinguishable.
|
|
|
|
|
:pattern center^|left^|right^|'length'
|
|
|
|
|
:default center
|
|
|
|
|
@@@
|
|
|
|
|
|
2026-07-18 18:48:23 +02:00
|
|
|
@@@argtype figure_id |
|
|
|
|
|
an identifier for a figure.
|
|
|
|
|
|
|
|
|
|
The identifier can be in one of six forms:
|
|
|
|
|
|
|
|
|
|
before
|
|
|
|
|
before <offset-to-figure>
|
|
|
|
|
after
|
|
|
|
|
after <offset-to-figure>
|
|
|
|
|
<image-basename>
|
|
|
|
|
<id>
|
|
|
|
|
|
|
|
|
|
The "before" value means the figure before this place in the text;
|
|
|
|
|
the number indicates the number of figures behind that place in the
|
|
|
|
|
text. This means that "before" is equivalent to "before 1". The
|
|
|
|
|
"after" value uses an offset in the same way but counting forewards.
|
|
|
|
|
|
|
|
|
|
For images, the <image-basename> argument is the basename argument to
|
|
|
|
|
the ^@image klammer and can be used as an identifier.
|
|
|
|
|
|
|
|
|
|
An <id> is the value of the ^:id argument for an image.
|
|
|
|
|
|
|
|
|
|
^:pattern before(?^:\s+\d+)?^|after(?^:\s+\d+)?^|[-\w]+
|
|
|
|
|
@@@
|