rafael
09-08-2011, 09:58
Ich würde gern ein Makro erzeugen, dass für eine Zeichenkette eine Anzahl von Befehlen und keys erzeugt. Dabei soll zum Beispiel die Ausdrücke
% \makeatletter
% \define@key{mytype}{methode}{%
% \def\mytypemethode{#1}}
% \presetkeys{mytype}{methode={Voreinstellung}}{}
% \makeatother
nicht nur für "methode", sondern auch andere Ausdrücke definiert werden.
MB:
\documentclass{scrartcl}
\usepackage{xkeyval}
%%%%%%%diese Makros automatisieren
% \makeatletter
% \define@key{mytype}{methode}{%
% \def\mytypemethode{#1}}
% \presetkeys{mytype}{methode={Voreinstellung}}{}
% \makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatletter
\newcommand{\makenewtype}[1]{%1. keydef und Makro \mytype#1 erzeugen
\define@key{mytype}{#1}{%
\expandafter\def\expandafter*\expandafter{\csname mytype#1\endcsname}{##1}
}
\presetkeys{mytype}{#1={Voreinstellung}}{}
}
\makeatother
\makenewtype{methode}
\newcommand{\printtype}[1]{%Ausgabe
\setkeys{mytype}{#1}
\mytypemethode
}
\begin{document}
\printtype{}%Voreinstellung
\printtype{methode={\\lokal einstellung}}
\end{document}
Ich bekomme es leider nicht hin, die Befehle zu erzeugen. Wer kann mir helfen?
Danke
% \makeatletter
% \define@key{mytype}{methode}{%
% \def\mytypemethode{#1}}
% \presetkeys{mytype}{methode={Voreinstellung}}{}
% \makeatother
nicht nur für "methode", sondern auch andere Ausdrücke definiert werden.
MB:
\documentclass{scrartcl}
\usepackage{xkeyval}
%%%%%%%diese Makros automatisieren
% \makeatletter
% \define@key{mytype}{methode}{%
% \def\mytypemethode{#1}}
% \presetkeys{mytype}{methode={Voreinstellung}}{}
% \makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatletter
\newcommand{\makenewtype}[1]{%1. keydef und Makro \mytype#1 erzeugen
\define@key{mytype}{#1}{%
\expandafter\def\expandafter*\expandafter{\csname mytype#1\endcsname}{##1}
}
\presetkeys{mytype}{#1={Voreinstellung}}{}
}
\makeatother
\makenewtype{methode}
\newcommand{\printtype}[1]{%Ausgabe
\setkeys{mytype}{#1}
\mytypemethode
}
\begin{document}
\printtype{}%Voreinstellung
\printtype{methode={\\lokal einstellung}}
\end{document}
Ich bekomme es leider nicht hin, die Befehle zu erzeugen. Wer kann mir helfen?
Danke