Initial commit

This commit is contained in:
malysheva committed 2026-10-09 04:24:38 +00:00
commit c534d5ce80
163 files changed
+11500

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
// ==========================================
// SHARED: ЧИСТЫЕ СТРАТЕГИИ НУМЕРАЦИИ
// ==========================================
#let cyrillic_letters = (
"А", "Б", "В", "Г", "Д", "Е", "Ж", "И", "К", "Л", "М", "Н", "П",
"Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ш", "Щ", "Э", "Ю", "Я",
)
#let cyrillic_letters_lower = (
"а", "б", "в", "г", "д", "е", "ж", "и", "к", "л", "м", "н", "п",
"р", "с", "т", "у", "ф", "х", "ц", "ш", "щ", "э", "ю", "я",
)
#let cyrillic_numbering = (..nums) => {
let n = nums.pos().first()
if n > 0 and n <= cyrillic_letters.len() {
cyrillic_letters.at(n - 1)
} else {
str(n)
}
}
#let cyrillic_lower_numbering = (..nums) => {
let n = nums.pos().last()
if n > 0 and n <= cyrillic_letters_lower.len() {
cyrillic_letters_lower.at(n - 1)
} else {
str(n)
}
}
#let num_11 = (..nums) => nums.pos().map(str).join(".") + "."
#let num_1a = (..nums) => {
let pos = nums.pos()
let out = ""
for (i, n) in pos.enumerate() {
if calc.rem(i, 2) == 0 {
out += str(n) + "."
} else {
out += cyrillic_lower_numbering(n) + "."
}
}
out
}
#let num_1_a = (..nums) => {
let pos = nums.pos()
let n = pos.last()
if calc.rem(pos.len() - 1, 2) == 0 {
str(n) + "."
} else {
cyrillic_lower_numbering(n) + "."
}
}
#let attachment_numbering(policy, n) = {
if policy == "arabic" {
str(n)
} else if policy == "cyrillic" {
cyrillic_numbering(n)
} else if policy == "none" {
""
} else {
panic("Scientia / attachment-numbering: неизвестная политика " + repr(policy))
}
}