ich habe ein kleines Problem mit dem \@ifstar-Befehl. Wenn ich ihn »normal« benutze, geht alles, aber wenn ich den Befehl innerhalb einer \if-Struktur verwenden will, geht es nicht.
Hintergrund: Ich würde gerne durch eine Paketoption, die mir als \if@<paketoption> die Stern- und normale Definition eines Makros vertauschen können.
Hier mal ein Beispiel, in dem ich die \if-Anweisung einfach so definiere, da das Problem vermutlich nicht im Paket sondern meiner Verwendung von \@ifstar liegt. Ich hab auch schon zwei Verschiedene Varianten probiert, die beide nicht gehen...
\documentclass[fontsize=10pt, DIV=11,a4paper]{scrartcl} \usepackage[latin1]{inputenc} \makeatletter % die Paketoption wird hier schlicht als if defniniert \newif\if@paketoption \@paketoptiontrue % \@paketoptionfalse % die beiden Befhele, die durch Stern unterschieden werden sollen \providecommand{\@testnorm}{\textbf{ohne} Stern} \providecommand{\@teststar}{\textbf{mit} Stern} % ein "normaler" Aufruf von \@ifstar geht \providecommand{\klapptimmer}{% \@ifstar \@teststar \@testnorm% } % und zwei Versuche, das ganze mit einer if-Abfrage % bei Bedarf vertauschen zu können \providecommand{\versucheins}{% \if@paketoption \@ifstar \@notestar \@notenorm \else \@ifstar{\@notenorm}{\@notestar} \fi } \providecommand{\versuchzwei}{% \@ifstar% {\if@paketoption\@notestar\else\@notenorm\fi}% {\if@paketoption\@notenorm\else\@notestar\fi} } \makeatother \begin{document} \section*{\texttt{@ifstar}-Problem} Zuerst die Version, die immer geht: An dieser Stelle der gesternte Aufruf: \klapptimmer* (Soll: \textit{mit Stern}) An dieser Stelle der normale Aufruf: \klapptimmer\ (Soll: \textit{ohne Stern}) \bigskip \noindent Jetzt der missglueckte Versuch 1: gesternter Aufruf: \versucheins* (Soll: \textit{mit Stern}, wenn \texttt{@paketoption=true}, sonst \textit{ohne Stern}) gesternter Aufruf: \versucheins (Soll: \textit{ohne Stern}, wenn \texttt{@paketoption=true}, sonst \textit{nit Stern}) \bigskip \noindent Und der zweite missglueckte Versuch: gesternter Aufruf: \versuchzwei* (Soll: \textit{mit Stern}, wenn \texttt{@paketoption=true}, sonst \textit{ohne Stern}) gesternter Aufruf: \versuchzwei (Soll: \textit{ohne Stern}, wenn \texttt{@paketoption=true}, sonst \textit{nit Stern}) \end{document}
Grüße, Tobi