Hallo,
ich habe folgendes Verständnisproblem. Bei dem folgenden Minimalbeispiel wird ohne die Option twoside auf der Seite 2 der Kopfzeileneintrag gemäß der Anweisung \markboth geändert. Auf der Seite 3 ist es hingegen wieder richtig. So soll es sein. Verwende ich hingegen die Option twoside, so funktioniert es nicht.
\documentclass{scrreprt} % \documentclass[twoside]{scrreprt} \usepackage[plainheadsepline]{scrpage2} \clearscrheadfoot \automark[chapter]{section} \ihead{\headmark} \pagestyle{scrheadings} \usepackage{lipsum} \begin{document} \chapter{foo} \lipsum \section{foobar 1} \markboth{foobar 1}{foobar1} \lipsum[1] \section{foobar 2} \lipsum \end{document}
Vielen Dank
Marco
Ich glaube Du irrst
Bei mir nicht. Laut Deiner
\markboth
-Anweisung würde da »foobar 1« stehen, es steht aber »1.1 foobar 1« dort. Das ist die automatisch per\automark[chapter]{section}
konfigurierte und imonside
-Fall per\section
gesetzte Marke.\section
ruft dazu\sectionmark
auf, das letztlich zu einem\markboth {\sectionmarkformat #1}{\sectionmarkformat #1}
(#1 ist dabei der Text der Überschrift) führt. Das\chapter
auf der gleichen Seite führt hingegen zu\markboth{}{\chaptermarkformat #1}
. Wir haben also:Da wir uns im einseitigen Modus befinden, wird immer der Kopf von rechten Seiten ausgegeben. Dabei ist
\headmark
immer\rightmark
. Dieses wiederum verwendet die TeX-Marke\firstmark
, also die erste Marke, die auf der Seite gesetzt wurde. Wurde auf der Seite keine Marke gesetzt, ist es die letzte Marke, die zuvor gesetzt wurde. Das wäre also auf Seite 1 "1 foo" (wird wegen des Seitenstils nicht ausgegeben), auf Seite 2 "1.1 foobar 1", auf Seite 3 "1.2 foobar 2" und auf Seite 4 ebenfalls "1.1 foobar 2". Das\markboth{foobar 1}{foobar 1}
kommt nicht zum Zuge.Im
twoside
-Fall sieht es etwas anders aus. In dem Fall für\chapter
ebenfalls zu einem\markboth{}{\chaptermarkformat #1}
, jedoch\section
zu einem\markleft{\sectionmarkformat #1}
. Wir haben dann alsoAußerdem wir auf linken Seiten nun der Kopf für gerade Seiten ausgegeben. Dabei ist
\headmark
dann\leftmark
. Dieses wiederum verwendet die TeX-Marke\botmark
. Dies ist die letzte Marke, die auf einer Seite gesetzt wurde (bzw. die zuletzt gesetzte Marke zuvor, wenn auf der Seite keine Marke gesetzt wurde). Damit haben wir auf Seite 1 (ungerade Seite, also\rightmark
) "foobar 1" (wird wegen des Seitenstils nicht ausgegeben), auf Seite 2 (gerade Seite, also\leftmark
) "1.2 foobar 2", auf Seite 3 (ungerade Seite, also\rightmark
) "foobar 1" und auf Seite 4 (gerade Seite, also\leftmark
) "1.2 foobar 2".Der Hauptunterschied zwischen ein- und doppelseitig ist die Verwendung von
\markleft
und\leftmark
.\markleft
lässt die rechte Marke unangetastet und\leftmark
verwendet\botmark
an Stelle von\firstmark
. Dadurch lassen sich alle Unterschiede erklären.Noch einmal anders wird es, wenn man wie üblich
\automark[section]{chapter}
verwendet. Dann wird nämlich rein mit\markboth
und\markright
gearbeitet. Dabei verwendet imtwoside
-Modus\chapter
dann\markboth{\chaptermarkformat #1}{}
, und\section
verwendet\markright{\sectionmarkformat #1}
im doppelseitigen Modus.Ich hoffe, ich konnte ein wenig verständlich machen, was da geschieht.
Im KOMA-Script-Buch gibt es übrigens in Teil II ebenfalls einige Erklärungen zu
\rightmark
etc.Sehr Informativ
Hallo,
vielen Dank für die ausführliche Antwort. Habe sie auch verstanden. Ich habe oben wirklich was falsches gesehen.
Die Anweisung botmark war mir neu. Habe sie aber in Tex by Topic gefunden.
Danke
Marco