Seitennummerierung in der Form 1/(Anz. Gesamtseiten Sektion)

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


IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Seitennummerierung in der Form 1/(Anz. Gesamtseiten Sektion)

Beitrag von IrenaSekuta »

Hallo zusammen,

ich weiß nicht, ob mein Anliegen in dieser Rubirk richtig ist. Falls nicht, bitte ich um Entschuldigung.

Seit knapp fünf Jahren habe ich nichts mehr mit LaTeX erstellt, jedoch konnte ich meine Boss überzeugen, dass wir für einen technischen Bericht, der aus ca. 10.000 Seiten bestehen wird, aufgrund der Trennung von Inhalt und Layout auf Latex zurückgreifen sollten.

Nun habe ich aber ein Problem, das mich schon eine Weile beschäftigt.

Der technische Bericht wird aus zahlreichen Kapiteln zusammengestellt:

1 BlabLa
1.1 BlaBlaBla
1.2 BlaBla
...

Für jedes Unterpaitel (Ebene "section") ist jeweils ein Autor zuständig.

Nun habe ich die Vorgabe bekommen, dass Seitenzahlen in der Kopfzeile in der Form

Aktuelle Seite / Anzl. der Seiten des Unterkapitels

D.h. wenn das Section insgesamt 25 Seiten hat, dann soll dort 1/ 25 angezeigt werden.

Gibt es nun eine Möglichkeit in Latex nicht die Gesamtzahl des Gesamtdokumentes anzeigen zu lassen, sondern lediglich die Gesamtzahl einer "Section"?

Gruß,

Irena

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

Beitrag von KOMA »

Klar. Das Prinzip ist dabei das gleiche wie bei der Gesamtzahl der Seiten des Dokuments. Man muss am Anfang oder Ende jedes Abschnitts ein Label setzen und dieses dann referenzieren. Gleichzeitig muss man dafür sorgen, dass die Seitenzahl bei jedem neuen Abschnitt zurückgesetzt wird. Da es nur sinnvoll ist, die Nummerierung wieder mit 1 zu beginnen, wenn auch eine neue Seite begonnen wird, zeige ich das hier mal an einem Beispiel mit Kapiteln.
\documentclass{scrreprt}
\usepackage[automark]{scrpage2}
\usepackage{blindtext}

