Sections im Inhaltsverzeichnis als Subsection deklarieren

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Sections im Inhaltsverzeichnis als Subsection deklarieren

Beitrag von die_nase »

Hallo zusammen,

im Moment arbeite ich an einer Latex-Vorlage bzw. an einer "Verknüpfung" zweier Dokumente und bin leider an einem Punkt angekommen, an dem ich alleine nicht weiterkomme. Zum Problem: Ich habe mir eine lauffähige Latex-Vorlage erstellt, in der ich den Inhalt und den Anhang aus meiner Hauptdatei (der Übersichtlichkeit halber) ausgelagert habe und diesen per
\input{Inhalt}
bzw.
\input{Anhang}
einbinde. Ich habe nun zwei gleiche Vorlagen erzeugt und möchte den Inhalt von Dokument1 in Dokument2 ebenfalls per
\input{Inhalt_von_Dokument1}
einbinden.

Der Haken an der Sache: Die mithilfe von \section erstellten Kapitel in Dokument1 sollen im Inhaltsverzeichnis von Dokument2 nicht als Section sondern als Subsection aufgeführt werden (und Subsections dementsprechend als Subsubsections; ich verwende scrartcl). Das Inhaltsverzeichnis in Dokument1 sieht wie folgt aus (exemplarisch):
  • Inhaltsverzeichnis Dokument1:

    1 Überschrift1(1)
    1.1 Unterüberschrift1(1)
    1.2 Unterüberschrift2(1)
    2 Überschrift2(1)
    3 Überschrift3(1)
    4 Überschrift4(1)
Im Dokument2 sollte das Inhaltsverzeichnis, wenn der Inhalt von Dokument1 an der Stelle "Überschrift3(1)" eingebunden wird, dann so aussehen (wieder exemplarisch):
  • Inhaltsverzeichnis Dokument2:

    1 Überschrift1(2)
    2 Überschrift2(2)
    3 Überschrift3(2) !
    3.1 UnterÜberschrift1(1)
    3.1.2 UnterUnterüberschrift1(1)
    3.1.3 UnterUnterüberschrift2(1)
    3.2 UnterÜberschrift2(1)
    3.3 UnterÜberschrift3(1)
    3.4 UnterÜberschrift4(1)
    4 Überschrift4(2)
Die Zahl in den ( ) gibt das Dokument an, aus dem die Überschrift "stammt".


Meine Idee bisher: Ich habe in einer Art Zwischendatei erstellt, die alle Dateien aus Dokument1 einbindet, und die weiterhin in Dokument2 eingebunden wird. In dieser Zwischendatei habe ich zuerst section und subsection mithilfe von
\let\section\subsection
\let\subsection\subsubsection
umdefiniert. Das funktioniert auch im Inhaltsverzeichnis sehr gut (Struktur wird korrekt angezeigt). Ich hätte es jedoch gern, dass die sections aus Dokument1 zwar im IV als subsections aufgeführt werden, jedoch im Text weiterhin als sections aufgeführt werden (mit der Lösung oben steht dann im Dokumententeil die Nummerierung 3.1, 3.1.1, 3.1.2... statt 1, 1.1, 1.2,...also im Dokument soll die übliche "Kapitelnummerierung" gesprengt werden).

