Update theses example content

This commit is contained in:
Matej-Zucha-TUL
2025-11-11 19:06:41 +01:00
parent d19a30a24a
commit aca613995e
6 changed files with 1311 additions and 154 deletions

View File

@@ -0,0 +1,364 @@
#import "../template/template.typ": *
#show: tultemplate2.with(
style: "classic",
faculty: "fm",
lang: "en",
document: "dp",
assignment: (
personal_number: [A00000007],
department: [Department of templates],
academical_year: [2025/2026],
content: [
= Principles for drafting:
+ Familiarize yourself with available templates
+ Design several possible template styles
+ Learn to use Typst
+ Implement the template
+ Review the template
+ Fix many issues
+ Review the template
+ Fix many issues
+ Review the template
+ Hopefully nothing more needs fixing
= List of professional literature:
_Top secret_
],
),
title: (
cs: [Ukázka dokumentu typu Diplomová práce pro FM TUL v češtině],
en: [Example document for a Diploma thesis for FM TUL in Czech],
),
author: [Matěj Žucha],
author_pronouns: "me",
programme: (en: [MI6000000007 Top secret]),
specialization: (en: [Creation of templates]),
supervisor: [Ondřej Mekina],
abstract: (
cs: [
Tento dokument slouží jako praktická ukázka všech důležitých 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: (en: [Lorem ipsum dolor sit amet.]),
citations: "citations.bib",
)
= A quick few words about this template
This template should serve as an example Diploma thesis written with the help of the *Typst* programming
language and the *tultemplate2* template. It can be used as a starting point for your own report, you just
have to learn a few of its useful functions, e.g. how to insert images, tables, citacions or links.
In contrast with the _documentation.typ_ file, which is available for download on the project's page,
this document only contains the most necessary knowledge to complete most reports. If you find this
documentt lacking in features, you can look at the aforementioned docs or contact one of the authors,
who will try to help you. Just for the sake of completeness, here is a few words about the Typst programming
language and about Typst, as well as about the motivation behind the creation of this template:
Typst is a professional typesetting language similar to markdown, LaTeX/TeX, groff, etc.
Typst is the modern equivalent of older typesetting tools, which often lack a lot of important features,
such that make it next to impossible to work without today. The user must often import an incountable number of packages,
which only provide only the most basic of functionalities - for example proper UTF-8 character support,
formatting of elements based on the set locale, etc.
= Getting Started with the Template
You have probably downloaded this template from the generator on the website www.tulsablona.cz and inserted
it into the Typst online editor. Therefore, besides the source code, you can also see the resulting PDF file.
As you probably know, the main difference between traditional word processors like Microsoft Word or LibreOffice
Writer and typesetting programs like LaTeX or Typst is the way in which the appearance and content of the document
are edited.
While Word users are used to changing the document directly using buttons and keyboard shortcuts, Typst (and also LaTeX)
use a so-called source file, which is nothing more than an ordinary text file, and can then, on request, compile this
source file i.e., turn it into the final document, for example in PDF format.
Thats why here you will find a description of all the important functions not as a gallery of images showing which
buttons to click, but rather as an example and guide to all the special text sequences that Typst supports and that
the template interprets differently from the main content of the report.
== Paragraphs
Some of you might know this concept from using Markdown, where paragraphs, headings and for the sake of clarity all
logically coherent blocks are separated by an empty line. You might have already spotted this while reading through
this document. You can try for yourself what happens when
you just end the line
or when you properly use an empty line,
or maybe what happens if you use two or more empty rows. (spoiler: 1 or more empty lines share identical behavior,
while newlining only is interpreted the same as using spaces or tabs)
Therefore, the user has freedom of choosing whether he uses long lines full of text,
or
if
he
prefers
a
cleaner
formatting
and manages the separation of content to lines, because it all gets concatenated into a nice consice paragraph.
The user has to manually watch out for the length of the paragraphs, so that they are neither too short or too long.
In the context of paragraphs, it should be mentioned that Typst also manages the alignment of text and words into blocks
and the division of words between lines when they don't fit.
This behavior complies with the English grammar and typography rules fully, so you don't have to think about that at all.
== Clickable content
When using the official Typst online editor, you can simply click on any text in the right side (the preview PDF),
and your cursor will jump directly to that text in the source file.
A small but very practical feature.
== Headings
The first important feature, apart from writing the text itself (which requires no special syntax), is the usage of headings.
Just like in other programs, Typst also supports multi-level headings. For a first-level heading, an equals sign followed
by a space is used at the beginning of a line, meaning that in a Typst source file it is written like this:
```typst
= My first level heading
```
For a second-level heading, we then use two equals signs; for a third-level heading, three equals signs…
There are enough subheading levels that youll probably never run out. However, the TUL guidelines for writing reports
forbid usage of level four heading or larger, so you can (and should) only use headings from level 1 to 3.
If you try to use fourth-level or larger heading, the template will warn you not to do that and will refuse to compile
until you fix this. More on this behavior later.
```typst
= Heading
== Subheading
=== Subsubheading
==== you probably understand by now ...
And then your content
```
== Chapter Numbering
Youve probably noticed that each heading begins with the number of its respective chapter. Typst handles this numbering
automatically, and its also reflected in the **Table of Contents** at the start of the document, so you dont have to
worry about it yourself.
== Template compile-time checks
This template is created in such a way that when you try to compile it with incorrect syntax or an imoportant
part of the header missing, it won't let you. Always see the error messages the template provides,
as they will simply guide you to fix your mistakes. You can try this by deleting something from the header,
or by using e.g. a function that ins't defined anywhere.
= Using Functions
Most Typst features are used through whats called *function calls*. This is quite similar to the previous examples,
except that instead of wrapping text with a single symbol or a simple marker, we wrap it with the name of the function.
The syntax looks like this:
```typst
#Function_name[text itself or other parameters]
```
When you type the hash symbol in the editor, it will automatically start suggesting all available functions and their descriptions.
Lets move on to some practical examples.
== Text Highlighting
The syntax for basic highlighting is very similar to Markdown. You just need to use the following symbols:
```typst
*bold*
_italic_
```
More styling options can be applied through functions, for example:
```typst
#strike[struck through]
#highlight[highlighted]
#underline[underlined] // underline SHOULD NOT be used
```
For completeness and demonstration, here in the text we have *bold text*, _italic text_, #strike[struck-through text],
and #highlight[text highlighted with your facultys color], as well as #underline[underlined text]
(although typographers generally advise against using underlining).
== Links<links>
You can create links to URLs/URIs, emails, phone numbers, and more.
A URL (URI) link can be written directly, without calling any function just type it in:
https://git.zumepro.cz/tul/tultemplate2
```typst
https://git.zumepro.cz/tul/tultemplate2
```
Internally, this automatically calls the `link` function.
If we want to link to less common things (like email addresses), we can call the `link` function explicitly:
```typst
#link("mailto:ondrej@mekina.cz")
```
You can find other prefixes (URI schemes) on Wikipedia:
https://en.wikipedia.org/wiki/List_of_URI_schemes.
== Images
Images can be inserted either by themselves or with a caption.
An image is inserted using the `image` function:
To add a caption and also include the image in the index (so you can reference it later), use the `figure` function:
#block([
```typst
#figure(
image("myimage.jpg"),
caption: [
*A beautiful* picture that looks like a picture.
]
)
```
], breakable: false)
Heres a practical example of inserting an image with a caption:
#figure(image("../template/assets/tul_logo.svg", width: 25%), caption: [
Logo of *TUL*
])
The first parameter of the function is the displayed content in our case, the mentioned `image`. You can then specify various parameters for it; in the example, we define the image width as a percentage.
The last parameter is `caption`, which lets us set the figures (or images) caption text.
If the document type requires it, images will automatically appear in a list at the beginning of the document. Typst handles this automatically for you all you need to do is add images wherever appropriate, and theyll show up correctly in the **List of Figures**, complete with references and page numbers.
Images are also numbered automatically according to the predefined style, similar to chapters.
== Tables
Tables can be created like this:
```typst
#figure(table(
columns: 3,
table.header([], [*Column 1*], [*Column 2*]),
[*Row 1*], [a], [b],
[*Row 2*], [c], [d],
), caption: "My beautiful table")
```
The `columns` parameter specifies the number of columns in the table. Then comes any number of table cells for clarity, the rows are separated in the example. Finally, theres again a `caption` parameter, used to provide a caption for the table.
#highlight[Its a good idea to wrap the table header (the first row) in the `header` function (as shown above)] this ensures Typst includes extra metadata in the generated PDF (for example, for people with visual impairments).
#figure(table(
columns: 3,
table.header([], [*Column 1*], [*Column 2*]),
[*Row 1*], [a], [b],
[*Row 2*], [c], [d],
), caption: "My beautiful table")
Tables also appear at the beginning of the document in a list (if required by the document type).
As youve probably noticed by now, Typsts template takes care of this automatically.
== Citations
The template supports citation management using a standard BibTeX file @bibtex, just like LaTeX. Almost every website or program that supports citations can generate BibTeX-formatted entries.
You simply add the code for such a citation, in the proper format, to the file _citations.bib_. Once added, you can reference it using `@citation_name` or `#cite(<citation_name>)`.
For example, I can reference the Typst citation as #cite(<typst>).
The format of the _citations.bib_ file is exactly the same as in LaTeX. You can even copy entries directly from sites like [citace.com](https://www.citace.com) in BibTeX format Typst understands that format, too.
If you open a `.bib` file, youll see that its simply a plain text file with a specific structure.
The provided sample file already contains several citations for instance, the one named `typst`, which was already used above.
You can change the file from which citations are loaded using a template argument (i.e., in the structure at the beginning of your Typst document):
```typst
#show: tultemplate2.with(
...
citations: "anotherfile.bib",
...
)
```
== Internal Links and Anchors<example_link>
Lets continue from the **Links** section (@links).
You can also create internal links for instance, to chapters, pages, or labeled images (those wrapped with the `figure` function).
```typst
= A Good Chapter<good_chapter>
Lets take a look at A Good Chapter (@good_chapter).
```
Heres what an anchor looks like:
```typst
<anchor_name>
```
You place the anchor anywhere in the file, and you can reference it the same way you reference citations:
```typst
@anchor_name
```
For example, we can take a look at this illustrative reference (@example_link).
== Abbreviations
The LaTeX TUL template includes a list of abbreviations at the beginning of the document. Therefore, weve included one here as well.
This list is configured to appear only if there is *at least one* abbreviation defined which seemed quite logical.
You can create (define) an abbreviation with #abbr("ABC", "Alphabet") like this:
```typst
#abbr("ABC", "Alphabet")
```
After that, you can use the abbreviation #abbr("ABC") directly without redefining it:
```typst
#abbr("ABC")
```
The template automatically ensures the following:
- The abbreviation appears in the list of abbreviations
- When you use an abbreviation for the first time, the template *requires* you to define it
- The definition is used only once (the first time it appears)
When used for the first time (definition), the abbreviation will look like this:
#abbr("ABR", "Abbreviation").
In subsequent uses, it will appear as: #abbr("ABR").
#highlight[
In other words, you do _not_ add abbreviations directly to the abbreviation list.
You simply use them elegantly within the text itself.
]
== Attachments
At the end of the file (or anywhere else, as long as its included only once), you can add a structure that generates attachments.
Currently, two types of attachments are supported links and content.
As a demonstration, heres a practical example (included right after this paragraph in the source code), which generates the attachments for this document:
#attachments(
attach_link("Source code of this template", "https://git.zumepro.cz/tul/tultemplate2"),
attach_content("Test content generated by Typst", [Here you can write _styled_ content.]),
)