Ich hatte über die Osterferientage Zeit gefunden, den Code und die Dokumentation von tocstyle durchzuschauen. Dabei sind mir drei "fehlerhafte" Stellen aufgefallen, die in diesem Forum bereits diskutiert wurden (fehlerhafte Einzüge). An zwei Stellen in der Datei tocstyle.sty [2013/08/11 v0.2e-alpha KOMA-Script package] steht
\hskip -\leftskip
Diese müssten durch
\hskip -\@tempdima
ersetzt werden. Zusätzlich müsste
ersetzt werden durch
\advance\leftskip \@tempdimb\@afterindenttrue
Ausserdem steht in der Dokumentation, dass man nicht danach fragen solle, die von tocstyle berechneten Einzüge seitenweise zu berechnen. Daher habe ich die letzten Tage genutzt, und es selbst programmiert.
Meine Frage ist nun, wie kann ich meine Erweiterungen zur Verfügung stellen? Ich fände es schade, wenn sich niemand dafür interessieren würde.
Grüße
Lothar
PS: In scrbook.cls [%%% From File: $Id: scrkernel-version.dtx 1926 2015-02-07 13:38:11Z kohm $] heißt es bei der Option openany
\renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}
Dies müsste ersetzt werden durch
\renewcommand*{\cleardoublestandardpage}{\clearpage}%
wie kommst Du darauf?
Ohne irgendwelche Begründungen werde ich garantiert keine Zeile Code ändern. Und die letzte Behauptung (die eigentlich ein eigenes Thema wäre) zeigt eigentlich nur, dass Du die Funktionsweise nicht verstanden hast (was ggf. bedeutet, dass die Anleitung zu verbessern wäre).
\cleardoublestandardpage
entspricht im Fallopen=any
undopen=right
jeweils dem\cleardoublepage
des LaTeX-Kerns und der Standardklassen:Mit
\clearpage
wäre das Ergebnis ein ganz anderes:\cleardoublepage
liefert ausschließlich im einseitigen Modus das gleiche wie\clearpage
, ist aber auch dann nicht dasselbe.Begründung
Zu openany: Mein Verständnis ist, dass bei der Wahl von openany keine Vakantseiten auftreten sollten. Ich gebe dir da recht, dass das bereits in der Standard-Latex-Klasse book nicht konsequent umgesetzt zu sein scheint (und dass die Diskussion darüber recht kleinlich ist). So steht innerhalb von "book.cls" bei
\frontmatter
und\mainmatter
ein einfaches\cleardoublepage
. Bei\backmatter
jedoch steht wie bei den\chapter
- und\part
-Befehlen - wie man erwarten würde - einBei der Koma-Script-Klasse
scrbook.cls
machst du dann daraus bei\frontmatter
und\mainmatter
einZumindest ist dies inkonsistent mit
\backmatter
. Jedenfalls erhalte ich so bei Verwendung von\frontmatter
und\mainmatter
unerwünschte Vakantseiten.Weiter bekomme ich auch nach der Titelei eine Vakantseite, aber nur wenn ich
\dedication
verwende! Denn hier steht ein paar Zeilen unterhalb von\ifx\@dedication\@empty
ein simples\cleardoubleemptypage
.Konsequenterweise müsste dies ersetzt werden durch:
Zum tocstyle-Einzugsproblem: Fehlerhafte Einzüge erscheinen, wenn die Option
toctextentriesindented
in Zusammenhang mit\addsec{Mehrere Sections ohne Nummerierung}
verwendet wird. Hierzu gibt es bereits mehrere Forums-Einträge. Das grunsätzliche Problem ist wohl, dass bei tocstyle.sty,\parindent
auf einen Wert ungleich Null gesetzt wird. Bei tocbasic steht dagegen korrekt\setlength{\parindent}{\z@}
und wird auch im folgenden nicht mehr verändert.Grüße
Lothar
Nicht inkonsistent, sondern konsequent
\frontmatter
und\mainmatter
schalten die Seitennummerierung um. Die erste Seite einer Nummerierungsart – egal ob 1 oder a oder i oder was auch immer – muss immer eine rechte Seite sein. Deshalb gehört davor immer ein\cleardoubleoddpage
und deshalb gibt es im doppelseitigen Satz auch dann Vakatseiten, wenn manopen=any
verwendet.\backmatter
schaltet die Seitennummerierung nicht um. Daher braucht man dort auch kein\cleardoubleoddpage
.Das hat also alles durchaus einen Sinn.
Die Behauptung, dass bei
tocbasic
\parindent
nicht mehr verändert wird, stimmt auch nicht. Innerhalb von\@dottedtocline
geschieht das sehr wohl. Der Code intocstyle
ist lediglich eine flexibilisierte Version des Codes aus dem LaTeX-Kern.Übrigens haben inzwischen die KOMA-Script-Klassen selbst eine Option, um Inhaltsverzeichniseinträge ohne Nummer ggf. einzuziehen. Das hat ggf. auch Einfluss auf
tocstyle
obwohl das Paket die Option nicht kennt. Da gibt es gewissermaßen einen Konflikt, der noch nicht bearbeitet ist. Das liegt aber u. a. daran, dass ich noch darüber nachdenke, wie weittocstyle
intocbasic
integriert werden kann, sollte und wird.