7 Commits

16 changed files with 110 additions and 115 deletions

1
.gitattributes vendored
View File

@@ -1,2 +1,3 @@
*.ttf filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text

View File

@@ -1,5 +1,5 @@
.PHONY: view_example
view_example: documentation.pdf
.PHONY: view_documentation
view_documentation: documentation.pdf
xdg-open $<
.PHONY: watch_documentation
@@ -7,12 +7,12 @@ watch_documentation:
typst watch --font-path template/fonts documentation.typ & xdg-open documentation.pdf
.PHONY: watch_bp_cs
watch_bp_cs:
typst watch --root . --font-path template/fonts theses/BP_cs/BP.typ bp.pdf & xdg-open bp.pdf
watch_bp_cs: bp.pdf
xdg-open bp.pdf & typst watch --root . --font-path template/fonts theses/bp.typ bp.pdf
.PHONY: watch_dp_cs
watch_dp_cs:
typst watch --root . --font-path template/fonts theses/DP_cs/DP.typ dp.pdf & xdg-open dp.pdf
watch_dp_cs: dp.pdf
xdg-open dp.pdf & typst watch --root . --font-path template/fonts theses/dp.typ dp.pdf
.PHONY: documentation
documentation: documentation.pdf
@@ -21,7 +21,8 @@ PACKDIR := pack/tultemplate2
BUNDLEDIR := pack/bundle
TO_PACK := $(shell find template -type f) template/LICENSE
BUNDLE_TARGETS := $(TO_PACK:%=$(BUNDLEDIR)/%) $(BUNDLEDIR)/citations.bib $(BUNDLEDIR)/Makefile
BUNDLE_TARGETS := $(TO_PACK:%=$(BUNDLEDIR)/%) $(BUNDLEDIR)/citations.bib $(BUNDLEDIR)/bp.typ \
$(BUNDLEDIR)/dp.typ $(BUNDLEDIR)/Makefile
PACK_TARGETS := $(TO_PACK:%=$(PACKDIR)/%) $(PACKDIR)/documentation.typ \
$(PACKDIR)/documentation.pdf $(PACKDIR)/citations.bib
@@ -30,11 +31,12 @@ pack: pack/tultemplate2.zip
.PHONY: bundle
bundle: $(BUNDLE_TARGETS)
@echo "!! Bundles are made for tultemplategen and not for direct use !!"
.PHONY: clean
clean:
rm -rf pack
rm -f documentation.pdf
rm -f documentation.pdf bp.pdf dp.pdf
pack/tultemplate2.zip: $(PACK_TARGETS)
@mkdir -p $(@D)
@@ -45,9 +47,17 @@ $(PACKDIR)/%: %
@mkdir -p $(@D)
ln -f $< $@
$(BUNDLEDIR)/citations.bib:
$(BUNDLEDIR)/citations.bib: citations.bib
@mkdir -p $(@D)
touch $@
ln -f $< $@
$(BUNDLEDIR)/bp.typ: theses/bp.typ
@mkdir -p $(@D)
awk 'BEGIN{RS=""; ORS="\n\n"} NR>2{print}' $< | sed 's/\.\.\/template\//template\//' > $@
$(BUNDLEDIR)/dp.typ: theses/dp.typ
@mkdir -p $(@D)
awk 'BEGIN{RS=""; ORS="\n\n"} NR>2{print}' $< | sed 's/\.\.\/template\//template\//' > $@
$(BUNDLEDIR)/Makefile: templategen.mk
@mkdir -p $(@D)
@@ -61,7 +71,11 @@ $(BUNDLEDIR)/template/LICENSE: LICENSE
@mkdir -p $(@D)
ln -f $< $@
$(PACKDIR)/template/tul_citace.csl $(BUNDLEDIR)/template/tul_citace.csl: template/tul_citace.csl
$(PACKDIR)/template/tul_citace.csl: template/tul_citace.csl
@mkdir -p $(@D)
cat $< | sed 's/^\s*\(.*\)$$/\1/' | tr -d '\n' > $@
$(BUNDLEDIR)/template/tul_citace.csl: template/tul_citace.csl
@mkdir -p $(@D)
cat $< | sed 's/^\s*\(.*\)$$/\1/' | tr -d '\n' > $@
@@ -83,6 +97,12 @@ $(BUNDLEDIR)/template/%: template/%
TEMPLATE_SRCS := $(shell find template -type f)
bp.pdf: theses/bp.typ
typst compile --font-path template/fonts --root . $< $@
dp.pdf: theses/dp.typ
typst compile --font-path template/fonts --root . $< $@
documentation.pdf: documentation.typ $(TEMPLATE_SRCS)
typst compile --font-path template/fonts $<

