Da ich immer wieder gefragt werde, wie man KOMA-Script materiell unterstützen oder man mir eine Freude machen kann, habe ich dazu eine Erklärung verfasst. Darin geht es um Hardware, Geld, Windows-Lizenzen und den Eintrag in die Sponsorenliste.
In der aktuellen (2018-03-27) deutschen Dokumentation findet sich auf S. 406 der Befehl \RedeclareTOCStyleEntry, der mir beim kompilieren aber als undefiniert angezeigt wird. Ist das ein Tippfehler oder mache ich was falsch?
In erster Linie, weil ich es für die KOMA-Script-Klassen nicht brauche und es von den wenigen Paketautoren, die tocbasic verwenden (AFAIK derzeit nur Clemens in chemmacros und das auch nur unter gewissen Umständen), offenbar ebenfalls nicht benötigt wird. Wozu soll ich in einem nur wenig genutzten Helferpaket noch mehr ungenutzte Leistungsfähigkeit implementieren als ohnehin schon vorhanden ist?
Was genau soll \RedeclareTOCStyleEntry denn anderes machen als \DeclareTOCStyleEntry? Natürlich kann ich testen, ob es einen Befehl \l@Ebenenname bereits gibt. Aber würde das genügen? Abhängig vom Stil existieren weit mehr Befehle zu einer Ebene. Soll ich die alle ebenfalls testen (geht gar nicht, weil der Anwender eigene Stile definieren kann).
Außerdem liegt diese Schnittstelle im Gegensatz zu der für Befehle noch eine Ebene tiefer. Deshalb ist die Angabe eines Stils hier auch obligatorisch und man kann zwar über \DeclareSectionCommand etc. auch Optionen für den Verzeichnisbefehl setzen aber nicht umgekehrt über \DeclareTOCStyleEntry Befehle für Gliederungsebenen erzeugen. Und auf der Ebene sollte es ein leichtes sein, per Bedarf mit \ifdefinedorrelax zu prüfen, ob bestimmte Befehle bereits existieren oder nicht.
tocbasic bietet übrigens auch nur ein \DeclareNewTOC aber kein \DeclareTOC oder \RedeclareTOC oder gar \ModifyTOC. Letzteres habe ich selbst sogar schon vermisst (weiß mir dann aber natürlich zu helfen ;-) ). Irgendwann habe ich auch mal angefangen an der Stelle mehr zu implementieren. Der Aufwand wurde aber so groß, dass ich letztlich jeden dieser Befehle komplett neu und unabhängig von den anderen hätte implementieren müssen. Bei dem Monster, das \DeclareNewTOC ist, war mir dann das Risiko zu groß, dass bei Änderung an einem der Befehle bei einem der anderen etwas übersehen wird, und so am Ende mehr Probleme als Nutzen entstehen.
Das Paket ist in dieser Beziehung insgesamt deutlich minimalistischer als die Klassen.
BTW: Es gab (und gibt noch immer) Überlegungen, die Erklärungen zu \DeclareSectionCommand etc. in Teil I der Anleitung zu verschieben. Für tocbasic gibt es solche Überlegungen jedoch nicht.
Tippfehler in der Doku
Das muss durch
\DeclareTOCStyleEntry
ersetzt werden.OK
Hat es denn einen Grund, dass es den Befehl – im Gegensatz zu
\RedeclareSectionCommand
nicht gibt?Tobi W_
Grafikdesign und TeX-Beratung
tobiw.de
mail@tobiw.de
Mein Blog: TeX-Beispiel des Monats
Wozu?
In erster Linie, weil ich es für die KOMA-Script-Klassen nicht brauche und es von den wenigen Paketautoren, die tocbasic verwenden (AFAIK derzeit nur Clemens in chemmacros und das auch nur unter gewissen Umständen), offenbar ebenfalls nicht benötigt wird. Wozu soll ich in einem nur wenig genutzten Helferpaket noch mehr ungenutzte Leistungsfähigkeit implementieren als ohnehin schon vorhanden ist?
Was genau soll
\RedeclareTOCStyleEntry
denn anderes machen als\DeclareTOCStyleEntry
? Natürlich kann ich testen, ob es einen Befehl\l@
Ebenenname bereits gibt. Aber würde das genügen? Abhängig vom Stil existieren weit mehr Befehle zu einer Ebene. Soll ich die alle ebenfalls testen (geht gar nicht, weil der Anwender eigene Stile definieren kann).Außerdem liegt diese Schnittstelle im Gegensatz zu der für Befehle noch eine Ebene tiefer. Deshalb ist die Angabe eines Stils hier auch obligatorisch und man kann zwar über
\DeclareSectionCommand
etc. auch Optionen für den Verzeichnisbefehl setzen aber nicht umgekehrt über\DeclareTOCStyleEntry
Befehle für Gliederungsebenen erzeugen. Und auf der Ebene sollte es ein leichtes sein, per Bedarf mit\ifdefinedorrelax
zu prüfen, ob bestimmte Befehle bereits existieren oder nicht.tocbasic bietet übrigens auch nur ein
\DeclareNewTOC
aber kein\DeclareTOC
oder\RedeclareTOC
oder gar\ModifyTOC
. Letzteres habe ich selbst sogar schon vermisst (weiß mir dann aber natürlich zu helfen ;-) ). Irgendwann habe ich auch mal angefangen an der Stelle mehr zu implementieren. Der Aufwand wurde aber so groß, dass ich letztlich jeden dieser Befehle komplett neu und unabhängig von den anderen hätte implementieren müssen. Bei dem Monster, das\DeclareNewTOC
ist, war mir dann das Risiko zu groß, dass bei Änderung an einem der Befehle bei einem der anderen etwas übersehen wird, und so am Ende mehr Probleme als Nutzen entstehen.Das Paket ist in dieser Beziehung insgesamt deutlich minimalistischer als die Klassen.
BTW: Es gab (und gibt noch immer) Überlegungen, die Erklärungen zu
\DeclareSectionCommand
etc. in Teil I der Anleitung zu verschieben. Für tocbasic gibt es solche Überlegungen jedoch nicht.Danke!
Alles klar. Danke für die ausführliche Antwort :-)
Tobi W_
Grafikdesign und TeX-Beratung
tobiw.de
mail@tobiw.de
Mein Blog: TeX-Beispiel des Monats