Seite 1 von 1

Probleme mit listof=entryprefix und Anhangsverzeichnis

Verfasst: Mi 16. Aug 2017, 13:35
von markusv
Hallo liebes Forum.

Im Zusammenhang mit dem durch M. Kohm bereit gestellten Code zum Anhangsverzeichnis (https://komascript.de/comment/5578#comment-5578) bin ich auf einen kleinen aber feinen Fehler gestoßen. In Verbindung mit der Option listof=entryprefix erscheint in den Verzeichniseinträgen für Abb. und Tab. ein Alot statt "Abbildung" und "Tabelle".

Wie kann man dies beheben?

Crosspost: https://komascript.de/comment/5609#comment-5609

Zur leichteren Ansicht der Code, wie erwähnt nach M.Kohm (siehe Link oben):
\documentclass[listof=totoc,index=totoc,listof=entryprefix]{scrbook}
 
\usepackage{ifxetex,ifluatex}
\ifcase \ifxetex 1\else\ifluatex 1\else 0\fi\fi\usepackage[utf8]{inputenc}\fi
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
 
\usepackage{makeidx}\makeindex% Nur als Beispiel
 
\usepackage{mwe}
\usepackage{hyperref}% Weil es so in der Frage enthalten war.
\usepackage{bookmark}% Weil das hyperref deutlich verbesser.
 
\DeclareNewTOC[%
  owner=\jobname,
  listname={Inhalt des Anhangs},% Titel des Verzeichnisses
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents)
\DeclareNewTOC[%
  listname={Abbildungen im Anhang},% Titel des Verzeichnisses
]{alof}% Dateierweiterung (a=appendix, lof=list of figures)
\DeclareNewTOC[%
  listname={Tabellen im Anhang},% Titel des Verzeichnisses
]{alot}% Dateierweiterung (a=appendix, lot=list of tables)
 
\makeatletter
\newcommand*{\useappendixtocs}{%
  \renewcommand*{\ext@toc}{atoc}%
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
    \hypersetup{bookmarkstype=atoc}%
  }%
  \renewcommand*{\ext@figure}{alof}%
  \renewcommand*{\ext@table}{alot}%
}
\newcommand*{\usestandardtocs}{%
  \renewcommand*{\ext@toc}{toc}%
  \scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
    \hypersetup{bookmarkstype=toc}%
  }%
  \renewcommand*{\ext@figure}{lof}%
  \renewcommand*{\ext@table}{lot}%
}
\ifundefinedorrelax{ext@toc}{%
  \newcommand*{\ext@toc}{toc}
  \renewcommand{\addtocentrydefault}[3]{%
    \expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}%
  }
}{}
\makeatother
 
\usepackage{xpatch}
\xapptocmd\appendix{%
  \addpart{\appendixname}
  \useappendixtocs
  \listofatocs
  \listofalofs
  \listofalots
}{}{}
 
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\blinddocument
 
% Es folgen Modifikationen des Originalcodes:
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{test-fig-main}
\end{figure}
 
\begin{table}[h]
  \caption{test-tab-main\index{main}}
  \noindent
  \centering
    \begin{tabular}{|c|c|}
      \hline
      a & b\tabularnewline
      \hline\hline
      1 & 2\tabularnewline
      \hline
    \end{tabular}
\end{table}
 
\appendix
\blinddocument
 
\begin{figure}[!h]
  \centering
  \rule{5cm}{2cm}
  \caption{test-fig-appendix}
\end{figure}
 
\begin{table}[h]
  \caption{test-tab-appendix}
  \noindent
  \centering
    \begin{tabular}{|c|c|}
      \hline
      a & b\tabularnewline
      \hline\hline
      1 & 2\tabularnewline
      \hline
    \end{tabular}
\end{table}
 
\usestandardtocs
\bookmarksetup{startatroot}% siehe bookmark-Anleitung
\printindex% nur als Beispiel
 
\end{document} 

Verfasst: Mi 16. Aug 2017, 13:51
von u_fischer
Indem du z.B. name=Abbildung benutzt. Oder den toc-Style änderst.

Verfasst: Do 17. Aug 2017, 10:54
von markusv
Im verlinkten Crosspost wurde von esdd eine Antwort mit mehreren Varianten hinterlegt. Ich schließe hiermit das Thema.