KunterBuntesSeminar-WS09/Erste Schritte mit LaTeX/Quellcode der Folien

Aus Fachschaft_Informatik
Version vom 19. November 2009, 21:13 Uhr von Julian F. (Diskussion | Beiträge) (Quellcode hochgeladen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
\documentclass[hyperref={pdfpagelabels=false}]{beamer}
%\documentclass[handout,hyperref={pdfpagelabels=false}]{beamer}

%\usepackage{pgfpages}
%\pgfpagesuselayout{resize to}[a4paper,border shrink=10mm,landscape]
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=10mm]
%\pgfpagesuselayout{4 on 1}[a4paper,border shrink=10mm,landscape]
%\pgfpagesuselayout{8 on 1}[a4paper,border shrink=10mm]

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{listings}

\usepackage{beramono}

\let\Tiny=\tiny
\renewcommand{\emph}{\textbf}
\newcommand{\code}[1]{\footnotesize\texttt{#1}%
\normalsize}

\lstdefinestyle{LaTeX}
{
columns=flexible,
frame=single,
frameround=tttt,
basicstyle=\tiny\ttfamily,
}

\lstdefinestyle{LaTeX-big}
{
columns=flexible,
frame=single,
frameround=tttt,
basicstyle=\scriptsize\ttfamily,
}

\lstdefinestyle{LaTeX-big-stupid}
{
frame=single,
frameround=tttt,
basicstyle=\small,
}

\usetheme{CambridgeUS}
\useinnertheme{rectangles}
\usecolortheme{beaver}
\setbeamercolor{title}{fg=white,bg=darkred!80!black}
\setbeamercolor{itemize item}{fg=darkred!80!black}
\setbeamercolor{itemize subitem}{fg=darkred!80!black}
\setbeamercolor{enumerate item}{fg=darkred!80!black}
\setbeamercolor{enumerate subitem}{fg=darkred!80!black}
\setbeamercolor{section number projected}{bg=darkred!80!black}
\setbeamercolor{subsection number projected}{bg=darkred!80!black}

\setbeamertemplate{navigation symbols}{}
\setbeamercovered{highly dynamic}

\title{Erste Schritte mit LaTeX}
\subject{LaTeX}
\author{Julian Fietkau}
\institute{Fachschaft Informatik}
\date[19.11.09]{19. November 2009}

\logo{\includegraphics[width=0.7cm,height=0.7cm]{Bilder/uhh-logo.png}}

\begin{document}

\frame
{
  \titlepage
}

\frame
{
  \tableofcontents
}

\section{Vorwort}

\frame
{
  \frametitle{Vorwort}

  \begin{itemize}[<+->]
    \item Diese Folien sind nicht (unbedingt) selbstsprechend.
    \item Dieser Vortrag ist nicht so gedacht, dass alles sofort im Kopf hängenbleibt.
    \item Lieber selbst ausprobieren und immer mal wieder denken "`hey, darüber hat Julian doch
      gesprochen"' - und dann in den Folien nachschauen.
  \end{itemize}
}

\section{Was ist \LaTeX{}?}

\frame
{
  \begin{center}
    \includegraphics[height=6cm]{Bilder/Donald_Knuth} \\
    \tiny \mode<handout>{Donald Knuth.} Quelle: Wikimedia Commons
  \end{center}
}

\frame
{
  \frametitle{Was ist \TeX{}?}

  \begin{itemize}[<+->]
    \item \emph{Textsatzsystem} mit \emph{Makrosprache}, die ebenfalls \TeX{} heißt
    \item entwickelt von Donald Knuth
  \end{itemize}
}

\frame
{
  \begin{center}
    \includegraphics[height=6cm]{Bilder/Leslie_Lamport} \\
    \tiny \mode<handout>{Leslie Lamport.} Quelle: Wikimedia Commons
  \end{center}
}

\frame
{
  \frametitle{Was ist \LaTeX{}?}

  \begin{itemize}[<+->]
    \item sehr mächtiges \emph{Makropaket} für \TeX{}
    \item entwickelt von Leslie Lamport (\LaTeX{}: \emph{La}mport \TeX{})
    \item heute: \LaTeX{} uvm. enthalten in \TeX{}-Distributionen (MikTeX, TeX Live, \dots)
    \item kein WYSIWYG, sondern MarkUp-Code
  \end{itemize}
}

\section{Bestandteile}

\subsection{Dokumentstruktur}

\begin{frame}[fragile]
  \frametitle{Dokumentstruktur}

  \parbox[c]{5cm}
  {
    \begin{itemize}[<+->]
      \item Präambel
      \begin{itemize}[<+->]
        \item document class
        \item benutzte Pakete
        \item Metadaten
      \end{itemize}
      \item Dokumentinhalt
      \begin{itemize}[<+->]
        \item Kapitel, Abschnitte, Unterabschnitte, Absätze
        \item Grafiken
        \item Tabellen
        \item der ganze Inhalt eben
      \end{itemize}
    \end{itemize}
  }
  \parbox[c]{6.3cm}
  {
    \lstinputlisting[title={\ },style=LaTeX,inputencoding={latin1}]{Listings/minimal.tex}
  }
\end{frame}

\subsection{Präambel}

\begin{frame}[fragile]
  \frametitle{Präambel}

  \parbox[c]{5cm}
  {
    \begin{itemize}[<+->]
      \item Dokumentklasse
      \begin{itemize}[<+->]
        \item article
        \item book
        \item letter
        \item \dots
      \end{itemize}
      \item Packages
      \begin{itemize}[<+->]
        \item siehe nächste Folie :)
      \end{itemize}
      \item Metadaten
      \begin{itemize}[<+->]
        \item Titel des Dokuments
        \item Autor
        \item Erscheinungsdatum
        \item ggf. Thema, Suchbegriffe etc.
      \end{itemize}
    \end{itemize}
  }
  \parbox[c]{6.5cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/preamble.tex}
  }
