LaTeX-Wörterbuch: TeX Primitiven: \futurelet

\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}