Seite 1 von 1

Hängender Einzug Abbildungsverzeichnis (tocstyle)

Verfasst: Sa 6. Apr 2013, 18:25
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}

Verfasst: Mi 10. Apr 2013, 08:32
von Mike29
Hmm... hat niemand auch nur den Ansatz einer Idee? :?

Verfasst: Mi 10. Apr 2013, 10:26
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.

Verfasst: Mi 10. Apr 2013, 12:26
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

Verfasst: Mi 10. Apr 2013, 13:13
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.

Verfasst: Mi 10. Apr 2013, 16:41
von Mike29
Danke für die Rückmeldung!
Habe deinen Vorschlag umgesetzt, funktioniert einwandfrei. :)

Beste Grüße
Mike