Seitenzahlen anpassen

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


ThoRie
Forum-Century
Forum-Century
Beiträge: 143
Registriert: Fr 12. Mai 2017, 11:57

Seitenzahlen anpassen

Beitrag von ThoRie »

Hallo, ich habe ein kleines Problem mit folgendem Code:

\documentclass{article}
\usepackage{fancyhdr}
\usepackage{blindtext}
\usepackage{lastpage}
\pagestyle{fancy}
\rfoot{Seite \thepage\ von \pageref{LastPage}}
\cfoot{}


\begin{document}
\tableofcontents
\newpage
\renewcommand*{\thepage}{A-\arabic{page}}
\setcounter{page}{1}
\section{Überschirft 1}
\newpage
\renewcommand*{\thepage}{B-\arabic{page}}
\setcounter{page}{1}
\section{Überschirft 2}



\end{document}

Es soll nach jeder Überschrift entsprechend mit dem Buchstaben hoch gegangen werden und wieder bei 1 nummeriert. An sich macht er das ja auch, wie er soll, ich hätte das nur eben gern mit LastPage verknüpft, was, wie man sehen kann, nicht so einfach zu gehen scheint.

Es soll dann so sein, dass wenn zum Beispiel der erste Abschnitt 10 Seiten hat, dass dann auf Seite 3 beispielsweise "Seite A-3 von 10" steht.

Kann man das irgendwie umsetzen? Vor allem möglichst ohne KOMA-Skript, da mir dieses die Schriftart und Formatierung irgendwie komplett zerstört :(

PS.: Mir ist bewusst, dass grundsätzlich davon abgeraten wird, jedes Kapitel wieder neu zu nummerieren. Hier geht es aber in der richtigen Datei um eine Aufgabensammlung, die ich mit ein paar Kollegen erstelle, die Kapitelweise ausgegeben werden soll.


Grummelgast

Re: Seitenzahlen anpassen

Beitrag von Grummelgast »

Zum einen sollte man für Kapitel auch eine Klasse mit Kapiteln nehmen, beispielsweise report oder eben scrreprt. Man kann bei KOMA-Script auch alle Schriften einstellen. Es gibt sogar so nette Optionen wie egregdoesnotlikesansseriftitles oder emulatestandardclasses, die u. a. die Fonts für Überschriften auf einen Schlag umschalten.

Dann fragt man sich natürlich schon, woher das A und das B kommen. Bei kapitelweiser Nummerierung verwendet man normalerweise die Kapitelnummer als Präfix. Und dann ist eben lastpage nicht dafür da, die letzte Seite des Abschnitts (denn \section ist ja nur ein Abschnitt, kein Kapitel), sondern die letzte Seite des Dokuments zu referenzieren. Und auch das macht es eher schlecht als recht. Für die letzte Seite des Abschnitts brauchst du für jeden Abschnitt ein eigenes Label an dessen Ende. Das kannst du dann mit \pageref auch referenzieren. Ja, das kann man auch automatisieren. Am einfachsten mit einer Klasse, die auch Kapitel unterstützt und da wohl am einfachsten mit einer KOMA-Script-Klasse, weil diese diverse Hooks für so etwas anbieten. Aber das willst du ja leider explizit nicht. Also bringt es auch nichts, wenn ich dir das zeige.


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

Re: Seitenzahlen anpassen

Beitrag von KOMA »

Grummelgast hat geschrieben:
Fr 12. Mär 2021, 16:04

Ja, das kann man auch automatisieren. Am einfachsten mit einer Klasse, die auch Kapitel unterstützt und da wohl am einfachsten mit einer KOMA-Script-Klasse, weil diese diverse Hooks für so etwas anbieten. Aber das willst du ja leider explizit nicht. Also bringt es auch nichts, wenn ich dir das zeige.

Ach, wieso nicht. Das kann man schon zeigen:

\documentclass[egregdoesnotlikesansseriftitles]{scrreprt}
\usepackage[manualmark]{scrlayer-scrpage}
\usepackage[ngerman]{babel}% Wenn man auf Deutsch schreibt, sollte man auch die Sprache entsprechend einstellen (idealer Weise eigentlich sogar global)
\usepackage{blindtext}
\newcommand*{\ThisChapterLast}{}
\renewcommand*{\pagemark}{%
  \usekomafont{pagenumber}{%
    Seite
    \ifx\ThisChapterLast\empty \thepage\else \Alph{chapter}-\thepage{} von \pageref{\ThisChapterLast}\fi
  }%
}
\ofoot*{\pagemark}
\cfoot*{}
\AddtoDoHook{heading/preinit/chapter}{%
  \ifx\ThisChapterLast\empty\else
    \label{\ThisChapterLast}%
  \fi
}
\AddtoDoHook{heading/branch/nostar/chapter}{%
  \setcounter{page}{1}%
  \gdef\ThisChapterLast{chend-\thechapter}%
}
\AddtoDoHook{heading/branch/star/chapter}{%
  \setcounter{page}{1}%
  \gdef\ThisChapterLast{}%
}
\AtEndDocument{\ifx\ThisChapterLast\empty\else\label{\ThisChapterLast}\fi}
\begin{document}
\tableofcontents
\chapter{Überschrift 1}
\Blindtext[5]
\captionof{figure}{Eine Abbildung haben wir auch}
\chapter{Überschrift 2}
\Blindtext[10]

\end{document}

ThoRie
Forum-Century
Forum-Century
Beiträge: 143
Registriert: Fr 12. Mai 2017, 11:57

Re: Seitenzahlen anpassen

Beitrag von ThoRie »

Okay, vielen Dank erstmal für die Rückmeldung, das passt bis dahin eigentlich echt gut. Und da das mit der Schriftart ja offensichtlich kein Problem darstellt, wäre das durchaus eine probate Methode. Das einzige, was jetzt nur nicht mehr passt, ist die Darstellung im Inhaltsverzeichnis. Dort soll eben auch entsprechend die Seitenzahl mit den Buchstaben auftauchen. Wenn das noch geht, dann wäre das super.

Zu der Anmerkung in dem Dokument zwecks Babel: Das habe ich im original natürlich drin, in meinem Beispiel nur nicht, weil das ja nichts mit meinem Problem zu tun hatte und das sollte so minimal wie möglich sein.


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

Re: Seitenzahlen anpassen

Beitrag von KOMA »

ThoRie hat geschrieben:
Fr 12. Mär 2021, 16:50

Das einzige, was jetzt nur nicht mehr passt, ist die Darstellung im Inhaltsverzeichnis. Dort soll eben auch entsprechend die Seitenzahl mit den Buchstaben auftauchen. Wenn das noch geht, dann wäre das super.

Wenn im Inhaltsverzeichnis die Seitenzahlen mit Präfix stehen sollen, dann müsste man in der Tat \thepage umdefinieren. Dann hat man aber wiederum das Problem, dass \pageref natürlich ebenfalls die \thepage für die Referenz verwendet. Dann steht im Fuß natürlich auch nicht mehr »Seite A-1 von 2«, sondern »Seite A-1 von A-2«. Man müsste also das Ergebnis von \pageref noch weiterverarbeiten, um den Präfix wieder abzuschneiden oder man müsste das Label manipulieren. Für beides habe ich gerade keine Zeit, weil ich jetzt nämlich Feierabend mache.


Antworten