Befehle die ich häufig in der LaTeX-Präambel verwende

Seit ich mit LaTeX begonnen habe, habe ich viele Pakete kennengelernt und eigene Befehle entwickelt. Alle haben irgendwo einen Platz in der Präambel gefunden. Problematisch wird es, wenn ich mit alten LaTex-Dokumenten arbeite, in denen ich bestimmte Befehle noch nicht verwendet habe. Oder wenn ich die Präambel eines Dokumentes kopiere, in dem unnötige Pakete eingebunden werden. Oftmals vergesse ich auch altenative Parameter, die man für ein Paket verwenden kann.

Da das alles sehr lästig ist, beginne ich jetzt diese Liste mit Befehlen aus meinen Präambeln. Dabei stelle ich kurz vor, warum ich ein Paket verwende und welche Prameter man verwenden kann.

Als allgemeine Einleitung zu LaTeX eigenet sich auf jedenfall „The not so Short Introduction to LaTeX„, die es in einer Kurzfassung auch auf deutsch gibt.

Dokumententyp

  1. 1
    
    \documentclass[a4paper,twoside,12pt]{scrartcl}

    Mit dieser Zeile wird der Dokumententyp scrartcl verwendet. Häufig verwendete Dokumententypen sind:

    • article – Kurze Artikel
    • report – Lange Berichte
    • book – Bücher
    • scrartcl – Kurze Artikel (KOMA Script)
    • scrreprt – Lange Berichte (KOMA Script)
    • scrbook – Bücher (KOMA Script)

    KOMA-Script erlaubt eine bessere Anpassung z.B. an DIN-Formate.
    Wichtige Optionen sind der Dokumententypen sind:

    • a4paper – DIN-A4 als Seitengröße verwenden (Andere: letterpaper)
    • twoside – Doppelseitigen Satz verwenden (Standard: oneside)
    • 12pt – Angabe der Schriftgröße in Punkten (Standard: 10pt)
    • titlepage – Nach dem Dokumententitel eine neue Seite beginnen (Standard bei book und report; bei article ist der Standard notitlepage)
    • twocolumn – Teile die Seiten in zwei Spalten auf (Standard: onecolumn)
    • openright, openany – Sollen Kapitel immer auf der rechten Seite begonnen werden?
  2. 1
    
    \pagestyle{headings}

    In LaTeX gibt es drei verschiedene Seitenlayouts:

    • plain – Setze die Seitenzahl zentriert unten auf die Seite.
    • headings – Zeige Seitenzahl und Kapitelnamen in der Kopfzeile jeder Seite an.
    • empty – Zeige weder Seitenzahlen, noch Kapitelnamen an.

Sprache und Zeichensatz

  1. 1
    
    \usepackage[english]{babel}

    Verschiedene Sprachen haben auch verschiedene Trennungsregeln. Unter anderem werden diese in Paket babel definiert.

    • english – englische Trennungsregeln verwenden
    • ngerman – deutsche Trennungsregeln verwenden (neue Rechtschreibung)
    • german – deutsche Trennungsregeln verwenden (alte Rechtschreibung)
    • ngerman,english – deutsche und englische Trennungsregeln laden (z.B. bei mehrsprachigen Dokumenten). Im Dokument die aktiven Trennungsregeln umschalten mit:
      \selectlanguage{ngerman}
  2. 1
    2
    3
    
    \usepackage{ucs}              % Unicode (u.A. UTF-8) hinzuladen!
    \usepackage[utf8x]{inputenc}  % Verwende UTF-8 als Zeichensatz.
    \usepackage[T1]{fontenc}      % Trennung von Umlauten ermöglichen(?)

    Sofern man Sonderzeichen aus mehreren Sprachen in einem Dokument verwendet (z.B. Sonderzeichen in den Autorennamen der Literaturliste), sollte man den Unicode-Zeichensatz UTF-8 als Zeichensatz seines Dokumentes verwenden. Das Dokument selbst sollte dann auch in diesem Zeichensatz gespeichert werden. Man sollte auch beachten, dass zusätzliche Dokumente wie .bib-Dateien auch im UTF-8 Zeichensatz gespeichert werden müssen. Im Referenzmanager JabRef kann man unter file / database properties / encoding UTF-8 einstellen!

Beispiel

Ein Dokument mit den oben beschriebenen Werten für die Präambel könnte folgendermaßen aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
% Dokumententyp
\documentclass[a4paper,twoside,12pt]{scrartcl}
\pagestyle{headings}
% Sprache und Zeichensatz
\usepackage[english]{babel}
\usepackage{ucs}              % Unicode (u.A. UTF-8) hinzuladen!
\usepackage[utf8x]{inputenc}  % Verwende UTF-8 als Zeichensatz.
\usepackage[T1]{fontenc}      % Trennung von Umlauten ermöglichen(?)
 
\begin{document}
Text
\end{document}

Funktion aus einem bestimmten R-Paket laden

Die Programmiersprache R kann durch Funktionen erweitert werden, die von anderen Nutzern erstellt wurden. Oftmals sind diese Erweiterungen in Paketen zusammengefasst. Ein Problem tritt allerdings dann auf, wenn in unterschiedlichen Paketen Funktionen enthalten sind, die den gleichen Namen tragen (siehe: Stackoverflow).

Ich nutze z.B. folgende Pakete sehr häufig:

  • sfsmisc – Mit der Funktion eaxis() lassen sich schöne logarithmische Achsen erstellen. Die Beschriftung wird dabei von der Funktion pretty10exp() übernommen.
  • Hmisc– Mit der Funktion errbar() lassen sich sehr leicht Fehlerbalken in Plots eintragen.
  • TeachingDemos – Mit der Funktion subplot() lassen sich sehr einfach Insets zu Plots hinzufügen.

Lädt man allerdings die Pakete,

## Installation der Pakete
install.packages("sfsmisc", dependencies=T)
install.packages("Hmisc", dependencies=T)
install.packages("TeachingDemos", dependencies=T)
 
## Laden der Pakete
library(package = "sfsmisc")
library(package = "Hmisc")
library(package = "TeachingDemos")

dann erhält man folgende Fehlermeldungen:

Attache Paket: ‘Hmisc’

Das folgende Objekt ist maskiert from ‘package:survival’:
    untangle.specials

Das folgende Objekt ist maskiert from ‘package:sfsmisc’:
    errbar

Das folgende Objekt ist maskiert from ‘package:base’:
    format.pval, round.POSIXt, trunc.POSIXt, units

Man kann erkennen, dass sowohl Hmisc als auch sfsmisc eine Funktion namens errbar() enthalten.

Attache Paket: ‘TeachingDemos’

Das folgende Objekt ist maskiert from ‘package:Hmisc’:
    cnvrt.coords, subplot

Man kann erkennen, dass sowohl TeachingDemos als auch Hmisc eine Funktion mit Namen subplot() enthalten.

Um nun die Funktion aus einem bestimmten Paket zu verwenden, kann man R dies mit Hilfe von zwei Doppelpunkten :: mitteilen:

# Verwende die Funktion subplot() aus dem Paket TeachingDemos
TeachingDemos::subplot(...)
 
# Verwende die Funktion errbar() aus dem Paket Hmisc
Hmisc::errbar(...)

Meine Empfehlung: Wenn man Funktionen aus einem Paket verwendet, sollte man beim Aufruf der Funktion immer diese Notation verwenden. Zum einen hilft es dem Leser zu erkennen, woher diese Funktion stammt. Zum anderen verhindert man unnötige Verwirrung, wenn man zu einem späteren Zeitpunkt Pakete einbindet, die Funktionen mit gleichem Namen enthalten.