Eine Möglichkeit ist es, das Paket `pgfkeys` zu verwenden, das den Options-Mechanismus für TikZ/PGF definiert. Beschrieben ist es im TikZ-Handbuch [TikZ-Handbuch][1] unter *Utilities*/*Key Management*. EIn kleines Beispiel demonstriert die wesentlichen Punkte:
\documentclass{article}
\usepackage{pgfkeys}
\makeatletter
\pgfkeys{
name/.cd ,% Pfad eindeutig für Befehl machen
anrede/.code = \renewcommand*\name@anrede{#1} ,
vorname/.code = \renewcommand*\name@vorname{#1} ,
nachname/.code = \renewcommand*\name@nachname{#1} ,
}
\newcommand*\name@anrede{Herr/Frau}
\newcommand*\name@vorname{Vorname}
\newcommand*\name@nachname{Nachname}
\newcommand*\name[1][]{%
\begingroup
\pgfqkeys{/name}{#1}%
\name@anrede\ \name@vorname\ \name@nachname
\endgroup
}
\makeatother
\begin{document}
\name\par
\name[anrede=Frau,nachname=Musterfrau,vorname=Mia]\par
\name
\end{document}
![alt text][1]
text][2]
Das Beispiel definiert Keys, die alle zum Pfad `/name` gehören. In Paketen habe ich mir angewöhnt, als Pfad den Paketnamen zu verwenden. Nehmen kann man alles, was einem gefällt. Streng genommen ist auch gar keiner nötig, aber so sinkt vielleicht die Gefahr, dass man Probleme mit bestehenden Keys mit gleichem Namen bekommt.
Jeder Key muss mit einem *Handler* definiert werden. Der einfachste ist `.code`, mit dem der Wert, den der Key bekommt, als `#1` weiterverarbeitet werden kann.
Im Befehl am Schluss werden die Keys schließlich gesetzt. Dabei ist `\pgfqkeys{/<Pfad>}{<Keys>}` nur eine andere Methode für `\pgfkeys{<Pfad>/.cd, <Keys>}`. Gesetzt habe ich sie in einer Gruppe, damit sie beim nächsten Aufruf des Befehls wieder die Voreinstellung haben, falls sie nicht verwendet werden.
[1]: http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf
[2]: http://texwelt.de/wissen/upfiles/pgfkeys.png