Chapter und Section durchnummerieren

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


fuchsmeister
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: So 25. Jul 2010, 09:18
Wohnort: Bielefeld

Chapter und Section durchnummerieren

Beitrag von fuchsmeister »

Hallo zusammen,

ich würde mich über einen Tip freuen.
Benutze Dokumentenklasse scrrprt und habe folgendes Problem.
Arbeite mit chapter section und subsection. Wenn ich z.B. ein \label{sec:test} für eine section definiere, wird mit \ref{sec:test} die Wertigkeit des übergeordneten chapters nicht mit einbezogen.
\chapter{Kapitel 1}
\label{chp:Kapitel1}
\chapter{Kapitel2}
\label{chp:Kapitel2}
\section{test}
\label{sec:test}
\ref{sec:test}
Ich möchte als Ergebnis für \ref{sec:test} ein 2.1 und nicht nur eine 1, wie ich es jetzt habe.
Was kann ich tun? Habe mir mit \ref{chp:Kapitel2}.\ref{sec:test} geholfen. Aber das ist doch nicht die Lösung, oder?

Grüße
Jens

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

Beitrag von iTob »

Normalerweise solte der Verweis auf eine \section die \chapter-Nummer mit ausgeben. Bitte fertige ein vollständiges und lauffähiges Minimalbeispiel an, dass dein Problem zeigt!


Tobi

fuchsmeister
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: So 25. Jul 2010, 09:18
Wohnort: Bielefeld

Beitrag von fuchsmeister »

Hi Tobi,

hier ist der Code. Wahrscheinlich liegt es an der römischen Zählweise im Inhaltsverzeichnis... der Prof will es halt so...
\documentclass[11pt,  headincluded, listof=totoc, listof=numbered, bibliography=totoc, listof=totocnumbered]{scrreprt}
\usepackage[ngerman]{babel}

\setuptoc{toc}{numbered}\newcommand{\sectionnumbering}[1]{
  \setcounter{section}{0}%
   \renewcommand{\thesection}{\csname #1\endcsname{section}}
   }

\renewcommand\thechapter{\Roman{chapter}}

\pagenumbering{roman}
\sectionnumbering{Roman}


\begin{document}

\tableofcontents

\newpage
\pagenumbering{arabic}
\sectionnumbering{arabic}

\setcounter{chapter}{0}
\renewcommand\thechapter{\arabic{chapter}}


\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}


[/code]

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

Beitrag von iTob »

Gutes Beispiel! Da kann man doch schön sehen, wo der Haken ist: In der Definition von \sectionnumbering veränderst du \thesection in der Art, dass di Kapitelnummer (also \thechapter) nicht mehr darin auftaucht. Wenn du das also einsetzt, sollte es gehen:
\newcommand{\sectionnumbering}[1]{ 
  \setcounter{section}{0}% 
   \renewcommand{\thesection}{\thechapter.\csname #1\endcsname{section}} 
   }
Du könntest es außerdem noch so erweitern, dass die Art der Nummerierung von \chapter gleich mit angepasst wird:
\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}}%
}
Wie viele Profs doch völlig schwachsinnige Ideen haben! Warum muss das IHV ins IHV, wer bitte schön schaut denn im IHV nach, um das IHV zu finden und wie findet er das IHV um darin nach dem IHV zu suchen … so ein Blödsinn!

Tobi

PS: Bist du dir der Tatsache bewusst, dass du so gut wie alle Zeilen mit einem Leerzeichen abschließt? Das kann besonderst in Befehlsdefinitionen mal zu Problemen führen. Das kann man auch auf der KOMA-Script-Seite nachlesen …

fuchsmeister
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: So 25. Jul 2010, 09:18
Wohnort: Bielefeld

Beitrag von fuchsmeister »

Hi Tobi,

klappt super.
Nur jetzt nummeriert er die Abbildungen und Tabellen etwas anders.
Statt z.B. in diesem Beispiel eine 0.1 sagt er 0..1
Was kann das sein?
\documentclass[11pt,  headincluded, listof=totoc, listof=numbered, bibliography=totoc, listof=totocnumbered]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{jurabib}
\usepackage{float}
\usepackage{rotating}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{wrapfig}
\usepackage{supertabular}
\usepackage{slashbox}
\usepackage[right]{eurosym}
\usepackage[T1]{fontenc}
\usepackage[isolatin]{inputenc}
\usepackage[intoc]{nomencl}
\usepackage{indentfirst}

