Initial commit
This commit is contained in:
commit
41d230d524
163 files changed
+11500
No files matched your search
@@ -0,0 +1,105 @@
|
||||
// ==========================================
|
||||
// НУМЕРАЦИЯ, КИРИЛЛИЦА И ФОРМАТЫ СПИСКОВ
|
||||
// ==========================================
|
||||
|
||||
// Глобальный массив кириллических букв для нумерации по ГОСТ
|
||||
// (обычно исключают Ё, З, Й, О, Ч, Ь, Ы, Ъ)
|
||||
#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)
|
||||
}
|
||||
}
|
||||
|
||||
// Формат 1.1. (наследует всех родителей)
|
||||
#let num_11 = (..nums) => nums.pos().map(str).join(".") + "."
|
||||
|
||||
// Формат 1.а. (наследует всех родителей, чередует цифры и кириллицу)
|
||||
#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 {
|
||||
let letter = if n > 0 and n <= cyrillic_letters_lower.len() {
|
||||
cyrillic_letters_lower.at(n - 1)
|
||||
} else {
|
||||
str(n)
|
||||
}
|
||||
out += letter + "."
|
||||
}
|
||||
}
|
||||
out
|
||||
}
|
||||
|
||||
// Формат 1., а. (без наследования родителей, чередует цифры и кириллицу)
|
||||
#let num_1_a = (..nums) => {
|
||||
let pos = nums.pos()
|
||||
let n = pos.last()
|
||||
if calc.rem(pos.len() - 1, 2) == 0 { str(n) + "." } else {
|
||||
let letter = if n > 0 and n <= cyrillic_letters_lower.len() {
|
||||
cyrillic_letters_lower.at(n - 1)
|
||||
} else {
|
||||
str(n)
|
||||
}
|
||||
letter + "."
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user