Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


w_f

Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von w_f »

Hallo allerseits

Ich will ein Latexdokument erstellen, in dem bestimmte Abschnitte unterschiedlich formatiert sind. So möchte ich z.B. die meisten Seite hochkant (Portrait) haben, Seitennummern jeweils am äußeren Rand, allerdings will ich auch (mindestens) ein Kapitel haben, in dem die Seiten im Landschaftsformat ausgerichtet sind. Und da sollen die Seitenzahlen z.B. alle auf der rechten Seite liegen, aber jeweils in der Kopf- und Fußzeile.

Ich bin noch recht weit am Anfang mit meinen Latexkünsten und arbeite mich gerade ein. Ich bin auch noch am Anfang meiner Arbeit, von daher habe ich auch noch keinen nennenswerten Quellcode geschrieben. Ausgesucht habe ich mir vorläufig die srcbook-Dokumentenklasse, aber an der Formatierung hätte ich noch viel zu herumzuschrauben, die Standardformatierung sagt mir noch gar nicht zu.

Ich habe aber (verzeiht mir den Frevel euch hier mit Word zu kommen) mal ein kleines Demo-PDF erstellt, wie ich mir das in etwa vorstelle. Das ist noch kein exakter Entwurf, aber man bekommt vielleicht eine Idee davon, was ich machen will. Farbige Linien hätte ich in den Kopf- und Fußzeilen schon gerne drin.

Hat jemand eine Idee, wie ich das am Besten bewerkstelligen kann?

Vielen Dank und einen schönen Restsonntag

Gruß
wf

Dateianhänge
formatdemo.pdf
(90.41 KiB) 188-mal heruntergeladen

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von KOMA »

Da du offenbar überhaupt keine Kolumnentitel haben will, sollte das mit scrlayer recht einfach zu lösen sein. Hier einmal kurz angerissen für die normalen Seiten:

\documentclass{scrbook}
\usepackage{scrlayer}
\usepackage{xcolor}
\usepackage{blindtext}

\addtokomafont{disposition}{\mdseries\color{blue}\nobreak}% Überschriften nicht
                                % fett aber blau
\RedeclareSectionCommand[beforeskip=0pt,afterindent=false]{chapter}% Abstand über
                                % Kapitelüberschriften entfernen

\DeclareNewLayer[%
  background,
  head,% Position im Kopf der Seite,
  hoffset=0pt,width=\paperwidth,% aber über die ganze Seitenbreite
  contents={%
    \makebox[0pt][l]{\rule[8pt]{\layerwidth}{2pt}}%
    \makebox[0pt][l]{\color{red}\rule[4pt]{\layerwidth}{2pt}}%
    \color{yellow}\rule{\layerwidth}{2pt}}%
]{headrules}
\DeclareNewLayer[%
  background,
  foot,% Position im Kopf der Seite,
  hoffset=0pt,width=\paperwidth,% aber über die ganze Seitenbreite
  contents={%
    \makebox[0pt][l]{\rule[4pt]{\layerwidth}{2pt}}%
    \makebox[0pt][l]{\color{red}\rule[0pt]{\layerwidth}{2pt}}%
    \color{yellow}\rule[-6pt]{\layerwidth}{2pt}}%
]{footrules}
\DeclareNewLayer[%
  foreground,
  oddpage,
  foot,
  contents={\hfill\colorbox{white}{\pagemark}}
]{oddpagenumber}
\DeclareNewLayer[%
  foreground,
  evenpage,
  foot,
  contents={\colorbox{white}{\pagemark}\hfill}
]{evenpagenumber}
\DeclarePageStyleByLayers{standardpage}{headrules,footrules,oddpagenumber,evenpagenumber}

\pagestyle{standardpage}
\renewcommand*{\chapterpagestyle}{standardpage}

\begin{document}
\blinddocument
\end{document}

Für die landscape-Seiten, bei denen die Seitenzahlen ja doppelt vorkommen und anders platziert sein sollen, definiert man sich entsprechend passende Layer/Ebenen für die Seitenzahlen und darauf basierend dann einen anderen Seitenstil. Auf den schaltet man dann für die entsprechenden Seiten lokal um (beispielsweise mit \thispagestyle für eine einzelne Seite oder \pagestyle + ggf. Umdefinierung von \chapterpagestyle für mehrere Seiten).

Alternativ kann man natürlich auch mit scrlayer-scrpage arbeiten. Auch dort kann man zusätzliche Layer/Ebenen für die Linien zu den vorhandenen hinzufügen.

Für Näheres siehe die KOMA-Script-Anleitung.

