Standardoption in eigener Klasse

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Standardoption in eigener Klasse

von benji » Sa 17. Dez 2011, 14:15

Nur falls jm. ebenfalls danach sucht: Der "Trick" ist, die ProcessOptions vor die PassOptionsToClass zu ziehen.

Standardoption in eigener Klasse

von Benji » Sa 10. Dez 2011, 13:53

Hallo

Ich komme bei einem Problem mit meiner Klasse nicht weiter. Die Klasse basiert auf der Klasse "book". Diese hat als Standartoption eine Schriftgröße von 10pt, d.h. wird keine Option angegeben sind es 10pt. In den Optionen kann ich nun 12pt einstellen. Ich würde aber gerne haben, dass Standardmäßig 12pt verwendet werden, d.h. wenn keine Optionen angegeben werden. Wenn ich in die Optionsliste 10pt schreibe, soll dann die Schriftgröße 10pt verwendet werden. Dieses bekomme ich nicht hin. Hier einmal ein Minimalbeispiel (\blindtext hilft nur bei der Unterscheidung im PDF):
\documentclass[]{klasse} 

\begin{document}
  \blindtext
  \blindtext
  \blindtext
  \blindtext
\end{document}
Und hier die Klasse, mit verschiedenen Ideen zur Umsetzung, welche aber alle nicht funktionieren:
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesClass{klasse}

%So funktioniert das ganze, jedoch ist dann ohne Angabe einer Option die Standard Groesse 10pt
\DeclareOption{12pt}{\PassOptionsToClass{12pt}{book}}
\DeclareOption{10pt}{\PassOptionsToClass{10pt}{book}}

%Meine erste Idee. Jedoch klappt diese nicht. 
\newcommand{\ptsize}{12pt}
\DeclareOption{10pt}{\renewcommand{\ptsize}{10pt}}
\DeclareOption{12pt}{\renewcommand{\ptsize}{12pt}}
\PassOptionsToClass{\ptsize}{book}

%Zweite Idee, die leider auch nicht geht: Das ganze ueber ein if zu machen (So wuerde es eh nur mit 2 Moeglichkeiten gehen)
\newif\if@tenpt
\@tenptfalse
\DeclareOption{10pt}{\@tenpttrue}

\if@tenpt
    \PassOptionsToClass{10pt}{book}
\else
    \PassOptionsToClass{12pt}{book}
\fi

%Die dritte Idee, welche auf der zeiten (und etwas spielen basiert)
\newif\if@tenpt
\@tenptfalse
\DeclareOption{10pt}{\@tenpttrue}

\if@tenpt
    \DeclareOption{10pt}{\PassOptionsToClass{10pt}{book}}
    \ExecuteOptions{10pt}
\else
    \DeclareOption{12pt}{\PassOptionsToClass{12pt}{book}}
    \ExecuteOptions{12pt}
\fi

\ProcessOptions\relax
\LoadClass{book}

\RequirePackage{blindtext}
\RequirePackage[english]{babel}
Würde mich super über Input freuen. Vielleicht geht es ja auch wesentlich einfacher, dass man einfach eine Standardoption angibt. Toll wäre es, wenn ich irgendwie verstehen könnte warum meine Versuche oben nicht funktionieren.

Vielen Dank schonmal.
Benji

Nach oben