In Latex2e ist es möglich simple Programmierung durchzuführen, ohne das auf eine andere Programmiersprache zurück gegriffen werden muss. Nichtsdestotrotz unterstütz Latex natürlich eine Fülle an Programmierschnittstellen für alle gängigen Sprachen (z.B. Lua, Python, Perl, Bash …).
Als Grunddokument dient folgender Aufbau, dass Paket ifthen stellt grundlegende Kontrollstrukturen, Vergleichsoperatoren und Schleifen zur Verfügung:
\documentclass[a4paper,10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}
\begin{document}
...
\end{document}
Man kann einfache Funktionen definieren, indem man neue Kommandos erzeugt. Im folgenden Beispiel wird ein Kommando mit zwei Pflichtargumenten erzeugt:
\newcommand{\distanz}[2]{Geben Sie die Distanz zwischen #1 und #2 an!\\\\}
Das Kommando kann auch noch nachträglich verändert werden:
\renewcommand{\distanz}[3]{Geben Sie die Distanz zwischen #1, #2 und #3 an!\\\\}
Eine einfache String-Variable wird ebenso angelegt und verändert:
\newcommand{\zielort}{Bonn}
\renewcommand{\zielort}{Berlin}
Die Funktion kann nun aufgerufen werden:
\distanz{Kiel}{Hannover}{\zielort}
Ausgabe
Geben Sie die Distanz zwischen Kiel, Hannover und Berlin an!
Ganzzahlvariablen (auch negativ) heißen in Latex counter und werden folgendermaßen deklariert und mit einem Wert versehen:
\newcounter{zaehler}
\setcounter{zaehler}{100}
Der Wert eines counters kann auch inkrementiert werden:
\stepcounter{zaehler} %zaehler++ -> 101
Das Addieren und Subtrahieren geht ebenso:
\addtocounter{zaehler}{10} %111
\addtocounter{zaehler}{-11} %100
Jetzt kommt das Paket ifthen zum Tragen. Es bietet eine if-then-else-Anweisung und eine while-Schleife. Die Gesamtdokumentation dieses Paketes findet man hier.
Um lesend auf eine Variable/einen counter zuzugreifen, z.B. für einen Vergleich, dient folgende Anweisung:
\value{zaehler}
Möchte man stattdessen den aktuellen Wert als Dezimalzahl ausgeben:
\arabic{zaehler}
Um die Anwendung der Schleife und der if-Kontrollstruktur zu verdeutlichen dient folgendes Beispiel:
\newcounter{i}
\setcounter{i}{100}
\whiledo{\value{i} > 0}{
\noindent Wie viele Flaschen Bier sind noch da?\\
\addtocounter{i}{-1}
Es sind noch \textbf{\arabic{i}} Flaschen Bier im Kühlschrank.\\\\
\ifthenelse{\value{i} = 0}{\textbf{Es ist kein Bier mehr Da!}}
}
Ausgabe
Wie viele Flaschen Bier sind noch da?
Es sind noch 99 Flaschen Bier im Kühlschrank.
Wie viele Flaschen Bier sind noch da?
Es sind noch 98 Flaschen Bier im Kühlschrank.
...
Wie viele Flaschen Bier sind noch da?
Es sind noch 0 Flaschen Bier im Kühlschrank.
Es ist kein Bier mehr Da!