Natürlich kann man die Linien auch im picture-Modus und sogar mit pgf/TikZ zeichnen lassen, statt einfach ein paar \rule-Anweisungen zu stapeln. Da sind der Fantasie kaum Grenzen gesetzt.


w_f

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von w_f »

Vielen Dank, das werd ich mal durcharbeiten. :)

Eine Frage noch: Meinst du mit Kolumnentitel so etwas wie Wiederholungen der Kapitelüberschrift in der Kopf/Fußzeile? Ob ich so etwas haben will, weiß ich ehrlich gesagt noch gar nicht.


Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von KOMA »

w_f hat geschrieben:
So 19. Jul 2020, 14:21

Eine Frage noch: Meinst du mit Kolumnentitel so etwas wie Wiederholungen der Kapitelüberschrift in der Kopf/Fußzeile?

Eben das. Wenn Du das haben willst, nimm scrlayer-scrpage. Auch dort kann man Layer zu den vorhandenen hinzufügen. Die Postion der Seitenzahl kann man dort einfach per \ofoot, \cfoot etc. ändern. Man kann auch dort ggf. mehrere Seitenstile bzw. Seitenstilpaare definieren. Brauchst Du aber nicht unbedingt, weil man auch das vorhandene Paar einfach umkonfigurieren kann. Es gibt da wirklich unzählige Möglichkeiten bis hin zur Verwendung von Boolschen Schaltern etc.


w_f

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von w_f »

nimm scrlayer-scrpage

Das mach ich...dann komme ich bestimmt bald mit neuen Fragen. :)

Vielen Dank für die Hilfe bisher.


w_f

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von w_f »

Einen schönen Restsonntag allerseits.

Ich habe jetzt mal meine ersten Gehversuche mit scrlayer-scrpage unternommen und wundere mich etwas.
Ich habe - einfach nur um die Befehle mal auszuprobieren - ein simples Dokument mit etwas Test, aber ohne viel Schnickschnack erstellt und die pagestyles entfernt. Alle Seitenzahlen sind weg - prima.
Wenn ich jetzt aber mit dem Befehl \ofoot{\pagemark} Seitenzahlen wieder einsetzen möchte, kommt Seltsames heraus:
Ich hätte jetzt erwartet, daß sich ab diesem Befehl auf jeder Seite in der Fußzeile eine Seitenzahl befindet, und zwar jeweils links oder rechts außen. Dem ist aber nicht so. Erstmal ist über mehrere Seiten hinweg lediglich jede zweite Seite numeriert, erst die vorletzte Seite trägt ebenfalls eine Seitenzahl.

\documentclass[
12pt,
a4paper,
twoside]{scrbook}

\usepackage{german}
\usepackage[T1]{fontenc}

\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\clearpairofpagestyles


\begin{document}

%Titelseite
\begin{titlepage}
\title{Titel}
\maketitle
\end{titlepage}

\ofoot{\pagemark}

%Zwei Kapitel, vertikal, normal formatiert
\chapter{Ein erstes Kapitel}
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.
\newpage
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.


\chapter{Noch ein weiteres Kapitel}
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.
\newpage
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.


%Ein Kapitel, horizontal
\chapter{Ein Kapitel mit anderer Formatierung}
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.
\newpage
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.
\newpage
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.
\newpage
\LaTeX{} macht Spaß.
Die Texte zu lesen ist vollkommen unnötig. Wer es dennoch tut, ist selber schuld. Aber Text ist notwendig, um die Formatierung zu testen. Denn wenn kein Text da ist, kann auch nichts formatiert werden und das Ergebnis der Arbeit kann nicht betrachtet werden.
\end{document}

Kann mir jemand bitte sagen, was ich da falsch mache?


w_f

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von w_f »

Kleiner Nachtrag: Wenn ich die Sternvariante des ofoot-Befehls (ofoot*{\pagemark}) benutze, funktioniert es wie erwartet.

Ich würde jetzt nur noch gerne das Warum verstehen...


gast

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von gast »

Das wird in der Anleitung eigentlich sehr genau erklärt:

  • Bei Kapiteln wird automatisch die Anweisung \thispagestyle{\chapterpagestyle} ausgeführt.

  • \chapterpagestyle ist (aus gutem Grund) in der Voreinstellung plain

  • Die voreingestellte plain-Variante von scrlayer-scrpage ist plain.scrheadings.

  • Durch \clearpairofpagestyles wird nicht nur scrheadings leer, sondern auch plain.scrheadings.

  • Durch die Sternformen wie \ofoot* wird nicht nur das entsprechende Feld von scrheadings, sondern auch das von plain.scrheadings mit Inhalt versehen.

