PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [scrlayer-scrpage] Kopfzeilen springen gelegentlich ein paar Punkte in der Höhe



Yannick Kalff
10-07-2015, 21:28
Liebes Forum,
ich habe neulich ein merkwürdiges Verhalten bei manchen Kopfzeilen Einträgen meines Dokuments gesehen. Ich habe es mit einigem Aufwand zu reproduzieren; es scheinen einige 'glückliche' Umstände zusammen kommen zu müssen, damit der Effekt auftritt. Mein Dokument hat um die 360 Seiten, dort trat der Effekt um die 8 mal auf -- und auch eher willkürlich.

Folgendes Minimalbeispiel reproduziert den Fehler (bei mir). Mir ist aufgefallen, dass das Problem beim Weglassen des Pakets 'setspace' nicht auftritt (bzw. wenn ich kein \onehalfspaceing oder \begin{spacing}{1.5} verwende). Bei den aktuellen Einstellungen des Minimalbeispiels tritt der Fehler auf der letzten Seite auf. Am besten wird es sichtbar, wenn das PDF im Reader im ZweiSeitenModus angesehen wird, so kann schnell zwischen der letzten und den beiden Seiten davor gesprungen werden, was den Fehler verdeutlicht.

Hattet ihr einmal ein ähnliches Problem bemerkt? Oder habt ihr vielleicht gar eine Lösung? Ich kann unmöglich auf den Zeilenabstand verzichten.
Danke schon einmal für Eure Hilfe.
Ich verwende texlive 2014 mit aktuellen Updates und texstudio als editor. Das Problem tritt in Windows und Ubuntu gleichermaßen auf,



\documentclass[
12pt, % Schriftgröße
DIV=9,
paper=a4, % Papierformat
twoside=true, % einseitiges Dokument
headings=big, % Grˆfle der Überschriften verkleinern
]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{setspace}
\usepackage{lastpage}

\usepackage{blindtext}

\usepackage[draft=false, headsepline]{scrlayer-scrpage}

\lehead[]{\leftmark}

\rohead[]{\rightmark}

\lefoot[\thepage]{\thepage}

\rofoot[\thepage]{\thepage}

\begin{document}
\begin{spacing}{1.5}

% % % ODER:

%\onehalfspacing

\Blinddocument
\Blinddocument
\end{spacing}
\end{document}

u_fischer
10-07-2015, 22:00
\lehead[]{\singlespacing\leftmark}

\rohead[]{\singlespacing\rightmark}

Yannick Kalff
11-07-2015, 00:21
\lehead[]{\singlespacing\leftmark}

\rohead[]{\singlespacing\rightmark}

Vielen Dank, das hat es tatsächlich gelöst. Ich hatte nicht gedacht, dass sich der \onehalfspacing Befehl auch auf die Kopf-/Fußzeilen auswirkt.

esdd
11-07-2015, 10:06
\singlespacing scheint zusätzlichen vertikalen Platz einzufügen. Zumindest bekomme ich bei dessen Verwendung eine zusätzliche Warnung wegen zu geringer Kopfzeilenhöhe und diese wird dann von scrlayer-scrpage automatisch ein zweites Mal vergrößert. Statt \singlespacing sollte deshalb vielleicht besser \setstretch{1} verwendet werden.
Und, auch wenn es weniger auffällt, Du hast das gleiche Problem mit der Seitennummer in der Fußzeile. Das kann man leicht sehen, wenn man das Paket showframe zum Anzeigen des Seitenlayouts lädt. In der Fußzeile scheint das nicht einfach mit \setstretch{1} im Argument von \ofoot korrigierbar zu sein.

Es empfiehlt sich deshalb schon beim Initialisieren der Ausgabe des Seitenstils auf einzeilig umzuschalten:


\KOMAoptions{onpsinit=\setstretch{1}}

Außerdem kann man \lehead[]{\leftmark}\rohead[]{\rightmark} durch \ohead{\headmark} ersetzen. Analog für die Fußzeile \ofoot*{\pagemark}. Der Stern sorgt dabei dafür, dass die Einstellung auch für den plain Stil übernommen wird.


\documentclass[
12pt, % Schriftgröße
DIV=9,
paper=a4, % Papierformat
twoside=true, % einseitiges Dokument
headings=big, % Grˆfle der Überschriften verkleinern
]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{setspace}
\usepackage{lastpage}

\usepackage{blindtext}
\usepackage{showframe}% Anzeigen des Seitenlayouts

\usepackage[draft=false, headsepline]{scrlayer-scrpage}
\KOMAoptions{onpsinit=\setstretch{1}}
\ohead{\headmark}
\ofoot*{\pagemark}

\begin{document}
\begin{spacing}{1.5}

% % % ODER:
%\onehalfspacing

\Blinddocument
\Blinddocument
\end{spacing}
\end{document}

Gruß
Elke

Yannick Kalff
11-07-2015, 12:14
Danke Elke für den Hinweis.
Eine kurze Frage habe ich dann noch: Wenn \onehalfspacing einen vertikalen Abstand einfügt, sollte ich dann für den Textkörper auch eher die spacing-Umgebung verwenden oder hat dieser vertikale Abstand den Zweck, im Fließtext eine flexiblere Anordnung zu erzeugen? Sprich: Was ist der Nutzen dieses zusätzlichen vertikalen Abstandes? Gibt es eine Nutzungsempfehlung?
Unterschiede in der Abstandsbemessung von \onehalfspacing und \begin{spacing}{1.5} habe ich einmal hier nachgelesen: https://tex.stackexchange.com/questions/65849/confusion-onehalfspacing-vs-spacing-vs-word-vs-the-world

Grüße

esdd
11-07-2015, 22:10
Bitte beachte, dass nur \singlespacing einen zusätzlichen vertikalen Abstand einfügt. Der Befehl \onehalfspacing tut das nicht.

Hier sind die Orginaldefinitionen aus setspace.sty:



\newcommand{\singlespacing}{%
\setstretch {\setspace@singlespace}% normally 1
\vskip \baselineskip % Correction for coming into singlespace
}

und



\newcommand{\onehalfspacing}{%
\setstretch{1.25}% default
\ifcase \@ptsize \relax % 10pt
\setstretch {1.25}%
\or % 11pt
\setstretch {1.213}%
\or % 12pt
\setstretch {1.241}%
\fi
}

Weitere Infos findest Du auch unter Wie stelle ich einen Zeilenabstand von 1,5 ein? (http://texwelt.de/wissen/fragen/3/wie-stelle-ich-einen-zeilenabstand-von-15-ein/92). Beachte dabei auch die Kommentare unter der Antwort.

Gruß
Elke

Yannick Kalff
11-07-2015, 23:07
Danke für den Hinweis und den Link! Wieder etwas gelernt.