\pagestyle{headings}%

\setuptoc{toc}{numbered}%
\newcommand{\sectionnumbering}[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}}%
}

\renewcommand\thechapter{\Roman{chapter}}%

\pagenumbering{roman}%
\sectionnumbering{Roman}%

\makenomenclature%

\begin{document}%


\tableofcontents{}%
\newpage{}%
\listoffigures{}%
\listoftables{}%

\pagenumbering{arabic}%
\sectionnumbering{arabic}%

\begin{figure}[H]
    \begin{center}
    % Requires \usepackage{graphicx}
    \includegraphics[width=13cm]{hsosna-logo.jpg}\\
    \label{hsosna-logo}
    \caption{Logo}
    \end{center}
\end{figure}

\end{document}
Wäre über kurzfristige Hilfe nochmal sehr dankbar!

Grüße
Jens

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

Beitrag von iTob »

Nabend,

das liegt dann daran, dass sowohl \thechaper als auch die Definition von \thefigure einen Punkt einfügt. Ergo müsstest du \thefigure entsprechend anpassen.
Ich zweifele aber grad, ob es nicht vielleicht noch eine simplere Lösung gibt …

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

Beitrag von Stefan Kottwitz »

Hallo,

KOMA-Klassen wie die hier verwendete scrreprt-Klasse setzen den Punkt bei römischer Gliederung automatisch. Du kannst daher die Zeilen
  \renewcommand{\thechapter}{\csname #1\endcsname{chapter}.}% nach Duden gehört
                                  % der Punkt hier hin bei gemischten Zählungen
weglassen. Nach dem zweiten Mal Übersetzen ist der Punkt wieder da, diesmal von der Klasse gesetzt.

Im Beispiel hast Du die Abbildung gesetzt, ohne ein Kapitel zu beginnen, so würde .1 nummeriert. Fügst Du vorher ein \chapter{...} ein, wird es 1.1, wie gewünscht.

Viele Grüße,

Stefan

fuchsmeister
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: So 25. Jul 2010, 09:18
Wohnort: Bielefeld

Beitrag von fuchsmeister »

Hallo zusammen,

danke für die Tips. Jetzt läuft es. Konnte leider nicht auf die Zeile (Hinweis von Stefan) verzichten, da ab Kapitel 1 arabisch nummeriert wird.
Nach Anpassung von thefigure und thetable ist aber alles so, wie es sein soll. Vielleicht geht es auch besser und kürzer, aber der Zweck heiligt hier die Mittel.
\renewcommand\thefigure{\arabic{chapter}.\arabic{figure}}
\makeatletter \@addtoreset{figure}{chapter} \makeatother 

\renewcommand\thetable{\arabic{chapter}.\arabic{table}}
\makeatletter \@addtoreset{table}{chapter} \makeatother
 
Habt ihr Erfahrung mit der slashbox.sty? Will eine Tabelle etwas aufpeppen, aber das Ergebnis von \backslashbox ist sehr mager.

Viele Grüße
Jens

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

Beitrag von iTob »

Nabend,

was Stefan meint und ich ursprünglich auch versucht hatte, war den Punkt in der Definition von \thechaper weg zu lassen. Das Problem war bei meinen Versuchen, dass KOMA-Script dann nicht erkennt, ob der Punkt gesetzt werden muss oder nicht.

[…]

Ich hab es jetzt noch mal probiert (siehe mein Code von gestern). Es geht tatsächlich nicht, wie von Stefan beschrieben. @Stefan hast du nur gemutmaßt oder es auch mit diesem Beispiel probiert? Denn dann ist auf meinem System was faul …

Liebe Grüße
Tobi

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

Beitrag von Stefan Kottwitz »

Hi Tobi,

ich hatte das getestet, denn Jens hatte ja ein komplettes Minimalbeispiel angegeben. Beim Testlauf ist der Punkt nach dem ersten Übersetzen verschwunden, nach dem zweiten Übersetzen war er dann da.

Man kann auch nur den Punkt in der genannten Zeile entfernen und die Klassenoption numbers=endperiod setzen.

Stefan

Antworten