8.3 KiB
@slide(layout=chapter-slide)
@number 3
@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.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\begin{document}
Hello world!
\end{document}
@slide(layout=wide-content)
@title Document class
@content
\documentclass[<parameter>]{<document_class>}
For example:
\documentclass[10pt,a5paper,landscape]{article}
@slide(layout=content-only)
@title Encoding
@content
\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
\usepackage[ngerman]{babel}
- The package
babelprovides language-specific information (e. g., hyphenation, special characters, font changes, translated labels like ‘chapter,’ ‘table of contents’ or ‘figure’). ngermanis the German new spelling.
@slide(layout=content-and-preview)
@title Continuous Text
@content
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.
@slide(layout=content-and-preview)
@title Comments
@content After a percent sign, the rest of the line is ignored by the compiler. It is called a comment and does not appear in the resulting document.
% profile start
Name: Donald Knuth \\
Date of birth: \\ % TODO: insert
Place of birth: Milwaukee, Wisconsin
% profile end
Shortcuts: Ctrl + T and Ctrl + U
@slide(layout=content-and-preview-with-category)
@category Caution!
@title Reserved characters
@content Some characters do things in LaTeX:
# $ % ^ & _ { } ~ \
50% is one half.
Solution: prefix with ‘\’:
50\% is one half.
Does not work for ‘\\’, use \textbackslash instead.
@slide(layout=content-and-preview)
@title Sections and chapters
@content Texts are structured by beeing subdivided in sections and chapters. Always available:
\section{Level 1}
\subsection{Level 2}
\subsubsection{Level 3}
\paragraph{Level 4}
\subparagraph{Level 5}
Additionally, for some document classes:
\chapter{Chapter}
\part{Part}
@slide(layout=wide-content)
@title Front matter
@content
\title{The World of Truffles}
\author{Fooboar Rüssel \and Fachschaft WIAI}
\date{\today}
\begin{document}
\maketitle
\end{document}
- The values for the entries are stored in the preamble.
\maketitletypesets 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
\documentclass{article}
\usepackage{babel}
\title{The World of Truffles}
\author{Fooboar Rüssel
\and Fachschaft WIAI}
\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}
@slide(layout=content-only)
@title Registers
@content
\tableofcontents
\listoffigures
\listoftables
- automatic numbering
- elements with an asterisk (
*) are hidden from the register: e. g.\section*{}. - generally requires two rounds of compilation
@slide(layout=content-and-preview)
@title Table of contents
@content
\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}
@slide(layout=wide-task)
@task-number 3
@title Structure your document and text
@content
- Open the file
document-structure.tex. It is located in the directoryexercises/basic-document-structure. - Wrap the entire text in a document environment and insert the following preamble. Compile the document.
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
- 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.
@slide(layout=extra-wide-content)
@title Document classes
@content
- There are also other document classes than
article. - Based on the document class, the layout of the generated pdf file changes.
- Normally speled classes adhere to American English layout norms.
srcdocument classes usually adhere to European layout norms.
Following document classes are available:
scrartcl,articlefor short documentsscrreprt,reportfor longer documentsscrbook,bookfor booksbeamerfor presentations
@slide(layout=extra-wide-content)
@title Languages
@content A document can use multiple languages at once:
\usepackage[ngerman, swedish, ukrainian, greek, english]{babel}
To switch languages:
\selectlanguage{<language a>}
\selectlanguage{<language b>}
Embedded Text in another language:
\selectlanguage{<language a>}
\foreignlanguage{<language b>}{Text of language B in a Text of language A}
@slide(layout=extra-content-and-preview)
@title Languages — an example
@content
\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{ukrainian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today
@slide(layout=extra-content-and-preview)
@title Headlines and the table of contents
@content With an asterisk, there is no numbering and no entry in the table of contents:
\section*{No entry in table of contents}
You can also provide an alternative title for the table of contents:
\section[Entry in table of contents]
{Actual chapter heading}
@slide(layout=content-only)
@title Before we can continue …
@content
Only this way, your solution can be embedded in the script itself. (In TeXstudio, comments can be achieved by the shortcut Strg + T.)
We will learn in the following chapter why this is the case.