@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 ![](svg/chapter-03/hello-crop.svg) @slide(layout=wide-content) @title Document class @content ``` {.lang-tex .hljs} \documentclass[]{} ``` For example: ``` {.lang-tex .hljs} \documentclass[10pt,a5paper,landscape]{scrartcl} ``` @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 ![](svg/chapter-03/languages-crop.svg) @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 ![](svg/chapter-03/paragraphs-crop.svg) @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 ![](svg/chapter-03/reserved-characters-crop.svg) @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 ![](svg/chapter-03/sections-crop.svg) @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 ![](svg/chapter-03/sections-differently-crop.svg) @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 ![](svg/chapter-03/title-orig.svg) @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 ![](svg/chapter-03/contents-crop.svg) @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.