Files
thesis-template-typst/template.typ
2026-02-14 20:53:06 +01:00

119 lines
3.2 KiB
Typst

#let project(
title_cz: "",
title_en: "",
author: "",
department: "",
program: "",
supervisor: "",
year: "",
abstract_cz: [],
keywords_cz: [],
abstract_en: [],
keywords_en: [],
acknowledgement: none,
body
) = {
// Nastavení dokumentu a písma dle požadavků [5]
set document(author: author, title: title_cz)
set page(
paper: "a4",
margin: (left: 35mm, right: 25mm, top: 25mm, bottom: 25mm), // Okraje pro vazbu [5]
numbering: "1", // Číslování arabskými číslicemi [6]
)
// Písmo Times New Roman, 12pt, řádkování 1.5 [5]
set text(font: "Times New Roman", size: 12pt, lang: "cs")
set par(justify: true, leading: 0.65em, spacing: 0.6em)
// --- TITULNÍ LIST [1, 2] ---
// Na titulním listu se číslo strany netiskne [6]
page(numbering: none)[
#set align(center)
#text(size: 14pt, weight: "bold")[Univerzita Karlova]\
#text(size: 14pt, weight: "bold")[Pedagogická fakulta]
#v(1em)
#text(size: 12pt)[#department]
#v(1fr)
#text(size: 16pt, weight: "bold")[BAKALÁŘSKÁ PRÁCE]
#v(1fr)
#text(size: 14pt, weight: "bold")[#title_cz]
#v(0.5em)
#text(size: 12pt)[#title_en]
#v(2fr)
#align(left)[
#grid(
columns: (auto, auto),
gutter: 1em,
strong("Autor:"), author,
strong("Vedoucí práce:"), supervisor,
strong("Studijní program:"), program,
)
]
#v(2em)
Praha #year
]
// --- PROHLÁŠENÍ [3] ---
page(numbering: none)[
#v(1fr)
#heading(outlined: false, numbering: none)[Prohlášení]
Odevzdáním této bakalářské práce na téma *#title_cz* potvrzuji, že jsem ji vypracoval/a pod vedením vedoucího práce samostatně za použití v práci uvedených pramenů a literatury. Prohlašuji, že jsem při její tvorbě nepoužil/a nástrojů umělé inteligence jiným způsobem, než je uvedeno ve vyjádření, které je součástí textu práce. Dále potvrzuji, že tato práce nebyla využita k získání jiného nebo stejného titulu.
#v(2cm)
V Praze dne .............................. \
#h(7cm) ..................................................... \
#h(8.5cm) #author
]
// --- PODĚKOVÁNÍ (Volitelné) [4, 7] ---
if acknowledgement != none {
page(numbering: none)[
#v(1fr)
#heading(outlined: false, numbering: none)[Poděkování]
#acknowledgement
]
}
// --- ABSTRAKTY A KLÍČOVÁ SLOVA [4, 7] ---
// Poznámka: Abstrakty musí mít min. 200 slov [5, 7]
page(numbering: none)[
#heading(outlined: false, numbering: none)[Abstrakt]
#abstract_cz
#v(1em)
*Klíčová slova:* #keywords_cz
#v(2em)
#heading(outlined: false, numbering: none)[Abstract]
#abstract_en
#v(1em)
*Keywords:* #keywords_en
]
// --- OBSAH [4] ---
page(numbering: none)[
#outline(depth: 3, indent: auto)
]
// --- HLAVNÍ TEXT ---
// Nadpisy 1. úrovně 14pt, ostatní dle kontextu [6]
set heading(numbering: "1.1")
show heading.where(level: 1): it => {
pagebreak(weak: true) // Hlavní kapitoly na nové straně [8]
text(size: 14pt, weight: "bold", it)
v(0.5em)
}
// Číslování začíná od první strany textu [6]
counter(page).update(1)
body
}