Abbreviations documentation

This commit is contained in:
Greg Shuflin 2023-09-20 23:44:22 -07:00
parent 04e327e5a1
commit e4726bbbbd
3 changed files with 37 additions and 26 deletions

View File

@ -111,6 +111,8 @@ locate(loc => {
}
#let render-abbreviation(symbol) = smallcaps(lower(symbol))
// Public function. Given a symbol that is a string, emits
// the lowercase version of that string in smallcaps format, and adds
// its use to the `used-abbreviations` table
@ -123,7 +125,7 @@ locate(loc => {
}
mark_used(symbol)
smallcaps(lower(symbol))
render-abbreviation(symbol)
}

Binary file not shown.

View File

@ -4,13 +4,15 @@
#let codeblock-old(contents) = block(fill: luma(230), inset: 8pt, radius: 4pt, breakable: false, contents)
#let codeblock(contents, addl-bindings: (:)) = {
eval(contents, mode: "markup", scope: (gloss: gloss, numbered-gloss: numbered-gloss) + addl-bindings)
block(fill: luma(230), inset: 8pt, radius: 4pt, breakable: false, raw(contents, lang: "typst"))
#let codeblock(contents, addl-bindings: (:), unevaled-first-line: none) = {
let full-contents = if unevaled-first-line != none {
unevaled-first-line + "\n" + contents
} else {
contents
}
#let codeblock-no-eval(contents) = {
block(fill: luma(230), inset: 8pt, radius: 4pt, breakable: false, raw(contents, lang: "typst"))
eval(contents, mode: "markup", scope: (gloss: gloss, numbered-gloss: numbered-gloss) + addl-bindings)
block(fill: luma(230), inset: 8pt, radius: 4pt, breakable: false, raw(full-contents, lang: "typst"))
}
// Abbreviations used in this document
@ -62,7 +64,7 @@ As a first example, here is a gloss of a text in Georgian, along with the Typst
transliteration: ([bavšv-i], [aṭirda]),
morphemes: ([child-#smallcaps[nom]], [3S/cry/#smallcaps[incho]/II]),
translation: [The child burst out crying],
)")
)", unevaled-first-line: "#import \"leipzig-gloss.typ\": gloss")
And an example for English which exhibits some additional styling, and uses imports from another file
@ -120,8 +122,6 @@ parameters:
)
")
== Numbering Glosses
The `gloss` function takes a boolean parameter `numbering` which will add an incrementing
@ -196,33 +196,42 @@ way will override any contradictory line-level formatting.
The Leipzig Glossing Rules define a commonly-used set of short abbreviations
for grammatical terms used in glosses, such as #abbreviations.acc for
"accusative (case)", or #abbreviations.ptcp for "participle". By convention,
these are typeset using #smallcaps[smallcaps]. This package contains a module value `abbreviations`. Individual abbreviations may be accessed either
with Typst field access notation or by importing them from `abbreviations`:
"accusative (case)", or #abbreviations.ptcp for "participle" (see "Appendix:
List of Standard Abbreviations in the Leipzig Glossing Rules document)
#gloss(
header: [(from _Why Caucasian Languages?_, Bernard Comrie, in _Endangered Languages of the Caucasus and Beyond_)],
source: ([\[qálɐ-m], [∅-kw-á\]], [ɬ’ə́-r]),
morphemes: ([city-#obl], [3#sg\-go-#prf], [man-#abbreviations.abs]),
translation: "The man who went to the city."
)
By convention, these are typeset using #smallcaps[smallcaps]. This package
contains a module value `abbreviations`. Individual abbreviations may be
accessed either with Typst field access notation or by importing them from
`abbreviations`:
#codeblock-no-eval(
"#import \"leipzig-gloss.typ\": abbreviations
#import abbreviations: obl, sg, prf
#codeblock(
"#import abbreviations: obl, sg, prf
#gloss(
header: [(from _Why Caucasian Languages?_, by Bernard Comrie, in _Endangered Languages of the Caucasus and Beyond_)],
source: ([\[qálɐ-m], [∅-kw-á\]], [ɬ’ə́-r]),
morphemes: ([city-#obl], [3#sg\-go-#prf], [man-#abbreviations.abs]),
translation: \"The man who went to the city.\"
)")
)", addl-bindings: (abbreviations: abbreviations), unevaled-first-line: "#import \"leipzig-gloss.typ\": abbreviations")
The full list of abbreviations available is identical to the list in "Appendix:
List of Standard Abbreviations" of the Leipzig Glossing Rules document.
//TODO document this in full somewhere
The full list of abbreviations is as follows:
== Full list of abbreviations
#{
for (abbreviation, description) in abbreviations.standard-abbreviations {
[#abbreviations.render-abbreviation(abbreviation) - #raw(lower(abbreviation)) - #description ]
linebreak()
}
}
== Building used-abbreviations pages
A user of `leipzig-glossing` might wish to generate an introductory page
displaying which abbreviations were actually used in the document.
= Further Example Glosses