Hängender Einzug Abbildungsverzeichnis (tocstyle) Thema ist als GELÖST markiert

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Mike29

Hängender Einzug Abbildungsverzeichnis (tocstyle)

Beitrag von Mike29 »

Hallo in die Runde! 8)

Ich nutze das Paket tocstyle zur Anpassung meines Abbildungs- und Tabellenverzeichnisses und habe 2 Probleme.

1. Bei langen Captions mit Zeilenumbruch erhalte ich durch die hinzugefügten Entryhooks "Abb." und "Tab." nun im Verzeichnis einen falschen hängenden Einzug. Im Dokument selbst wird der Einzug korrekt gesetzt. Hat jemand ne Idee, wie ich das fixen kann?

2. Im Dokument setzt er hinter "Abb. x.x" einen Doppelpunkt, im Verzeichnis nicht. Wie kann ich diesen im Verzeichnis ebenfalls hinzufügen?

Ich hoffe ihr könnt mir helfen! :shock:

DANKE und Viele Grüße,
Mike

Minimalbeispiel:
\documentclass{scrreprt}

\usepackage{tocstyle}
\settocfeature[lof]{entryhook}{Abb.\nobreakspace}
\settocfeature[lot]{entryhook}{Tab.\nobreakspace}

\begin{document}

\renewcommand{\figurename}{Abb.}
\renewcommand{\tablename}{Tab.}

\selecttocstyleoption{tocflat}
\listoffigures

\chapter{Bild}
 
\begin{figure}[ht]
\centering
\rule{6cm}{4cm}
\caption{Erste sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr lange Caption}
\end{figure}

\begin{figure}[ht]
\centering
\rule{6cm}{4cm}
\caption{Zweite sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr lange Caption}
\end{figure}
 
\end{document}

Mike29

Beitrag von Mike29 »

Hmm... hat niemand auch nur den Ansatz einer Idee? :?

Noch so einer

Beitrag von Noch so einer »

Nach lesen der tocstyle-Anleitung würde ich schlicht zu etwas wie
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tocstyle}

\makeatletter
\AfterTOCHead[lof]{%
  \let\SAVEDNUMBERLINE\tocstyle@numberline
  \renewcommand*{\tocstyle@numberline}[1]{%
    \SAVEDNUMBERLINE{\figurename\ #1}%
  }%
}
\AfterTOCHead[lot]{%
  \let\SAVEDNUMBERLINE\tocstyle@numberline
  \renewcommand*{\tocstyle@numberline}[1]{%
    \SAVEDNUMBERLINE{\tablename\ #1}%
  }%
}
\makeatother

\renewcaptionname{ngerman}\figurename{Abb.}
\renewcaptionname{ngerman}\tablename{Tab.}

\begin{document}

\selecttocstyleoption{tocflat}
\listoffigures

\chapter{Bild}
 
\begin{figure}[ht]
\centering
\rule{6cm}{4cm}
\caption{Erste sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr lange Caption}
\end{figure}

\begin{figure}[ht]
\centering
\rule{6cm}{4cm}
\caption{Zweite sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr lange Caption}
\end{figure}
 
\end{document}
greifen.

\AfterTOCHead ist in der KOMA-Script-Anleitung dokumentiert.

Mike29

Beitrag von Mike29 »

Hallo noch so einer!
Vielen Dank für deine Hilfe. Das ist genau das was ich wollte!
Bitte sieh es mir nach, dass ich aufgrund mangelnder Kenntnisse und trotz der Lektüre der tocstyle-Dokumentation nicht selbst darauf gekommen bin. :oops:

Mit folgendem Code aus einem anderen Forum habe ich übrigens auch den ":" nach der Nummer in den Verzeichnissen hinbekommen:
\AtBeginDocument{%
  % Kleiner Tick, um einen Doppelpunkt nach den Nummern zu setzen:
  \addtocontents{lof}{\protect\def\protect\autodot{:}}%
  \addtocontents{lot}{\protect\def\protect\autodot{:}}%
}
Hier nochmal der vollständig funktionierende Code:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tocstyle}

\makeatletter
\AfterTOCHead[lof]{%
  \let\SAVEDNUMBERLINE\tocstyle@numberline
  \renewcommand*{\tocstyle@numberline}[1]{%
    \SAVEDNUMBERLINE{\figurename\ #1}%
  }%
}
\AfterTOCHead[lot]{%
  \let\SAVEDNUMBERLINE\tocstyle@numberline
  \renewcommand*{\tocstyle@numberline}[1]{%
    \SAVEDNUMBERLINE{\tablename\ #1}%
  }%
}
\makeatother

\renewcaptionname{ngerman}\figurename{Abb.}
\renewcaptionname{ngerman}\tablename{Tab.}

\AtBeginDocument{%
  % Kleiner Tick, um einen Doppelpunkt nach den Nummern zu setzen:
  \addtocontents{lof}{\protect\def\protect\autodot{:}}%
  \addtocontents{lot}{\protect\def\protect\autodot{:}}%
}

\begin{document}

\selecttocstyleoption{tocflat}
\listoffigures

\chapter{Bild}
 
\begin{figure}[ht]
\centering
\rule{6cm}{4cm}
\caption{Erste sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr lange Caption}
\end{figure}

\begin{figure}[ht]
\centering
\rule{6cm}{4cm}
\caption{Zweite sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr sehr lange Caption}
\end{figure}
 
\end{document}
Viele Grüße,
Mike

Noch so einer

Beitrag von Noch so einer »

Dafür muss man nicht erst in die lot- und die lof-Datei schreiben, wenn man ohnehin schon mit \AfterTOCHead den Hooks für das Lesen dieser Dateien etwas hinzufügt, kann man auch gleich dort ein noch ein \renewcommand*{\autodot}{:} einfügen. Dafür sind diese Hooks schließlich da.

Mike29

Beitrag von Mike29 »

Danke für die Rückmeldung!
Habe deinen Vorschlag umgesetzt, funktioniert einwandfrei. :)

Beste Grüße
Mike

Antworten