Kapitelnummerierung über 9 Ebenen

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Kapitelnummerierung über 9 Ebenen

Beitrag von IrenaSekuta »

Halllo zusammen,

ich muss für ein Dokument, welches ich mithilfe von Latex setzen lassen möchte, eine Kapitelnummerierung über 9. Ebenen haben. Über Sinn und Unsinn lässt sich bekanntlich streiten, jedoch wurde das Dokument in Word erstellt und hat dort nun einmal 9 nummerierte Ebenen.

Lässt sich so etwas auch mit Latex einstellen?

Gruß,

Irena

Land.EI
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 59
Registriert: Fr 27. Mär 2009, 16:55

Beitrag von Land.EI »

Also im KOMA-Script Buch sind im Seitenbereich 118 - 122 für scrbook, inklusive dem part Befehl, sieben Ebenen verzeichnet. Ich denke, neun wären machbar, aber über das WIE bin ich auch überfragt :?:

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Die Abschnittsbefehle verwenden einfach den Befehl \@startsection mit einstellbaren Parametern. Der Befehl ist in der LaTeX-Quellcodedokumentation (source2e.pdf) beschrieben; neue Ebenen können einfach durch Kopieren und Anpassen der vorhandenen Befehle in der verwendeten Dokumentklasse hinzugefügt werden.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Guten morgen,

das KOMA-Script-Buch hatte ich bemüht, und habe dort festgestellt, dass ich mit dem Befehl
\setcounter{secnumdepth}{5}
die Gliederungstiefe auf 6. Ebenen einstellen kann.
\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\setcounter{secnumdepth}{5}

\begin{document}
\tableofcontents
\chapter{Chapter}
Text
\section{Section}
Text
\subsection{Subsection}
Text
\subsubsection{Subsubsection}
Text
\paragraph{Paragraph}
Ein Text unterhalb von paragraph
\subparagraph{Subparagraph}
Ein Text unterhalb von subparagraph
\end{document}
Jetz müsste ich noch erreichen, dass bei der Ebene paragraph wie auch subparagraph der folgende Text unter der Überschrift erscheint, wie auch bei den anderen Ebenen.

Im Internet bin ich auf folgende Lösung mit dem Paket "titlesec" gestoßen:
\usepackage[noindentafter]{titlesec}

\titleformat{\paragraph}[hang]{\bf}{\thetitle\quad}{0pt}{}
\titlespacing{\paragraph}{0pt}{1em}{0.5em} 

\titleformat{\subparagraph}[hang]{\bf}{\thetitle\quad}{0.5em}{}
\titlespacing{\subparagraph}{0pt}{1em}{0.5em}
Es wurde jedoch darauf hingewiesen, dass das Paket eventuell Schwierigkeiten mit dem KOMA-Script-Paket hat, sodass ich nach einer Lösung ohne das titlesec-Paket interessiert wäre. Nach dem Motto (hier mit Pseudocode):
\renewcommand{\theparagraph}{...\par}
Leider reichen meine Latex-Kenntnisse nicht aus, um mein Vorhaben auch programmtechnisch umzusetzen. Vielleicht können "wir" erst das gerade beschriebene Problem lösen, und uns dann dem hinzufügen weiterer zwei Ebenen widmen. Werde mir jetzt erst einmal das Werk "source2e.pdf" zu Gemüte führen, mit der Hoffnung, wenigstens etwas Licht ins momentane absolute Schwarz zu bringen. :-)

Gruß,

Irena

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo phi,

habe deinen Hinweis verfolgt, jedoch habe ich große Probleme die Umsetzung des dort geschriebenen zu bewerkstelligen. Anbei mein Minimalbeispeil, so wie ich den Text verstanden habe:
\documentclass[parskip=half]{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[noindentafter]{titlesec}

%% paragraphs sehen aus wie subsubsubsections
%\titleformat{\paragraph}[hang]{\bf}{\thetitle\quad}{0pt}{}
%\titlespacing{\paragraph}{0pt}{1em}{0.5em} 
%
%% subparagraphs sehen aus wie vorher paragraphs
%\titleformat{\subparagraph}[hang]{\bf}{\thetitle\quad}{0.5em}{}
%\titlespacing{\subparagraph}{0pt}{1em}{0.5em}
%%
%%\titleformat{\newsec}[hang]{\bf}{\thetitle\quad}{0.5em}{}
%%\titlespacing{\newsec}{0pt}{1em}{0.5em}

\setcounter{secnumdepth}{6}

\makeatletter
\newcounter{newsec}
\renewcommand\thenewsec{\thesubparagraph.\@arabic\c@newsec} 
\newcommand{\newsec}{\@startsection{newsec}{6}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\normalsize\bf}}
\makeatother

\begin{document}

\chapter{Chapter}
Text

\section{Section}
Text

\subsection{Subsection}
Text

\subsubsection{Subsubsection}
Text

\paragraph{Paragraph}
Ein Text unterhalb von paragraph

\subparagraph{Subparagraph}
Ein Text unterhalb von subparagraph

\newsec{Testsection}
Text nach Testsection

\end{document}
Das Positive zuerst: Beim Kompiliere erscheint keine Fehlermeldung. :-)