\makeatletter% siehe [url=http://www.golatex.de/wiki/index.php?title=%5Cmakeatletter]wiki[/url]
\newcounter{abschapter}
\newcommand*{\normalpagemark}{%
  \renewcommand*{\pagemark}{\usekomafont{pagenumber}\thepage}}
\newcommand*{\chapterpagemark}{%
  \renewcommand*{\pagemark}{\usekomafont{pagenumber}%
    \thepage/\pageref{lastchapterpage.\theabschapter}}}
% Seitennummer am Kapitelanfang auf 1 setzen und die absolute Kapitelnummer
% erhöhen.
\g@addto@macro{\chapterheadstartvskip}{%
  \setcounter{page}{1}%
  \stepcounter{abschapter}%
}
% Vor dem Anfang eines neuen Kapitels ein Label setzen:
\newcommand*{\orig@chapter}{}
\let\orig@chapter\chapter
\renewcommand*{\chapter}{%
  \label{lastchapterpage.\theabschapter}% Label auf der letzten Seite des
                                % vorherigen Kapitels
  \orig@chapter}
% Das gleiche bei Kapiteln, die mit \addchap beginnen
\newcommand*{\orig@addchap}{}
\let\orig@addchap\addchap
\renewcommand*{\addchap}{%
  \label{lastchapterpage.\theabschapter}% Label auf der letzten Seite des
                                % vorherigen Kapitels
  \orig@addchap}
% Und dann noch am Ende des Dokuments
\AtEndDocument{%
  \label{lastchapterpage.\theabschapter}%
}
\makeatother% siehe [url=http://www.golatex.de/wiki/index.php?title=%5Cmakeatother]wiki[/url]

\begin{document}
\title{Titel}\author{Autor}\maketitle
\tableofcontents
\clearpage\chapterpagemark
\blinddocument

\blinddocument\blindtext[10]
\end{document}
Falls Du Dir mal \theabschapter ausgeben lässt oder in die aux-Datei schaust: Nicht wundern, dass die nicht in 1er-Schritten hochgezählt wird. Das liegt daran, dass der Code in \chapterheadstartvskip bei jedem Kapitelanfang mehrfach ausgeführt wird.

Falls nicht scrreprt oder scrbook verwendet wird, muss man sich natürlich einen anderen Hook für das Zurücksetzen der Seitennummer und das Erhöhen von abschapter suchen. Notfalls kann man das bei der Umdefinierung der Kapitel mit einfügen, muss dann dort aber vorher noch ein \clearpage oder \cleardoublepage einfügen (je nachdem, ob ein- oder doppelseitig gearbeitet wird). Die Behandlung von \addchap ist natürlich auch nur bei scrbook und scrreprt notwendig, stört anderenfalls aber auch nicht.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo KOMA,

herzlichen Dank für deine schnelle wie auch ausführliche Antwort.

Da wir englischsprachige, technische BErichte erstellen, benutze ich derzeit folgende Dokumentenclasse:
\documentclass[12pt, oneside, a4paper]{book}
Ich werde mal versuchen, Dein Beispiel in mein Dokument zu integrieren. Leider kenne ich mich so gut wie gar nicht diesen ganzen "Variablen" aus, die ich benutzen kann und wie ich sie ändern kann.

Wo lässt sich denn so etwas anlesen?

Gruß,

Irena

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

Beitrag von KOMA »

scrbook ist auch für englische Texte von Vorteil.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo KOMA,
scrbook ist auch für englische Texte von Vorteil.
Aber es verträgt sich anscheinend nicht mit folgendem Packet:
\usepackage{fancyhdr} % Einstellen von Kopf- und Fußzeilen
Mein Main-Kapitel sieht momentan wie folgt aus:
\documentclass[12pt, oneside, a4paper]{scrbook}

%========== Including Userpackages ==========
\usepackage[english]{babel}
\usepackage[automark]{scrpage2}
\usepackage{graphicx}	% Einbinden von Graphiken
\usepackage{lastpage}	% Ermittlung der letzten Seitennummer
\usepackage{multirow}   % Mehrere Zeilen in Tabelle zusammenfassen
\usepackage{graphicx}   % Einbinden von (*.jpeg, *.png oder auch *.bmp) Bilder
\usepackage{fancyhdr}	% Einstellen von Kopf- und Fußzeilen
\usepackage{blindtext}	% Erzeugen von Blindtext
\usepackage[noauto]{chappg}	% Erlaubt die Nummerierung von Seiten zu ändern
\usepackage{titlesec}			% Inhaltsverzeichnisse
\usepackage[thinspace]{SIunits}		% Physikalische Notation von Einheiten


%========== Seitenaufbau ===========
\setlength{\oddsidemargin}{0.6mm}	% Abstand zum linken Seitenrand (0 = 2,54 cm)
\setlength{\topmargin}{0mm}
\setlength{\voffset}{-25mm}     	% Abstand Kopf- zum Seitenbereich (-30mm = oberer Papierkante)
\setlength{\headheight}{20mm}	  	% Höhe des Kopfbereiches
\setlength{\headsep}{10mm}		  	% Abstand Kopf- zu Textbereich
\setlength{\footskip}{10mm}	  	% Abstand Fuß- zu Textbereich (30mm = untere Papierkante)
\setlength{\textwidth}{158mm}	 	% Textbreite
\setlength{\textheight}{240mm}	% Texthöhe
\setlength{\parindent}{0mm}	  	% Kein Texteinzug für erste Zeile eines Absatzes
\setlength{\parskip}{11pt}			% Definiert den Abstand zwischen zwei Absätzen

%========== Kopfzeile ===========
%\lhead{}
%\chead{Title}
%\rhead{Section: \hspace{0.5cm} \thesection\\
%		Revision: \hspace{0.5cm} A\\
%		Page: \hspace{0.5cm} \thepage}
%\lfoot{}
%\cfoot{\tiny{The reproduction, transmission or use of this document or its contents is not %permitted without express written authority. Offenders will be liable for damages.
%All rights, including rights created by patent grant or registration of a utility model or design, %are reserved.\\[3pt]%
%\textbf{Confidential}}\\[3pt]%
%\textbf{AL: N \hspace{0.5cm} ECCN: N}}

%\renewcommand{\headrulewidth}{0.4pt}	% Linie nach Kopfzeile
%\renewcommand{\footrulewidth}{0.4pt}	% Linie vor Fußzeile

%========== Seitennummerierung ===========
\renewcommand{\chappgsep}{--}				% Trennzeichen zwischen Kapitel und Seitennummer
\pagenumbering[\thesection]{bychapter}
%\pagestyle{fancy}


%====================================
%========== Begin Document ==========
%====================================
\begin{document}

\tableofcontents				% Inhaltsverzeichnis
\thispagestyle{empty}		% Leere Kopf- und Fußzeile

\setcounter{chapter}{-1}	% Setzen der Kapitelstartnummer
\include{Chapter_00}
\include{Chapter_01}

\end{document}
Für Anregungen bin ich immer dankbar.

Gruß,

Irena

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

Beitrag von KOMA »

KOMA-Script-Klassen vertragen sich sehr wohl mit fancyhdr, was sich nicht verträgt sind die Pakete scrpage2 und fancyhdr. Es wundert mich etwas, wenn das jemanden wundert. Man sollte grundsätzlich nicht zwei unterschiedliche Pakete für den gleichen Einsatzzweck laden, erst recht nicht, wenn sie Befehle mit gleichem Namen definieren.

Bei Verwendung einer KOMA-Script-Klasse empfehle ich in der Regel die Verwendung von scrpage2, weil das einige Features der KOMA-Script-Klassen direkt unterstützt, während man bei fancyhdr ggf. selbst auf die Einhaltung achten muss. Ich habe im Beispiel scrpage2 nur verwendet, um für die geänderte Seitenzahlenausgabe schlicht \pagemark umdefinieren zu können. Man kann das auch mit fancyhdr lösen. Man kann auch \thepage umdefinieren. Es kommt ganz darauf an, was man genau haben will.

Außerdem solltest Du mal l2tabu lesen. Beim Seitenaufbau kannst Du Dir nämlich das Leben durch Verwendung von geometry deutlich erleichtern. Auch ist es nicht empfehlenswert \voffset und \hoffset für Randeinstellungen zu verwenden. Schon im TeXbook schriebt Knuth, dass die beiden dafür gedacht sind, Seiten auf größeren Druckbögen zu platzieren, also so wie das crop-Paket das macht. Dazu gehe ich jede Wette ein, dass der Wert von \voffset nicht einmal stimmt, sondern eigentlich -1in gemeint war.

Auch Deine Änderung von \parindent und \parsep ist nicht günstig. Auch dazu steht etwas in l2tabu.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo Koma,

vielen Dank für deine Antwort.

Auch wenn es sicherlich keine Enschuldigung ist, jedoch fehlt unser einem schlicht und ergreifend die Zeit, um sich alle benutzten Packete wie auch Klassen intensivst durchzulesen. So passt es eben, dass frau sich Codeschnippsel aus diversen Büchern und Internetforen zusammensucht, in der Hoffnung, irgendwann einmal LaTeX auch verstehen zu können.

Ich werde mir einfach einmal l2tabu zu Gemüte führen, in der Hoffnung, danach zwar nicht erleuchtet zu sein, jedoch zumindest etwas mehr Licht im Dunkeln zu erblicken.

Habe mir deinen rat zu Gemüte geführt und bin bisher zu folgendem Ergebnis gekommen:
\documentclass[12pt, oneside, a4paper]{scrbook}

%========== Including Userpackages ==========
\usepackage[automark]{scrpage2}
\usepackage[english]{babel}
\usepackage{graphicx}	% Einbinden von Graphiken
\usepackage{lastpage}	% Ermittlung der letzten Seitennummer
\usepackage{multirow}   % Mehrere Zeilen in Tabelle zusammenfassen
\usepackage{graphicx}   % Einbinden von (*.jpeg, *.png oder auch *.bmp) Bilder
%\usepackage{fancyhdr}	% Einstellen von Kopf- und Fußzeilen
\usepackage{blindtext}	% Erzeugen von Blindtext
\usepackage[noauto]{chappg}	% Erlaubt die Nummerierung von Seiten zu ändern
\usepackage{titlesec}			% Inhaltsverzeichnisse
\usepackage[thinspace]{SIunits}		% Physikalische Notation von Einheiten


%========== Seitenaufbau ===========
\usepackage[showframe]{geometry}
\geometry{left=3cm, right=3cm, top=1cm, bottom=2cm}
\geometry{includeheadfoot}
\geometry{headheight=3cm}
\geometry{headsep=0.5cm, footskip=0.5cm}

%========== Kopfzeile ===========
\setkomafont{pagehead}{\normalfont \sffamily}
\setheadsepline{0.4pt}%
\ihead{Text}
\chead{Text}
\ohead{
	\begin{tabular}{lr}
		Section: & \thesection \\
		Page: &  \thepage / XX \\
		Revision: & A
	\end{tabular}}


%========== Fusszeile ===========
\setkomafont{pagefoot}{\normalfont \sffamily}
\setfootsepline{0.4pt}
\cfoot{\tiny{The reproduction, transmission or use of this document or its contents is not permitted without express written authority.Offenders will be liable for damages. All rights, including rights created by patent grant or registration of a utility model or design, are reserved.\\[3pt]%
\textbf{Confidential}}\\[3pt]%
\textbf{AL: N \hspace{0.5cm} ECCN: N}}

%========== Seitennummerierung ===========
\renewcommand{\chappgsep}{--}				% Trennzeichen zwischen Kapitel und Seitennummer
\pagenumbering[\thesection]{bychapter}
\pagestyle{scrheadings}


%====================================
%========== Begin Document ==========
%====================================
\begin{document}

\tableofcontents				% Inhaltsverzeichnis
\thispagestyle{empty}		% Leere Kopf- und Fußzeile

\setcounter{chapter}{-1}	% Setzen der Kapitelstartnummer
\include{Chapter_00}
\include{Chapter_01}

\end{document}
Die Fußzeile passt, die Kopfzeile bereitet mir jedoch Schwierigkeiten. In der Kopfzeile soll bei Pages zum 3 / 10 stehe, wenn ich mich auf der dritten Seite befinde und das Unterkapitel (Section) insgesamt 10 Seiten hat. Dazu werde ich versuchen deinen Code zu implementieren.

Nun habe ich ja die Variable \thesection irgendwie mit der folgenden Anweisung umdefiniert:
\pagenumbering[\thesection]{bychapter}
Das ist für das Inhaltsverzeichnis auch richtig, jedoch nicht für die Anzeige in der Kopfzeile.

Irgendwie raucht schon der Kopf, und das, obwohl ich Nichtraucherin bin. :-)

Gruß,

Irena

Jo

Beitrag von Jo »

Auf was muss ich nun referenzieren, wenn ich die Anzeige, die mit \chaptermark generiert wird, z.B. nun in der Kopfzeile stehen haben möchte?

Antworten