\end{frame}

\subsection{Packages}

\begin{frame}[fragile]
  \frametitle{Packages}

  \parbox[c]{6.6cm}
  {
    \begin{itemize}[<+->]
      \item inputenc: angeben, wie die \TeX{}-Datei kodiert ist
      \item fontenc: angeben, wie die Ausgabedatei kodiert werden soll
      \item babel: Sprachunterstützung (Bezeichnungen, Worttrennung)
      \item lmodern: lädt eine verbesserte T1-Version von Computer Modern (Standard-Font)
      \item graphicx: Einbinden von Grafiken (mit pdfLaTeX: JPEG, PNG, PDF)
      \item listings: Einbinden von Quellcode
    \end{itemize}
  }
  \parbox[c]{5.0cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/packages.tex}
  }
\end{frame}

\subsection{Struktur und Formatierung}

\begin{frame}[fragile]
  \frametitle{Struktur und Formatierung}

  \parbox[c]{6.6cm}
  {
    \begin{itemize}[<+->]
      \item maketitle: erzeuge automatisch den Dokumentenkopf
      \item tableofcontents: erzeuge automatisch ein Inhaltsverzeichnis
      \item section, subsection: Strukturierung in Abschnitte und Unterabschnitte
      \item emph, textbf, textit, texttt: Textformatierung
      \item itemize: unnummerierte Aufzählungen
    \end{itemize}
  }
  \parbox[c]{4.6cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/structure-and-formatting.tex}
  }
\end{frame}

\subsection{Mathe}

\begin{frame}[fragile]
  \frametitle{Mathe}

  \parbox[c]{6.0cm}
  {
    \begin{itemize}[<+->]
      \item zwischen \$-Zeichen eingeschlossenes wird als Formeln interpretiert
      \item dort gelten andere Regeln
      \begin{itemize}[<+->]
        \item neue Befehle
        \item andere Formatierungen
      \end{itemize}
    \end{itemize}
  }
  \parbox[c]{5.5cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/math.tex}
    $x_{1/2} = -\frac{p}{2} 
  \pm \sqrt{\frac{p^2}{4}-q}$
  }
\end{frame}

\section{Wichtige Erweiterungen}

\subsection{KOMA-Script}

\begin{frame}[fragile]
  \frametitle{KOMA-Script}

  \parbox[c]{6.0cm}
  {
    \begin{itemize}[<+->]
      \item die Standardklassen gehen von US-Normen (Papiergröße etc.) aus
      \item deshalb gibt es die KOMA-Klassen, die flexibler, neuer und besser sind
      \item sie kümmern sich um Schriftsatz, Ränder, Papiergröße und mehr
      \item \emph{scrguide.pdf}
    \end{itemize}
  }
  \parbox[c]{5.5cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/koma.tex}
  }
\end{frame}

\subsection{\LaTeX{}-Beamer}

\begin{frame}[fragile]
  \frametitle{\LaTeX{}-Beamer}

  \parbox[c]{6.0cm}
  {
    \begin{itemize}[<+->]
      \item man kann auch Präsentationsfolien machen
      \begin{itemize}[<+->]
        \item die können dann z.B. so aussehen wie diese hier ;)
      \end{itemize}
      \item die bekannte \LaTeX{}-Dokumentstruktur wird auf Folien angewendet
      \item außerdem gibt es viele neue, spezielle Befehle
      \item eine Vielzahl an \{Color/Font/Inner/Outer\} Themes existiert
      \item \emph{beameruserguide.pdf}
    \end{itemize}
  }
  \parbox[c]{5.6cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/beamer.tex}
  }
