von KOMA » Mo 28. Jun 2010, 08:51
Wenn Du nicht alle möglichen Angaben vor dem Gleichheitszeichen als key definieren willst, dann hilft Dir keyval in diesem Fall eher wenig. Stattdessen musst Du selbst einen Parser für die gewünschte Syntax schreiben. Das ist sicher nichts für einen LaTeX-Anfänger. Auch wenn Du Teile von keyval dafür übernehmen kannst, zeigt die Erfahrung, dass ein Anfänger das in der Regel nicht wirklich versteht. Schon die einfachste Form, die keinerlei Fehleingaben duldet und bezüglich der Leerzeichen sehr pingelig ist, werden die meisten Anfänger nicht in allen Konsequenzen durchschauen (ungetestet, was bei solchen Dingen immer fehleranfällig ist):
\newcommand*{\meinbefehl}[1]{%
\@for \@tempa:=#1\do {%
\expandafter\meinpsfrag\expandafter{\@tempa}%
}%
}
\newcommand*{\meinpsfrag}[1]{%
\@meinpsfrag#1\@nil
}
\newcommand*{\@meinpsfrag}{}
\def\@meinpsfrag#1=#2\@nil{%
\psfrag{#1}{#2}%
}
Wenn Du nicht alle möglichen Angaben vor dem Gleichheitszeichen als key definieren willst, dann hilft Dir keyval in diesem Fall eher wenig. Stattdessen musst Du selbst einen Parser für die gewünschte Syntax schreiben. Das ist sicher nichts für einen LaTeX-Anfänger. Auch wenn Du Teile von keyval dafür übernehmen kannst, zeigt die Erfahrung, dass ein Anfänger das in der Regel nicht wirklich versteht. Schon die einfachste Form, die keinerlei Fehleingaben duldet und bezüglich der Leerzeichen sehr pingelig ist, werden die meisten Anfänger nicht in allen Konsequenzen durchschauen (ungetestet, was bei solchen Dingen immer fehleranfällig ist): [code]\newcommand*{\meinbefehl}[1]{%
\@for \@tempa:=#1\do {%
\expandafter\meinpsfrag\expandafter{\@tempa}%
}%
}
\newcommand*{\meinpsfrag}[1]{%
\@meinpsfrag#1\@nil
}
\newcommand*{\@meinpsfrag}{}
\def\@meinpsfrag#1=#2\@nil{%
\psfrag{#1}{#2}%
}
[/code]