Rapmaster 2000
25-03-2007, 21:33
Hallo!
Ich habe ein etwas kompliziertes Problem mit der Formatierung meines Inhaltsverzeichnis (IV). Ich verwende das Package "tocloft" und möchte dabei, dass der \chapter-Eintrag im IV in einer Zeile wie folgt erscheint: 1)linksbündig "Kapitel" mit Kapitel-Nummer, 2) zentriert der Name des Kapitels und 3) rechtsbündig die Seitenzahl. Dabei macht mir die zentrierte Platzierung des Kapitelnamens zu schaffen.
"tocloft" erlaubt eine globale Angabe zum Abstand des Kapitelnamens im IV vom linken Rand, allerdings sind die Kapitelnamen verschieden lang, so dass sie wie linksbündig an einer Senkrechten durch die Seite ausgerichtet erscheinen und nicht zentriert. Mein Plan war, als Abstand die halbe \textwidth zu verwenden und dann die einzelnen Kapitelnamen im IV um ihre halbe Länge wieder nach links zu verschieben. Diese etwas unelegante Methode wollte ich folgendermaßen realisieren:
1) \newlength{\Kapitelnamenlänge}
2) \settowidth{\Kapitelnamenlänge}{Kapitelname}
3)\chapter[\hspace{-.5\Kapitelnamenlänge}Kapitelname]{Kapitelname}
Die Verschiebung mittels \hspace funktioniert auch - allerdings nur mit festen Werten und nicht mit der Variable \Kapitelnamenlänge. Dies liegt daran, dass die Variable nur in meiner *.tex-Datei definiert ist und nicht in *.toc. Ich bekomme also die Fehlermeldung "undefined control sequence. \Kapitelnamenlänge" in meiner *.toc-Datei.
Also hier meine eigentliche Frage: Gibt es eine Möglichkeit, Variabeln zu definieren, die auch die *.toc-Datei erkennt, oder kennt jemand vielleicht einen eleganteren Weg, das gewollte zu erreichen (mit "titletoc"?). Mir wäre auch sehr geholfen, wenn jemand wüsste, wie man sich den Wert einer Variabeln anzeigen lassen kann - also wie lang ist die Zeichenkette {Kapitelname}? Dann könnte ich die Längen "von Hand" einstellen.
Hier mal ein Minimalbeispiel (oder das, was ich für eine Minimalbeispiel halte):
\documentclass{report}
\usepackage[ngerman]{babel}
\usepackage{tocloft}
\begin{document}
\renewcommand{\cftchappresnum}{Kapitel }
\renewcommand{\cftchapnumwidth}{.5\textwidth}
\tableofcontents
\chapter{Ein Kapitelname}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\chapter{Ein langer Kapitelname}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\chapter[\hspace{-3cm}Ein verschobener Kapitelname]{Ein verschobener Kapitelname}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\newlength{\Kapitelnamenlaenge}
\settowidth{\Kapitelnamenlaenge}{Kapitelname mit Fehler}
\chapter[\hspace{-.5\Kapitelnamenlaenge}Kapitelname mit Fehler]{Kapitelname mit Fehler}
\end{document}
Ich bin für jeden Hinweis sehr dankbar! Vielen Dank schon mal für alle Mühen!
RM2
Ich habe ein etwas kompliziertes Problem mit der Formatierung meines Inhaltsverzeichnis (IV). Ich verwende das Package "tocloft" und möchte dabei, dass der \chapter-Eintrag im IV in einer Zeile wie folgt erscheint: 1)linksbündig "Kapitel" mit Kapitel-Nummer, 2) zentriert der Name des Kapitels und 3) rechtsbündig die Seitenzahl. Dabei macht mir die zentrierte Platzierung des Kapitelnamens zu schaffen.
"tocloft" erlaubt eine globale Angabe zum Abstand des Kapitelnamens im IV vom linken Rand, allerdings sind die Kapitelnamen verschieden lang, so dass sie wie linksbündig an einer Senkrechten durch die Seite ausgerichtet erscheinen und nicht zentriert. Mein Plan war, als Abstand die halbe \textwidth zu verwenden und dann die einzelnen Kapitelnamen im IV um ihre halbe Länge wieder nach links zu verschieben. Diese etwas unelegante Methode wollte ich folgendermaßen realisieren:
1) \newlength{\Kapitelnamenlänge}
2) \settowidth{\Kapitelnamenlänge}{Kapitelname}
3)\chapter[\hspace{-.5\Kapitelnamenlänge}Kapitelname]{Kapitelname}
Die Verschiebung mittels \hspace funktioniert auch - allerdings nur mit festen Werten und nicht mit der Variable \Kapitelnamenlänge. Dies liegt daran, dass die Variable nur in meiner *.tex-Datei definiert ist und nicht in *.toc. Ich bekomme also die Fehlermeldung "undefined control sequence. \Kapitelnamenlänge" in meiner *.toc-Datei.
Also hier meine eigentliche Frage: Gibt es eine Möglichkeit, Variabeln zu definieren, die auch die *.toc-Datei erkennt, oder kennt jemand vielleicht einen eleganteren Weg, das gewollte zu erreichen (mit "titletoc"?). Mir wäre auch sehr geholfen, wenn jemand wüsste, wie man sich den Wert einer Variabeln anzeigen lassen kann - also wie lang ist die Zeichenkette {Kapitelname}? Dann könnte ich die Längen "von Hand" einstellen.
Hier mal ein Minimalbeispiel (oder das, was ich für eine Minimalbeispiel halte):
\documentclass{report}
\usepackage[ngerman]{babel}
\usepackage{tocloft}
\begin{document}
\renewcommand{\cftchappresnum}{Kapitel }
\renewcommand{\cftchapnumwidth}{.5\textwidth}
\tableofcontents
\chapter{Ein Kapitelname}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\chapter{Ein langer Kapitelname}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\chapter[\hspace{-3cm}Ein verschobener Kapitelname]{Ein verschobener Kapitelname}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\section{Ein Abschnitt}
\newlength{\Kapitelnamenlaenge}
\settowidth{\Kapitelnamenlaenge}{Kapitelname mit Fehler}
\chapter[\hspace{-.5\Kapitelnamenlaenge}Kapitelname mit Fehler]{Kapitelname mit Fehler}
\end{document}
Ich bin für jeden Hinweis sehr dankbar! Vielen Dank schon mal für alle Mühen!
RM2