LaTeX-Wörterbuch: TeX Primitiven: \futurelet

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}