\part, \chapter oder \section

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: \part, \chapter oder \section

von Noch so einer » So 9. Jun 2013, 12:24

u_fischer hat geschrieben:Im laufenden Text. Gora muss sich ja entscheiden, was er/sie schreiben will: siehe Kapitel 1 oder siehe Abschnitt 1 oder siehe Unterabschnitt 1?
Ich schreibe eigentlich nie "Unterabschnitt~1", sondern nur "Kapitel~1" und darunter "Abschnitt~1". Alles, was Untergliederungen von "Abschnitt" sind, wird ebenfalls "Abschnitt" genannt und an der Nummer erkannt, dass es Unter(…)abschnitte sind.

Wie dem auch sei: Das Problem kann man mit hyperref und \autoref lösen.

von Noch so einer » So 9. Jun 2013, 12:21

Das bringt aber nur etwas, wenn man aus allen \ebeneZwei später beispielsweise Abschnitte statt Kapitel machen will. So wie ich den OP verstanden habe, will er aber später noch "chaotisch" umordnen. Das wird nie komplett automatisch funktionieren, weil man zumindest angeben muss, ob eine konkrete Überschrift auf einer höheren oder tieferen Ebene als die letzten oder auf derselben Ebene wie die letzte angeordnet werden soll. Wenn man dazu bereit ist, ginge immerhin (mangels vollständigen Minimalbeispiels ungetestet):
\newcounter{currentlevel}% Zähler für Gliederungsebenen
\newcommand*{\currentlevelheading}{% Überschrift der aktuellen Ebene einfügen
  \ifcase \value{currentlevel}\relax
    \expandafter\chapter% Ebene 0
  \or
    \expandafter\section% Ebene 1
  \or
    \expandafter\subsection% Ebene 2
  \or
    \expandafter\subsubsection% Ebene 3
  \or
    \expandafter\paragraph% Ebene 4
  \or
    \expandafter\subparagraph% Ebene 5
  \else
    \expandafter\part% Ebene -1
  \fi
}
\newcommand*{\sublevelheading}{%
  \ifnum \value{currentlevel}<5\relax % Nur so lange tiefer gehen, bis 5=subparagraph erreicht ist
    \stepcounter{currentlevel}%
  \fi
  \currentlevelheading
}
\newcommand*{ancestorlevelheading}[1]{% Das erste Argument gibt zwingend an, wieviele Ebenen nach oben gegangen werde soll!
  \addtocounter{currentlevel}{-#1}%
  \ifnum \value{currentlevel}<-1\relax \setcounter{currentlevel}{-1}\fi
  \currentlevelheading
}
\newcommand*{\levelheading}[1]{% Das erste Argument gibt zwingend an, welche Ebenennummer verwendet werden soll
  \ifnum #1<-1\relax
    \setcounter{currentlevel}{-1}%
  \else \ifnum #1>5\relax
      \setcounter{currentlevel}{5}%
    \else
      \setcounter{currentlevel}{#1}%
    \fi
  \fi
  \currentlevelheading
}
Der Befehl \currentlevelheading hat dieselben Argumente wie die normalen Gliederungsbefehle (also ein optionales für Inhaltsverzeichnis und Kolumnentitel und ein obligatorisches für die Überschrift). Er erstellt eine Überschrift derselben Ebene, wie die letzte mit obigen Befehlen erstellte Überschrift.

\sublevelheading funktionier genauso erstellt aber eine Unterüberschrift zur letzten Überschrift.

\ancestorlevelheading erwartet als erstes Argument eine Nummer, die angibt, wieviele Ebenen man nach oben will. Die nächsten beiden Argumente wie gehabt.

\levelheading schließlich erwartet als erstes Argument ebenfalls eine Nummer. Diese gibt die Überschriftenebene an (wobei \part=-1 ist und \subparagraph=5).

Die normalen Ebenen dürfen nicht verwendet werden.

Wenn eine Klasse ohne chapter verwendet wird, müssen die Definitionen so angepasst werden, dass 0=section und 4=subparagraph.

Ob das dann letztlich komfortabler ist, als beim Verschieben von Abschnitten in eine andere Ebene, die Überschriftenbefehle für den verschobenen Teil anzupassen, muss der OP selbst entscheiden. Obige Befehle mit den normalen Befehlen mischen sollte man jedenfalls nicht. Weil dann currentlevel nicht mehr stimmt.

Ich würde wirklich beim Verschieben einfach per Suchen/Ersetzen, die Gliederungsbefehle austauschen. Dasselbe gilt, wenn man von einer Klasse ohne \chapter zu einer Klasse mit \chapter oder umgekehrt tauscht. Das ist so schnell erledigt, dass sich die Verwirrung mit den level-Befehlen nicht lohnt.

von u_fischer » So 9. Jun 2013, 12:16

MoonKid hat geschrieben:
u_fischer hat geschrieben:Damit zerstörst du die Sternvarianten (\chapter*} und die optionalen Argumente.
Naja, er schreibt ja kein Package. Er könnte ja auch so
\newcommand{\ebeneDreiV1}[1] {
    \section*{#1} }
Zahlen in Befehlsnamen gehen auch nicht.


Aber wie würde man es den sauber lösen?
Das hängt von vielen Dingen ab. Aber ich würde auf jeden Fall mit \let arbeiten.
Außerdem löst es nicht das Problem wie Referenzen zu benennen sind ("siehe Kapitel 1").
Das würde ich gerne nachlesen. Wo finde ich dieses "Kapitel 1"?
Im laufenden Text. Gora muss sich ja entscheiden, was er/sie schreiben will: siehe Kapitel 1 oder siehe Abschnitt 1 oder siehe Unterabschnitt 1?

von MoonKid » So 9. Jun 2013, 12:09

u_fischer hat geschrieben:Damit zerstörst du die Sternvarianten (\chapter*} und die optionalen Argumente.
Naja, er schreibt ja kein Package. Er könnte ja auch so
\newcommand{\ebeneDreiV1}[1] {
    \section*{#1} }
Aber wie würde man es den sauber lösen?
Außerdem löst es nicht das Problem wie Referenzen zu benennen sind ("siehe Kapitel 1").
Das würde ich gerne nachlesen. Wo finde ich dieses "Kapitel 1"?

von u_fischer » So 9. Jun 2013, 12:00

MoonKid hat geschrieben:Du definierst dir eigenen Gliederungskommandos
\newcommand{\ebeneEins}[1] {
    \part{#1} }

\newcommand{\ebeneZwei}[1] {
    \chapter{#1} }
Und wenn dir das nicht mehr passt, veränderst du einfach die Definition deiner Kommandos entsprechend.
Damit zerstörst du die Sternvarianten (\chapter*} und die optionalen Argumente. Außerdem löst es nicht das Problem wie Referenzen zu benennen sind ("siehe Kapitel 1").

von MoonKid » So 9. Jun 2013, 11:49

Du definierst dir eigenen Gliederungskommandos
\newcommand{\ebeneEins}[1] {
    \part{#1} }

\newcommand{\ebeneZwei}[1] {
    \chapter{#1} }
Und wenn dir das nicht mehr passt, veränderst du einfach die Definition deiner Kommandos entsprechend.

\part, \chapter oder \section

von Gora » Mi 17. Apr 2013, 11:10

Hallo an alle,

ich habe gerade folgendes Problem. Ich möchte einen Kapitel meiner Arbeit schreiben, da drin sollen mehrere gleiche Bezeichnungen wie Kapitel vorkommen. Nun habe ich mich noch nicht genau entschieden welche Dokumentenklasse ich benutzen werde oder der Text den ich geschrieben habe auch an die gedachte Stelle kommt. Sprich Kapitel könnte sich in Abschnitt oder Unterabschnitt wandeln. Ich will es aber nicht jedes mal per Hand ändern, sonder Latex sollte automatisch erkennen in welchen Teil des Textes sich das jeweilige Wort (oder Befehl) befindet.

Gibt es einen Befehl mit dem man es bewerkstelligen kann?

Nach oben