Angabe Seite über Seitenzahlen in Verzeichnissen

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


malsehen
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 22. Nov 2019, 22:01

Angabe Seite über Seitenzahlen in Verzeichnissen

Beitrag von malsehen »

Hallo zusammen

Ich habe die Vorgabe, dass in allen Verzeichnissen (toc,lof,lot) über den Seitenzahlen jeweils die Angabe Seite geschrieben stehen soll.

Für toc habe ich hier im Forum den Ansatz mit \addtocontents und package afterpage entdeckt und in meinem Versuch eine Minimalbeispiels kommentiert eingebaut (einziges Suchresultat gefunden via Stichwort Seitenhack), doch kann ich diesen nicht ganz verstehen und nicht auf mehrseitige Verzeichnisse lof und lot erweitern. Vielleicht gibt es mittlerweilen auch einen ganz anderen Ansatz, wie ich das angehen könnte.

Für Ideen und Tipps bin ich gerne zu haben. Danke für Eure Bemühungen. LG

Versuch eines Minimalbeispiels (LuaLatex mit KOMA-Script):

Code: Alles auswählen

\documentclass[paper=a4,usegeometry,fontsize=11bp,headings=optiontoheadandtoc,bibliography=totoc,listof=leveldown,index=totoc,noparskip]{scrreprt}
\usepackage{fontspec}
\setmainfont{Nimbus Sans L} 
\usepackage[utf8]{luainputenc}
\usepackage[headsepline,footsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\pagestyle{scrheadings}
\chead{\headmark}
\ofoot{\pagemark}
\ihead{Einseitiges Dokument}
\ohead{Autor}
\usepackage[
%showframe,% Seitenlayout anzeigen
nomarginpar
]{geometry}
\usepackage[ngerman]{babel}
%% Seitenhack von gefunden in GoLatex Markus Kohm mit package afterpage
\usepackage{afterpage}
\newcommand*{\Seitenhack}{%
	\hspace*{\fill}\pagename\par\medskip%
	\afterpage{\Seitenhack}%
}
\AtBeginDocument{%
	\addtocontents{toc}{%
		\protect\Seitenhack
	}%
}
\AtEndDocument{%
	\addtocontents{toc}{\protect\global\protect\let\protect\Seitenhack}%
}
%% Ende Seitenhack
\begin{document}
	\begin{titlepage}
		\author{Test Autor} 
		\title{Titel Titelseite} 
		\date{} 
		\maketitle
	\end{titlepage}
	\restoregeometry % Zurücksetzen der Einstellungen 
	\pagenumbering{Roman} % Römische Seitenzahlen
	\setcounter{page}{0} % Nullanfang im TOC
	%% 
	\tableofcontents
	\chapter[nonumber=true]{Abbildungs- und Tabellenverzeichnis} % Ginge auch mit \addchap
	%%\listoffigures %% Für Minimalbeispiel auskommentiert
	\listoftables 
	\clearpage
	%% zurück zu Seitenzahlen arabisch und Umformierung Chapterstyle, damit diese in der Kopfzeile bleibt.
	\pagenumbering{arabic}
	\renewcommand*\chapterpagestyle{scrheadings}
	\pagebreak
	\chapter{Kapitel 1}
	\section{Unterthema}
	\subsection{UnterUnterthema1}
	TEXT \\ 
	Für das Tabellenverzeichnis definieren wir eine Tabelle, damit wir die im Tabellen-Verzeichnis drin haben (Es folgt einfach eine Tabelle) :\\
	\begin{table}[]
	\begin{tabular}{|c|c|}
		\hline
		1 & 2 \\
		\hline
		3 & 4 \\
		\hline
	\end{tabular}
	\caption{Tabelle 1: Eine Beispieltabelle}
	\label{tab:meine-tabelle}
	\end{table}
	\\
	ENDE.
\end{document}

gast

Re: Angabe Seite über Seitenzahlen in Verzeichnissen

Beitrag von gast »

Noch so ein Code aus der Hölle. luainputenc ist ein Notfallpaket, falls man Legacy-Font-Pakete verwenden muss und diese nur damit funktionieren. Man sollte es jedoch nicht verwenden, wenn man Fonts per fontspec setzt. Du solltest es also weglassen. Wenn Fonteinstellungen nicht Teil des Problems sind, sollte man sie bei einem Minimalbeispiel ebenfalls weglassen.

geometry nur zu laden, um per Option \marginpar auf Null zu setzen, ist unsinnig. Wenn man Randnotizen verwendet, ist die Einstellung eher schlecht, und wenn man sie nicht verwendet, ist sie sinnlos. Also noch etwas zum Weglassen.

Die Verwendung von \restoregeometry, ohne dass die Randeinstellungen zuvor verändert werden, ist ebenfalls sinnlos.

Korrekter Weise zählt man die Titelseite mit. Siehe dazu: Welche Seitenzahl hat das Inhaltsverzeichnis?

Eigentlich sind die römischen Seitenzahlen ein historisches Überbleibsel und heute ohne jeden Sinn. Siehe dazu: Römische Seitenzahlen im Vorderteil (und im Endteil)? Wenn man sie verwendet, ist ein \setcounter{page}{0} nach \pagenumbering sinnloser Unfug, weil \pagenumbering bereits die Seitenzahl zurücksetzt, wie in der KOMA-Script-Anleitung explizit erklärt. Und bei doppelseitigen Dokumenten wäre \clearpage vor \pagenumbering zu wenig, weshalb man sich gleich \cleardoubleoddpage angewöhnen sollte.

Das \pagebreak vor \chapter{Kapitel 1} ist ebenfalls totaler Unfug. \pagebreak wird in den meisten Fällen übrigens ohnehin falsch verwendet. Meist ist an den Stellen \clearpage die richtige Wahl. An der Stelle ist es aber ohnehin nicht sinnvoll.

\\ im Text oder gar nach einer Gleitumgebung ist totaler Unsinn! Absätze macht man mit \par oder Leerzeile. Wenn man keinen Absatzeinzug will, verwendet man Klassenoption parskip. Näheres zu der Option findet man in der KOMA-Script-Anleitung.

Bezüglich \Seitenhack kann ich nur sagen dass du unvollständig kopiert hast. Das kann so jedenfalls nicht funktionieren. Da du dummerweise keinen Link auf die Quelle angegeben hast gehe ich davon aus, dass es sich um https://golatex.de/viewtopic.php?p=15112#p15112 handelt. Wenn man die dortige Definition von \Seitenhack komplett kopiert, dann funktioniert das auch für ein mehrseitiges Inhaltsverzeichnis. Warum \Seitenhack nicht auch noch für das Abbildungsverzeichnis und das Tabellenverzeichnis funktioniert, hat KOMA in der Diskussion dort eigentlich auch erklärt. Im Prinzip ist damit auch erklärt, dass man \Seitenhack vor jedem Verzeichnis neu definieren muss. Mit einem aktuellen KOMA-Script beispielsweise in Abwandlung der dortigen Lösung und unter Reduktion deines Beispiels:

Code: Alles auswählen

\documentclass[paper=a4,usegeometry,fontsize=11bp,headings=optiontoheadandtoc,bibliography=totoc,listof=leveldown,index=totoc]{scrreprt}
\usepackage[headsepline,footsepline]{scrlayer-scrpage}
\usepackage{blindtext}
\clearpairofpagestyles
\chead{\headmark}
\ofoot{\pagemark}
\ihead{Einseitiges Dokument}
\ohead{Autor}
\usepackage[ngerman]{babel}
%% Seitenhack von https://golatex.de/viewtopic.php?p=15112#p15112 abgewandelt
%% unter Verwendung eines aktuelleren KOMA-Scripts
\usepackage{afterpage}
\newcommand*{\Seitenhack}{}
\BeforeStartingTOC{%
  \renewcommand*{\Seitenhack}{%
    \hspace*{\fill}\pagename\par\medskip%
    \afterpage{\Seitenhack}%
  }%
  \Seitenhack
}

%% Ende Seitenhack
\begin{document}
\pagenumbering{Roman} % Römische Seitenzahlen im Vorderteil (auch wenn wenig sinnvoll)
\begin{titlepage}
  \author{Test Autor} 
  \title{Titel Titelseite} 
  \date{} 
  \maketitle
\end{titlepage}

\tableofcontents
\chapter[nonumber=true]{Abbildungs- und Tabellenverzeichnis}
\listoftables 
\cleardoubleoddpage
\pagenumbering{arabic}
\renewcommand*\chapterpagestyle{scrheadings}% Nicht zu empfehlen!
\chapter{Kapitel 1}
\section{Unterthema}
\subsection{UnterUnterthema1}
\blindtext

\makeatletter\@whilenum \value{table}<40\do {%
  \captionof{table}{Beispieltabelle Nummer \thetable}%
}\makeatother

\blinddocument\blinddocument\blinddocument\blinddocument\blinddocument
\blinddocument\blinddocument\blinddocument\blinddocument\blinddocument
\blinddocument\blinddocument\blinddocument\blinddocument\blinddocument

\end{document}

Fügt man jetzt allerdings auch noch das bei dir deaktivierte Abbildungsverzeichnis wieder ein, dann sieht man, dass dadurch auf der Seite zweiten Seite des Tabellenverzeichnisses zweimal Seite steht. Das liegt daran, dass dann zweimal \afterpage{\Seitenhack} ausgeführt wird, nämlich einmal aus den \Seitenhack des Abbildungsverzeichnisses und einmal aus dem des Tabellenverzeichnisses. Auf der anderen Seite ist es wenig sinnvoll, die beiden Verzeichnisse unter einer gemeinsamen Überschrift zusammen zu fassen, wenn sie mehrere Seiten haben. Und

Code: Alles auswählen

\documentclass[fontsize=11bp,headings=optiontoheadandtoc,bibliography=totoc,index=totoc]{scrreprt}
\usepackage[headsepline,footsepline]{scrlayer-scrpage}
\usepackage{blindtext}
\clearpairofpagestyles
\chead{\headmark}
\ofoot{\pagemark}
\ihead{Einseitiges Dokument}
\ohead{Autor}
\usepackage[ngerman]{babel}
%% Seitenhack von https://golatex.de/viewtopic.php?p=15112#p15112 abgewandelt
%% unter Verwendung eines aktuelleren KOMA-Scripts
\usepackage{afterpage}
\newcommand*{\Seitenhack}{}
\BeforeStartingTOC{%
  \renewcommand*{\Seitenhack}{%
    \hspace*{\fill}\pagename\par\medskip%
    \afterpage{\Seitenhack}%
  }%
  \Seitenhack
}

%% Ende Seitenhack
\begin{document}
\pagenumbering{Roman} % Römische Seitenzahlen im Vorderteil (auch wenn wenig sinnvoll)
\begin{titlepage}
  \author{Test Autor} 
  \title{Titel Titelseite} 
  \date{} 
  \maketitle
\end{titlepage}

\tableofcontents
\listoffigures
\listoftables 
\cleardoubleoddpage
\pagenumbering{arabic}
\renewcommand*\chapterpagestyle{scrheadings}% Nicht zu empfehlen!
\chapter{Kapitel 1}
\section{Unterthema}
\subsection{UnterUnterthema1}
\blindtext

\makeatletter\@whilenum \value{table}<40\do {%
  \captionof{table}{Beispieltabelle Nummer \thetable}%
  \captionof{figure}{Beispielabbildung Nummer \thefigure}%
}\makeatother

\blinddocument\blinddocument\blinddocument\blinddocument\blinddocument
\blinddocument\blinddocument\blinddocument\blinddocument\blinddocument
\blinddocument\blinddocument\blinddocument\blinddocument\blinddocument

\end{document}

funktioniert.

Zum besseren Verständnis empfehle ich \BeforeStartingTOC in der KOMA-Script-Anleitung und \afterpage in der afterpage-Anleitung nachzulesen und sich dann zu vergegenwärtigen, was \afterpage{\Seitenhack} bewirkt.


malsehen
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Fr 22. Nov 2019, 22:01

Re: Angabe Seite über Seitenzahlen in Verzeichnissen

Beitrag von malsehen »

Lieber Gast

Ganz lieben Dank für Deine wertvollen Hinweise für mich als Neuling. In der Tat vermag mein Minimalbeispiel aus Deiner Expertenoptik wie ein Code aus der Hölle anmuten, ich wertschätze sehr, dass Du diesen für mich, wo relevant, extrahiert erklärt hast. Einiges durfte ich so klarer verstehen.

Ich habe Deine Ausführungen zu \Seitenhack gelesen und sind für mich nun nachvollziehbarer (danke für Verweise in KOMA-Script-Anleitung). Mit KOMA-Script \BeforeStartingTOC kann das in der Tat elegant gelöst werden.

Mit richtig Kopieren funktioniert auch alles bei mir wie von Dir erwähnt, auch in meiner selbst erstellten, vollgepackten Mastervorlage.

Danke vielmals, das hat mir weitergeholfen. :D


Antworten