360 lines
12 KiB
TeX
360 lines
12 KiB
TeX
\documentclass[presentation,aspectratio=169]{beamer}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{graphicx}
|
|
\graphicspath{{./graphics/}}
|
|
\usepackage[ngerman]{babel}
|
|
\usepackage{longtable,capt-of,fvextra,csquotes}
|
|
\usepackage{wrapfig,rotating}
|
|
\usepackage[normalem]{ulem}
|
|
\usepackage{amsmath,amssymb}
|
|
\usepackage{hyperref}
|
|
\usepackage{listings,minted}
|
|
\usepackage[duration=20]{pdfpc}
|
|
\usetheme{metropolis}
|
|
\author{Julius Freudenberger}
|
|
\date{Hackathon Sommersemester 2022}
|
|
\title{WYSIWYAF with \LaTeX}
|
|
\mode<presentation>{\usetheme{metropolis}}
|
|
\mode<beamer|handout>{\metroset{sectionpage=progressbar}}
|
|
\mode<beamer|handout>{\metroset{subsectionpage=progressbar}}
|
|
\mode<beamer|handout>{\metroset{block=fill}}
|
|
\institute[Hochschule Esslingen]{Hochschule Esslingen}
|
|
\hypersetup{
|
|
pdfauthor={Julius Freudenberger},
|
|
pdftitle={WYSIWYAF with LaTeX},
|
|
pdfkeywords={},
|
|
pdfsubject={},
|
|
pdflang={German}}
|
|
\usepackage{biblatex}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\begin{frame}[fragile]{Bevor wir beginnen: Was brauche ich?}
|
|
\begin{itemize}
|
|
\item \LaTeX-Distribution: \TeX{}Live
|
|
\begin{itemize}
|
|
\item Windows: \href{https://tug.org/texlive/windows.html}{https://tug.org/texlive/windows.html} %TODO MikTeX?
|
|
\item Mac: \href{https://tug.org/mactex/}{https://tug.org/mactex/}
|
|
\item Linux: Installation über den Paketmanager
|
|
\begin{itemize}
|
|
\item deb: \verb|texlive-base| (deb), \verb|texlive texlive-latex| (rpm)
|
|
\item Arch Linux: \verb|texlive-core|
|
|
\item NixOS: \verb|nixpkgs.texlive.combined.scheme-basic|
|
|
\end{itemize}
|
|
\item Docker: \verb|texlive/texlive|
|
|
\end{itemize}
|
|
\item Texteditor
|
|
\begin{itemize}
|
|
\item VSCode mit \LaTeX-Workshop, vim mit vimtex
|
|
\item \TeX{}Maker
|
|
\end{itemize}
|
|
\item Alternativ: Online-Editoren
|
|
\begin{itemize}
|
|
\item Overleaf (\href{https://www.overleaf.com}{https://www.overleaf.com}, Registrierung erforderlich)
|
|
\item \TeX{}Viewer (\href{https://texviewer.herokuapp.com}{https://texviewer.herokuapp.com}, direkt nutzbar)
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Was ist \LaTeX?}
|
|
\pdfpcnote{ - Entwicklung seit Anfang der 1980er
|
|
- What you see is what you get --> What you see is what you asked for}
|
|
\begin{itemize}
|
|
\item Textsatzsystem
|
|
\item setzt vorgegebenen Text und weitere Anweisungen automatisch
|
|
\item versucht automatisch bestmögliches Layout
|
|
\item kein WYSIWYG, sondern WYSIWYAF
|
|
\item Quellcode wird \glqq{}kompiliert\grqq{}
|
|
\item Dokument wird als PDF, PS, DVI oder sogar HTML ausgegeben
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Warum \LaTeX?}
|
|
\pdfpcnote{ Vergleich zu Word
|
|
- schöner Blocksatz, bestmögliche Zeilenumbrüche und Worttrennungen
|
|
- Inhaltsverzeichnis und Verzeichnisse für Abbildungen, Stichworte, Abkürzungen und Literatur
|
|
- Abbildungen und weitere Referenzelemente werden automatisch an der bestmöglichen Stelle eingefügt
|
|
- Deutlich mehr Automatisierungen als bei Word, "Layoutarbeit" am Ende einer Arbeit deutlich geringer}
|
|
\begin{itemize}
|
|
\item Automatischer Textsatz
|
|
\item Automatische Referenzen
|
|
\item Automatisches Layout
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Wie sieht \LaTeX-Code aus?}
|
|
\pdfpcnote{
|
|
- Befehle werden mit \ angegeben
|
|
- Parameter mit {}
|
|
- Einrückung hilft bei Lesbarkeit, ist nicht notwendig
|
|
- Beginn und Ende
|
|
- normaler Text
|
|
}
|
|
\inputminted{latex}{codebeispiele/beispiel.tex}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Grundlegender Aufbau}
|
|
\pdfpcnote{
|
|
- Dokumentenklasse (book, article, beamer)
|
|
- Präambel
|
|
- Metadaten (Titel, Autor, Datum)
|
|
- Zusätzliche Pakete
|
|
- Einstellungen
|
|
- Eigentliches Dokument
|
|
}
|
|
\inputminted{latex}{codebeispiele/aufbau.tex}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Vorlage herunterladen}
|
|
\begin{itemize}
|
|
\item \href{https://www2.hs-esslingen.de/~jufrit00/latex/}{https://www2.hs-esslingen.de/\textasciitilde{}jufrit00/latex/}
|
|
\item \href{https://gitlab.hs-esslingen.de/jufrit00/latex-workshop}{https://gitlab.hs-esslingen.de/jufrit00/latex-workshop}
|
|
\item \href{https://github.com/JuliusFreudenberger/latex-workshop}{https://github.com/JuliusFreudenberger/latex-workshop}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Projekt kompilieren}
|
|
\begin{itemize}
|
|
\item Im Projektverzeichnis \verb|pdflatex file.tex|
|
|
\item automatisierter mit \verb|latexmk -pdf file.tex|
|
|
\item In \TeX{}Maker \glqq{}Schnelles Übersetzen\grqq{}
|
|
\item mittels Docker und Docker Compose: %TODO
|
|
\item Outputfile \verb|file.pdf| als PDF-Datei im gleichen Verzeichnis
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Erste eigene Änderungen}
|
|
\pdfpcnote{
|
|
- Stärke von LaTeX: Änderungen wirken sich konsistent auf das gesamte Dokument aus.
|
|
- Keine manuelle Anpassung an mehreren Stellen nötig.
|
|
- Niedrigste Stufe: subsubsection
|
|
- Bei Text am Besten ein Satz in eine Zeile.
|
|
}
|
|
\begin{itemize}
|
|
\item Eigener Text, Absätze
|
|
\item Textformatierung: \textbf{fett} und \textit{kursiv} mit \verb|\textbf{fett}|, \verb|\textit{kursiv}|
|
|
\item Eigene Abschnitte mit \verb|\section{} und \subsection{}|
|
|
\item Metadaten ändern
|
|
\begin{itemize}
|
|
\item Titel des Dokuments ändern mit \verb|\title{}|
|
|
\item Eigener Name als Autor mit \verb|\author{}|
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Umgebungen}
|
|
\begin{itemize}
|
|
\item kennzeichnen besondere Bereiche im Dokument
|
|
\item beginnen mit \verb|\begin{}| und enden mit \verb|\end{}|
|
|
\item können verschachtelt werden, aber nicht geschnitten
|
|
\item Aufzählungen \verb|enumerate| (nummeriert) und \verb|itemize| (unnummeriert)
|
|
\end{itemize}
|
|
\begin{center}
|
|
\centering
|
|
\begin{minted}{latex}
|
|
\begin{itemize}
|
|
\item Erster Punkt
|
|
\item Zweiter Punkt
|
|
\end{itemize}
|
|
\end{minted}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Wichtige besondere Zeichen}
|
|
\begin{tabular}{c|c|c}
|
|
Schrägstrich & \textbackslash & \verb|\textbackslash| \\
|
|
\hline
|
|
Tilde & \textasciitilde & \verb|\textasciitilde| \\
|
|
\hline
|
|
geschütztes Leerzeichen (ohne Zeilenumbruch) & ~ & \verb|~| \\
|
|
\hline
|
|
schmales geschütztes Leerzeichen & z.\,B. & \verb|z.\,B.| \\
|
|
\hline
|
|
Gedankenstrich (Halbgeviertstrich) & -- & \verb|--| \\
|
|
\hline
|
|
Geviertstrich & --- & \verb|---|
|
|
\end{tabular}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Verweise}
|
|
\begin{itemize}
|
|
\item Label setzen: \verb|\label{<name>}|
|
|
\item Abschnitt referenzieren: \verb|\ref{<name>}|
|
|
\item Seite referenzieren: \verb|\pageref{<name>}|
|
|
\item Referenz nutzt immer aktuellste Abschnittnummer und Seitenzahl
|
|
\item zur Aktualisierung doppelte Durchläufe notwendig
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Mathematik}
|
|
\begin{itemize}
|
|
\item \TeX{} ist für seine gute Formeleingabe bekannt
|
|
\item verschiedene Modi, in denen Formeln gesetzt werden können
|
|
\begin{itemize}
|
|
\item inline
|
|
\item Block
|
|
\item Gleichung
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Mathematik --- inline}
|
|
\begin{itemize}
|
|
\item setzt die Gleichung in einen Fließtext ein
|
|
\item keine Referenzierung
|
|
\item Beginn und Ende mit \verb|$|
|
|
\end{itemize}
|
|
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/math-inline}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/math-inline.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Mathematik --- block}
|
|
\begin{itemize}
|
|
\item setzt die Gleichung als Block mit Absätzen
|
|
\item keine Referenzierung
|
|
\item Beginn mit \verb|\[|, Ende mit \verb|\]|
|
|
\end{itemize}
|
|
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/math-block}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/math-block.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Mathematik --- Gleichung}
|
|
\begin{itemize}
|
|
\item setzt die Gleichung als Block mit Absätzen
|
|
\item Referenzierung über Nummerierung
|
|
\item Beginn mit \verb|\begin{equation}| Ende mit \verb|\end{equation}|
|
|
\end{itemize}
|
|
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/math-equation}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/math-equation.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Abbildungen und Graphiken}
|
|
\begin{itemize}
|
|
\item Paket \verb|graphicx|
|
|
\item Unterstützung von jpg, png und pdf, Dateiendung kann weggelassen werden
|
|
\item Höhe und Breite als optionale Parameter
|
|
\begin{itemize}
|
|
\item \verb|\textwidth| oder \verb|textheight|
|
|
\end{itemize}
|
|
\item
|
|
\begin{minted}{latex}
|
|
\includegraphics[width=.5\textwidth]{<filename>}
|
|
\end{minted}
|
|
\end{itemize}
|
|
\begin{center}
|
|
\includegraphics[height=.5\textheight]{katze}
|
|
\end{center}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Graphiken als Gleitobjekt}
|
|
\begin{itemize}
|
|
\item Automatische Positionierung im Text
|
|
\item Referenzierung mit Nummerierung über Label
|
|
\end{itemize}
|
|
\begin{minipage}[c]{.4\textwidth}
|
|
\input{codebeispiele/graphics-figure}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}[c]{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/graphics-figure.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Codelistings}
|
|
\begin{itemize}
|
|
\item Abdrucken von Codezeilen
|
|
\item Syntaxhighlighting und Zeilennummern
|
|
\item mögliche Pakete
|
|
\begin{itemize}
|
|
\item \verb|verbatim|
|
|
\item \verb|listings|
|
|
\item \verb|minted|
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Die verbatim-Umgebung}
|
|
\begin{itemize}
|
|
\item kein Syntaxhighlighting und Zeilennummern
|
|
\item Monospacefont
|
|
\item Befehle werden nicht ausgeführt
|
|
\end{itemize}
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/listings-verbatim.tex}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/listings-verbatim.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Die lstlistings-Umgebung}
|
|
\begin{itemize}
|
|
\item Syntaxhighlighting bestimmter Sprachen und Zeilennummern
|
|
\item Customization mit Schriftgröße und Farben
|
|
\end{itemize}
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/listings-lstlistings.tex}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/listings-lstlistings.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Die minted-Umgebung}
|
|
\begin{itemize}
|
|
\item Syntaxhighlighting vieler Sprachen
|
|
\item Farben direkt voreingestellt
|
|
\item benötigt \verb|pygmentize| und \verb|shell-escape|-Option beim Kompilieren
|
|
\end{itemize}
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/listings-minted.tex}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/listings-minted.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Code aus Datei einbinden}
|
|
\begin{itemize}
|
|
\item besonders geeignet für längere Codeauszüge
|
|
\end{itemize}
|
|
\begin{minipage}{.4\textwidth}
|
|
\input{codebeispiele/listings-from-file.tex}
|
|
\end{minipage}
|
|
\hfill
|
|
\begin{minipage}{.5\textwidth}
|
|
\inputminted{latex}{codebeispiele/listings-from-file.tex}
|
|
\end{minipage}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Weitere Verzeichnisse}
|
|
\begin{itemize}
|
|
\item automatisch aktualisierendes Inhaltsverzeichnis sowie Verzeichnisse für Abbildungen, Codelistings (Abkürzungen, Stichwörter, Bibliographie, \dots)
|
|
\end{itemize}
|
|
\inputminted{latex}{codebeispiele/list-of-everything.tex}
|
|
\end{frame}
|
|
\end{document}
|