Sie sind hier

Abstand von Kapitel zu Kopfzeile und Text bei versch. Zeilenabstand

Hallo zusammen,

wie im Beispiel zu sehen, ist der Zeilenabstand im gesamten Dokument auf 1,5 eingestellt. Allerdings sind die Inhalts-, Abbildungs- und Tabellenverzeichnisse - wie auch in der KomaScript-Dokumentation empfohlen - auf einfachen Abstand eingestellt.

Jedoch stimmen die Abstände der Kapitelüberschriften zu Kopfzeile und Textanfang durch den untersch. Zeilenabstand nicht mehr überein:
Bei 1.5fachem Abstand ist der Abstand nach oben und unten größer als bei einfachem.

Gibt es eine Möglichkeit, den Abstand bei den Seiten mit 1.5fachem Abstand nach oben und unten so groß zu halten wie bei einfachem Abstand ? Oder ist das typografisch gesehen egal, ob der Abstand anders ist ?

Vielen Dank für euere Hilfe
Matthias

\documentclass[a4paper]{scrreprt}

\usepackage[onehalfspacing]{setspace}

\begin{document}

\begin{spacing}{1}
\tableofcontents
\listoffigures
\listoftables
\end{spacing}

\chapter{Kap. 1}

\chapter{Kap. 2}

\end{document}

Bild von Markus Kohm

Es ist tatsächlich nicht schön, dass der Abstand in diesem Fall uneinheitlich ist. Ganz tragisch ist es (zumindest beim Abstand nach der Überschrift) nicht. In der Voreinstellung sind die Abstände vor und nach Kapitelüberschriften in Abhängigkeit vom Zeilenabstand definiert. Man kann das ändern, indem man \chapterheadstartvskip und \chapterheadendvskip unter Verwendung fester Werte umdefiniert. Sinnvolle Werte muss man dann allerdings abhängig von der gewählten Schriftgröße selbst finden. Greift man ganz tief in die Trickkiste, kann man auch mit dem schriftabhängigen Grundlinienabstand arbeiten, der die Durchschussvergrößerung nicht enthält:

\documentclass[a4paper]{scrreprt}
\usepackage[onehalfspacing]{setspace}
\makeatletter
\renewcommand*{\chapterheadstartvskip}{%
  {\setlength{\@tempdima}{\f@baselineskip}%
    \showthe\@tempdima
  \vspace*{2.3\@tempdima}}%
}
\renewcommand*{\chapterheadendvskip}{%
  {\setlength{\@tempdima}{\f@baselineskip}%
    \vspace{1.725\@tempdima
      \@plus .115\@tempdima \@minus .192\@tempdima}}%
}
\makeatother
\begin{document}
\begin{spacing}{1}
 \tableofcontents
 \listoffigures
 \listoftables
\end{spacing}
\chapter{Kap. 1}
\section{Test}
\section{TestTest}
Test
\chapter{Kap. 2}
\section{Test}
Test
\end{document}

Auch dabei wird allerdings oben nicht exakt der gleiche Abstand zu sehen sein, weil zwar tatsächlich der Abstand vor der Schriftzeile gleich ist, diese jedoch später einfach höher ist. Die Grundlinie liegt also etwas tiefer. Wollte man das auch noch ausbügeln, müsste man unterschiedliche Abstände innerhalb der spacing-Umgebung setzen. Die Lösung mit \f@baselineskip dürfte dagegen ein guter und weniger aufwändiger Kompromiss sein. Die Anweisung dürfte übrigens im fntguide dokumentiert sein.

Eine weitere Alternative wäre, die interne Anweisung \toc@heading so umzudefinieren, dass die Überschrift selbst ebenfalls eineinhalbzeilig geschrieben wird. Das analog für \flota@listhead ebenfalls. Allerdings ergibt sich dabei das Problem, dass diese Anweisungen eigentlich für den Anwender tabu sind. Die Originaldefinitionen können sich jederzeit ändern.

Vielen Dank für die umfassende Antwort.

Gruß
Matthias

Wollte gerade dein Minimalbeispiel durch Latex laufen lassen, allerdings wird der unterbrochen wegen

