Compare commits

...

5 Commits

Author SHA1 Message Date
Greg Shuflin
e78c0f36f1 Bump package version to 0.3.0 2024-08-18 23:03:21 -07:00
Greg Shuflin
226dfe75f8 Update contributors 2024-08-18 22:41:08 -07:00
Greg Shuflin
c3acc895d7 Some tweaks to the label-ing functionality 2024-08-18 22:41:01 -07:00
Greg Shuflin
393603ae2d
Merge pull request #6 from rwmpelstilzchen/references
Add reference capability
2024-08-18 22:39:42 -07:00
Júda Ronén
7774532264 Add reference capability
This adds a new argument, `label`, and makes use of the referencing mechanism of Typst.
2024-08-17 19:21:54 +03:00
6 changed files with 49 additions and 11 deletions

View File

@ -1,8 +1,9 @@
# Changelog # Changelog
## 0.3.0
* Added `label` and `label-supplement` arguments to `gloss` function
## 0.2.0 (upcoming) ## 0.2.0
* renamed `numbered_gloss` to `numbered-gloss`, `gloss_count` to `gloss-count`, in light of the * renamed `numbered_gloss` to `numbered-gloss`, `gloss_count` to `gloss-count`, in light of the
Typst style preference for kebab-case. Also renamed their arguments to use snake-case as well. Typst style preference for kebab-case. Also renamed their arguments to use snake-case as well.
* Documented standard abbreviations * Documented standard abbreviations

View File

@ -30,3 +30,6 @@ This library uses the MIT license; see `LICENSE.txt`.
Thanks to [Bethany E. Toma](https://github.com/betoma) for a number of Thanks to [Bethany E. Toma](https://github.com/betoma) for a number of
suggestions and improvements. suggestions and improvements.
Thanks to [Maja Abramski-Kronenberg](https://github.com/rwmpelstilzchen) for
the labeling functionality.

BIN
documentation.pdf Normal file

Binary file not shown.

View File

@ -179,6 +179,25 @@ standard Typst counter functions to control gloss numbering:
translation: [There always is in us a will for a great happiness.], translation: [There always is in us a will for a great happiness.],
)", addl-bindings: (gloss-count: gloss-count)) )", addl-bindings: (gloss-count: gloss-count))
References to individual examples can be achieved using the `label` argument and the referencing mechanism of Typst:
#codeblock(
"See @sorcerers:
#numbered-gloss(
header: [Middle Welsh; modified from _Grammatical number in Welsh_ (1999) by Silva Nurmio (§~2.1.1)],
source: ([ac], [ny], [allvs], [y], [dewinyon], [atteb], [idav]),
morphemes: ([and], [#neg], [be_able.#smallcaps[pret].3#sg], [#smallcaps[def]], [sorcerer.#pl], [answer.#smallcaps[inf]], [to.3#sg.#smallcaps[m]]),
translation: [and the sorcerers could not answer him],
label: \"sorcerers\",
label-supplement: [Example]
)
As we have seen in @sorcerers, […].", addl-bindings: (neg: neg, sg: sg, pl: pl))
Labeling uses the Typst #link("https://typst.app/docs/reference/model/figure/")[figure] document element. The `label-supplement`
parameter fills in the `suppliment` parameter of a `figure`, which is `[example]` by default.
== Styling lines of a gloss == Styling lines of a gloss

View File

@ -34,6 +34,10 @@
} }
} }
// a workround so we can use `label` as a variable name where it is shadowed by the function param `label`
// Once typst version 0.12 with https://github.com/typst/typst/pull/4038 is released we should be able
// to replace this workaround with `std.label`
#let cmdlabel = label
#let gloss( #let gloss(
header: none, header: none,
@ -47,6 +51,8 @@
additional-lines: (), //List of list of content additional-lines: (), //List of list of content
translation: none, translation: none,
translation-style: none, translation-style: none,
label: none,
label-supplement: [example],
item-spacing: 1em, item-spacing: 1em,
gloss-padding: 2.0em, //TODO document these gloss-padding: 2.0em, //TODO document these
@ -121,13 +127,18 @@
style(styles => { style(styles => {
block(breakable: breakable)[ block(breakable: breakable)[
#stack( #figure(
kind: "ling-example",
supplement: label-supplement,
numbering: it => [#gloss-count.display()],
stack(
dir: ltr, //TODO this needs to be more flexible dir: ltr, //TODO this needs to be more flexible
left_padding, left_padding,
[#gloss_number], [#gloss_number],
gloss-padding - left_padding - measure([#gloss_number],styles).width, gloss-padding - left_padding - measure([#gloss_number],styles).width,
[#gloss_items] align(left)[#gloss_items],
) ),
) #if label != none {cmdlabel(label)}
] ]
} }
) )

View File

@ -1,8 +1,12 @@
[package] [package]
name = "leipzig-glossing" name = "leipzig-glossing"
version = "0.2.0" version = "0.3.0"
entrypoint = "leipzig-gloss.typ" entrypoint = "leipzig-gloss.typ"
authors = ["Greg Shuflin", "Other open-source contributors"] authors = ["Greg Shuflin <greg@everydayimshuflin.com>", "Other open-source contributors"]
license = "MIT" license = "MIT"
description = "Linguistic interlinear glosses according to the Leipzig Glossing rules" description = "Linguistic interlinear glosses according to the Leipzig Glossing rules"
repository = "https://code.everydayimshuflin.com/greg/typst-lepizig-glossing" repository = "https://code.everydayimshuflin.com/greg/typst-lepizig-glossing"
disciplines = ["linguistics"]
categories = ["paper"]
keywords = ["linguistics", "leipzig", "gloss", "glossing"]
compiler = "0.11"