LaTeX-Wörterbuch: TeX Primitiven: \futurelet

Aus Wikibooks

Syntax[Bearbeiten]

\futurelet\commandSymbolOne\commandSymbolTwo TokenOne

Beschreibung[Bearbeiten]

\futurelet führt zuerst eine \let-Zuweisung von TokenOne zu \commandSymbolOne durch und expandiert dann \commandSymbolTwo. TokenOne verbleibt dabei hinter \commandSymbolTwo in der Tokenliste. In der Konsequenz daraus wird zum Beispiel TokenOne als Argument von \commandSymbolTwo interpretiert, wenn \commandSymbolTwo zu einem Makro mit mindestens einem Argument expandiert.

Beispiel[Bearbeiten]

\documentclass{article}

\begin{document}
 \def\one{1}
 \def\two{2}
 \futurelet\one\two3
 % liefert:
 % 23 (\one wird 3 zugewiesen, danach wird \two expandiert und danach 3)
 \one\two
 % liefert: 32 und zeigt damit, dass \one jetzt zu 3 expandiert.
\end{document}

Anwendung[Bearbeiten]

Der Befehl \futurelet wird zum Beispiel zur Definition von Makros mit optionalen Argumenten benutzt.

Beispiel[Bearbeiten]

Im folgenden Quelltext wird das Makro \pd definiert. Wenn \pd eine öffnende Klammer folgt, so wird das Symbol einer partiellen Ableitung mit Bruchstrich erzeugt, ansonsten expandiert \pd einfach zu \partial.

\newcommand\pdFraction[2]{\frac{\partial#1}{\partial#2}}
\def\pd{\futurelet\pdNextChar\pdSecond}
\def\pdSecond{%
  \ifx\pdNextChar\bgroup
    \let\next\pdFraction
  \else
    \let\next\partial
  \fi
\next}