View File

@@ -356,7 +356,7 @@ Zvýrazněné hodnoty jsou základní -- pokud vynecháte parametr, pak bude pou
- Je vyžadován jazyk, který je vybrán pro celou šablonu -- tohle je pojistka, aby uživatel šablony
nevynechal vybraný jazyk
#line()
- `branch` (studijní obor)
- `specialization` (specializace)
- Stejně jako #link(<arg_programme>, [`programme`])
#line()
- `abstract` (abstrakt)

View File

@@ -20,7 +20,7 @@
faculty_id, faculty_color, language, assignment_document, citation_file,
// document info
title, author, author_pronouns, supervisor, consultant, study_programme, study_branch,
title, author, author_pronouns, supervisor, consultant, study_programme, study_specialization,
year_of_study, abstract_content, acknowledgement_content, keywords,
content
@@ -31,8 +31,8 @@
assert_not_none(study_programme, "study programme");
assert_dict_has((language,), study_programme, "study programme");
assert_not_none(study_branch, "study branch");
assert_dict_has((language,), study_branch, "study branch");
assert_not_none(study_specialization, "study specialization");
assert_dict_has((language,), study_specialization, "study specialization");
assert_not_none(abstract_content, "abstract");
assert_dict_has(force_langs, abstract_content, "abstract");
@@ -49,7 +49,7 @@
mainpage(
faculty_id, language, "bp", title, author, supervisor, consultant, study_programme,
study_branch, year_of_study,
study_specialization, year_of_study,
);
assignment(language, assignment_document);
default_styling(false, faculty_color, {

View File

@@ -13,7 +13,7 @@
language, faculty_id, document_type, citation_file, assignment_document,
// document info
title, author, author_pronouns, supervisor, consultant, study_programme, study_branch,
title, author, author_pronouns, supervisor, consultant, study_programme, study_specialization,
year_of_study, abstract, acknowledgement, keywords,
// content
@@ -28,7 +28,7 @@
assert_in_dict(document_type, document_types, "document type");
map_none(title, (v) => assert_dict_has((language,), v, "title"));
map_none(study_programme, (v) => assert_dict_has((language,), v, "study programme"));
map_none(study_branch, (v) => assert_dict_has((language,), v, "study branch"));
map_none(study_specialization, (v) => assert_dict_has((language,), v, "study specialization"));
map_none(acknowledgement, (v) => assert_dict_has((language,), v, "acknowledgement content"));
document_types.at(document_type)(
@@ -43,7 +43,7 @@
supervisor,
consultant,
study_programme,
study_branch,
study_specialization,
year_of_study,
abstract,
acknowledgement,

View File

@@ -135,7 +135,7 @@
faculty_id,
language,
document_type,
title, author, supervisor, consultant, study_programme, study_branch, year_of_study,
title, author, supervisor, consultant, study_programme, study_specialization, year_of_study,
) = {
let info_name_value_padding = 5em;
let info_name_min_width = 10em;
@@ -161,7 +161,7 @@
("supervisor", person_info(supervisor, "supervisor"), false),
("consultant", person_info(consultant, "consultant"), false),
("study_programme", study_programme, false),
("study_branch", study_branch, false),
("study_specialization", study_specialization, false),
("year_of_study", map_none(year_of_study, (v) => str(v) + "."), false),
)
context {
@@ -197,7 +197,7 @@
faculty_id,
language,
document_type,
title, author, supervisor, consultant, study_programme, study_branch, year_of_study,
title, author, supervisor, consultant, study_programme, study_specialization, year_of_study,
) = {
import "../utils.typ": has_all_none, map_none
let nonetype = type(none);
@@ -212,7 +212,7 @@
info(
faculty_id, language, document_type, map_none(title, (v) => v.at(language)),
author, supervisor, consultant, map_none(study_programme, (v) => v.at(language)),
map_none(study_branch, (v) => v.at(language)), year_of_study,
map_none(study_specialization, (v) => v.at(language)), year_of_study,
);
v(5em);
}, bottom);

View File

@@ -20,7 +20,7 @@
faculty_id, faculty_color, language, assignment_document, citation_file,
// document info
title, author, author_pronouns, supervisor, consultant, study_programme, study_branch,
title, author, author_pronouns, supervisor, consultant, study_programme, study_specialization,
year_of_study, abstract_content, acknowledgement_content, keywords,
content
@@ -31,7 +31,7 @@
assert_not_none(study_programme, "study programme");
assert_dict_has((language,), study_programme, "study programme");
map_none(study_branch, (v) => assert_dict_has((language,), v, "study branch"));
map_none(study_specialization, (v) => assert_dict_has((language,), v, "study specialization"));
assert_not_none(abstract_content, "abstract");
assert_dict_has(force_langs, abstract_content, "abstract");
@@ -48,7 +48,7 @@
mainpage(
faculty_id, language, "dp", title, author, supervisor, consultant, study_programme,
study_branch, year_of_study,
study_specialization, year_of_study,
);
assignment(language, assignment_document);
default_styling(false, faculty_color, {

View File

@@ -19,7 +19,7 @@
faculty_id, faculty_color, language, assignment_document, citation_file,
// document info
title, author, _, supervisor, consultant, study_programme, study_branch, year_of_study,
title, author, _, supervisor, consultant, study_programme, study_specialization, year_of_study,
abstract_content, _, keywords,
content
@@ -29,7 +29,7 @@
mainpage(
faculty_id, language, none, title, author, supervisor, consultant, study_programme,
study_branch, year_of_study,
study_specialization, year_of_study,
);
default_styling(true, faculty_color, {
toc(language);

View File

@@ -5,7 +5,7 @@
"supervisor": "Vedoucí práce",
"consultant": "Konzultant práce",
"study_programme": "Studijní program",
"study_branch": "Studijní obor",
"study_specialization": "Specializace",
"year_of_study": "Ročník",
"bp": "Bakalářská práce",
@@ -73,7 +73,7 @@
"supervisor": "Supervisor",
"consultant": "Consultant",
"study_programme": "Study programme",
"study_branch": "Study branch",
"study_specialization": "Specialization",
"year_of_study": "Year of study",
"bp": "Bachelor thesis",

View File

@@ -32,7 +32,7 @@
// - supervisor (str): The name of the document's supervisor.
// - consultant (str): The name of the document's consultant.
// - programme (dictionary): Study programme.
// - branch (disctionary): Study branch
// - specialization (disctionary): Study specialization
// - abstract (dictionary): The abstract.
// - keywords (dictionary): The abstract keywords.
// - assignment (str): Filepath of the assignment document/page.
@@ -47,7 +47,7 @@
// document info
title: none, keywords: none, abstract: none, acknowledgement: none, author: none,
author_pronouns: none, supervisor: none, consultant: none, programme: none,
branch: none, year_of_study: none,
specialization: none, year_of_study: none,
// links
assignment: none, citations: "citations.bib",
@@ -81,7 +81,9 @@
assert_type_signature(
programme, "dictionary[string : string] | none", "study programme argument"
);
assert_type_signature(branch, "dictionary[string : string] | none", "study branch argument");
assert_type_signature(
specialization, "dictionary[string : string] | none", "study specialization argument"
);
assert_type_signature(year_of_study, "integer | none", "year of study");
assert_type_signature(assignment, "string | none", "assignment document argument");
assert_type_signature(citations, "string", "citations file argument");
@@ -102,7 +104,7 @@
templates.at(style)(
lang, faculty, document, citations, assignment,
title, author, author_pronouns, supervisor, consultant,
programme, branch, year_of_study, abstract, acknowledgement, keywords, content
programme, specialization, year_of_study, abstract, acknowledgement, keywords, content
);
import "prototyping.typ": assert_release_ready

View File

@@ -1,15 +0,0 @@
@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]"
}

Binary file not shown.

View File

@@ -1,15 +0,0 @@
@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]"
}

Binary file not shown.

View File

@@ -1,27 +1,36 @@
#import "../../template/template.typ": *
#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"),
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"),
specialization: (cs: "Moje krásná studijní specializace"),
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.",
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"),
),
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",
citations: "citations.bib",
)
= Co najdete v této šabloně
@@ -76,6 +85,7 @@ 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.
Musí akorát ručně dbát na to, aby odstavce nebyly příliš krátké, ani příliš dlouhé.
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.
@@ -90,31 +100,23 @@ rovná se a mezera na začátku řádku, čili ve zdrojovém souboru Typstu je p
= 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.
Pro nadpis druhé úrovně pak použijeme dvě rovná se, pro nadpis třetí úrovně tři rovná se.
Šablona *tultemplate2* Vám ovšem bohužel nedovolí nadpis čtvrté a další úrovně, protože by takový
nadpis porušoval směrnice TUL o formátování dokumentů. Ale nemusíte se bát. Pokud takový nadpis
uděláte -- šablona vyhodí chybu, aby vás na to upozornila.
```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,
@@ -166,8 +168,7 @@ 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`:
Obrázek se vloží pomocí funkce `image`.
Přidání popisku a zároveň zalistování obrázku v indexu (aby se na třeba dalo odkazovat) lze
udělat pomocí funkce `figure`.
@@ -185,7 +186,7 @@ udělat pomocí funkce `figure`.
Tady je praktická ukázka jednoduchého vložení obrázku s popiskem:
#figure(image("../../template/assets/tul_logo.svg", width: 25%), caption: [
#figure(image("../template/assets/tul_logo.svg", width: 25%), caption: [
Logo *TUL*
])
@@ -303,7 +304,7 @@ Při dalších použití bude vypadat takto: #abbr("ZK").
== 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.
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é čtyři typy příloh: odkaz, obsah, PDF soubor vložený na konec dokumentu a odkaz na externí soubor (například přiložený do systému s bakalářskou prací).
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(

View File

@@ -1,26 +1,35 @@
#import "../../template/template.typ": *
#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"),
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.",
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"),
),
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",
citations: "citations.bib",
)
= Co najdete v této šabloně
@@ -75,6 +84,7 @@ 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.
Musí akorát ručně dbát na to, aby odstavce nebyly příliš krátké, ani příliš dlouhé.
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.
@@ -89,31 +99,23 @@ rovná se a mezera na začátku řádku, čili ve zdrojovém souboru Typstu je p
= 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.
Pro nadpis druhé úrovně pak použijeme dvě rovná se, pro nadpis třetí úrovně tři rovná se.
Šablona *tultemplate2* Vám ovšem bohužel nedovolí nadpis čtvrté a další úrovně, protože by takový
nadpis porušoval směrnice TUL o formátování dokumentů. Ale nemusíte se bát. Pokud takový nadpis
uděláte -- šablona vyhodí chybu, aby vás na to upozornila.
```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,
@@ -165,8 +167,7 @@ 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`:
Obrázek se vloží pomocí funkce `image`.
Přidání popisku a zároveň zalistování obrázku v indexu (aby se na třeba dalo odkazovat) lze
udělat pomocí funkce `figure`.
@@ -184,7 +185,7 @@ udělat pomocí funkce `figure`.
Tady je praktická ukázka jednoduchého vložení obrázku s popiskem:
#figure(image("../../template/assets/tul_logo.svg", width: 25%), caption: [
#figure(image("../template/assets/tul_logo.svg", width: 25%), caption: [
Logo *TUL*
])
@@ -302,7 +303,7 @@ Při dalších použití bude vypadat takto: #abbr("ZK").
== 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.
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é čtyři typy příloh: odkaz, obsah, PDF soubor vložený na konec dokumentu a odkaz na externí soubor (například přiložený do systému s diplomovou prací).
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(