Was du beobachtest ist also vollkommen logisch und korrekt. In den Beispielen in der Anleitung wird die Auswirkung auf den plain-Seitenstil plain.scrheadings am Beispiel von scrartcl auch erläutert.

Übrigens \pagestyle{scrheadings} ist überflüssig. Das macht scrlayer-scrheadings automatisch. Paket german ist veraltet und wird nicht mehr gepflegt. Empfohlen sei \usepackage[ngerman]{babel} für aktuelle Rechtschreibung und ggf. \usepackage[german]{babel} falls du wirklich veraltete Rechtschreibung haben willst. Die Optionen a4paper und twoside sind bei scrbook Voreinstellung und daher sinnlos. Von dem Aufruf von \maketitle innerhalb einer titlepage-Umgebung wird in der KOMA-Script-Anleitung abgeraten. Also titlepage weglassen! Die Konfiguration des Seitenstils, also die \ofoot-Anweisung gehört zwecks Trennung von Form und Inhalt vorzugsweise in die Dokumentpräambel. Im Dokument sollte man derartige Dinge nur ausnahmsweise machen. Für Seiten ohne Kopf und Fuß nimmt man stattdessen aber einfach den Seitenstil empty. Für die Titelseiten muss man das nicht selbst machen, das erledigt wahlweise \maketitle für vorkonfigurierte Titelseiten oder die titlepage-Umgebung für einzelne frei gestaltete Titelseiten. Für Fülltext und ganze Dummy-Dokumente bietet sich übrigens das Paket blindtext an.



w_f

Re: Formatierung von Kopf- und Fußzeile abschnittsweise definieren

Beitrag von w_f »

Einen schönen Restsonntag allerseits

Ich denke ich hab das Minimalbeispiel von KOMA jetzt verstanden (vielen Dank dafür nochmal, das war großartig :) ) und versucht, darauf aufbauend etwas selber zu stricken.

Ich habe erstmal nur einen Layer erstellt und die Linien mit PSTricks gemacht, da ich PSTricks höchstwahrscheinlich sowieso benötigen werde.

\documentclass[
draft=false
]{scrbook}

\usepackage{blindtext}

\usepackage[german]{babel}

\usepackage{scrlayer}

\usepackage{xcolor}
\usepackage{pst-all}


%Farbdefinitionen
\definecolor{darkred}{RGB}{127, 0, 0}
\definecolor{lightgrey}{RGB}{191, 191, 191}

%Überschriften formatieren
\addtokomafont{disposition}{\mdseries\color{darkred}\nobreak}

%Kapitelanfang formatieren
\RedeclareSectionCommand[beforeskip=0pt,afterindent=false]{chapter}

\DeclareNewLayer[
	background,
	head,
	hoffset = 0pt, width = \paperwidth,
	contents = {
		\psset{xunit = 1mm , yunit = 1mm, runit = 1mm}
		\begin{pspicture}
			\psline[
				linewidth = 1mm,
				linecolor = darkred
				]{-}(-\paperwidth /2, 0)(\paperwidth /2, 0)
			\psline[
				linewidth = 1mm,
				linecolor = lightgrey
				]{-}(-\paperwidth /2, -2)(\paperwidth /2, -2)
  		\end{pspicture}
	}
]{Spielwiesenlayer}


\DeclarePageStyleByLayers{standardpage}{Spielwiesenlayer}
\pagestyle{standardpage}
\renewcommand*{\chapterpagestyle}{standardpage}

\begin{document}
\blinddocument

\KOMAoptions{paper={landscape},pagesize}

\blinddocument
\end{document}

Jetzt hätte ich noch ein paar Fragen:
1. In der linken oberen Ecke hab ich ein paar Ausrufe- und Fragezeichen zu stehen. Was bedeuten die, und wie kann ich diese entfernen?
2. Ich bekomme das Seitenlayout zwar auf Landschaft gedreht, aber alles andere wird noch portraitartig angeordnet. Da ich ja bisher nur mit relativen Angaben (z.B. \pagewidth) gearbeitet habe, wundert mich das etwas. Ich habe mal etwas mit renewcommand usw. herumexperimentiert, aber das hat nichts gebracht. Wie gehe ich da am Besten vor? Unterschiedliche pagestyles definieren? Das hab ich auch probiert, aber da kam nichts kompilierbares raus.

Kann mir da jemand bitte nochmal auf die Sprünge helfen? :)

Gruß
wf


Antworten