First commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.pdf
|
||||
24
Makefile
Normal file
24
Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
SOURCE = main.typ
|
||||
OUTPUT = main.pdf
|
||||
FONTS_DIR = fonts
|
||||
VIEWER = zathura
|
||||
|
||||
TYPST = typst
|
||||
|
||||
.PHONY: all watch clean
|
||||
|
||||
# compile PDF
|
||||
all: $(OUTPUT)
|
||||
|
||||
# compile with font path
|
||||
$(OUTPUT): $(SOURCE) template.typ
|
||||
$(TYPST) compile $(SOURCE) --font-path $(FONTS_DIR)
|
||||
|
||||
# compile with watch mode
|
||||
watch:
|
||||
#$(TYPST) watch $(SOURCE) --font-path $(FONTS_DIR)
|
||||
($(VIEWER) $(OUTPUT) &) && $(TYPST) watch $(SOURCE) --font-path $(FONTS_DIR)
|
||||
|
||||
# clean generated files
|
||||
clean:
|
||||
rm -f $(OUTPUT)
|
||||
81
README.md
Normal file
81
README.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Bachelor Thesis Template (Typst) – PedF UK
|
||||
|
||||
This repository contains a **Typst** template for writing a Bachelor's thesis at the **Faculty of Education, Charles University (PedF UK)**.
|
||||
|
||||
The template is designed to comply with the **Dean's Measure No. 28/2024** (Opatření děkana č. 28/2024), including specific requirements for:
|
||||
* **Typography:** Times New Roman, 12pt, 1.5 line spacing.
|
||||
* **Layout:** Margins (25mm/35mm) and mandatory section order.
|
||||
* **Formalities:** Title page without the university logo, specific AI usage declaration, and abstract formatting.
|
||||
|
||||
## Project Structure
|
||||
|
||||
```text
|
||||
.
|
||||
├── fonts/ # Local directory for Times New Roman fonts
|
||||
│ └── Times New Roman... # Ensures correct compilation on any OS/Linux distro
|
||||
├── main.typ # MAIN FILE: Edit your thesis content and metadata here
|
||||
├── template.typ # STYLING: Definitions of layout, title page, and macros
|
||||
├── Makefile # AUTOMATION: Build and watch commands
|
||||
└── .gitignore # Git configuration (ignores generated PDFs)
|
||||
```
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To work with this template, you need the following installed on your system:
|
||||
|
||||
1. **Typst** (CLI compiler)
|
||||
2. **GNU Make** (to run the build commands)
|
||||
3. **Zathura** (PDF viewer, recommended for the `watch` mode workflow)
|
||||
|
||||
## Usage
|
||||
|
||||
This project uses a `Makefile` to handle font paths and compilation. Do not run `typst compile` directly unless you manually specify the font path.
|
||||
|
||||
### 1. Start Writing (Watch Mode)
|
||||
This is the main command for development. It compiles the document, opens **Zathura**, and automatically recompiles whenever you save changes in `main.typ`.
|
||||
|
||||
```bash
|
||||
make watch
|
||||
```
|
||||
|
||||
### 2. Build PDF (One-off)
|
||||
Generates the final `main.pdf`.
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
### 3. Clean
|
||||
Removes the generated PDF file. Recommended before the final build to ensure a clean state.
|
||||
|
||||
```bash
|
||||
make clean
|
||||
```
|
||||
|
||||
## How to Write
|
||||
|
||||
### Editing Metadata
|
||||
Open `main.typ`. At the top of the file, fill in the `project` function parameters:
|
||||
* **Title (CZ/EN):** Your thesis title.
|
||||
* **Author/Supervisor:** Names including titles.
|
||||
* **Abstracts & Keywords:** Ensure abstracts are at least 200 words long.
|
||||
|
||||
### Writing Content
|
||||
Write your text in `main.typ` after the header.
|
||||
* **Headings:** Use `=` for chapters, `==` for sections.
|
||||
* *Note:* The template automatically starts main chapters (Introduction, Conclusion, etc.) on a new page as required.
|
||||
* **Formatting:**
|
||||
* Bold: `*text*`
|
||||
* Italic: `_text_`
|
||||
* Citations: Use `@reference` (requires a `.bib` or `.yml` bibliography file).
|
||||
|
||||
### AI Declaration
|
||||
The template includes the mandatory **AI usage declaration** required by Dean's Measure No. 28/2024.
|
||||
* If you **did not** use AI: The standard declaration on the second page is sufficient.
|
||||
* If you **did** use AI (e.g., for grammar correction): You must also fill out the **"Vyjádření k využití nástrojů umělé inteligence"** section at the end of the thesis, describing exactly how the tools were used.
|
||||
|
||||
## fonts/ Directory
|
||||
The faculty requires **Times New Roman**. Since this font is proprietary and not available by default on many Linux distributions (like Void Linux), it is included in the `fonts/` directory. The `Makefile` ensures Typst uses these local fonts during compilation, making the project portable.
|
||||
|
||||
## Submission
|
||||
The final output is `main.pdf`. This file is ready for upload to the **Student Information System (SIS)**. Ensure you do not change the text after submission (except for errata).
|
||||
BIN
fonts/Times New Roman Regular.ttf
Normal file
BIN
fonts/Times New Roman Regular.ttf
Normal file
Binary file not shown.
52
main.typ
Normal file
52
main.typ
Normal file
@@ -0,0 +1,52 @@
|
||||
#import "template.typ": project
|
||||
|
||||
#show: project.with(
|
||||
title_cz: "Název bakalářské práce v češtině",
|
||||
title_en: "Title of the Bachelor Thesis in English",
|
||||
author: "Jméno Příjmení",
|
||||
department: "Katedra informačních technologií a technické výchovy",
|
||||
program: "Specializace v pedagogice",
|
||||
supervisor: "titul. Jméno Příjmení, titul.",
|
||||
year: "2025",
|
||||
|
||||
abstract_cz: [
|
||||
Zde napíšete abstrakt v českém jazyce. Musí mít rozsah alespoň 200 slov a stručně charakterizovat cíle, metody a výsledky práce.
|
||||
],
|
||||
keywords_cz: [slovo 1, slovo 2, slovo 3],
|
||||
|
||||
abstract_en: [
|
||||
Here you write the abstract in English. It must be identical in content to the Czech abstract.
|
||||
],
|
||||
keywords_en: [keyword 1, keyword 2, keyword 3],
|
||||
|
||||
acknowledgement: [
|
||||
Rád bych poděkoval svému vedoucímu práce za cenné rady...
|
||||
],
|
||||
)
|
||||
|
||||
= Úvod
|
||||
Vlastní text práce. Odstavce jsou odsazeny a zarovnány do bloku. Písmo je nastaveno na 12 bodů [6].
|
||||
|
||||
== Cíle práce
|
||||
Text kapitoly...
|
||||
|
||||
= Teoretická část
|
||||
Pokud používáte citace, Typst je skvělý v práci s BibTeX nebo Hayagriva soubory. Citace musí obsahovat všechny údaje potřebné k dohledání zdroje [10].
|
||||
|
||||
= Praktická část
|
||||
|
||||
= Závěr
|
||||
|
||||
// --- POVINNÉ SEZNAMY NA KONCI ---
|
||||
|
||||
#pagebreak()
|
||||
= Seznam použitých zdrojů
|
||||
// Zde vložte bibliografii, např.: #bibliography("sources.bib")
|
||||
|
||||
#pagebreak()
|
||||
= Vyjádření k využití nástrojů umělé inteligence
|
||||
// POVINNÉ, pokud bylo AI použito [11, 12]. Pokud ne, prohlášení na začátku práce stačí, ale tato sekce je v seznamu náležitostí pod bodem k) [4].
|
||||
V souladu s opatřením děkana č. 28/2024 uvádím, že jsem při tvorbě práce využil nástroje umělé inteligence (např. ChatGPT) pro účely jazykové korektury a rešerše zdrojů. Vlastní text práce a myšlenky jsou mým autorským dílem.
|
||||
|
||||
#pagebreak()
|
||||
= Seznam příloh
|
||||
118
template.typ
Normal file
118
template.typ
Normal file
@@ -0,0 +1,118 @@
|
||||
#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
|
||||
}
|
||||
Reference in New Issue
Block a user