Hallo!
Ich verwende in einem Paket \FamilySetNumerical
zum Setzen eines numerischen Schlüssels. Wenn dem Schlüssel ein unbekannter Wert zugewiesen wird, gibt \FamilyUnknownKeyValue
eine Fehlermeldung aus, und zwar – abhängig vom Inhalt von \scr@removeunused
– mittels \PackageError
oder \PackageInfo
.
Meine Frage ist nun: Wann verwendet \FamilyUnknownKeyValue
\PackageError
und wann \PackageInfo
? In meinem Fall bekomme ich immer nur einen Eintrag in die Logdatei.
MfG, Michael
P.S.: Mir fällt gerade auf, dass in der KOMA-Script–Anleitung statt \FamilyUnknownKeyValue
immer \FamilyUnkownKeyValue
steht.
Lokale/Globale Optionen
\scr@removeunused
ist normalerweise als leer definiert. Innerhalb von\FamilyProvessOptions
wird es bei der Abarbeitung globaler Optionen benutzt, um die aktuelle Option genau dann aus der Liste, der weder von der Klasse noch einem Paket benutzten globalen Optionen zu entfernen, falls diese Option vom jeweiligen Paket genutzt wird.Da globale Optionen nicht dem Paket alleine gehören, soll bei der Abarbeitung einer globalen Option kein Fehler gemeldet werden, wenn das Paket den gegebenen Wert nicht kennt. In diesem Fall bleibt die Option einfach ungenutzt. Zur Sicherheit wird aber per \PackageInfo noch eine Information geschrieben.
Erstes Beispiel:
Ergibt die LaTeX-Warnung:
Das ist absolut korrekt. Es könnte ja ein anderes Paket geladen werden, das mit
twoside=genau
etwas anfangen kann.Zweites Beispiel:
Sollte die Fehlermeldung:
erzeugen. Da ist bezüglich der Angabe des Werts leider noch ein Fehler in 3.11 (im SVN ist der berteits behoben), so dass statt
`genau'
leider`@twoside'
gemeldet wird. Da der Fehler aber nur im Fehlerfall auftritt, sehe ich das nicht ganz so tragisch und werde nur dafür eher keine neue Release erstellen.Danke für die Erklärung!
Damit ist klar, dass
\FamilyUnknownKeyValue
korrekt funktioniert.Verwirrend in meinem Fall ist, dass ich keine „Unused global option(s)“ -Warnung bekomme, wenn ich dem Schlüssel als globaler Option einen falschen Wert zuweise. Werde versuchen herauszufinden, woran das liegt. Vielleicht gibt’s irgendeine Interferenz mit einem anderen Paket.
Unsused global option(s)
Wenn irgendein Paket der Meinung ist, dass es die Option auswertet, dann entfällt die Warnung. Das ist auch der Grund, warum scrbase bei unbekannten Werten zumindest noch eine Info in die log-Datei schreibt.
Ein Minimalbeispiel
Ich habe mir die Sache etwas genauer angeschaut. Beim Kompilieren folgenden Minimalbeispiels wird keine „Unused global option(s)“-Warnung ausgegeben, obwohl dem Schlüssel
mykey
als globaler Option ein ungültiger Wert zugewiesen wird:Wenn ich richtig verstanden habe, sollte es hier jedoch eine „Unused global option(s)“-Warnung geben, oder?
Bug
Du hast einen weiteren Bug gefunden.