Sie sind hier

Wird draft=false in final übersetzt?

Wenn ich bei V2 die option final setze dann weiß ich das das an alle weiteren Pakete weitergereicht wird. Wenn ich nun bei V3 die Option 'draft=false' setze wird dann die Option final für weitere Pakete generiert?

Matthias

Bild von Markus Kohm

Zunächst einmal kenne ich kein Paket, bei dem final nicht die Voreinstellung ist. Desweiteren: Wenn Du einem Paket die Option final explizit übergeben willst, dann mach das. Wenn Du global die Option final setzen willst, dann mach das. Im Experten-Teil des KOMA-Script-Buches heißt es zu diesem Thema:

Die Standardklassen und frühere Versionen von KOMA-Script ebenso wie die meisten Pakete verstehen die Option draft nur ohne Wertübergabe, was dann draft=true entspricht. Dafür verstehen diese Klassen und Pakete meist noch die Option final, die dann draft=false entspricht. Zwecks Kompatibilität akzeptiert KOMA-Script final bei \documentclass auch weiterhin.

Es wäre aus meiner Sicht ganz schlecht, wenn die KOMA-Script-Klassen an den globalen Optionen manipulieren würden, also heimlich Optionen setzen würden. Damit wäre jegliche Transparenz verloren. Und bei Verwendung von \KOMAoptions würde das dann noch undurchsichtiger, nämlich davon abhängig, ob das entsprechende Paket davor oder danach geladen würde.

Das umgekehrte Beispiel ist relevanter. Bislang wusste ich, dass bei Angaben von 'draft', also jetzt 'draft=true' auch draft an graphicx übergeben wird. Jetzt wäre das nicht mehr direkt der Fall, es sei denn ich setzte 'draft' in Koma Script, was intern zu 'draft=true' wird und als Option auch an andere Pakete weitergegeben wird. Ist mein Verständnnis soweit richtig?

Bild von Markus Kohm

Bei allen Optionen mit Werten einfacher Schalter wird die Option ohne Wertangabe als Wertangabe true gewertet. Das steht im Prinzip auch so als Fußnote in der entsprechenden Tabelle.

Das ist auch nicht ungewöhnlich, sondern eher normal. Wenn Du beispielsweise bei der Anweisung \includegraphics von graphicx als Option draft oder clip angibst, dann ist das ganz genauso.

Die globalen Optionen von \documentclass werden von LaTeX selbst einfach so, wie sie bei \documentclass angegeben werden auch an alle Pakete weitergereicht. Pakete, bei denen eine dieser Optionen deklariert ist, werden also das ausführen, was bei ihnen dafür deklariert ist.

Auch die Übergabe von Werten an Optionen ist nicht wirklich etwas besonderes. Das kennt beispielsweise hyperref auch schon lange. Besonders ist, dass das bei KOMA-Script auch für eine Klasse gilt und dass man für KOMA-Script fast alle Optionen auch noch später setzen kann. Das werden dann aber keine globalen Optionen, sondern KOMA-Script-Optionen! Ein \KOMAoption{draft} wird also nie an hyperref oder graphics weitergeleitet – jedenfalls solange diese Pakete das nicht explizit vorsehen.

Und wenn wir schon bei hyperref sind: Ein draft=true oder draft=false bei \documentclass wird von hyperref ebenfalls verstanden.

Comments for "Wird draft=false in final übersetzt?" abonnieren