Секция приложений #21

Open
opened 2025-02-04 15:16:14 +00:00 by grigorevde · 2 comments
grigorevde commented 2025-02-04 15:16:14 +00:00 (Migrated from git.csit.sgu.ru)

Предлагаю бекпортнуть следующий код с созданием модуля для секции приложений.

github.com/csit-sgu/typst-template@595837e07a/resources/_template/SCWorks.template.typ (L53C1-L64C2)

Предлагаю бекпортнуть следующий код с созданием модуля для секции приложений. https://github.com/csit-sgu/typst-template/blob/595837e07a8fb8f82cf82e36d908a08112db706a/resources/_template/SCWorks.template.typ#L53C1-L64C2
grigorevde commented 2025-02-04 15:20:11 +00:00 (Migrated from git.csit.sgu.ru)

Screenshot_20250204-191949.jpg

Видимо, приватная репа

![Screenshot_20250204-191949.jpg](/uploads/288ca7742d69d5ba95d653b3ac5686ad/34cba43b-0999-47ef-bc9d-86912db45c9e) Видимо, приватная репа
grigorevde commented 2025-06-12 13:10:39 +00:00 (Migrated from git.csit.sgu.ru)
// https://github.com/typst/typst/issues/1595
#let ru_alph(pattern: "а)") = {
  let alphabet = "абвгдежзиклмнопрстуфхцчшщэюя".split("")
  let f(i) = {
    let letter = alphabet.at(i)
    let str = ""
    for char in pattern {
      if char == "а" {
        str += letter
      } else if char == "А" {
        str += upper(letter)
      } else {
        str += char
      }
    }
    str
  }
  f
}

#let appendix(body)      = {
    counter(heading).update(0)
    set heading(numbering: ru_alph(pattern: "Приложение А")) 
    show heading: it => {
      set align(center)
      set text(_font-size)
      pagebreak(weak: true)
      upper(counter(heading).display(it.numbering))
      _newline + it.body
    }
    body
}

в документе:

у меня в свое время не получалось сделать это никак, кроме let и дальнейшего переопределения секций.
возможно есть способ лучше

// Окончание основного документа и начало приложений. 
// Каждая последующая секция документа будет являться приложением
#show: appendix

= Исходный код программы на Python, осуществляющей исследование производительности полученных реализаций
  #lorem(20)
``` // https://github.com/typst/typst/issues/1595 #let ru_alph(pattern: "а)") = { let alphabet = "абвгдежзиклмнопрстуфхцчшщэюя".split("") let f(i) = { let letter = alphabet.at(i) let str = "" for char in pattern { if char == "а" { str += letter } else if char == "А" { str += upper(letter) } else { str += char } } str } f } #let appendix(body) = { counter(heading).update(0) set heading(numbering: ru_alph(pattern: "Приложение А")) show heading: it => { set align(center) set text(_font-size) pagebreak(weak: true) upper(counter(heading).display(it.numbering)) _newline + it.body } body } ``` в документе: у меня в свое время не получалось сделать это никак, кроме let и дальнейшего переопределения секций. возможно есть способ лучше ``` // Окончание основного документа и начало приложений. // Каждая последующая секция документа будет являться приложением #show: appendix = Исходный код программы на Python, осуществляющей исследование производительности полученных реализаций #lorem(20) ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
grigorevde/typst-template#21
No description provided.