\renewcommand*{\chapterheadstartvskip}{%
{\setlength{\@tempdima}{\f@baselineskip}%
\showthe\@tempdima
\vspace*{2.3\@tempdima}}%
}

Das zweite \renewcommand funktioniert ohne Probleme.
Wo ist der Fehler? Könnte es an \showthe\@temdima liegen?
--------------------------------------
Hat sich inzwischen erledigt, habe mich mal in TEX schlau gemacht und festgestellt, dass das Stoppen nach \showthe ganz normal ist.

Gruß
Matthias

Bild von Markus Kohm

Ich hatte das eingefügt, damit Du in der Log-Datei sehen kannst, dass der Wert von \onehalfspacing etc. unabhängig ist.

Diese Sache hat mich auch schon lange gestört, dass sich dann die Kapitelüberschriften nicht alle auf gleicher Höhe befinden. Aber wie wäre es denn mit folgendem (relativ einfachen) Minimalbeispiel:

\documentclass[a4paper, 12pt, oneside, BCOR15mm, DIV13, headinclude, footexclude]{scrbook}
\usepackage{setspace}
\onehalfspacing
\typearea[current]{last}

\begin{document}
\singlespacing
\tableofcontents
\onehalfspacing

\par\singlespacing
\chapter{Das ist Kapitel A}
\onehalfspacing
Das ist Text. Das ist Text. Das ist Text. Das ist Text.
Das ist Text. Das ist Text. Das ist Text. Das ist Text.

\par\singlespacing
\chapter{Das ist Kapitel B}
\onehalfspacing
Das ist Text. Das ist Text. Das ist Text. Das ist Text.
Das ist Text. Das ist Text. Das ist Text. Das ist Text.

\end{document}

Also einfach immer vor jedem \chapter immer \singlespacing und danach wieder \onehalfspacing. Dann sind alle Überschriften auf gleicher Höhe. Ein weiterer Vorteil dabei ist auch, dass bei zweizeiligen Chapterüberschriften der Zeilenabstand wieder einzeilig ist (was imho etwas schöner aussieht). Einziger Nachteil: Abstand zum Text ist noch nicht korrigiert, stört aber nicht ganz so stark.

Deshalb suche ich ganz stark nach einer Möglichkeit das \chapter umzudefinieren, und trotzdem die Kompatibilität zu weiteren Versionen zu erhalten (also die Interna von \chapter{} nicht zu verändern)

Also soetwas in der Art:
\def\chapter#1{\par\singlespacing\chapter{#1}\doublespacing}
...was aber nicht geht...
Ansonsten müsste man halt z.B. den neuen Befehl \chapterH definieren, was aber irgendwie nicht sonderlich schön ist.....

Any idea?
Ich komm nicht weiter....

Viele Grüße
Roland

Bild von Markus Kohm

Ich glaube, \singlespacing etc. führen auch noch ein \par aus. Das könnte insbesondere nach der Kapitelüberschrift stören. Eventuell fährt man mit \setstretch besser. Man müsste dann aber den aktuellen Wert vor der Überschrift irgendwie sichern.

Wie man Befehle unter Verwendung ihrer bisherigen Bedeutung umdefiniert, steht in der De-TeX-FAQ. Allerdings berücksichtigt das nicht das Problem, wie man das optionale Argument und sie Sternversion behandelt.

Da ich gleich weg muss ein ungetesteter Ansatz ohne Umdefinierung von \capter:

\newcommand*{\presetchapter}{%
  \let\baselinestretchwas\baselinestretch
  \linespread{1}\selectfont
}
\newcommand*{\postsetchapter}{%
  \linespread{\baselinestretchwas}\selectfont%
}
...
\presetchapter
\chapter{...}
\postsetchapter
...

Ich hoffe das funktioniert dann ganz unabhängig von setspace und dem konkret verwendeten Durchschuss.

Die Sache mit der Umdefinierung von Befehlen wie \chapter einschließlich Behandlung von Sternvariante und optionalem Argument sollte in Google Groups zu finden sein.

Falls ich es noch nicht erwähnt habe: Was man keinesfalls machen sollte ist, die Überschrift in eine Gruppe zu packen. Dinge wie \label gehen sonst schief.

.

Comments for "Abstand von Kapitel zu Kopfzeile und Text bei versch. Zeilenabstand" abonnieren