subsection Nummerierung

Schriftbild, Absätze und Auflistungen einstellen


der-reisende

subsection Nummerierung

Beitrag 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

KurzeAntwort

Nichtauflistung von subsections

Beitrag 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.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

der-reisende

Beitrag 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

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

Nummerierung subsubsection

Beitrag 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

der-reisende

Beitrag 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

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

Punkt bei Gliederung

Beitrag 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

der-reisende

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

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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).

der-reisende

Beitrag 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?

Antworten