latex-wochenende/slides/basic-documents.en.md
2025-11-23 11:50:19 +01:00

9.7 KiB
Raw Blame History

@slide(layout=chapter-slide)

@number 2

@title Basic documents

@slide(layout=wide-content)

@title Commands

@content General structure of a command:

\<command>[<optional_parameters>]{<obligatory_parameters>}

++ A few examples:

\newpage % inserts a new page
\textbf{bold text} % formats the text bold
\documentclass[a4paper,12pt,landscape]{article} % configures the document class
\frac{1}{4} % inserts a mathematical fraction

@slide(layout=content-only)

@title Backslash

@content Assuming a German keyboard layout, you get the backslash by pressing

AltGr + ß (Windows/Linux)

Alt + Shift + 7 (MacOS)

@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}

@preview

@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 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=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.

@preview

@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

@preview

@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. Also: Consider using a thin space between numbers and units (50\,\%).

@preview

@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}

@preview

@slide(layout=wide-content)

@title Title page

@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.
  • \maketitle typesets the title page 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}

@preview

@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}

@preview

@slide(layout=wide-task)

@task-number 2

@title Structure your document and text

@content ::: {.box .warning} Close all open tabs from previous tasks. :::

  • Open the file document-structure.tex. It is located in the directory exercises/basic-document-structure.
  • Wrap the entire text in a document environment and insert the following preamble.
\documentclass{article}
\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 spelled classes adhere to American English layout norms.
  • scr document classes usually adhere to European layout norms.

Following document classes are available:

  • scrartcl, article for short documents
  • scrreprt, report for longer documents
  • scrbook, book for books
  • beamer for 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 Languagesan example

@content

\today
\selectlanguage{ngerman}
\today
\selectlanguage{swedish}
\today
\selectlanguage{ukrainian}
\today
\selectlanguage{greek}
\today
\selectlanguage{english}
\today

@preview

@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}

@preview

@slide(layout=extra-content-only)

@title Headers and footers

@content The fancyhdr package helps us with that.

% activate in general
\pagestyle{fancy}     

% apply to the first page as well
\thispagestyle{fancy} 

% reset values
\fancyhead{} % and/or \fancyfoot{}
\fancyhead[L]{Left header}
\fancyfoot[C]{Center footer}
\fancyfoot[R]{\thepage}

A comprehensive tutorial can be found on Overleaf.

@slide(layout=wide-task)

@task-number 2x

@title Make it fit your needs

@content

  • Add a title to the document.
  • Make today's date appear in a language of your choice.
  • Hide one section title in the table of contents.
  • Add a short title to a different section title.
  • Split the text in two columns (keyword: twocolumn).
  • Add a header with the title on the right and a footer with the page number on the left.
  • Try out what changes when you change the document class.
  • Research the possibilities of traditional and modern beamer presentation templates.