Sie sind hier

Abfrage der gesetzten Optionen

Bild von Markus Kohm

Seit Revision 1964 kann man die gesetzten Optionen eines KOMA-Script-Pakets oder einer KOMA-Script-Klasse über \KOMAoptionsOf und \KOMAoptionOf abfragen. Allerdings sind die beiden Anweisungen nicht voll expandierbar, u. a. weil sie Fehlermeldungen produzieren können. Es werden derzeit noch nicht alle Klassen und Pakete vollständig unterstützt. Daher ist diese Möglichkeit noch im Alpha-Stadium und wird nicht offiziell dokumentiert. Es muss sich erst noch zeigen, ob sich die bisherige Implementierung bewährt. Bis dahin gilt: Die hier beschriebene Möglichkeit kann jederzeit wieder aus KOMA-Script entfernt werden.

\KOMAoptionsOf[Prefixanweisung]{Paket/Klassenname mit Erweiterung}
Diese Anweisung dient dazu sämtliche aktuell gültigen Optionen eines KOMA-Script-Pakets oder einer KOMA-Script-Klasse abzufragen. Es wird eine durch Komma separierte Liste einzelner Optionen und deren Werte erstellt. Dabei sind die Paare aus Optionen und Werte als einzelne Argumente geklammert. Diese Liste wird dann als Argument an die Prefixanweisung übergeben. Default für Prefixanweisung ist \@firstofone.
Beispiel:

\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{url}
\begin{document}
\KOMAoptionsOf[\url]{scrlayer-scrpage.sty}
\end{document}

erzeugt ein Dokument mit einer furchtbar schlecht umbrochene Liste aller Optionen von scrlayer-scrpage. Es fällt auf, dass scheinbar einige Optionen nicht aufgeführt werden. Das liegt daran, dass diese Optionen in Wirklichkeit Optionen von scrlayer sind.

Wird eine Klasse oder ein Paket angegeben, das von \KOMAoptionsOf nicht unterstützt wird, erhält man eine entsprechende Fehlermeldung.

\KOMAoptionOf[Prefixanweisung]{Paket/Klassenname mit Erweiterung}{Option}
Diese Anweisung dient das, den aktuellen Wert einer Option eines KOMA-Script-Pakets oder einer KOMA-Script-Klasse abzufragen. Es wird eine durch Komma separierte Liste aller aktuell gültigen Werte erstellt. Dabei sind die einzelnen Werte als einzelne Argumente geklammert. Diese Liste wird dann als Argument an die Prefixanweisung übergeben. Default für Prefixanweisung ist \@firstofone.
Beispiel:

\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\begin{document}
\KOMAoptionOf[\KOMAoption{headwidth}]{scrlayer-scrpage.sty}{headwidth}
\end{document}

setzt Option headwidth auf den expandierten aktuellen Wert der Option (meist nicht wirklich sinnvoll, sondern eher eine Spielerei zur Demonstration der Möglichkeiten der Prefixanweisung).

Wird eine Klasse oder ein Paket angegeben, das von \KOMAoptionsOf nicht unterstützt wird, erhält man eine entsprechende Fehlermeldung.

Wird hingegen eine Option angegeben, die bisher nicht gesetzt wurde (oder für die Klasse oder das Paket gar nicht existiert), so wird nur eine Warnung ausgegeben und die Präfixanweisung auch nicht ausgeführt.

Derzeit sollten die Pakete scrhack, scrjura, scrlayer, scrlayer-scrpage, scrtime und typearea dies vollständig unterstützten. Dabei werden auch die Optionen mit ausgegeben, die nicht explizit gesetzt wurden, sondern der Voreinstellung der Pakete entsprechen.

Von den übrigen Klassen und Paketen werden die beiden Anweisungen bisher nur sehr unvollständig unterstützt. Tatsächlich können bei den anderen Klassen und Paketen derzeit sogar falsche Werte zurückgeliefert werden, wenn nämlich einfache Schalter an den Optionen vorbei verändert werden! Solche Fälle sollte man am besten melden!

Comments for "Abfrage der gesetzten Optionen" abonnieren