PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : In Variable Text eines Befehls speichern / Literatur & Abbildungsverzeichnis in TOC



psychomc
03-04-2010, 19:58
Ich möchte folgendes haben im TOC:


A. Quellenverzeichnis
..A.1. Literatur
..A.2. Abbildungsverzeichnis

inkl. Hyperref Funktionalität.

Das stell ich mir so vor, bzw. so funktioniert es auch (bei mir):


\renewcommand{\refname}{\subsection{Literatur}}
\renewcommand{\listfigurename}{\subsection{Abbildu ngsverzeichnis}}

\begin{appendix}

\section{Quellenverzeichnis}

\begin{thebibliography}{99}
blabla
\end{thebibliography}

\listoffigures

\end{appendix}

Jetzt wollte ich das Ganze noch 1 Schritt verfeinern, indem ich nicht "manuell" die Namen der Abschnitte reinschreibe, sondern die vom babel nutze, nur da scheiterts :(


\renewcommand{\refname}{\subsection{\refname}}
\renewcommand{\listfigurename}{\subsection{\listfi gurename}}

Führt zu:

! TeX capacity exceeded, sorry [grouping levels=255].
<to be read again>
{
l.440 \begin{thebibliography}{99}

If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

Weil da ja das Kommando vermutlich in 'ner Schleife sich immer wieder aufruft/erneuert?

Weitere Ansätze:

\newcommand{\refnametemp}{\value\refname}
\newcommand{\listfigurenametemp}{\value\listfigure name}
\renewcommand{\refname}{\subsection{\refnametemp}}
\renewcommand{\listfigurename}{\subsection{\listfi gurenametemp}}
oder

\newcommand{\refnametemp}{\string\refname}
\newcommand{\listfigurenametemp}{\string\listfigur ename}
\renewcommand{\refname}{\subsection{\refnametemp}}
\renewcommand{\listfigurename}{\subsection{\listfi gurenametemp}}

führen ebenfalls zu Fehlern :mad:

Ist jetzt nicht wirklich wichtig, aber so für mich zum Verständnis:
Stimmt meine Vermutung mit der Endlosschleife?
Wie kann ich den "String" aus den beiden Kommandos zwischenspeichern/verwenden?

Danke ;)

Achja, wenn wer noch 'ne elegantere Lösung generell hat, wär ich natürlich auch interessiert, aber alles was ich sonst so gefunden habe waren entweder
- extra Pakete einbinden, oder
- \addcontentsline wo man aber um nicht 2x 'ne Überschrift für den Abschnitt zu haben, ja auch \refname dann halt auf {} setzen muss.

Andererseits wundert's mich, dass man solche Ansätze massig findet, die von mir verwendete Methode nur sehr sporadisch, evtl. ist daran ja was faul, was ich nicht bedacht habe?

lockstep
03-04-2010, 21:04
Einige spontane Anmerkungen zu deinen Codeschnipseln:

Da \listoffigures bei Klassen ohne \chapter auf \section* zurückgreift und innerhalb dieser \section* \listfigurename verwendet wird, bezweifle ich, dass deine Umdefinition von \listfigurename ohne größere Nebenwirkungen bzw. überhaupt funktioniert.
\appendix ist keine Umgebung.
Dass ein sich selbst aufrufendes Kommando zu Problemen führt, hast du richtig erkennt. ;)

Die folgende Lösung verwendet eine KOMA-Script-Klasse. Sie bindet nur wenige Extra-Pakete ein, aber auch an zusätzlichen Paketen wäre - wenn sie zur Problemlösung beitragen - nichts auszusetzen. (Inhaltliche Anmerkung: Ein Abbildungsverzeichnis ist eher keine Quelle, aber bitteschön.)



\documentclass[listof=leveldown,listof=numbered]{scrartcl}

\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\makeatletter
\renewcommand*\bib@heading{\subsection{\refname}}
\makeatother

\usepackage{hyperref}

\begin{document}

\tableofcontents

\section{Ein Abschnitt}

\begin{figure}[h]
\centering
\rule{1cm}{1cm}
\caption{Eine Abbildung}
\end{figure}

\appendix

\section{Quellenverzeichnis}

\begin{thebibliography}{99}
Ein Eintrag.
\end{thebibliography}

\listoffigures

\end{document}


lockstep