diff --git a/example.typ b/example.typ index 1347d99..95db689 100644 --- a/example.typ +++ b/example.typ @@ -392,6 +392,30 @@ Při dalších použití bude vypadat takto: #abbr("ZK"). Tedy zkratku _nepřidáváte_ přímo do seznamu zkratek, ale elegantně jí používáte přímo v textu. ] +== Přílohy + +V některých typech dokumentů budete chtít přidat přílohy. Přílohy se přikládají v různých podobách: + +- Jako odkaz (URL/URI adresa) +- Zmínka externího souboru (například další soubor nahraný do systému) +- Přiložený obsah (vygenerovaný Typstem v tomto dokumentu -- je tedy součástí tohoto kódu) +- Externí PDF soubor přiložený jako obsah (jiný PDF dokument, vložený do příloh v kompletní + podobě -- to je dobré například do tisku, kde můžete přílohy vytisknout s dokumentem) + +#highlight[ + Přílohy lze definovat *pouze na jednom* místě v dokumentu, aby se zabránilo omylnému opakování + příloh. Přílohy doporučujeme definovat *na konci* souboru pro přehlednost. +] + +Zde je ukázka definice příloh (je také použita na konci tohoto ukázkového souboru): + +```typst +#attachments( + attach_link("Zdrojový kód této šablony", "https://git.zumepro.cz/tul/tultemplate2"), + attach_content("Testovací obsah vygenerovaný Typstem", [Sem lze psát _stylovaný_ obsah.]), +) +``` + = Workflow a jak si zjednoduššit práci Tyhle věci používat _nemusíte_, aby vám šablona fungovala. Nicméně často jsou poměrně fajn. @@ -454,3 +478,8 @@ Takhle si můžete předpřipravit délku odstavců a vyzkoušet si, jestli se r do požadavků. Pak můžete postupně přepisovat/vyplňovat. Funkce `todo` vám zároveň zabrání v tom, aby se text Lorem Ipsum vyskytl ve výsledném dokumentu. + +#attachments( + attach_link("Zdrojový kód této šablony", "https://git.zumepro.cz/tul/tultemplate2"), + attach_content("Testovací obsah vygenerovaný Typstem", [Sem lze psát _stylovaný_ obsah.]), +) diff --git a/template/attachments.typ b/template/attachments.typ index 71d4aca..a003ccf 100644 --- a/template/attachments.typ +++ b/template/attachments.typ @@ -60,7 +60,8 @@ } } -#let attachments(attachments) = { +#let attachments(..attachments) = { + let attachments = attachments.pos(); assert_type_signature( attachments, "array[array[string | content]] | array[string | content]", "attachments" ); @@ -117,6 +118,9 @@ return; } let data = eval(data); + if data == false { + return; + } heading(get_lang_item(language, "attachments"), numbering: none); // listing diff --git a/template/classic/classic.typ b/template/classic/classic.typ index 37c5a9b..a04aa45 100644 --- a/template/classic/classic.typ +++ b/template/classic/classic.typ @@ -33,7 +33,7 @@ faculty_id, faculty_color(faculty_id), language, - assignment_document, + map_none(assignment_document, (v) => "../../" + v), map_none(citation_file, (v) => "../../" + v), title, author, diff --git a/template/classic/common.typ b/template/classic/common.typ index 53c3741..5d072df 100644 --- a/template/classic/common.typ +++ b/template/classic/common.typ @@ -123,6 +123,7 @@ ) = { let info_name_value_padding = 5em; let info_name_min_width = 10em; + let gutter = .7em; // document type if type(document_type) != type(none) { @@ -156,7 +157,7 @@ }), info_name_min_width.to-absolute()); grid( columns: 2, - gutter: .7em, + gutter: gutter, ..info_fields.filter((v) => { type(v.at(1)) != type(none) }).map((v) => { ( align(top, block( @@ -168,7 +169,7 @@ }).flatten(), ); v(1em); - h(max_field_name_width + info_name_value_padding); + h(max_field_name_width + info_name_value_padding + gutter); text(get_lang_item(language, "city") + " " + str(datetime.today().year()), font: base_font); } }