Das Negativ: Der Überschriftentext erscheint zweimal. Hier habe ich zwar schon eine Lösung von Markus Kohm gelesen, aber ich verstehe nicht, wie ich sie umsetzen soll, um mein Problem zu lösen:

http://newsgroups.derkeiler.com/Archive ... 01699.html

Kannst Du eventuell weiterhelfen?

Gruß,

Irena[/url]

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Mein Vorschlag ist nicht mit titlesec und beispielsweise auch nicht mit memoir kompatibel, da diese die Gliederungsbefehle umdefinieren. titlesec bietet ein eigenes Interface für die Deklaration neuer Ebenen, siehe Abschnitt 3.9 im Handbuch.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo phi,

dein Tipp mit \@startsection war m.E. schon richtig, zumindest bringt es mich bei der Lösung meines Problems schon näher. Habe erfolgreich paragraph wie auch subparagraph umdefiniert und eine weitere Ebene erstellt. Und titlesec benötige ich dazu ebefalls nicht. Und würde auch gerne weiterhin darauf verzichten, sofern es möglich ist. Anbei das Minimalbeispiel, das den bisherigen Stand verdeutlicht:
\documentclass{scrreprt}

% <--- Schriftkodierung --->
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}

\setcounter{secnumdepth}{6}

\makeatletter

% Paragraph umdefinieren
\renewcommand {\paragraph}{\@startsection{paragraph}{6}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\normalsize\bf}}

% Subparagraph umdefinieren
\renewcommand {\subparagraph}{\@startsection{subparagraph}{6}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\normalsize\bf}}

% Neue Ebene erstellen
\newcounter{newsec}[subparagraph]
\renewcommand\thenewsec{\thesubparagraph.\@arabic\c@newsec} 
\newcommand\newsec{\@startsection{newsec}{6}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\normalsize\bf}}
\makeatother

\begin{document}

\chapter{Chapter}
Text

\section{Section}

\subsection{Subsection}
Text

\subsubsection{Subsubsection}
Text

\paragraph{Paragraph}
Ein Text unterhalb von paragraph

\subparagraph{Subparagraph}
Ein Text unterhalb von subparagraph

\newsec{Erste mal newsec }
Text

\subparagraph{Subparagraph zum zweiten}
Ein Text unterhalb von subparagraph

\newsec{Zweites mal newsec}
Text
\end{document}
Jetzt müsste ich nur noch das Problem mit dem doppelten Überschriftentitel in meiner neu erstellten Ebene lösen. Den Hinweis von Markus mit \ebeneImark (in meinem Fall \newsecmark) habe ich nicht richtig verstanden, d.h. ich weiß nicht genau, wie sein Hinweis mein Problem lösen kann.

Zum anderen ist der Text noch eingerückt.

Vielleicht hast du ja noch einen tollen Tipp.

Gruß,

Irena

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Hier ein verbessertes Beispiel. Es müssen die Ebenenangaben stimmen und noch einige weitere Befehle müssen definiert werden:
\documentclass{scrreprt} 

% <--- Schriftkodierung ---> 
\usepackage[T1]{fontenc} 
\usepackage[ansinew]{inputenc} 
\usepackage[ngerman]{babel} 

\setcounter{secnumdepth}{6} 

\makeatletter 

% Paragraph umdefinieren 
\renewcommand{\paragraph}{%
  \@startsection{paragraph}{4}{0pt}%
  {-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}%
  {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}%
} 

% Subparagraph umdefinieren 
\renewcommand{\subparagraph}{%
  \@startsection{subparagraph}{5}{0pt}%
  {-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}%
  {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}%
}

% Neue Ebene erstellen 
\newcounter{newsec}[subparagraph]
\newkomafont{newsec}{}
\renewcommand{\thenewsec}{\thesubparagraph.\arabic{newsec}}
\newcommand{\newsec}{%
  \@startsection{newsec}{6}{0pt}%
  {-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}%
  {\raggedsection\normalfont\sectfont\nobreak\usekomafont{newsec}}%
}
\newcommand{\l@newsec}{\bprot@dottedtocline{6}{14em}{7em}}
\newcommand{\newsecmark}[1]{} % wichtig, siehe LaTeX-Kernel
\makeatother 

\begin{document} 

\chapter{Chapter} 
Text 

\section{Section} 

\subsection{Subsection} 
Text 

\subsubsection{Subsubsection} 
Text 

\paragraph{Paragraph} 
Ein Text unterhalb von paragraph 

\subparagraph{Subparagraph} 
Ein Text unterhalb von subparagraph 

\newsec{Erste mal newsec } 
Text

\subparagraph{Subparagraph zum zweiten} 
Ein Text unterhalb von subparagraph 

\newsec{Zweites mal newsec} 
Text 
\end{document}

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo phi,

herzlichen Dank für die Lösung. Leider verstehe ich noch nicht alle Befehle, sodass es durchaus sein kann, dass ich Dich in naher Zukunft um eine (kurze) Erklärung bitte. Vorerst möchte ich jedoch versuchen, den Sinn mittels Google zu erfahren.

Gruß,

Irena

Antworten