Dies wollte ich lösen, indem ich die hier (http://www.golatex.de/subsection-nummer ... t2107.html) vorgeschlagene Lösung verwende (Beitrag 3 im verlinkten Thema):
\makeatletter
\renewcommand*{\thesubsection}{arabic{subsection}} 
\renewcommand*{\p@subsection}{\thesection.} 
\makeatother

..ich hatte gehofft, dass ich die Formatierung der Subsections für das eingebundene Dokument1 verändern kann, indem ich einfach vorne die Kapitelnummer "wegschneide". Das erzeugt zwar im Dokument die richtige Kapitelnummerierung, das Inhaltsverzeichnis sieht aber wie im Anhang aus (siehe unten; der Abstand zwischen den Zahlen links und den Überschriften rechts ist dabei unter Punkt 2 viel zu groß, oder?) - Ich habe überlegt, dass ich das mit Paketen wie tocloft anpasse, aber das war der Punkt, an dem das für mich einer einzigen Bastelei glich.



Weiterhin habe ich noch eine Frage:

Die eben beschriebenen Einstellungen, um die korrekte Nummerierung im Inhaltsverzeichnis und im Dokument zu erhalten, sollen natürlich nicht für das gesamte Dokument2 vorgenommen werden, sondern nur für die Inhalte aus Dokument1. Ich dachte, dass dabei eine selbst definierte Umgebung sinnvoll ist, in die die Dateien aus Dokument1 hineingeschrieben oder als Option übergeben werden...ausgehend von der hier im Wiki beschriebenen Syntax:
\newenvironment{UMGEBUNGSNAME}[ANZAHL][OPTIONAL]{BEGIN}{END}
Kann man eine Umgebung auch definieren, wenn man die {END}-Klammer leer lässt? - Bzw. muss ich in diese Klammer noch einen Befehl einfügen, der alle vorgenommenen Einstellungen aus der {BEGIN}-Klammer zurücksetzt?


Ich hoffe, dass ihr versteht was ich meine und vielleicht einen guten Tipp/Hinweis für mich habt!

Viele Grüße und schönen Abend
die_nase

die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Beitrag von die_nase »

Niemand eine Idee?

Eine weitere Idee war, dass man für jede Section/Subsection mithilfe von
\addcontentsline{datei}{gliederung}{text}
einen neuen Eintrag generiert und diesen entsprechend anpasst. Dafür müsste man wiederum die Abschnitte im Text auf
\section*{}
ändern. Aber eigentlich wollte ich an dem Dokument1 nichts mehr ändern..

Hat jemand tiefergehende Literatur zum Anpassen und Redefinieren von Befehlen (im Speziellen dann für Section und Co)?
[/url]
Zuletzt geändert von die_nase am Di 5. Mai 2015, 13:59, insgesamt 2-mal geändert.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

die_nase hat geschrieben:Niemand eine Idee?
Hast du ein vernünftiges, lauffähiges, *kurzes* Minimalbeispiel?

die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Beitrag von die_nase »

u_fischer hat geschrieben:
die_nase hat geschrieben:Niemand eine Idee?
Hast du ein vernünftiges, lauffähiges, *kurzes* Minimalbeispiel?
Zur letzteren, eben beschriebenen Idee, nicht. Das habe ich aufgrund meiner geringen Erfahrung mit der Umdefinition von Befehlen noch gar nicht hinbekommen. Deshalb fragte ich nach Literatur..das meiste ist doch recht oberflächlich.

Interessant wäre zum Beispiel zu sehen, wie der \section{}-Befehl überhaupt (in und von Tex/LaTex) definiert ist.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

die_nase hat geschrieben:
u_fischer hat geschrieben:
die_nase hat geschrieben:Niemand eine Idee?
Hast du ein vernünftiges, lauffähiges, *kurzes* Minimalbeispiel?
Zur letzteren, eben beschriebenen Idee, nicht.
Du sollst ja nicht ein Beispiel für eine Lösung (die du nicht hast) erstellen, sondern eines mit dem man das Problem verstehen und Lösungen testen kann.

Interessant wäre zum Beispiel zu sehen, wie der \section{}-Befehl überhaupt (in und von Tex/LaTex) definiert ist.
Es steht in latex.ltx + im Code deiner Klasse. Einige Beschreibungen findest du im LaTeX Companion.

die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Beitrag von die_nase »

Achso, ja natürlich.

Dokument1 wird normal erstellt und soll in Dokument2 eingebunden werden. Dabei habe ich die Abschnittstruktur aus meinem ersten Post verwendet (siehe Post 1). Der Code für das Beispieldokument "Dokument1":
\documentclass[11pt, oneside]{article}   	
\usepackage{geometry}                		
\geometry{a4paper}     
\usepackage[T1]{fontenc}		 
\usepackage{blindtext}

\begin{document}

\tableofcontents
\newpage

\section{Überschrift11}
\blindtext

\subsection{Unterüberschrift11}
\blindtext

\subsection{Unterüberschrift21}
\blindtext

\section{Überschrift21}
\blindtext

\section{Überschrift31}
\blindtext

\section{Überschrift41}
\blindtext

\end{document}  
Der Inhalt von Dokument2 (bitte Kommentare im Quelltext beachten):
\documentclass[11pt, oneside]{article}   	
\usepackage{geometry}                		
\geometry{a4paper}     
\usepackage[T1]{fontenc}		 
\usepackage{blindtext}

%Ich schreibe hier nur den puren Inhalt hinein, da ich (wie oben beschrieben) den Inhalt aus der Hauptdatei ausgelagert habe. In meinem Projekt würde dann die Datei Inhalt.tex eingebunden werden. 
\begin{filecontents}{Dokument1Inhalt.tex}
\tableofcontents
\newpage

\section{Überschrift11}
\blindtext

\subsection{Unterüberschrift11}
\blindtext

\subsection{Unterüberschrift21}
\blindtext

\section{Überschrift21}
\blindtext

\section{Überschrift31}
\blindtext

\section{Überschrift41}
\blindtext
\end{filecontents}
%Ende von filecontents


%Beginn Dokument2. In diesem befindet sich "normalerweise" auch nur der Inhalt. Aufgrund des Minimalbeispiels aber jetzt mit passender Umgebung.
\begin{document}

\tableofcontents
\newpage

\section{Überschrift12}
\blindtext

\section{Überschrift22}
\blindtext

\section{Überschrift32}
\blindtext

%Datei an dieser Stelle einbinden
\input{Dokument1Inhalt.tex} %warum funktioniert \include{} nicht?

\section{Überschrift42}
\blindtext

\end{document} 
Das Ergebnis (mit Kommentar) seht ihr hier:
Bild

Nachtrag:

Ich habe eine Zwischendatei erstellt (siehe Code). Dies liefert mir das Inhaltsverzeichnis unten im Bild.
\documentclass[11pt, oneside]{article}   	
\usepackage{geometry}                		
\geometry{a4paper}     
\usepackage[T1]{fontenc}		 
\usepackage{blindtext}

\begin{filecontents}{Zwischendatei.tex}

%Neue Umgebung definieren
\newenvironment{Einschub}{
\let\section\subsection
\let\subsection\subsubsection
}{}
%Definition Ende


\begin{Einschub}
%\input{Dokument1Inhalt.tex} 
\tableofcontents 
\newpage 

\section{Überschrift11} 
\blindtext 

\subsection{Unterüberschrift11} 
\blindtext 

\subsection{Unterüberschrift21} 
\blindtext 

\section{Überschrift21} 
\blindtext 

\section{Überschrift31} 
\blindtext 

\section{Überschrift41} 
\blindtext 

\end{Einschub}\end{filecontents}
%Ende von filecontents


%Beginn Dokument2. In diesem befindet sich "normalerweise" auch nur der Inhalt. Aufgrund des Minimalbeispiels aber jetzt mit passender Umgebung.
\begin{document}

\tableofcontents
\newpage

\section{Überschrift12}
\blindtext

\section{Überschrift22}
\blindtext

\section{Überschrift32}
\blindtext

%Datei an dieser Stelle einbinden
\input{Zwischendatei.tex}

\section{Überschrift42}
\blindtext

\end{document} 
Hier das Bild. Die unschönen Abstände und die falsche Nummerierung..
Bild

Gast

Beitrag von Gast »

Wenn du eine Ebene tiefer willst dann nimm doch auch eine!?!
\subsection{Überschrift11}
\blindtext

\subsubsection{Unterüberschrift11}
\blindtext

\subsubsection{Unterüberschrift21}

die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Beitrag von die_nase »

Es geht ja darum, dass sich der Eintrag im Inhaltsverzeichnis und der im Dokument unterscheiden.

Ich möchte praktisch, dass im Inhaltsverzeichnis steht:
1.1 Überschrift
1.1.1 Unterüberschrift

Während in dem Dokument (also dort wo auch der Text und alles steht) aufgeführt ist:

1 Überschrift
1.1 Unterüberschrift

Weiterhin geht es darum, dass ich mir das in einer Umgebung definiere und nicht jeden \section und \subsection Befehl per Hand ändern muss.

Beinschuss
Forum-Meister
Forum-Meister
Beiträge: 808
Registriert: Di 2. Okt 2012, 21:42
Wohnort: NRW

Beitrag von Beinschuss »

So ganz habe ich das Problem nicht verstanden, aber wenn Du nur in einer Datei die Ebenen tiefer stellen musst, geht das mit der Suchen - Ersetzen - Funktion Deines Editors vermutlich innerhalb kürzester Zeit. Die Umdefinition der Gliederungsebenen nur in einer Datei solltest Du vermeiden, da dadurch das Chaos eher größer wird.

Besserwisser

Beitrag von Besserwisser »

die_nase hat geschrieben:Ich möchte praktisch, dass im Inhaltsverzeichnis steht:
1.1 Überschrift
1.1.1 Unterüberschrift

Während in dem Dokument (also dort wo auch der Text und alles steht) aufgeführt ist:

1 Überschrift
1.1 Unterüberschrift
Die Nummerierung im Inhaltsverzeichnis soll eine andere sein als im Text? Was soll das? Das ist doch Leserverarschung. Welchen Sinn hat denn dann das Inhaltsverzeichnis noch. Willst du nicht auch gleich noch andere Seitenzahlen in das Inhaltsverzeichnis eintragen, damit der Leser vollends davon überzeugt ist, dass das nur ein Fehler sein kann?

Antworten