Abbildungsverzeichnis unterteilen in Section Subsection

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: Abbildungsverzeichnis unterteilen in Section Subsection

von Bartman » Di 5. Mär 2019, 15:20

Das zweite \makeatletter scheint kein Problem zu sein, muss aber auch nicht übernommen werden.

von Gast » Di 5. Mär 2019, 10:39

Ja, stimmt. Ich war gestern nicht so ganz in der Verfassung, das komplett auszuführen. Hier einmal ein Beispiel:
\documentclass[10pt,open=right,twoside]{scrreprt}                
\usepackage[utf8]{inputenc}% Bei Verwendung einer aktuellen LaTeX-Installation überflüssig!       
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{scrhack}% Damit wird der Abstand auch bei listings berücksichtigt!
\usepackage{xpatch}% Sehr gut, um vorhandene Anweisungen zu erweitern.

% Einzüge im Abbildungsverzeichnis
\DeclareTOCStyleEntry[%
  numwidth=3.7em,
  indent=5em, % bisschen viel, oder?
]{default}{figure}
% Abstände in den Gleitumgebungsverzeichnisse für \chapter, \section
% und \subsection
\KOMAoptions{listof=chaptergapline}% eine Zeile lässt sich für \chapter
                                   % einfach per Option einstellen

% Für \section und \subsection geht es nicht ohne Umdefinieren oder Patchen.
% \@currext benötigt wird, müssen wir
\makeatletter % @ zu einem Buchstaben machen
\xapptocmd{\addsectiontocentry}{%
  \doforeachtocfile[float]{% Bei allen Gleitumgebungsverzeichnissen (Besitzer "float"):
    \addtocontents{\@currext}{%
      \protect\addvspace{.75\protect\baselineskip}% Einen mittleren Abstand einfügen.
    }%
  }%
}{}{\PatchFailed}
\makeatletter % @ zu einem Buchstaben machen
\xapptocmd{\addsubsectiontocentry}{%
  \doforeachtocfile[float]{% Bei allen Gleitumgebungsverzeichnissen:
    \addtocontents{\@currext}{%
      \protect\addvspace{.5\protect\baselineskip}% Einen kleineren Abstand einfügen.
    }%
  }%
}{}{\PatchFailed}
\makeatother % \makeatletter wieder aufheben

% Nur zur Verdeutlichung ändere ich jetzt noch die Nummerierung der
% Abbildungen. Das war nicht verlangt und sollte daher weggelassen werden:
\counterwithin*{figure}{section}
\counterwithin*{figure}{subsection}
\renewcommand*{\thefigure}{%
  \ifnum\value{subsection}<1
    \ifnum\value{section}<1
      \ifnum\value{chapter}<1
      \else \thechapter.\fi
    \else \thesection.\fi
  \else \thesubsection.\fi
  \arabic{figure}%
}
      
\begin{document}
\listoffigures

\chapter{Erstes Kapitel}
\captionof{figure}{Erste, gefakte Testabbildung}
\captionof{figure}{Zweite, gefakte Testabbildung}

\chapter{Zweites Kapitel}
\captionof{figure}{Dritte, gefakte Testabbildung}
\captionof{figure}{Vierte, gefakte Testabbildung}

\section{Erster Abschnitt}
\captionof{figure}{Fünfte, gefakte Testabbildung}

\subsection{Erster Unterabschnitt}
\captionof{figure}{Sechste, gefakte Testabbildung}
\captionof{figure}{Siebte, gefakte Testabbildung}

\chapter{Drittes Kapitel}
\section{Noch ein Abschnitt}
\subsection{Noch ein Unterabschnitt}
\captionof{figure}{Achte, gefakte Testabbildung}
\captionof{figure}{Neunte, gefakte Testabbildung}

\end{document}
Man sieht an dem Beispiel auch gleich, dass sich die Abstände nicht aufsummieren, sondern dank \addvspace der größte der aufeinandertreffenden Abstände verwendet wird.

Mit Option \chapteratlists kann man den Abstand bei \chapter übrigens auch noch feiner einstellen.

von Gast » Mo 4. Mär 2019, 19:47

Das fehlt ein Komma zwischen den Optionen. Und \doforeachtocfile würde ich per optionalem Argument auf float einschränken. Sonst landet der Abstand beispielsweise auch im Inhaltsverzeichnis.

von gast » Mo 4. Mär 2019, 19:26

Super, funktioniert.
Vielen Dank!



PS:
Bei der Änderung von \l@figure bekomme ich eine Fehlermeldung. Liegt bestimmt ein Konflikt mit einem anderem Paket vor... Mal sehen, lese mich mal ein

von Gast » Mo 4. Mär 2019, 16:53

Zunächst einmal sei empfohlen, \l@figure nicht in der gezeigten Weise umzudefinieren, sondern besser etwas wie
\DeclareTOCStyleEntry[%
  numwidth=3.7em
  indent=5em
]{default}{figure}
zu verwenden. Näheres zu der Anweisung findest du im tocbasic-Kapitel in Teil II der KOMA-Script-Anleitung, [d]scrguide[/d].

In derselben Anleitung findest du auch \addchaptertocentry, \addsectiontocentry, \addsubsectiontocentry und \doforeachtocfile. Über \addchaptertocentry wird in der Voreinstellung nicht nur der Inhaltsverzeichniseintrag für Kapitel erzeugt, sondern optional auch ein Eintrag in die anderen Verzeichnissen. Man kann das für \addsectiontocentry adaptieren (ungetestet):
\makeatletter
\renewcommand*{\addsectiontocentry}[2]{%
  \addtocentrydefault{section}{#1}{#2}%
  \doforeachtocfile{%
    \addtocontents{\@currext}{\protect\addvspace{.5\protect\baselineskip}}%
  }%
}
\makeatother

Abbildungsverzeichnis unterteilen in Section Subsection

von heinrich » Mo 4. Mär 2019, 16:11

Hallo,

mein Abbildungsverzeichnis erstellt automatisch Abstände zwischen den einzelnen Chaptern. Das ist auch super.
Ich hätte das auch gerne zwischen den Section und Subsections.
Hätte jemand evtl eine Idee wie ich das hin bekomme oder wo ich eine Antwort finden würde?

Das wichtigste aus der Präambel wäre vermutlich das hier:
\documentclass[a4paper,10pt,open=right, twoside,]{scrreprt}                
\usepackage[utf8]{inputenc}                  
\usepackage[ngerman]{babel}         
\usepackage[T1]{fontenc}                     
\usepackage{amsfonts}
\usepackage{scrhack}


%Abstand im Abbildungsverzeichnis 
\makeatletter 
\renewcommand{\l@figure}{\@dottedtocline{1}{5em}{3.7em}} 
\makeatother

\begin{document}


\newpage   


\listoffigures


\newpage

\end{document}
Für jeden Tipp dankbar!!!

Nach oben