From b5e1f1d663e845f75f245c52e395a05211a2fcf8 Mon Sep 17 00:00:00 2001 From: Matej-Zucha-TUL Date: Tue, 7 Oct 2025 18:12:23 +0200 Subject: [PATCH] Add BP and DP example in Czech --- theses/BP_cs/BP.typ | 312 ++++++++++++++++++++++++++++++++++++++++ theses/BP_cs/citace.bib | 15 ++ theses/BP_cs/zadani.pdf | Bin 0 -> 17637 bytes theses/DP_cs/DP.typ | 311 +++++++++++++++++++++++++++++++++++++++ theses/DP_cs/citace.bib | 15 ++ theses/DP_cs/zadani.pdf | Bin 0 -> 17637 bytes 6 files changed, 653 insertions(+) create mode 100644 theses/BP_cs/BP.typ create mode 100644 theses/BP_cs/citace.bib create mode 100644 theses/BP_cs/zadani.pdf create mode 100644 theses/DP_cs/DP.typ create mode 100644 theses/DP_cs/citace.bib create mode 100644 theses/DP_cs/zadani.pdf diff --git a/theses/BP_cs/BP.typ b/theses/BP_cs/BP.typ new file mode 100644 index 0000000..843f4ed --- /dev/null +++ b/theses/BP_cs/BP.typ @@ -0,0 +1,312 @@ +#import "../../template/template.typ": * + +#show: tultemplate2.with( + style: "classic", + faculty: "fm", + lang: "cs", + document: "bp", + title: (cs: "Ukázka dokumentu typu Bakalářská práce pro FM TUL v češtině", en: "Example document for a Bachelor's thesis for FM TUL in Czech"), + author: "Matěj Žucha", + author_pronouns: "masculine", + supervisor: "Ondřej Mekina", + consultant: "Michal Procházka (nepovinný údaj)", + programme: (cs: "Můj krásný studijní program"), + branch: (cs: "Můj krásný studijní obor"), + abstract: ( + cs: + "Tento dokument slouží jako praktická ukázka všech důležitcýh funkcí šablony _tultemplate2_, s názornými příklady použítí a jejich podrobným popisem.", + en: + "This document serves as a practical demonstration of all the important features of the _tultemplate2_ template, with useful examples and their respective descriptions.", + ), + keywords: (cs: ("Ukázka", "Klíčových", "Slov", "Česky"), en: ("Example", "Keywords", "In", "English")), + acknowledgement: (cs: "Lorem ipsum dolor sit amet."), + assignment: "theses/BP_cs/zadani.pdf", + citations: "theses/BP_cs/citace.bib", +) + += Co najdete v této šabloně + +Tato šablona má sloužit jako ukázková bakalářská práce napsaná pomocí jazyka *Typst* a šablony +*tultemplate2*. Může posloužit jako jednoduchý základ i pro vaši práci, stačí se naučit používat +pár užitečných funkcí, jako např. vkládání obrázků, tabulek, citací nebo odkazů. + +Na rozdíl od souboru _example.typ_, který je dostupný ke stažení na stránkách projektu, obsahuje +tento dokument jenom to nejpotřebnější ze znalostí, co postačí k úspěšnému napsání práce. Jen pro +úplnost je zde ve zkratce něco málo o jazyce typst a motivaci k tvorbě této šablony: + +Typst je profesionální sázecí nástroj podobný markdownu, LaTeXu/TeXu, groffu, atd. + +Typst je moderní obdobou starších nástrojů, které postrádají spoustu důležitých funkcí, bez kterých +se v dnešní době prakticky nedá fungovat. Uživatel často musí importovat nepřeberné množství +balíčků, které poskytují (podle mě) naprosto základní funkcionalitu - jako například správná podpora +UTF-8 znaků, formátování prvků na základě jazykového lokálu, apod. + += Začínáme se šablonou + +Tuto šablonu jste si pravděpodobně stáhli z generátoru na webu www.tulsablona.cz a vložili ji do Typst +online editoru. Tím pádem vidíte kromě zdrojového kódu také výsledný PDF soubor. Jak už asi víte, hlavní +rozdíl mezi tradičními textovými procesory jako Microsoft Word nebo LibreOffice Writer a mezi sázecími +programy jako LaTeX nebo Typst je právě způsob, kterým se upravuje vzhled a obsah dokumentu. + +Zatímco ve Wordu jsou uživatelé zvyklí, že pomocí tlačítek a klávesových zkratek mění dokument napřímo, +Typst (a i LaTeX) používají tzv. zdrojový soubor, který není ničím jiným než obyčejným textovým souborem, +a následně na vyžádání umí tento zdrojový soubor zkompilovat tj. proměnit na výsledný dokument, např. ve formátu PDF. + +Proto zde najdete popis všech důležitých funkcí nikoliv jako galerii obrázků toho, na která tlačítka se má +klikat, nýbrž jako ukázka a návod všech speciálních sekvencí textu, které Typst podporuje a které šablona vyhodnocuje jinak než obsah zprávy. + +== Odstavce + +Jak jsou někteří z vás možná zvyklí z Markdownu, odstavce, nadpisy a vlastně pro přehlednost všechny +logicky oddělené bloky se oddělují prázným řádkem. Toho jste si jistě mohli při prohlížení tohoto souboru +všimnout. Můžete si vyzkoušet, co se stane, když +použijete jenom ukončení řádku enterem, + +nebo když použijete zmíněný prázdný řádek, + + + +anebo co se stane při použití dvou a více prázdných řádků. (spoiler: 1 a více prázdných řádků mají identické +chování, pouze ukončení řádku je interpretováno stejně jako např. mezerník) + +Uživatel má tím pádem svobodu v tom, jestli ve zdrojovém souboru používá dlouhé řádky plné textu, +nebo +má +raději +přehlednější +formátování +a sám si obsah dělí na řádky, protože ve výsledném PDF souboru se stejně spojí do jednoho celistvého odstavce. + +S souvislosti s odstavci bych ještě zmínil, že Typst se za vás stará také o zarovnávání písma a slov do bloků +a dělení slov mezi řádky. Chováním odpovídá pravidlům českého pravopisu a typografie, takže se o to nemusíte vůbec starat. + +== Nadpisy + +První důležitá funkce kromě psaní samotného textu, k čemuž není zapotřebí žádná speciální syntax, jsou nadpisy. +Stejně jako v jiných programech, i Typst podporuje nadpisy více úrovní. Pro nadpis první úrovně se používá znaménko +rovná se a mezera na začátku řádku, čili ve zdrojovém souboru Typstu je používán takto: + +```typst += Můj nadpis první úrovně +``` + +Pro nadpis druhé úrovně pak použijeme dvě rovná se, pro nadpis třetí úrovně tři rovná se... Úrovní podnadpisů je dost na to, že vám pravděpodobně nedojdou. + +```typst += Nadpis +== Podnadpis +=== Podpodnadpis +==== už tomu asi rozumíte ... + +A pak obsah +``` + + +== Číslování kapitol + +Asi jste si všimli, že každý nadpis začíná číslem dané kapitoly. Toto číslování provádí Typst automaticky, promítne se následně i v sekci Obsah na začátku souboru, nemusíte se tak opět o nic starat. + +```typst += Nadpis +== Podnadpis +=== Podpodnadpis +==== už tomu asi rozumíte ... + +A pak obsah. +``` + += Používání funkcí + +Používání většiny funkcionalit Typstu je prováděno pomocí tzv. volání funkce. Je to velmi podobné předchozím ukázkám, +akorát místo toho, aby se text obalil pouze jedním symbolem či podobnou jednoduchou značkou, obalíme text jménem dané funkce. Syntaxe vypadá nějak takto: +```typst +#Název_funkce[samotný text nebo jiné parametry] +``` +Pokud v editoru napíšete symbol hashtagu, začne vám automaticky našeptávat všechny možné funkce a jejich popisy. Přejdeme rovnou k dalším praktickým příkladům. + +== Zvýrazňování textu + +Syntaxe základního zvýraznění je velmi podobná například Markdownu. Stačí použít následující symboly: + +```typst +*tučně* +_kurzívou_ +``` + +Další stylování lze dělat právě přes funkce, viz třeba: + +```typst +#underline[podtrženo] +#strike[přeškrtnuto] +#highlight[zvýrazněno] +``` + +Pro úplnost a ukázku je zde přímo v textu *tučný text*, _text kurzívou_, #underline[podtržený text], #strike[přeškrtnutý text] a #highlight[text zvýrazněný podle barvy příslušící vaší fakultě]. + +== Odkazy + +Odkazy je možné dělat na URL/URI zdroje, e-maily, telefony, atd... +Odkázat URL (URI) je možné bez zavolání funkce, odkaz stačí prostě a jednodušše napsat: +https://git.zumepro.cz/tul/tultemplate2 + +```typst +https://git.zumepro.cz/tul/tultemplate2 +``` + +Tohle interně volá funkci `link`. + +Pokud odkazujeme na méně časté věci (jako e-maily), můžeme použít funkci `link` přímo. +```typst +#link("mailto:ondrej@mekina.cz") +``` + +Dalši předpony (URI schémata) můžete najít třeba na Wikipedii +https://en.wikipedia.org/wiki/List_of_URI_schemes. + +== Obrázky + +Obrázky je možné vkládat samotné, nebo i s popiskem. + +Obrázek se vloží pomocí funkce `image`: + +Přidání popisku a zároveň zalistování obrázku v indexu (aby se na ně třeba dalo odkazovat) lze +udělat pomocí funkce `figure`. + +#block([ + ```typst + #figure( + image("mujobrazek.jpg"), + caption: [ + *Krásný* obrázek, který vypadá jako obrázek. + ] + ) + ``` +], breakable: false) + +Tady je praktická ukázka jednoduchého vložení obrázku s popiskem: + +#figure(image("../../template/assets/tul_logo.svg", width: 25%), caption: [ + Logo *TUL* +]) + +První parametr funkce je zobrazovaný obsah, v našem případě zmíněný `image`. K němu můžeme psát různé parametry, v příkladu máme třeba nastavení šířky obrázku v procentech. Jako poslední je parametr `caption`, s jehož pomocí můžeme nastavit popisek obrázku/figury. + +Obrázky se zobrazí na začátku dokumentu v seznamu (pokud to daný typ dokumentu vyžaduje). I toto za vás Typst dělá automaticky, vám tak stačí do textu přidávat obrázky, jak se to hodí, a všechny se poté korektně zobrazí v Seznamu obrázků s odkazem i správně uvedenou stránkou, na které se obrázek nachází. Obrázky jsou také automaticky číslovány podle předepsaného způsobu, podobně jako kapitoly. + +== Tabulky + +Tabulky lze vytvářet takto: + +```typst +#figure(table( + columns: 3, + table.header([], [*Sloupec 1*], [*Sloupec 2*]), + [*Řádek 1*], [a], [b], + [*Řádek 2*], [c], [d], +), caption: "Moje krásná tabulka") +``` + +Parametr `columns` udává počet sloupců tabulky. Poté následuje libovolný počet buněk tabulky, pro lepší přehlednost jsou v příkladu jednotlivé řádky oddělené. Nakonec je zde opět parametr `caption` sloužící k zadání popisku tabulky. + +#highlight[Hlavičku tabulky (první řádek) je dobré zabalit do funkce header (viz. výše)], to je +kvůli tomu, že Typst do vygenerovaného PDF souboru poté přidá metadata (například pro osoby se +zrakovým postižením). + +#figure(table( + columns: 3, + table.header([], [*Sloupec 1*], [*Sloupec 2*]), + [*Řádek 1*], [a], [b], + [*Řádek 2*], [c], [d], +), caption: "Moje krásná tabulka") + +Tabulky se zobrazí na začátku dokumentu v seznamu (pokud to daný typ dokumentu vyžaduje). Jak už jste asi pochopili, i toto provede šablona automaticky. + +== Citace + +Šablona podporuje správu citací pomocí standardního BibTeX @bibtex souboru, stejně jako +například LaTeX. Generování citací v BibTeX zápisu umí téměř každá stránka nebo program, které mají pro citace podporu. +Kód takovéto citace ve vhodném formátu stačí přidat do souboru _citations.bib_, poté je možné se +na ně odkazovat pomocí `@jmeno_citace`, nebo `#cite()`. Můžu se tak třeba odkázat na +citaci Typstu #cite(). + +Formát souboru _citations.bib_ je naprosto stejný jako pro LaTeX. Tyto citace lze přímo vložit +třeba z webu https://www.citace.com ve formátu BibTeX -- Typst tento formát také umí přečíst. +Můžete se do souboru s příponou .bib podívat, zjistíte, že je to opravdu jen obyčejný textový soubor se specifickou strukturou. +V přiloženém ukázkovém souboru už nějaké citace jsou - např. již použitá citace se jménem `typst`. + +Soubor, ze kterého se načtou citace lze změnit pomocí argumentu šablony (tj. struktura na začátku souboru): + +```typst +#show: tultemplate2.with( + ... + citations: "jinysoubor.bib", + ... +) +``` + +== Vnitřní odkazy a kotvy + +Trochu navážeme na Odkazy (@links). + +Můžete dělat i vnitřní odkazy třeba na kapitoly, stránky nebo obrázky s popiskem (zabalené ve +`figure`). + +```typst += Dobrá kapitola + +Podívejme se na Dobrou kapitolu (@dobra_kapitola). +``` + +Takhle vypadá kotva: + +```typst + +``` + +Kotvu dáte někam do souboru a můžete na ní odkazovat stejně jako na citace: + +```typst +@nazev_kotvy +``` +Můžeme se podívat na názornou ukázku odkazu (@ukazka_odkazu). + +== Zkratky + +LaTeX TUL šablona má k začátku dokumentu seznam zkratek. Proto jsme ho přidali i do této šablony. +Seznam zkratek je v této šabloně nastaven tak, aby se zobrazoval pouze pokud je v něm alespoň jedna +zkratka (přišlo nám to poměrně logické). + +Zkratku #abbr("ABC", "Abeceda") vytvoříte (definujete) pomocí: + +```typst +#abbr("ABC", "Abeceda") +``` + +Potom zkratku #abbr("ABC") už můžete použít přímo (bez opakované definice): + +```typst +#abbr("ABC") +``` + +Šablona zajistí následující věci: +- Zkratka se zobrazí v seznamu zkratek +- Při prvním použití zkratky vás šablona donutí zkratku definovat +- Definice zkratky bude použita právě jednou (poprvé) + +Při prvním použití zkratky (při definici) bude zkratka v textu vypadat takto: +#abbr("ZK", "Zkratka"). +Při dalších použití bude vypadat takto: #abbr("ZK"). + +#highlight[ + Tedy zkratku _nepřidáváte_ přímo do seznamu zkratek, ale elegantně jí používáte přímo v textu. +] + +== Přílohy + +Na konec souboru (nebo klidně doprostřed či na začátek, hlavní je, že pouze jednou) je také možné dát strukturu generující přílohy. Momentálně jsou podporované dva typy příloh, odkaz a obsah. +Jako demonstrace by měla postačit praktická ukázka, která ve zdrojovém kódu následuje hned za tímto odstavcem, a která generuje přílohy tohoto 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/theses/BP_cs/citace.bib b/theses/BP_cs/citace.bib new file mode 100644 index 0000000..35be945 --- /dev/null +++ b/theses/BP_cs/citace.bib @@ -0,0 +1,15 @@ +@misc{ typst, + author = "Wikidata", + title = "Q117858460 --- Wikidata{,} ", + year = "2025", + url = "https://www.wikidata.org/w/index.php?title=Q117858460&oldid=2404700455", + note = "[Online; cit. 24-Zář-2025]" +} + +@misc{ bibtex, + author = "{Wikipedia contributors}", + title = "BibTeX --- {Wikipedia}{,} The Free Encyclopedia", + year = "2025", + url = "https://en.wikipedia.org/w/index.php?title=BibTeX&oldid=1309039867", + note = "[Online; cit 24-Zář-2025]" +} diff --git a/theses/BP_cs/zadani.pdf b/theses/BP_cs/zadani.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1538ac9db2d0243aa131f56c5d8567acc4282b9 GIT binary patch literal 17637 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 BYa{>w literal 0 HcmV?d00001 diff --git a/theses/DP_cs/DP.typ b/theses/DP_cs/DP.typ new file mode 100644 index 0000000..e604fbb --- /dev/null +++ b/theses/DP_cs/DP.typ @@ -0,0 +1,311 @@ +#import "../../template/template.typ": * + +#show: tultemplate2.with( + style: "classic", + faculty: "fm", + lang: "cs", + document: "dp", + title: (cs: "Ukázka dokumentu typu Diplomová práce pro FM TUL v češtině", en: "Example document for a Master's thesis for FM TUL in Czech"), + author: "Matěj Žucha", + author_pronouns: "masculine", + supervisor: "Ondřej Mekina", + consultant: "Michal Procházka (nepovinný údaj)", + programme: (cs: "Můj krásný studijní program"), + abstract: ( + cs: + "Tento dokument slouží jako praktická ukázka všech důležitcýh funkcí šablony _tultemplate2_, s názornými příklady použítí a jejich podrobným popisem.", + en: + "This document serves as a practical demonstration of all the important features of the _tultemplate2_ template, with useful examples and their respective descriptions.", + ), + keywords: (cs: ("Ukázka", "Klíčových", "Slov", "Česky"), en: ("Example", "Keywords", "In", "English")), + acknowledgement: (cs: "Lorem ipsum dolor sit amet."), + assignment: "theses/DP_cs/zadani.pdf", + citations: "theses/DP_cs/citace.bib", +) + += Co najdete v této šabloně + +Tato šablona má sloužit jako ukázková bakalářská práce napsaná pomocí jazyka *Typst* a šablony +*tultemplate2*. Může posloužit jako jednoduchý základ i pro vaši práci, stačí se naučit používat +pár užitečných funkcí, jako např. vkládání obrázků, tabulek, citací nebo odkazů. + +Na rozdíl od souboru _example.typ_, který je dostupný ke stažení na stránkách projektu, obsahuje +tento dokument jenom to nejpotřebnější ze znalostí, co postačí k úspěšnému napsání práce. Jen pro +úplnost je zde ve zkratce něco málo o jazyce typst a motivaci k tvorbě této šablony: + +Typst je profesionální sázecí nástroj podobný markdownu, LaTeXu/TeXu, groffu, atd. + +Typst je moderní obdobou starších nástrojů, které postrádají spoustu důležitých funkcí, bez kterých +se v dnešní době prakticky nedá fungovat. Uživatel často musí importovat nepřeberné množství +balíčků, které poskytují (podle mě) naprosto základní funkcionalitu - jako například správná podpora +UTF-8 znaků, formátování prvků na základě jazykového lokálu, apod. + += Začínáme se šablonou + +Tuto šablonu jste si pravděpodobně stáhli z generátoru na webu www.tulsablona.cz a vložili ji do Typst +online editoru. Tím pádem vidíte kromě zdrojového kódu také výsledný PDF soubor. Jak už asi víte, hlavní +rozdíl mezi tradičními textovými procesory jako Microsoft Word nebo LibreOffice Writer a mezi sázecími +programy jako LaTeX nebo Typst je právě způsob, kterým se upravuje vzhled a obsah dokumentu. + +Zatímco ve Wordu jsou uživatelé zvyklí, že pomocí tlačítek a klávesových zkratek mění dokument napřímo, +Typst (a i LaTeX) používají tzv. zdrojový soubor, který není ničím jiným než obyčejným textovým souborem, +a následně na vyžádání umí tento zdrojový soubor zkompilovat tj. proměnit na výsledný dokument, např. ve formátu PDF. + +Proto zde najdete popis všech důležitých funkcí nikoliv jako galerii obrázků toho, na která tlačítka se má +klikat, nýbrž jako ukázka a návod všech speciálních sekvencí textu, které Typst podporuje a které šablona vyhodnocuje jinak než obsah zprávy. + +== Odstavce + +Jak jsou někteří z vás možná zvyklí z Markdownu, odstavce, nadpisy a vlastně pro přehlednost všechny +logicky oddělené bloky se oddělují prázným řádkem. Toho jste si jistě mohli při prohlížení tohoto souboru +všimnout. Můžete si vyzkoušet, co se stane, když +použijete jenom ukončení řádku enterem, + +nebo když použijete zmíněný prázdný řádek, + + + +anebo co se stane při použití dvou a více prázdných řádků. (spoiler: 1 a více prázdných řádků mají identické +chování, pouze ukončení řádku je interpretováno stejně jako např. mezerník) + +Uživatel má tím pádem svobodu v tom, jestli ve zdrojovém souboru používá dlouhé řádky plné textu, +nebo +má +raději +přehlednější +formátování +a sám si obsah dělí na řádky, protože ve výsledném PDF souboru se stejně spojí do jednoho celistvého odstavce. + +S souvislosti s odstavci bych ještě zmínil, že Typst se za vás stará také o zarovnávání písma a slov do bloků +a dělení slov mezi řádky. Chováním odpovídá pravidlům českého pravopisu a typografie, takže se o to nemusíte vůbec starat. + +== Nadpisy + +První důležitá funkce kromě psaní samotného textu, k čemuž není zapotřebí žádná speciální syntax, jsou nadpisy. +Stejně jako v jiných programech, i Typst podporuje nadpisy více úrovní. Pro nadpis první úrovně se používá znaménko +rovná se a mezera na začátku řádku, čili ve zdrojovém souboru Typstu je používán takto: + +```typst += Můj nadpis první úrovně +``` + +Pro nadpis druhé úrovně pak použijeme dvě rovná se, pro nadpis třetí úrovně tři rovná se... Úrovní podnadpisů je dost na to, že vám pravděpodobně nedojdou. + +```typst += Nadpis +== Podnadpis +=== Podpodnadpis +==== už tomu asi rozumíte ... + +A pak obsah +``` + + +== Číslování kapitol + +Asi jste si všimli, že každý nadpis začíná číslem dané kapitoly. Toto číslování provádí Typst automaticky, promítne se následně i v sekci Obsah na začátku souboru, nemusíte se tak opět o nic starat. + +```typst += Nadpis +== Podnadpis +=== Podpodnadpis +==== už tomu asi rozumíte ... + +A pak obsah. +``` + += Používání funkcí + +Používání většiny funkcionalit Typstu je prováděno pomocí tzv. volání funkce. Je to velmi podobné předchozím ukázkám, +akorát místo toho, aby se text obalil pouze jedním symbolem či podobnou jednoduchou značkou, obalíme text jménem dané funkce. Syntaxe vypadá nějak takto: +```typst +#Název_funkce[samotný text nebo jiné parametry] +``` +Pokud v editoru napíšete symbol hashtagu, začne vám automaticky našeptávat všechny možné funkce a jejich popisy. Přejdeme rovnou k dalším praktickým příkladům. + +== Zvýrazňování textu + +Syntaxe základního zvýraznění je velmi podobná například Markdownu. Stačí použít následující symboly: + +```typst +*tučně* +_kurzívou_ +``` + +Další stylování lze dělat právě přes funkce, viz třeba: + +```typst +#underline[podtrženo] +#strike[přeškrtnuto] +#highlight[zvýrazněno] +``` + +Pro úplnost a ukázku je zde přímo v textu *tučný text*, _text kurzívou_, #underline[podtržený text], #strike[přeškrtnutý text] a #highlight[text zvýrazněný podle barvy příslušící vaší fakultě]. + +== Odkazy + +Odkazy je možné dělat na URL/URI zdroje, e-maily, telefony, atd... +Odkázat URL (URI) je možné bez zavolání funkce, odkaz stačí prostě a jednodušše napsat: +https://git.zumepro.cz/tul/tultemplate2 + +```typst +https://git.zumepro.cz/tul/tultemplate2 +``` + +Tohle interně volá funkci `link`. + +Pokud odkazujeme na méně časté věci (jako e-maily), můžeme použít funkci `link` přímo. +```typst +#link("mailto:ondrej@mekina.cz") +``` + +Dalši předpony (URI schémata) můžete najít třeba na Wikipedii +https://en.wikipedia.org/wiki/List_of_URI_schemes. + +== Obrázky + +Obrázky je možné vkládat samotné, nebo i s popiskem. + +Obrázek se vloží pomocí funkce `image`: + +Přidání popisku a zároveň zalistování obrázku v indexu (aby se na ně třeba dalo odkazovat) lze +udělat pomocí funkce `figure`. + +#block([ + ```typst + #figure( + image("mujobrazek.jpg"), + caption: [ + *Krásný* obrázek, který vypadá jako obrázek. + ] + ) + ``` +], breakable: false) + +Tady je praktická ukázka jednoduchého vložení obrázku s popiskem: + +#figure(image("../../template/assets/tul_logo.svg", width: 25%), caption: [ + Logo *TUL* +]) + +První parametr funkce je zobrazovaný obsah, v našem případě zmíněný `image`. K němu můžeme psát různé parametry, v příkladu máme třeba nastavení šířky obrázku v procentech. Jako poslední je parametr `caption`, s jehož pomocí můžeme nastavit popisek obrázku/figury. + +Obrázky se zobrazí na začátku dokumentu v seznamu (pokud to daný typ dokumentu vyžaduje). I toto za vás Typst dělá automaticky, vám tak stačí do textu přidávat obrázky, jak se to hodí, a všechny se poté korektně zobrazí v Seznamu obrázků s odkazem i správně uvedenou stránkou, na které se obrázek nachází. Obrázky jsou také automaticky číslovány podle předepsaného způsobu, podobně jako kapitoly. + +== Tabulky + +Tabulky lze vytvářet takto: + +```typst +#figure(table( + columns: 3, + table.header([], [*Sloupec 1*], [*Sloupec 2*]), + [*Řádek 1*], [a], [b], + [*Řádek 2*], [c], [d], +), caption: "Moje krásná tabulka") +``` + +Parametr `columns` udává počet sloupců tabulky. Poté následuje libovolný počet buněk tabulky, pro lepší přehlednost jsou v příkladu jednotlivé řádky oddělené. Nakonec je zde opět parametr `caption` sloužící k zadání popisku tabulky. + +#highlight[Hlavičku tabulky (první řádek) je dobré zabalit do funkce header (viz. výše)], to je +kvůli tomu, že Typst do vygenerovaného PDF souboru poté přidá metadata (například pro osoby se +zrakovým postižením). + +#figure(table( + columns: 3, + table.header([], [*Sloupec 1*], [*Sloupec 2*]), + [*Řádek 1*], [a], [b], + [*Řádek 2*], [c], [d], +), caption: "Moje krásná tabulka") + +Tabulky se zobrazí na začátku dokumentu v seznamu (pokud to daný typ dokumentu vyžaduje). Jak už jste asi pochopili, i toto provede šablona automaticky. + +== Citace + +Šablona podporuje správu citací pomocí standardního BibTeX @bibtex souboru, stejně jako +například LaTeX. Generování citací v BibTeX zápisu umí téměř každá stránka nebo program, které mají pro citace podporu. +Kód takovéto citace ve vhodném formátu stačí přidat do souboru _citations.bib_, poté je možné se +na ně odkazovat pomocí `@jmeno_citace`, nebo `#cite()`. Můžu se tak třeba odkázat na +citaci Typstu #cite(). + +Formát souboru _citations.bib_ je naprosto stejný jako pro LaTeX. Tyto citace lze přímo vložit +třeba z webu https://www.citace.com ve formátu BibTeX -- Typst tento formát také umí přečíst. +Můžete se do souboru s příponou .bib podívat, zjistíte, že je to opravdu jen obyčejný textový soubor se specifickou strukturou. +V přiloženém ukázkovém souboru už nějaké citace jsou - např. již použitá citace se jménem `typst`. + +Soubor, ze kterého se načtou citace lze změnit pomocí argumentu šablony (tj. struktura na začátku souboru): + +```typst +#show: tultemplate2.with( + ... + citations: "jinysoubor.bib", + ... +) +``` + +== Vnitřní odkazy a kotvy + +Trochu navážeme na Odkazy (@links). + +Můžete dělat i vnitřní odkazy třeba na kapitoly, stránky nebo obrázky s popiskem (zabalené ve +`figure`). + +```typst += Dobrá kapitola + +Podívejme se na Dobrou kapitolu (@dobra_kapitola). +``` + +Takhle vypadá kotva: + +```typst + +``` + +Kotvu dáte někam do souboru a můžete na ní odkazovat stejně jako na citace: + +```typst +@nazev_kotvy +``` +Můžeme se podívat na názornou ukázku odkazu (@ukazka_odkazu). + +== Zkratky + +LaTeX TUL šablona má k začátku dokumentu seznam zkratek. Proto jsme ho přidali i do této šablony. +Seznam zkratek je v této šabloně nastaven tak, aby se zobrazoval pouze pokud je v něm alespoň jedna +zkratka (přišlo nám to poměrně logické). + +Zkratku #abbr("ABC", "Abeceda") vytvoříte (definujete) pomocí: + +```typst +#abbr("ABC", "Abeceda") +``` + +Potom zkratku #abbr("ABC") už můžete použít přímo (bez opakované definice): + +```typst +#abbr("ABC") +``` + +Šablona zajistí následující věci: +- Zkratka se zobrazí v seznamu zkratek +- Při prvním použití zkratky vás šablona donutí zkratku definovat +- Definice zkratky bude použita právě jednou (poprvé) + +Při prvním použití zkratky (při definici) bude zkratka v textu vypadat takto: +#abbr("ZK", "Zkratka"). +Při dalších použití bude vypadat takto: #abbr("ZK"). + +#highlight[ + Tedy zkratku _nepřidáváte_ přímo do seznamu zkratek, ale elegantně jí používáte přímo v textu. +] + +== Přílohy + +Na konec souboru (nebo klidně doprostřed či na začátek, hlavní je, že pouze jednou) je také možné dát strukturu generující přílohy. Momentálně jsou podporované dva typy příloh, odkaz a obsah. +Jako demonstrace by měla postačit praktická ukázka, která ve zdrojovém kódu následuje hned za tímto odstavcem, a která generuje přílohy tohoto 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/theses/DP_cs/citace.bib b/theses/DP_cs/citace.bib new file mode 100644 index 0000000..35be945 --- /dev/null +++ b/theses/DP_cs/citace.bib @@ -0,0 +1,15 @@ +@misc{ typst, + author = "Wikidata", + title = "Q117858460 --- Wikidata{,} ", + year = "2025", + url = "https://www.wikidata.org/w/index.php?title=Q117858460&oldid=2404700455", + note = "[Online; cit. 24-Zář-2025]" +} + +@misc{ bibtex, + author = "{Wikipedia contributors}", + title = "BibTeX --- {Wikipedia}{,} The Free Encyclopedia", + year = "2025", + url = "https://en.wikipedia.org/w/index.php?title=BibTeX&oldid=1309039867", + note = "[Online; cit 24-Zář-2025]" +} diff --git a/theses/DP_cs/zadani.pdf b/theses/DP_cs/zadani.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1538ac9db2d0243aa131f56c5d8567acc4282b9 GIT binary patch literal 17637 zcmeHu2UJv9vo1-520=iPOamgBPINa-rhx{@lCz{H(=bgpSrCvUh=Qm{R0I=B21O)E zP_hA#3@SM(3L>cRPBYGoI{$tDeg9fB_pQ68*E;Nd>eQ}XyQ=oyYt>hX8f)TYV6teC zXmdgH!{+MdJP;fV1^YRBfs~XW`gnpn$pef4C?*h`rw<8Fgy4LfNO(=Wi=QiAMFkW< zBI2EVLBZK)jv072Lz(M7Th1wETys}U*(dZgyop{peNUjcVmg_>_5dg7^JmlSJMqX; zr&3Ynq>Z%}p0&dA?%+*%eg}w|AMg56{X0W+9WKQNsiyu*3n&{p}@7^F(<; z);DF+6}}&yvRj&u$&L}*g3MVZas2IC18q2-l=OA*8xQ$qJzQ+sKHEUz>{897@tB^B zVPo84x*U7W9w;Kc_+qWuVv}7LTNo8RXK^UEfI0f+*aNdWN44aJXQm!@2@qP2^qdSI zpgxNQO{UY+<$7F8kZ5caTywiH&QtDe`AhSe?v@<4^m(tVUhKow4^bTb9@C z3~X$+ygOCv%8Q(1UOZ{vy7{%+`4xMWxc%X)7kp(T&%2U5n;GxkFy>Uc@xE$jc_O8r z+8UdY1HuzrznKr{Q7jIk7@E>SK;=eW`ydOWGtcN^d{7%%2*ax}T9|v?V89oI2l?`mlN`yN)rHxNh0)C*?k!X6)9X zhQ70yMD`K#(&6R817d_xRAR+i;V&j5$I}$%i!xCLHuvT?d?HIWx18C+-RZ$qR=Qj3 ziw*3Lau5i2x1NX|JE03!iTO$-`m!hJ3NGu2nP+=*aSU~F`v!6Q`|^ zFL;x+T15+|4@M6OTjcMwMWQDIKsm1`G!hi!jBP|4>Q^5m4~1ui`FvQG(+Iuy`ia2( zJxOEXyjvr|>_iZICiBNrbn4~tv!|-sue4Z+MBY&Y$st4xv%1_EV-FwLUt1C#P2<#{ z_sH-lLvPLDHi<6K^Ouhg7kllPEA}w1b*<^^@9EATs^mOSP*!%u`hBc^bf4~(0b?Dj zUa*#%s3J2yEZR(aW|3j$<>P3Y{bihN1=(eeTsS)TC59aN@zwm}X^9bF)x)n!^_u{%qWp@qf5u< z40jvtqs&tJu#%Un7LMLZTmlHKBUp79T}AzvdIp^BdbwEb;cWg{WD0k zzE-5B^Yz)oO0=_j;b-*H6!&0V363*(76T^Nz3qos*wX#cq9(5%O7?0+2}GU=u^rT% zU4GQtz7)-`hNY5cVN&*XJ|!Nl3%Z;jC)z}(NjN4^W&wMigAv{k=q%K=iq%J3*OHIr zo`;i===f#EOoM!knM>f&%^q^xe5#wsnCz`a#so)fNECHBAJsF#wD(8-XhJui1{{qo zJ#+fBCKY2>V~vSASo%)vo?BF>X41@hnv|Q!gla`IiD~Ut4%ws2e0;1dD?QAaUC`pf zH$1ZnlFa(_FPWHV*;76hV)w#Kp!PeV0wGh)8jt9o(s}bU6?43zzPF7uhG44Oq#u>b z45nWe(`)?LuEQWdPrLQmaV^k%Oe1QM!Bgv;g&LOM64qvBX(MK%t>2q_#Y}uFRzTuV zGF+Q3>;sdN{I=)?&^4N=jgr`xNO*kZYpAuFzQUxzqW{s*S%o8asi*X9t_9?X`lbft zi1?NT{Qcuszhqm)iU|H~L!;9(oX9mfZ4W@Vy6s)FLkGRWqr($lf2j#TN*i+5O2n zUBT`bqZ==JJvyvB(f<0Pq+)jdGq{+HKdbW@C)pBdy&Oj#RTt(QA8#hiDoUW~g!4f~?%bo#`O`GEEl zvDH>7EJKaf#EkL9HUZ&ene8yf9XFWNNom0m=?&`6t>ge~;9k|f2ZgwIt=nPAZ=*Ak z$TqhaC#i4r(R71TZCIa}&&8Tmi{20tgK2y2Z*&q%UmK%JraH+8U3hqU{s|Wq$u)a& zjS8yn&rq5*x!;ksNvQE~(>#qM1n8(lYn%i(38^Ja(oqc>`7=PZ{2BaDPVS!sH_h*v zqGn|T85@oTBrfQp#eO4{tWxcy1paMxgz|xXsZh``icgJRThnV*bS&48gE`RthriCd z1PclrEmVzZzO^QJ{kSNG;hLxXJ;oKrP}dFXDjsr#0AB~3YZ~S+9jA90f3B5T1g;T! z*Wqz{5?_v$uQ%L9BxGUQi><=z+PKo!(ST1hA1;f$e5V-sZmDhV#c{n4Nw}3mqN}|9 z6R*}7`U*I_iS-oRTk<3$CTR)*=5+(XlD&=NtS@H0hCRmI7dl@8DuWxg5j*Kj z19^|6wO6xg)Z5k74c{&)TR8CEB)+;V#?#Y_gvc*EnVMA1GVsE_cAs80ku`T3#KIq1+E{C)mE2H-Y zhXS^Y7k8vSteNwUC_ZexB~>B29?$&RYeu5t*~>jbh59g8Wc?y#}8D|jgZ>u6#YIQN0C z^W9BBE}SWt=8y-63mYr9FYaYE>aM^wi~3d(@rqkob*+l?afV9qK_AFgo|$%^j4h{{ zX{XN?USQ=^c>Lftjy|kY<>CP3_NVlfbIobRwHAFgkjjGM@rG69b!YwV%H+E#gJy;1 zal8!{5I3I{Fm~zfFK2}iUh7CaL(5J5k`}%}emCwwDpGnO=bW2H0$wZdiL_bzAzq}U zVe!ay8^{LfT`qmhvA1p9#E`npNio&9&P|25S5gaK-)taxW9`WCcgbFsMFO2@!xl52 zhOei_20~DepA9a^o?mU~Id+iK@&KXFBPGAvpwj(=?{=Q6ptiYAH6t!&itkjxo$lh8 zY^}c2^e4VyG}D-+jnAS+up@!dp&mR*23G@ z2d%%ZX1d;JCv>3KS8^%_KR+Z~cr@JSIq$F!8J%;sEqUxv1ZjRr^`U%DQKQs@gu3_W zj?GcwnybU3W&;ayC$N@I{m{2l+Cj<82s-A-%BxhH7%*NEMD37hz1cs@{L_QfHqv|bR)Z&D@Ov>jCHCK!L@jBG>oq@fJP{ zjvkc(mqs5P|y!3bHR=VhLiF*uXH$1(5 zz&Ys`X{A}`Vb(3_r3pdjfPjD+CGX2_?w2fcwzHCWdzW&GJ58q!J`uLDjjg{)?#Sz} zqw%p&BUCoO^q~qp<9NI4B=ZL~rL!UlZwO^W5~bFA2k#6mp=$a2FKp@7Jj{qYn2(Rq zC&;>cPD0&i5|JX-x8JmvB~3VNZeq)_xj{H9{H{7tI@E(Y`4t)@Aw;cxWCK1enn z2s!dF*YQfG`>^2lMBeD1@|=tSXz`HQM#$(Ag-l2J)v= zzufV5kJ9?l2I$(Hw$vBxjGRLys<6<>4kM%E54KyNmGi2N6At$S36pOl>)#dbZR&VN z_w>W1(LH7{Da^VD&o!;JX1LlkU5QyLdhNNO_4SBCiYio~L%KsO@$zNi#Gxj&v=>c1 zrA!)WqaXd}I#JKeG@KuzILxX8`tQQ7dr4hDo)Ae{zK>hx8Jg!?M|;aULtc=u*~?3F za%aYa3N|O3Ki?jTti*K~@bYuCN2ps8BwV>|3%W?Oy)&FILwODEuDst8$+O+VgPPc@ z(yM+)TD|J#&}>vevX{Z+A<=UuhNwGO+I2@3)X-H zcsn`g?3Z_MW+OH?xyfY`Vz(ttq=t>cH#HJxodt3n%|+7o;!dU>v`)K)mArB+u5U$u zJO9n7wy~__NA4?j!raUvqNOolH1h?=ng~Vp)HTfeAw910z6)paq;C(6FTClm=54jD zc?X|3ThfvCJE*(RI^5q}AHa+NqAmz&I1XS@8TmKdx`eh zTp!Q9_Tg2`H4Wva@e}s^-2(Ca?tV*aCW|n#Gx1bLtQw9Wr zg$Igd7ubsy^f5*%iW{DT6bfog4Ecl52?Hj)Yg@pN92fQDaFqxCNeR*cJKULBo= zYaJ6*p|!^@m1xM!HV%EYufN{5rEtSqT&mElh#RGWJbP67$>8baJ_G+Z&|zJlHpxqN zgalk!<-Qo7RWg* zE_PVAR!>#5@9{8N(LI!KwIf=s=_s^xbwkf>z>9l zczF^gFJ_*?BeXg4Dq$KQZwuGPh>0GxC=NPheJ%G1+XS1>&S{3{=A#vUPP6sB)#AGctQo7A?tt$J+klh4oU^!lZ%D2{jb4>4%clB%pZoo1yhjW5Wr>jR zWp9qN;VOMk3oOh~pClJ)`~B+%uJ5di@fx*O`UJO;J+@k3e69J?JH=yO+=g8G`q~Ap zVqn1is(Uf(?R)o68(`kd6Vsa*U7c{Nh!05We3c@Z=cPoEqvLLMe7v^)^!r&OGHyk3 zzg-|at}=Qfn5}ndhq1w!{p_KMxv*_ zEvJ@C9A4_gCq>(ZMKAv9)8*+tMddK`D6`#rVm-}bH|M=Bi5;Uk@L`*fAT_(|aNtBfOBw&V`f} z7V@mmar4c|d5rd2?H zt9s4CMNu6!p|95*cAjS>P0PO@iB{SF=xBn(&a+J4m+pD3=k>oP@s>btZypY*TIF50 z=teQ4w&+_XyiA5>)HWTcR~R=WE{?l69e?^RkmU$ZE_RLIw93BE^8Lt5wfjP4{>Ss* z%B+?9_~zEJuxuO;U37kP!iE1qHq%OUos7M9oVUM=M^$ZL`GmKBda@SBviou6k=8-O zou$}$n!D<`5z7blv|gl2Y4_9U^ zt@OH17y6i*US7?DL2^wd$>T0A33o5@4j(J%$G2SU#yKCko?$gSfD7Pyld(1d;FlXfGru|0U;X@HxM z-b%&%qLnMl0YQvOcJWYf!~Cay4u`neA=U0V-ug@1qIMfCAL2oEJ8|hC9+kK=#|;Qy z54(KWYO{Th2B(2b#g8a5EYA7C2-~j|BifxVd_~w?>b~l^av*am{@nSmBBXOWM~0if zDrUA++)P@(Ms-N@JhSEj!z7Cu%V*+#SdLL6)P#F|0&Xry>_OL88vc_H!Wyt~9}(y0 z*pHw5;>tRZMDwM-d(jSNgMTqc(;7)#*CuMbSNQ{wqi0`ulk8y?c;bWd%6#{}E1gM( zCwBxMPc-?#Y4xK+a(qwr9va-~><)-*`kGPOREy^sVjC)%qTg(OU+Ikf#c(y_HS59S z=3lI=Z{0D~?GT*pn=T+ms9~z}@d=?W@9@SVebN5Pnu5K`tgqs_GFPX4Yr1?o6GqAI z;za;HMaP~AgT~=Y5%{ST9 z?V&asrBf88m@!4yAh8hzrrjmOQRl7Oab?Gj5V zVkxrHjA4ed+OcYOr6tA156+XM_h_tK{^VR$`rusVp(FY29qPeRBMLYxOJ(wOw(W2ZI4F}XTX z;5658H;077`B)+b&OsIxc}(3Zv!u&ra$bt*))P7D>?E;Mb4yssT&skZQ$rraSMSnH ztxgv|^3? zhWT_hYVpsMbcLwXUNRq!q(-V?%vq0Ha(ZbRa*geiVxJSAgsA(m-m%9WJNd-Wby@Q3 z{bTPrADVG??o)jHOnB_XK{pfs{F6rRztIgRKd>(lUZ52u{ zra5r6sQpQu`;(sdXQ0zfRy4ZJo^z0~Hg(>m@RI&V{EH*i_~&ba4i%SDj!;7kr_EX6 z9$1-DJ;gPXcb91&9`txq+Kj#Et*8_27<#k7uJjVsB`um%4kficQJ*KRwXbrF7^^B} zRrsToT+*vWhx1})nfuAf9}m6qjAD(l^oufGlocHTHicrLtLRTeuz(`(fKr<&M`bw&eP=&RW~}! zCwjGku2%Dw3s)h;hXo^I!vsSbO>*HpH{i%i5Et4JC@fb z<&uw@tHNu*b{tR0Tu-ru4ep>v_GtOP8)RWKR1g zhB|!VTtPg~D*V7LGghE`MW9wQNaP{k4HxdCkDVg(XYqscQ*RUK8hijJ&=j#y5Ja>ug`3KwbEU_{hg-8Tdc;@l;;5#2_qqM)%*#hm6_UgGg`Dn?bp$) z>Ifxocl0_DF|IXNWABmuNP@?5##7pg{ywM5(ZTZ`zT9nTX3^YPqU8$AAFh=~%+Y$U z$h6y>L_{oHFXE)GztsOiLC$nTRez;l@XLAs8MIyJqRvdijHH|Kz9B?qnY)B8UQ>y9a>f zfDXWp#rg%?%D~`gunZiH0K?>9XfQ@z&K`1<F)9EqbUjRYXO!AhET)3 zj@LR-+zpK{AuRA@XsL27Pol=`_r9ii*+eJF9y&Ke)_hCw@!h{Q>{ina9k`xXF3m9U zW!N_`X)t?@6crB+|AlANvDo>;F}aA*(Ys%x*}9}%&&^^r-fo0=Ee9xKb<9U>K2JM2 zRM$^I-ql;}XFGGSh;%+K%U99=ZVmR_(aTA9Zoj8W-o96T-i|n5+dHs%^ZhZ24g3m5 z*zmynl+BY5#SBHJxUAbjm{*(1#Ewm_O*OuwQzGtxPsDnRmqmI_>nB5oce=tgWiOjf zo#s});Hn~05vloMDerYq|H4_q>96PME`P!6>u;a#DH?1jP##iM7OIFm%Kh=|Gt;t2 z6L86PFs^l5LP6@I(b>L)^|LN|?|Qye+K_@~!?Wg{k42VM#6(Thx{D>5uZ7b(MwZq6 zt5}r#1N{Fz>L8|MXA&g@&4^_DE*0w(fTy_p-vpm0F@U7u;Y6eamA=!rJ_2~L^mHY8 z1lU5sXbc97L_xtQ6dWuEv}hoF>nEn z45w^36A(}tVova+RGWa|yLBi(gfj9E^Wb1$IK^5&#yaXd2EagIIAw$h#F*&kVu~l( zLV)rYh#5YZWdFTbN_hq4001_~u6d1}-0=`&Cn9Cz!7#f5Oz;7IWTFc`01T&0VFEG0 zyLviNHZ-MN1BpS(BA^Hi0u6!=05JtYOi4tt z3+Y$k0Tjn*0BQmg0fH%Vzu&iLfbhLq26&Q_s}srT_js@}(EqJuM-GEV{!#y-q#Eq+ zDdft~U0o&;s#x3vwzU{6#T1rtr&Hy+?kS=fU_@>hUBf`Wo% zgAlTQM0W@bgTX+ca0nbO18~R$gb+wh!7_vZ5sHXkW&GxQPd@^fBGbv)k4#b)7XBvK z|2x5i0NGtdWL^AxA;1R+Oct@L3?K@4RRG-UN_N2$RrEcbiFhM7H%}KJe2}v8vM^Z~ zSlmh;bsQxp0fvCT|E}TZ>q{nhl0uXyBL9#9==V*kCe8v+3;^^~0V<}xas5G~tOG(( z{JVwxcNYiP`FE@Ru()6+e_(OY-xde(DQEx{SHO*9=I7_5VoCG_YO<6dKht-0{+)=| z1WLA4;7~YH1_qUZqRikh1sGgG4k-nND?p*&4gZz%_t6G^uAXio|DDm_asDy-TYUbv z#(&TIUs&>2>jI$$geK(o*rb^Ff5-2ih5Y~K$A3KXk4OF@3;YvWf01GTW3m5uG@v5%7r-WSLZLa;u5F5W!ANJGy|5Jw;fXDugF%B#o{?o$$*3%4_AMxY-|JS(F^m8Fo zE+WdM1*a$qV0C}oT6(s-KpPmmi;jW86ib?b!Ml85@Ggc12JaqT0Co2)p|rb@7trnk zeL%Z=83OG$S+H-ycKt%(|0eE-Xx-K2&quKt5sx?V^P{M{3*=GW0ko2$7R1EQ2XEly z58SiA-NX=M$|VX|TAO1O0g{P=F#2#QTqYz}o&ylcON*Kk*^u{!Bxm{!Byvi#aerDZx+j zkWdP+{^J}-m>dvmKhfZ*Kd%je`SV!hpLIr}2^^SyB%mIIvhP6<%JBf+-Sd%dTG3<4x7s%3-&{U7M4 BYa{>w literal 0 HcmV?d00001