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}