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
BearbeitenDer Befehl \futurelet wird zum Beispiel zur Definition von Makros mit optionalen Argumenten benutzt.
Beispiel
BearbeitenIm 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}