Diese Frage ist eine (weitere) Folgefrage zu: Nummerierung der Überschriften ohne Kapitelnummerierung

Da die Kapitelnummerierungen bei Verweisen nicht mehr vorhanden sind (weil II.4 komisch aussieht; naja, und weil das eine Vorgabe ist) macht es Sinn so etwas zu schreiben wie „Siehe Kapitel II Abschnitt 4“.

Hier würde es sich ja anbieten ein Makro zu basteln, was einem das abnimmt und den Teil „Kapitel II Abschnitt 4“ automatisiert. Das müsste dann so ähnlich aussehen \newcommand{\MyRef}[1]{Kapitel~<Wert für referenziertes chapter> Abschnitt~<Wert für referenzierte section>}.

Wie man meiner Idee entnehmen kann, habe ich keine Ahnung, was in das Makro gehört, um so eine Referenz ausgeben zu lassen. Hat jemand der Experten eine Idee?

Open in writeLaTeX
\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\renewcommand*{\thechapter}{\Roman{chapter}}
\renewcommand*{\thesection}{\arabic{section}}

% \newcommand{\MyRef}[1]{Kapitel~<Wert für referenziertes chapter> Abschnitt~<Wert für referenzierte section>}

\begin{document}

\tableofcontents

\chapter{Kapitel I}
\section{Überschrift Eins}\label{sec:foo}
\subsection{Überschrift Eins.Eins}

\chapter{Kapitel II}
\section{Überschrift Eins}
\subsection{Überschrift Eins.Eins}

% Siehe Abschnitt~\MyRef{sec:foo} ...
... ergäbe dann "`Siehe Kapitel I Abschnitt 1"'

\end{document}

gefragt 20 Aug '14, 19:20

Andr%C3%A9's gravatar image

André
986232836
Akzeptiert-Rate: 33%

bearbeitet 20 Aug '14, 20:19

cgnieder's gravatar image

cgnieder
22.1k243463

@André: Ist in meinem zweiten Beispiel zu Nummerierung der Tabellen ohne Kapitelnummerierung übrigens auch schon für Tabellen, Abbildungen und sämtliche Gliederungsebenen enthalten.

(20 Aug '14, 20:51) gast3

Du hast offenbar meine Antwort zu der von Dir verlinkten Frage nicht aufmerksam gelesen, sonst könntest Du eine Idee haben, wie man das macht. Ich zitiere mich mal:

den internen Befehl \p@section umdefinieren. Wenn für einen Zähler (z.B. section) das Label gespeichert wird (in \@currentlabel), dann wird dort die Expansion von \p@<zähler>\the<zähler> gespeichert, im Fall von section also: \p@section\thesection.

Du könntest also etwa folgendes machen:

Open in writeLaTeX
\makeatletter
\renewcommand*\p@section{Kapitel~\thechapter{} Abschnitt~}
\makeatother

Dann ergibt sich folgendes Beispiel:

Open in writeLaTeX
\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\renewcommand*{\thechapter}{\Roman{chapter}}
\renewcommand*{\thesection}{\arabic{section}}

\makeatletter
\renewcommand*\p@section{Kapitel~\thechapter{} Abschnitt~}
\renewcommand*\p@subsection{Kapitel~\thechapter{} Abschnitt~}
% oder:
%   \renewcommand*\p@subsection{\p@section}
% das wiederholt weniger Code und vermeidet Tippfehler, die dann nur schwer auffallen
%
% evtl. weitere, je nach Tiefe der Überschriften in Deinem Dokument...
\makeatother

\begin{document}

\tableofcontents

\chapter{Kapitel I}
\section{Überschrift Eins}\label{sec:foo}
\subsection{Überschrift Eins.Eins}

\chapter{Kapitel II}
\section{Überschrift Eins}
\subsection{Überschrift Eins.Eins}\label{sec:bar}

siehe \ref{sec:foo} und \ref{sec:bar}

\end{document}

alt text

Falls Du vorhast, auch noch einen Anhang hinzuzufügen, wäre eine bessere Definition

Open in writeLaTeX
\makeatletter
\renewcommand*\p@section{\chapapp~\thechapter{} Abschnitt~}
\makeatother

also \chapapp statt „Kapitel“, da \chapapp nach \appendix dann korrekterweise „Anhang“ liefert.

Permanenter link

beantwortet 20 Aug '14, 20:18

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 20 Aug '14, 20:59

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×52
×28

gestellte Frage: 20 Aug '14, 19:20

Frage wurde gesehen: 7,213 Mal

zuletzt geändert: 20 Aug '14, 20:59