Transparente Klassenoptionen bei Wrapper-Klassen
Verfasst: Mi 3. Apr 2013, 18:21
Hallo zusammen,
ich baue gerade an einer Wrapper-Klasse und habe folgendes -- zugegebener Maßen eher kleine -- Problem. Ich möchte mit neuen Klassenoptionen Befehle der Basis-Klasse (KOMA) anpassen. Der standardmäßige Weg, wie er im clsguide vorgegeben ist, funktioniert deshalb nicht und erzeugt logischerweise einen Fehler:
Natürlich muss die Klasse für diesen Fall vor der Definition der Option geladen werden. Damit diese dennoch die Klassenoptionen sieht, wird diese nicht mitsondern durchaufgerufen.
Dieses Vorgehen erzeugt jedoch eine Warnung, dass die hier beispielhaft verwendete Option chapterprefix nicht verwendet wurde, obwohl dies -- wie in der Ausgabe zu sehen -- der Fall ist. In meiner Lösung nutze ich deshalb folgende Konstruktion:
Das Einfügen der Zeilelässt besagte Warnung verschwinden. Meine Frage ist nun, ob dieses Vorgehen so in Ordnung geht oder vielleicht doch in irgendeiner Form zu Problemen o.ä. führen könnte. Falls ja, wie würde denn eine bessere Lösung aussehen?
Grüße
Falk
ich baue gerade an einer Wrapper-Klasse und habe folgendes -- zugegebener Maßen eher kleine -- Problem. Ich möchte mit neuen Klassenoptionen Befehle der Basis-Klasse (KOMA) anpassen. Der standardmäßige Weg, wie er im clsguide vorgegeben ist, funktioniert deshalb nicht und erzeugt logischerweise einen Fehler:
\RequirePackage{filecontents} \begin{filecontents}{\jobname.cls} \newcommand*\myclsname{scrreprt} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{\myclsname}} \DeclareOption{newopt}{% \renewcommand{\chapterheadendvskip}{\vspace*{5\baselineskip}}% } \ProcessOptions*\relax \LoadClass{\myclsname} \end{filecontents} \documentclass[chapterprefix,newopt]{\jobname} \usepackage{blindtext} \begin{document} \blinddocument \end{document}
\LoadClass
\LoadClassWithOptions
\RequirePackage{filecontents} \begin{filecontents}{\jobname.cls} \newcommand*\myclsname{scrreprt} \LoadClassWithOptions{\myclsname} \DeclareOption{newopt}{% \renewcommand{\chapterheadendvskip}{\vspace*{5\baselineskip}}% } \ProcessOptions*\relax \end{filecontents} \documentclass[chapterprefix,newopt]{\jobname} \usepackage{blindtext} \begin{document} \blinddocument \end{document}
\RequirePackage{filecontents} \begin{filecontents}{\jobname.cls} \newcommand*\myclsname{scrreprt} \LoadClassWithOptions{\myclsname} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{\myclsname}} \DeclareOption{newopt}{% \renewcommand{\chapterheadendvskip}{\vspace*{5\baselineskip}}% } \ProcessOptions*\relax \end{filecontents} \documentclass[chapterprefix,newopt]{\jobname} \usepackage{blindtext} \begin{document} \blinddocument \end{document}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\myclsname}}
Grüße
Falk