Seite 1 von 1

Anzahl von sections und dergleichen

Verfasst: Sa 6. Dez 2014, 13:37
von tcpluess
Hallo hallo,

ich möchte einen Counter definieren, der mit über das ganze Dokument die maximale Anzahl an sections und subsections liefert. Der counter soll also über alle Chapters iterieren und in jedem Chapter schauen, wie viele Sections es gibt. Beispiel:

Kapitel 1
Sektion 1
Sektion 2

Kapitel 2
Sektion 1
Sektion 2
Sektion 3

hier wäre die maximale Anzahl Sektionen = 3, denn im Kapitel 3 sind 3 Sektionen enthalten. Ich hoffe man versteht was ich meine. Wie könnte man sowas realisieren?

Verfasst: Sa 6. Dez 2014, 14:52
von Noch so einer
Mit Hilfe von etoolbox \chapter vorn so erweitern, dass es vergleicht, ob der aktuelle section-Zähler größer ist als das aktuelle Maximum und dann ggf. das aktuelle Maximum auf diesen Wert setzen. Den Vergleich machen Experten mit \ifnum, einfache Anwender mit dem Paket ifthen. Das Maximum kann man in einem neuen Zähler oder einen Makro speichern. Falls man ein Makro verwendet, muss man \edef nehmen.

Und natürlich muss man auch bei anderen Kapitel-End-Gelegenheiten einen entsprechenden Vergleich durchführen, beispielsweise am Dokumentende.

Da Du kein VM (mit Anleitung zur Erstellung nicht nur für Anfänger) geliefert hast, gehe ich davon aus, dass Du die Implementierung selbst vornehmen willst.

Verfasst: Sa 6. Dez 2014, 15:11
von u_fischer
Ich würde mich ja eher in \refstepcounter einhängen.

Verfasst: Sa 6. Dez 2014, 16:50
von tcpluess
@Noch so einer
danke für den Tip. Ansatzweise verstehe ich sogar, was du meinst, aber ganz genau weiss ich nicht, wie ich es umsetzen soll. VM kann ich dir natürlich zusammenbasteln, ich dachte allerdings dass mein Anwendungsfall so einfach ist, dass es nicht erforderlich ist ;-) ich bau dir mal eins und versuche es hochzuladen (die letzten paar Posts hat die Upload-Funktion hier nie funktioniert).

Verfasst: Sa 6. Dez 2014, 17:05
von Johannes_B
uploads sind hier seit Jahren kaputt. Ist nun mal so.

Aber du kannst TeXt ganz normal innerhalb der [code] [/code] Blöcke reinstellen. Das ist ja das schöne an Minimalbeispielen, sie sind minimal.

Verfasst: Sa 6. Dez 2014, 18:29
von tcpluess
So, habe ein Minimalbeispiel erstellt:
\documentclass[a4paper, twoside, 10pt]{report}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}


\begin{document}

\tableofcontents

\chapter{Erstes Kapitel}
\section{Sektion 1}
\section{Sektion 2}
\section{Sektion 3}
Hier will einen Befehl: wie \maxsections, der in diesem Fall den Wert 6 liefern
soll, da die Anzahl der Sektionen {3, 6, 4} ist und ich will das Maximum davon
wissen, das 6 ist.


\chapter{Zweites Kapitel}
\section{Sektion 1}
\section{Sektion 2}
\section{Sektion 3}
\section{Sektion 4}
\section{Sektion 5}
\section{Sektion 6}

\chapter{Drittes Kapitel}
\section{Sektion 1}
\section{Sektion 2}
\section{Sektion 3}
\section{Sektion 4}

\end{document}
Alles, was ich wissen will, steht im Code.
Ich möchte aber kein extra Paket dafür verwenden, sondern ein Makro wenn möglich direkt in mein Dokument einbauen.

Gruss

Verfasst: Sa 6. Dez 2014, 18:56
von u_fischer
\documentclass[a4paper, twoside, 10pt]{report}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage{etoolbox}
\newcounter{maxsection}
\makeatletter
\preto\cl@section{\ifnum \c@section > \c@maxsection \stepcounter{maxsection}\fi}
\makeatother
\AtEndDocument{\addtocounter{maxsection}{-1}\refstepcounter{maxsection}\label{maxsection}}

\begin{document}

\tableofcontents

\chapter{Erstes Kapitel}
\section{Sektion 1}
\section{Sektion 2}
\section{Sektion 3}
 Hier will einen Befehl: wie , \ref{maxsection} der in diesem Fall den Wert 6 liefern
 soll, da die Anzahl der Sektionen {3, 6, 4} ist und ich will das Maximum davon
 wissen, das 6 ist.


\chapter{Zweites Kapitel}
\section{Sektion 1}
\section{Sektion 2}
\section{Sektion 3}
\section{Sektion 4}
\section{Sektion 5}
\section{Sektion 6}

\chapter{Drittes Kapitel}
\section{Sektion 1}
\section{Sektion 2}
\section{Sektion 3}
\section{Sektion 4}


\end{document}
Und ich weigere mich, das ohne etoolbox zu machen. Wenn du darauf verzichten willst, überlege dir selbst wie man \preto implementiert.

Verfasst: So 7. Dez 2014, 20:48
von tcpluess
Hallo hallo
sorry für meine späte Antwort. Habe es ausprobiert, und es funktioniert wie gewünscht :-) und ich habe es für subsections einfach erweitern können. Passt!