\end{frame}

\subsection{Bib\TeX{}}

\begin{frame}[fragile]
  \frametitle{Bib\TeX{}}

  \parbox[c]{6.0cm}
  {
    \begin{itemize}[<+->]
      \item Literaturverwaltung mit \TeX{}
      \item mal stellt eine Literaturdatenbank mit allen relevanten Inhalten zusammen
      \item im Text referenziert man die Werke (mittels \code{cite})
      \item Style-Definitionen kümmern sich automatisch darum, wie das ganze später aussieht
      \item i.d.R. werden in der Literaturliste nur die Werke abgedruckt, die im Text auch tatsächlich zitiert wurden
      \item \emph{btxFAQ.pdf}
    \end{itemize}
  }
  \hfill
  \parbox[c]{5.7cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/bibtex1.tex}
    \vspace{-0.8cm}
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/bibtex2.tex}
  }
\end{frame}

\section{Tipps und Tricks}

\frame
{
  \begin{center}
    Es folgt eine Reihe von Tricks und Kniffen aus meiner (spärlichen) Erfahrung mit \LaTeX{}.
  \end{center}
}

\begin{frame}[fragile]
  \frametitle{Hilfen für Bib\TeX{}}

  \begin{itemize}[<+->]
    \item Man kann/sollte/darf zum Erstellen einer Literaturdatenbank ein externes Programm benutzen. Ich nehme JabRef.
    \item Online-Bibliotheken etc. haben häufig einen "`Bib\TeX{} für dieses Buch"'-Button.
      \begin{itemize}[<+->]
        \item Wikipedia: Werkzeuge $\rightarrow$ Seite zitieren
      \end{itemize}
    \item Es gibt Styles, die DIN-normierte, korrekte deutsche Literaturverzeichnisse ausspucken (google "`din1505 ctan"').
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Nicht-grausige Code-Listings}

  \parbox[c]{6.0cm}
  {
    \begin{itemize}[<+->]
      \item Eigene Boxes für jedes Zeichen (Listings-Standard) machen Code hässlich und außerdem nicht copy-paste-bar.
      \item Stattdessen: vernünftigen Monospace-Font benutzen! (mein Tipp: \code{\textbackslash usepackage\{beramono\}})
      \item \emph{listings.pdf}
    \end{itemize}
  }
  \hfill
  \parbox[c]{5.7cm}
  {
    \lstinputlisting[title={\ },style=LaTeX-big-stupid,inputencoding={latin1}]{Listings/listingstyle.tex}
    \lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/listingstyle.tex}
  }
\end{frame}

\begin{frame}[fragile]
  \frametitle{Tipps für Beamer-Folien}

  \begin{itemize}[<+->]
    \item zum schrittweisen Einblenden von Aufzählungen: \code{\textbackslash begin\{itemize\}[<+->]}
    \item um noch nicht aufgedeckte Teile halbtransparent anzuzeigen: \code{\textbackslash setbeamercovered\{transparent\}},
      \code{\textbackslash setbeamercovered\{highly dynamic\}} o.Ä.
    \item für eine Druckversion der Folien: \code{\textbackslash documentclass[handout]\{beamer\}}
    \item noch ausgefeilter - Anfang meiner bewährten Beamer-Präambel:
  \end{itemize}
  \visible<4->{\lstinputlisting[title={\ },style=LaTeX-big,inputencoding={latin1}]{Listings/beamer-preamble.tex}}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Allgemeine Tipps}

  \begin{itemize}[<+->]
    \item wichige Positionierungshilfen: \code{\textbackslash hfill} und \code{\textbackslash vfill}
    \item für FGI-Aufgaben unerlässlich: \code{overset}, z.B.:
      \code{\$\textbackslash overset\{a\}\{\textbackslash longrightarrow\}\$} \hspace{2em} $\overset{a}{\longrightarrow}$
    \item für gute Kopf- und Fußzeilen: \code{fancyhdr} nachschlagen
  \end{itemize}
\end{frame}

\section*{\ }

\frame
{
  \begin{center}
    \huge
    Einen Blick in meine Dokumente werfen?
  \end{center}
}

\frame
{
  \begin{center}
    \huge
    Danke für die Aufmerksamkeit!
  \end{center}
}

\end{document}