Chapter und Section durchnummerieren

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Hm … also wenn ich diesen Code
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 

\setuptoc{toc}{numbered}
\newcommand{\secnumbering}[1]{% 
  \setcounter{chapter}{0}% 
  \setcounter{section}{0}% 
  \renewcommand{\thechapter}{\csname #1\endcsname{chapter}}% nach Duden gehört 
                                  % der Punkt hier hin bei gemischten Zählungen 
  \renewcommand{\thesection}{\thechapter\csname #1\endcsname{section}}% 
} 

\pagenumbering{roman} 
\secnumbering{Roman} 
\begin{document} 

\tableofcontents 
\chapter{Test}

\pagenumbering{arabic} 
\secnumbering{arabic} 

\chapter{Kapitel 1} 
\label{chp:kapitel1} 
\chapter{Kapitel 2} 
\label{chp:kapitel2} 
\section{Abschnitt 1} 
\label{sec:abschnitt1} 
\subsection{Abschnitt 2} 
\label{sec:abschnitt2} 

Wie man in Kapitel \ref{sec:abschnitt2} sieht ... 
\end{document} 
beliebig oft durchlaufen lasse erhalte ich einfach keinen Punkt. Geht es bei dir mit genau diesem Beispiel?

rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Beitrag von rais »

Moin moin,
fuchsmeister hat geschrieben:
\sectionnumbering{Roman}


\begin{document}

\tableofcontents

\newpage
\pagenumbering{arabic}
\sectionnumbering{arabic}
ich habe noch nicht verstanden, wozu Du Dir überhaupt die Mühe machst, \thesection umzudefinieren, zumal hier zwischen \sectionnumbering{Roman} und \sectionnumbering{arabic} gar kein Abschnitt gesetzt wird.
Tut es nicht bereits
\documentclass[11pt,  headincluded, listof=totoc, listof=numbered, bibliography=totoc, listof=totocnumbered]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\setuptoc{toc}{numbered}
\renewcommand*\thechapter{\Roman{chapter}}
\pagenumbering{roman}
\begin{document}
\tableofcontents
\listoffigures
\clearpage
\pagenumbering{arabic}%
\renewcommand*\thechapter{\arabic{chapter}}\setcounter{chapter}{0}%
\chapter{Kapitel 1}
\label{chp:kapitel1}
\begin{figure}
\centering
\resizebox{0.5\linewidth}{0.2\textheight}{Testbild}
\caption{in Bild}
\end{figure}
\chapter{Kapitel 2}
\label{chp:kapitel2}
\section{Abschnitt 1}
\label{sec:abschnitt1}
\subsection{Abschnitt 2}
\label{sec:abschnitt2}

Wie man in Unterabschnitt \ref{sec:abschnitt2} sieht ...
\end{document}
?

MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

iTob hat geschrieben:Hm … also wenn ich diesen Code
...
beliebig oft durchlaufen lasse erhalte ich einfach keinen Punkt. Geht es bei dir mit genau diesem Beispiel?
Ja, bei mir ist das genauso. Jedoch hast Du auch diese Zeile weggelassen, die Jens im Code hat:
\renewcommand\thechapter{\Roman{chapter}}%
Wenn Du diese wieder hineinmachst, schwenkt die Klasse auf Nummerierung mit Punkt, bei mir.

Stefan

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Ja gut. Aber die Idee von meinem Code war ja, dass die Art der Ziffern sich analog zu \pagenumbering in einem Schritt anpassen lässt. Ich vermute mal dass man mit meinem Weg die Stelle, an der KOMA-Script prüft, ob es einen Punkt setzten muss oder nicht, übergeht und deswegen der Automatismus nicht funktioniert.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Kann man sicher anpassen. Ich hatte auch eher auf Jens' Beispiel Bezug genommen, wo etwas Weglassen etwas half.

Ansonsten kann man ja mal in den Klassen-Code schauen, \autodot\enskip wird nicht direkt in \thechapter verwendet, sondern in \chapterformat und \chaptermarkformat zusätzlich zu \thechapter, während z.B. \thesection explizit den Punkt hinter \thechapter setzt. Das bedeutet, der Punkt gehört per Design nicht in \thechapter hinein.

Stefan

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Soweit so klar, auch \autodot habe ich gefunden aber der Mechanismus, der im Hintergrund von \autodot feststellt ob dot oder nicht wird in meinem Beispiel offensichtlich ausgehebelt.

rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Beitrag von rais »

iTob hat geschrieben:aber der Mechanismus, der im Hintergrund von \autodot feststellt ob dot oder nicht wird in meinem Beispiel offensichtlich ausgehebelt.
afaics wird per \@maybeautodot getestet, ob eine Zählerrepräsentation (z. B. \thechapter) \Alph, \Roman oder einer ihrer Artgenossen entspricht.
`\csname Roman \endcsname' wird von diesem Test nicht erfasst.
\newcommand{\secnumbering}[1]{%
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \expandafter\renewcommand\expandafter\thechapter\expandafter{\csname #1\endcsname{chapter}}%
  \renewcommand{\thesection}{\thechapter\csname #1\endcsname{section}}%
}
so (o.ä.) sollte zumindest bei \thechapter z. B. `\csname Roman\endcsname' erst zu `\Roman' expandiert werden, bevor es im Befehl landet -- und damit sollte der \autodot-Mechanismus auch wieder greifen.

MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Genau wie Rainer sagt - \show\thechapter zeigt auch an:
 > \thechapter=\long macro:
->\csname Roman\endcsname {chapter}.
\@@maybeautodot testet jedoch direkt auf \Roman, u.a:
\ifx #1\Roman \@autodottrue\fi
Nun kann man notfalls auch diesen Test redefinieren und damit etwas verallgemeinern, er findet sich im Quellcode der Klasse.

Stefan

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Alles klar, dann wäre das ja geklärt ist aber dem OP vermutlich eh egal gewesen … A pro pos @OP: Ist dein Problem gelöst?

Antworten