From c9e56a75b153b83ec5e8b61fef59efec45baddf8 Mon Sep 17 00:00:00 2001 From: Anton Bilous Date: Thu, 13 Feb 2025 19:32:38 +0200 Subject: [PATCH] add source to img function --- coursework_example.pdf | Bin 156603 -> 156603 bytes lab_example.pdf | Bin 49576 -> 49576 bytes template.typ | 37 +++++++++++++++++++------------------ 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/coursework_example.pdf b/coursework_example.pdf index a87f21637171f1e9dec07445e9fd8172892d1f8e..e8eeecce2bd7456fd3fcc6ef012707e4430b0f64 100644 GIT binary patch delta 119 zcmdmeoOAba&W0AoElhX9Sf@iEFscQdUl i-<-6EkCENL%GlfrsHJ?b9*n(t&EAu^G)?Y4C<_27pCzII diff --git a/template.typ b/template.typ index a69458b..221310f 100644 --- a/template.typ +++ b/template.typ @@ -20,23 +20,23 @@ /// - `img/image.png` = @image /// - `img/foo/image.png` = @foo_image /// - `img/foo/foo_image.png` = @foo_image -#let img(path, caption) = [ - #let parts = path.split(".").first().split("/") +/// if source is specified, it will be appended to the caption as " (за даними `source`)" +/// otherwise " (рисунок виконано самостійно)" will be appended to the caption +#let img(path, caption, source: none) = { + let parts = path.split(".").first().split("/") - #figure( - image(path), - caption: caption, - ) - #label( - if parts.len() <= 2 or parts.at(-1).starts-with(parts.at(-2)) { - // ("image",), (_, "image") and (.., "img", "img_image") - parts.last() - } else { - // (.., "img", "image") = "img_image" - parts.at(-2) + "_" + parts.at(-1) - }.replace(" ", "_"), - ) -] + let label_string = if parts.len() <= 2 or parts.at(-1).starts-with(parts.at(-2)) { + // ("image",), (_, "image") and (.., "img", "img_image") + parts.last() + } else { + // (.., "img", "image") = "img_image" + parts.at(-2) + "_" + parts.at(-1) + }.replace(" ", "_") + + caption = [#caption #if source != none [(за даними #source)] else [(рисунок виконано самостійно)]] + + [#figure(image(path), caption: caption) #label(label_string)] +} /// subjects list #let subjects = ( @@ -451,8 +451,9 @@ #context [ #let pages = counter(page).final().at(0) - #let tables = counter("table").final().at(0) - #let images = counter("image").final().at(0) + #let tables = counter(figure.where(kind: table)).final().at(0) + // alternative: query(figure.where(kind: image)).len() + #let images = counter(figure.where(kind: image)).final().at(0) #let bibs = bib-count.final().dedup().len() #let counters = ()