@slide(layout=chapter-slide)
@title
Basic structure of a LATEX document
@slide(layout=content-and-preview)
@title
Preamble & document environment
@content
👁 Every LaTeX document is composed of
* a **preamble:** global settings (document class, encoding, language, page format, additional packages, …) and
* a **document environment:** content of the document.
``` {.lang-tex .hljs .fragment}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\begin{document}
Hello world!
\end{document}
```
@preview

@slide(layout=wide-content)
@title
Document class
@content
``` {.lang-tex .hljs}
\documentclass[]{}
```
For example:
``` {.lang-tex .hljs}
\documentclass[10pt,a5paper,landscape]{scrartcl}
```
- **`scrartcl`, `article`** for short documents
- **`scrreport`, `report`** for longer documents
- **`scrbook`, `book`** for books
- **`beamer`** for presentations
@slide(layout=content-only)
@title
Packages
@content
``` {.lang-tex .hljs}
\usepackage[]{}
```
* Packages provide additional commands and functionalities.
* There are different packages for different use cases (e. g., mathematical formulas, lists, ...).
* Before they can be used, they have to be included **within the preamble.**
@slide(layout=content-only)
@title
Encoding
@content
``` {.lang-tex .hljs}
\usepackage[utf8]{inputenc}
\usepackage[t1]{fontenc}
```
* ++ The character encoding determines which characters are available.
* ++ **ASCII** contains no special characters like German umlauts.
* ++ **UTF-8** is a universal encoding.
@slide(layout=content-only)
@title
Language
@content
``` {.lang-tex .hljs}
\usepackage[ngerman]{babel}
```
* The package **`babel`** provides language-specific information (e. g., hyphenation, special characters, font changes, translated labels like ‘chapter,’ ‘table of contents’ or ‘figure’).
* **`ngerman`** is the German new spelling.
@slide(layout=wide-content)
@title
Languages
@content
A document can use multiple languages at once:
``` {.lang-tex .hljs}
\usepackage[ngerman, swedish, russian, greek, english]{babel}
```
To switch languages:
``` {.lang-tex .hljs}
\selectlanguage{}
\selectlanguage{}
```
Embedded Text in another language:
``` {.lang-tex .hljs}
\selectlanguage{}
\foreignlanguage{}{Text of language B in a Text of language A}
```
@slide(layout=content-and-preview)
@title
Languages — an example
@content
``` {.lang-tex .hljs}
\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{russian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today
```
@preview

@slide(layout=content-and-preview)
@title
Continuous Text
@content
``` {.lang-tex .hljs}
Continous text can be written directly ↲
in the source code. ↲
Simple line breaks ↲
are ignored, ↲
just as multiple space characters. ↲
↲
An empty line creates a new paragraph ↲
which has an indentation by default. ↲
Manual line breaks can be forced ↲
using two backslashes, but this use ↲
is strongly discouraged \\ ↲
within continuous text.
```
@preview

@slide(layout=content-and-preview-with-category)
@category
Caution!
@title
Reserved characters
@content
Some characters do things in LaTeX:
`# $ % ^ & _ { } ~ \`
``` {.lang-tex .hljs}
50% is one half.
```
Solution: prefix with ‘`\`’:
``` {.lang-tex .hljs}
50\% is one half.
```
Does not work for ‘`\\`’, we will see a solution for this later.
@preview

@slide(layout=content-and-preview)
@title
Sections and chapters
@content
Texts are structured by beeing subdivided in sections and chapters. Always available:
``` {.lang-tex .hljs}
\section{Level 1}
\subsection{Level 2}
\subsubsection{Level 3}
\paragraph{Level 4}
\subparagraph{Level 5}
```
Additionally, for some document classes:
``` {.lang-tex .hljs}
\chapter{Chapter}
\part{Part}
```
@preview

@slide(layout=content-and-preview)
@title
Sections and chapters
@content
With an asterisk, there is no numbering and no entry in the table of contents:
``` {.lang-tex .hljs}
\section*{No entry in table of contents}
```
You can also provide an alternative title for the table of contents:
``` {.lang-tex .hljs}
\section[Entry in table of contents]
{Actual chapter heading}
```
@preview

@slide(layout=wide-content)
@title
Front matter
@content
``` {.lang-tex .hljs data-source=title.tex}
\title{The World of Truffles}
\author{Fooboar Rüssel \\ Fachschaft WIAI\thanks{WIe AIn Profi},
Otto-Friedrich-Universität Bamberg}
\date{\today}
\begin{document}
\maketitle
\end{document}
```
* The values for the entries are stored in the preamble.
* `\maketitle` typesets the front matter within the document environment.
* The exact appearance depends on the document class.
* Multiple authors can be joined with `\and`.
* If no date is given, the current date will be used. A different date can be defined with `\date{}`.
@slide(layout=content-and-preview)
@title
Front matter
@content
``` {.lang-tex .hljs data-source=title.tex}
\documentclass{article}
\usepackage{babel}
\title{The World of Truffles}
\author{Fooboar Rüssel \\ Fachschaft
WIAI\thanks{WIe AIn Profi},
Otto-Friedrich-Universität Bamberg}
\date{\today}
\begin{document}
\maketitle
\section{Truffle hunt}
\subsection{Hunt with a pig}
\subsection{Hunt without a pig}
Why would you do that?
\section{Truffle recipes}
My favorite recipe
\end{document}
```
@preview

@slide(layout=content-only)
@title
Table of contents
@content
``` {.lang-tex .hljs}
\tableofcontents
```
* automatic numbering
* very configurable (enumeration characters and depth, automatic naming, …)
* chapters and (sub-)sections with an asterisk (`*`) are hidden from the table of contents: e. g. `\section\*{}`.
* generally requires two rounds of compilation
@slide(layout=content-and-preview)
@title
Table of contents
@content
``` {.lang-tex .hljs data-source=title.tex}
\documentclass{article}
\usepackage{babel}
\begin{document}
\tableofcontents
\section{Truffle hunt}
The first section.
\subsection{Hunt with a pig}
A subsection.
\subsection{Hunt without a pig}
Another subsection.
\subsubsection[But why?]
{Why would you do that?}
Sub-subsection.
\section{Truffle recipes}
My favorite recipe
\end{document}
```
@preview

@slide(layout=content-only)
@title
Other indices
@content
List of figures and list of tables
``` {.lang-tex .hljs}
\listoffigures
\listoftables
```
* inserts the corresponding index wherever it is called
* lists the caption of each figure or table by default, but you can also state a special list entry
@slide(layout=wide-task)
@task-number
3
@title
Structure your document and text
@content
* Open the file `documemt-structure.tex`. It is located in the directory `exercises/basic-document-structure`.
* Copy the file content and insert it into a new file. You can, for example, name it `document-structure-solution.tex`.
* ++ Wrap the entire text in `document-structure-solution.tex` in a **document** environment and insert the following **preamble**. Compile the document.
``` {.lang-tex .hljs .fragment}
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{hyperref}
\usepackage{csquotes}
```
* ++ As you may already have noticed, **paragraphs** are marked as ‘`\\`’. Use real paragraphs instead.
* ++ Time to structure our document! Use LaTex commands to declare all **headings** (`\section`, `\subsubsection`, etc.).
* ++ Add a **table of contents.** to your document.