Seite 1 von 2
subsection Nummerierung
Verfasst: Mo 17. Nov 2008, 14:11
von der-reisende
Hallo,
ich habe gerade begonnen mich mit Latex zu befassen und bin auf eine Frage gestoßen, bei der ihr mir hoffentlich helfen könnt.
Meine Documentclass ist scrreprt und das Probelm ist, dass ich gerne bei Subsektions nur die Zahl der Sektion stehen haben würde und nicht die ganze Reihe (also z.B. 1. und nicht 1. 3. 1.).
Ich hoffe das ihr mich versteht und mir helfen könnt.
Vielen Dank
Nichtauflistung von subsections
Verfasst: Mo 17. Nov 2008, 14:56
von KurzeAntwort
Hallo,
ehrlich gesagt verstehe ich dein Anliegen nicht. Denn Sektions dienen zur Einteilung des Dokumentes. Eine Verwendung in der Art:
1. Literarische Grundlagen
1. Literatur im Mittelalter
Obwohl es
1. Literarische Grundlagen
1.1 Literatur im Mittelalter
heißen müsste ist nicht nur total unverständlich sondern auch noch höchstgradig falsch. Aber vielleicht hat es ja einen besonderen Grund das du es so haben willst. Oder ich habe was falsch verstanden.
Gruß
KurzeAntwort
PS: Bitte mit Minimalbeispiel posten. Wenn du jetzt schon eins gehabt hättest, hätte ich direkt nachgeschaut wie es geht. Aber so muss ich erst selbser eins erstellen und das dauert mir gerade zu lange.
Verfasst: Mo 17. Nov 2008, 15:15
von KOMA
\makeatletter% --> [url=http://www.golatex.de/wiki/index.php?title=%5Cmakeatletter]wiki[/url]
\renewcommand*{\thesubsection}{arabic{subsection}}
\renewcommand*{\p@subsection}{\thesection.}
\makeatother% --> [url=http://www.golatex.de/wiki/index.php?title=%5Cmakeatother]wiki[/url]
Die zweite Umdefinierung ist wichtig, damit Referenzen die vollständige Bezeichnung tragen. Ich bin ziemlich sicher, dass ich das schon einmal ausführlicher erklärt habe.
Verfasst: Mo 17. Nov 2008, 22:07
von der-reisende
vielen Dank für die schnellen Antworten trotz konfuser Frage..
habe jetzt ein bisschen mit euren Tipps (und den alten von KOMA) rumgespielt und siehe da es klappt.
Aber ohne dass ich verstehe wieso...
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\renewcommand*{\thechapter}{\Alph{chapter}}
\renewcommand*{\thesection}{\Roman{section}}
\renewcommand*{\thesubsection}{\arabic{subsection}}
\renewcommand*{\thesubsubsection}{\alph{subsubsection}}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\begin{document}
\tableofcontents
\chapter{Chapter}
\dots
\section{Section}
\dots
\subsection{Subsection}
\dots
\subsubsection{Subsubsection}
\dots
\end{document}
Ich habe einfach nur die Zählzeichen der einzelnen Abschnitte umdefiniert und schon stehen sie einzeln da (Dieses Umdefinieren ist auch der Grund weshalb ich sie einzeln haben will), ich hätte nach der Erklärung erwartet, dass sie jetzt ganau so angezeigt werden wie zuvor, nur halt mit anderen Zeichen.. aber man soll ja nicht maulen wens klappt
Eine Frage hätte ich dann aber noch und zwar wie kann ich nach dem a (subsubsection) ein Klammer bekommen und keinen Punkt? (also soll einfach a) heißen)
vielen dank und liebe grüße
Nummerierung subsubsection
Verfasst: Mo 17. Nov 2008, 22:39
von Stefan Kottwitz
Hallo,
da Du keinen Punkt nach der Nummerierung möchtest, empfiehlt sich die Option
pointlessnumbers an die Dokumentklasse bzw.
numbers=noenddot mit KOMA-Script 3.
Dann würde folgende Redefinition das Gewünschte liefern:
\renewcommand*\thesubsubsection{\alph{subsubsection})}
Viele Grüße,
Stefan
Verfasst: Mo 17. Nov 2008, 22:55
von der-reisende
Hallo Stefan,
vielen Dank aber:
mit [pointlessnumbers] verschwinden die Punkte auf allen Stufen, ich will aber nur auf der subsubsection Ebene den Punkt durch ein Koma ersetzten.
Oder habe ich da was falsch verstanden?
liebe grüße
Punkt bei Gliederung
Verfasst: Mo 17. Nov 2008, 22:59
von Stefan Kottwitz
Das ist schon richtig, der Punkt verschwindet auf allen Ebenen. Daraufhin kannst Du ihn jedoch auf ausgewählten Ebenen, also in den Redefinitionen von \thechapter, \thesection etc. wieder hinzufügen, jedoch nicht bei \thesubsubsection.
Stefan
Verfasst: Di 18. Nov 2008, 00:16
von der-reisende
Hallo Stefan,
wie kann ich denn einen Punkt oder eine Klammer bei Redefinitionen einfügen?
Wenn ich das versuche verschwindet immer die Zahl
\documentclass[pointlessnumber]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\renewcommand*{\thechapter}{\Alph .{chapter}}
\begin{document}
\chapter{Chapter}
\end{document}
oder
\documentclass[pointlessnumber]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\renewcommand*{\thechapter}{\Alph {.}{chapter}}
\begin{document}
\chapter{Chapter}
\end{document}
Verfasst: Di 18. Nov 2008, 09:00
von KOMA
Überleg mal, was Du machst: Wenn Du »\Alph.{chapter}« schreibst, ist nicht mehr »chapter« das Argument von »\Alph«, sondern logischerweise der Punkt. Du willst aber den Punkt nach der Ausgabe des Zählers »chapter« mit Hilfe von Großbuchstaben, also »\Alph{chapter}.« Irgendwo logisch, oder?
Ich würde das aber nicht mit pointlessnumbers lösen. Denn eigentlich ist das doch von hinten durch die Brust ins Knie. Genau genommen willst Du ja nicht, dass die Gliederungsnummern ohne nachfolgenden Punkt geschrieben werden, sondern eigentlich genau das Gegenteil. Bis auf den subsubsection sollen alle mit Punkt gesetzt werden, nur subsubsection soll stattdessen mit Klammer gesetzt werden. Außerdem würden die Punkte und Klammern in »\the...« ggf. beim Referenzieren stören, weil laut Duden bei einer solchen Zitierweise eigentlich ohne Punkt und Klammer zu referenzieren ist. Ein erster Ansatz wäre nun:
\documentclass[numbers=enddot]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\renewcommand*{\thechapter}{\Alph{chapter}}
\renewcommand*{\thesection}{\Roman{section}}
\renewcommand*{\thesubsection}{\arabic{subsection}}
\renewcommand*{\thesubsubsection}{\alph{subsubsection}}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\renewcommand*{\othersectionlevelsformat}[3]{%
#3%
\begingroup
\edef\istlevel{#1}\def\solllevel{subsubsection}%
\ifx\istlevel\solllevel )\else\autodot\fi
\endgroup
\enskip
}
\begin{document}
\tableofcontents
\chapter{Chapter}
\dots
\section{Section}
\dots
\subsection{Subsection}
\dots
\subsubsection{Subsubsection}
\dots
\end{document}
Den Nachteil dieser Methode sieht man sofort im Inhaltsverzeichnis. Dort stimmt es noch nicht. Eine bessere Lösung wäre IMHO deshalb:
\documentclass[numbers=enddot]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\renewcommand*{\thechapter}{\Alph{chapter}}
\renewcommand*{\thesection}{\Roman{section}}
\renewcommand*{\thesubsection}{\arabic{subsection}}
\renewcommand*{\thesubsubsection}{\alph{subsubsection}}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\makeatletter% siehe [url=http://www.golatex.de/wiki/index.php?title=%5Cmakeatletter]wiki[/url]
\newif\if@altsecnumbrace% vielleicht eine Klammer?
% Den automatischen Punkt umdefinieren in Punkt oder Klammer
\renewcommand*{\autodot}{%
\if@altsecnumformat% aus der Originaldefinition
\if@altsecnumbrace% neu
)% neu
\else% neu
.% aus der Originaldefinition
\fi% neu
\fi% aus der Originaldefinition
\@altsecnumbracefalse% neu
}
% Gliederungsnummernformatierung in der Überschrift
\newcommand*\OriginalOtherSectionLevelsFormat{}
\let\OriginalOtherSectionLevelsFormat\othersectionlevelsformat
\renewcommand*{\othersectionlevelsformat}[1]{%
\begingroup
\edef\istlevel{#1}\def\solllevel{subsubsection}%
\ifx\istlevel\solllevel\aftergroup\@altsecnumbracetrue\fi
\endgroup
\OriginalOtherSectionLevelsFormat{#1}%
}
% Inhaltsverzeichniseintrag
\newcommand*\OriginalL@SubSubSection{}
\let\OriginalL@SubSubSection\l@subsubsection
\renewcommand*{\l@subsubsection}{\@altsecnumbracetrue\OriginalL@SubSubSection}
% Für den Fall, dass unten \ref{subsubsec} direkt zu "A I 1 a" führen soll,
% die nachfolgenden drei Zeilen aktivieren:
%\renewcommand*{\p@section}{\thechapter~}
%\renewcommand*{\p@subsection}{\p@section\thesection~}
%\renewcommand*{\p@subsubsection}{\p@subsection\thesubsection~}
\makeatother% siehe \makeatletter
\begin{document}
\tableofcontents
\chapter{Chapter}
\label{cha}
\dots Siehe hierzu auch den Punkt \ref{subsec}~\ref{subsubsec} in
Abschnitt~\ref{sec} von Kapitel~\ref{cha}.
\section{Section}
\label{sec}
\dots
\subsection{Subsection}
\label{subsec}
\dots
\subsubsection{Subsubsection}
\label{subsubsec}
\dots
\end{document}
Diese wirkt auf den ersten Blick komplizierter, ist es aber in Wirklichkeit gar nicht es wird schlicht die Original-Definition von \autodot um eine Auswahlmöglichkeit für Punkt oder Klammer erweitert, wobei der Punkt die Voreinstellung ist, die nach Verwendung von \autodot automatisch wieder gilt.
Dann wird die Definition der Gliederungsnummernausgaben in den Überschriften, \othersectionlevelsformat, um eine Unterscheidung nach der Gliederungsebene erweitert. Ist die Gleiderungsebene »subsubsection" wird auf Klammer statt Punkt umgeschaltet und dann die Originaldefinition aufgerufen. Die Gruppe (und deshalb das \aftergroup) wird nur verwendet, weil ich die beiden Vergleichsmakros \istlevel und \solllevel nicht global definiert haben wollte. Man kann auch auf die Gruppe verzichten, sollte dann aber noch außerhalb der Definition die beiden Anweisungen per \newcommand sozusagen reservieren.
Als Drittes wird auch im Inhaltsverzeichniseintrag für die Ebene »subsubsection« auf die Klammer umgeschaltet (und dann wieder die Originaldefinition ausgeführt).
Verfasst: Mi 19. Nov 2008, 18:23
von der-reisende
Hallo Koma,
vielen Dank!!
Deine Variante funktioniert sehr gut.
Nur wenn ich versuche das Litteraturverzeichniss zu verändern
% Gliederungsnummer
\renewcommand{\numberline}[1]{ \makebox[0.5cm][l]{#1}\hspace{1mm}}
% chapter
\renewcommand{\l@chapter}[2]{
\addvspace{2ex}% vert. Abstand
\pagebreak[3]% Seitenumbruch hier erlauben
\noindent% nicht einrücken
\makebox[0pt][l]{% Box für Linie
\rule[-3pt]{\textwidth}{0.5pt}}
{\large\textbf{#1}}\hfill#2% Text + Nummer
\par% Zeilenumbruch
\nopagebreak% Seitenumbruch nicht erlauben
\addvspace{1ex}% vert. Abstand
}
lassen sich weder Klammern noch Punkte mit
% Gliederungsnummernformatierung in der Überschrift
\newcommand*\OriginalOtherSectionLevelsFormat{}
\let\OriginalOtherSectionLevelsFormat\othersectionlevelsformat
\renewcommand*{\othersectionlevelsformat}[1]{%
\begingroup
\edef\istlevel{#1}\def\solllevel{subsubsection}%
\ifx\istlevel\solllevel\aftergroup\@altsecnumbracetrue\fi
\endgroup
\OriginalOtherSectionLevelsFormat{#1}%
}
In das Inahltsverzeichnis übernehmen..
Das ganze zum gleich ausführen:
\documentclass[numbers=enddot]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\renewcommand*{\thechapter}{\Alph{chapter}}
\renewcommand*{\thesection}{\Roman{section}}
\renewcommand*{\thesubsection}{\arabic{subsection}}
\renewcommand*{\thesubsubsection}{\alph{subsubsection}}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\makeatletter
\newif\if@altsecnumbrace% vielleicht eine Klammer?
% Den automatischen Punkt umdefinieren in Punkt oder Klammer
\renewcommand*{\autodot}
{
\if@altsecnumformat% aus der Originaldefinition
\if@altsecnumbrace% neu
)
% neu
\else% neu
.% aus der Originaldefinition
\fi% neu
\fi% aus der Originaldefinition
\@altsecnumbracefalse% neu
}
% Inhaltsverzeichniseintrag
\newcommand*\OriginalL@SubSubSection{}
\let\OriginalL@SubSubSection\l@subsubsection
\renewcommand*{\l@subsubsection}{\@altsecnumbracetrue\OriginalL@SubSubSection}
% Für den Fall, dass unten \ref{subsubsec} direkt zu "A I 1 a" führen soll,
% die nachfolgenden drei Zeilen aktivieren:
%\renewcommand*{\p@section}{\thechapter~}
%\renewcommand*{\p@subsection}{\p@section\thesection~}
%\renewcommand*{\p@subsubsection}{\p@subsection\thesubsection~}
% Gliederungsnummernformatierung in der Überschrift
\newcommand*\OriginalOtherSectionLevelsFormat{}
\let\OriginalOtherSectionLevelsFormat\othersectionlevelsformat
\renewcommand*{\othersectionlevelsformat}[1]{%
\begingroup
\edef\istlevel{#1}\def\solllevel{subsubsection}%
\ifx\istlevel\solllevel\aftergroup\@altsecnumbracetrue\fi
\endgroup
\OriginalOtherSectionLevelsFormat{#1}%
}
% Gliederungsnummer
\renewcommand{\numberline}[1]{ \makebox[0.5cm][l]{#1}\hspace{1mm}}
% chapter
\renewcommand{\l@chapter}[2]{
\addvspace{2ex}% vert. Abstand
\pagebreak[3]% Seitenumbruch hier erlauben
\noindent% nicht einrücken
\makebox[0pt][l]{% Box für Linie
\rule[-3pt]{\textwidth}{0.5pt}}
{\large\textbf{#1}}\hfill#2% Text + Nummer
\par% Zeilenumbruch
\nopagebreak% Seitenumbruch nicht erlauben
\addvspace{1ex}% vert. Abstand
}
\makeatother
\begin{document}
\tableofcontents
\chapter{Chapter}
\dots
\section{section}
\dots
\subsection{subsection}
\dots
\subsubsection{subsubsection}
\dots
\end{document}
Weist du woran das liegen könnte?