PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inhaltsverzeichnis anpassen (Schriftart ändern, einrücken)



Slatibartfass
24-07-2009, 14:29
Moin Moin,

ich würde gerne an meinem Inhaltsverzeichnis (meines Dokumentes, wofür ich die scrbook-Klasse verwende) die folgenden Änderungen vornehmen: Ich würde gern

1. die Schriftart der Bezeichnung "Contents" (sowie dessen Inhalt) ändern,

2. die Schriftart bei den Seitenzahlen (der Einträge) ändern,

3. die Einrückungen der Chapter-, Section-, Subsection-Nummern ändern

und

4. die Seitenzahlen (der Einträge) nach links verschieben (damit es mit den Einrückungen in meiner Kopfzeile konform ist).

Vielen Dank schon mal im Voraus!


Feine Grüße,

Florian

Amandus
24-07-2009, 15:23
Code-Beispiele für \section (Rest im tocloft.pdf nachzulesen):


1. die Schriftart der Bezeichnung "Contents" (sowie dessen Inhalt) ändern,


\usepackage{tocloft}
\renewcommand{\cfttoctitlefont}{\Large}

\renewcommand\contentsname{Inhalt} % ist eine KOMA-Anweisung


2. die Schriftart bei den Seitenzahlen (der Einträge) ändern,


\renewcommand{\cftsecpagefont}{\bfseries\small}


3. die Einrückungen der Chapter-, Section-, Subsection-Nummern ändern


\makeatletter
\setlength{\cftsecnumwidth}{1.8em}
\cftsetindents{sec}{0em}{1.8em}
\makeatother



4. die Seitenzahlen (der Einträge) nach links verschieben (damit es mit den Einrückungen in meiner Kopfzeile konform ist).

Die richten sich rechtsbündig am rechten Rand Deiner \linewidth aus. Vielleicht könntest Du für jeden Ebenentyp im Inhaltsverzeichnis einen Leerraum hinter den Seitenzahlen definieren, sodaß diese an den »title text« herangeschoben werden:

\renewcommand{\cftsecafterpnum}{\hspace*{1em}}

Da gibt es gewiß noch eine elegantere Methode, aber mehr fällt mir nicht ein.

Slatibartfass
25-07-2009, 12:39
Vielen vielen Dank Amadus!

Deine Tipps funktionieren prächtig!

Der, für mein Problem, relevante Teil meiner Dokumentenpräambel sieht nun so aus:



\usepackage{tocloft}

\renewcommand{\cfttoctitlefont}{\hfill\chapterfont }
\renewcommand{\cftaftertoctitle}{\hfill}

\renewcommand{\cftchapfont}{\subsectionfont}
\renewcommand{\cftsecfont}{\subsectionfont}
\renewcommand{\cftsubsecfont}{\subsectionfont}

\renewcommand{\cftchappagefont}{\numberfont}
\renewcommand{\cftsecpagefont}{\numberfont}
\renewcommand{\cftsubsecpagefont}{\numberfont}

\renewcommand{\cftchapafterpnum}{\hspace*{1em}}
\renewcommand{\cftsecafterpnum}{\hspace*{1em}}
\renewcommand{\cftsubsecafterpnum}{\hspace*{1em}}

\makeatletter
\cftsetindents{chap}{1em}{1em}
\cftsetindents{sec}{2em}{2em}
\cftsetindents{subsec}{4em}{2.7em}
\makeatother


Nebenbei: Ich habe auch gefunden, wie man die Punkte ändern kann, die zwischen Beschriftung und Seitennummer sind. Für meine Bedürfnisse finde ich



\renewcommand{\cftdot}{\tiny\color{grey}.}
\renewcommand{\cftdotsep}{0.01}


recht schön. Das bringt mich nun zu einer weiteren Frage: Und zwar ist zwischen Seitennummern und Punkten Platz (beides ist ja standardmäßig rechtsbündig). Ich fände es aber viel schöner wenn die Punkte bis zur Seitenzahl gingen. Versuche mit



\cftsetpnumwidth{0mm}


machen das zwar, aber dann sind die Seitenzahlen linksbündig. Meine Frage ist also:

Wie kann ich die Punkte bis direkt an die Seitennummern laufen lassen, wobei letztere rechtsbündig ausgerichtet sind?


Vielen Dank schon mal im Voraus!


Feine Grüße,

Florian

Amandus
26-07-2009, 11:20
An diesen beiden Werten schrauben bis es paßt:


\makeatletter
\renewcommand{\@pnumwidth}{1.9em}
\renewcommand{\@tocrmarg}{3.9em}
\makeatother

Auf Seite 3 im tocloft.pdf ist an einer Graphik ersichtlich, wofür pnumwidth und tocrmarg stehen.

Bei mir mußte diese Anweisung vor tocloft in die Präambel geschrieben werden, da sonst eine von tocloft eingestellte Schrift wieder geändert worden wäre.

rais
28-07-2009, 07:54
Moin moin,

An diesen beiden Werten schrauben bis es paßt:


\makeatletter
\renewcommand{\@pnumwidth}{1.9em}
\renewcommand{\@tocrmarg}{3.9em}
\makeatother

wozu? tocloft stellt hierfür \cftsetpnumwidth und \cftsetrmarg bereit, da braucht dann auch kein \makeatletter/\makatother drum herum gesetzt zu werden.

MfG

Slatibartfass
28-07-2009, 10:48
Moin moin,

Dank Euch Amadus und Rainer! Nun, falls ich das korrekt verstehe, sind Euren Tipps zwar gut um diese beiden Parameter zu ändern, aber sie scheinen mein Problem nicht zu lösen (Falls ich unfähig dazu oder unklar dabei war, tut's mir natürlich leid.).

Also im tocloft.pdf steht, dass man mit \cftsetrmarg den Abstand der Titeltexte vom rechten Rand regelt, was erstmal nichts mit den Punkten an sich zu tun hat. (Vielleicht sind einem ja manche Titeltexte zu lang und man möchte umbrechen lassen...) Mit \cftsetpnumwidth hingegen ändert man die Größe der Kästchen in welchen die Seitenzahlen stehen. Wenn ich das nun runterregel (z.B. auf 0em), dann laufen zwar die Punkt direkt bis an die Seitenzahlen heran, aber nur, weil diese nun linksbündig sind. Es steht ja auch im tocloft.pdf, dass Zahlen, die zu groß sind, rechts aus dem \cftsetpnumwidth-großen Kasten rausgucken.

Betrachten wir dazu folgendes kleines Beispiel:


\documentclass{scrbook}

\usepackage{tocloft}
\renewcommand{\cftdot}{\tiny.}
\renewcommand{\cftdotsep}{0.01}
\cftsetpnumwidth{0em}
\cftsetrmarg{20em}

\begin{document}

\tableofcontents

\chapter{Cosmological Inflation}
1\newpage1\newpage1\newpage1\newpage

\section{Perturbations}
1\newpage1\newpage1\newpage1\newpage

\section{Baryon-Radiation Plasma and Cold Dark Matter}

\end{document}

wobei ich die Punkt und deren Abstand mal verkleinert habe.

Was ich gerne hätte, ist, dass die Zahlen rechtsbündig sind, aber trotzdem die Punkt direkt bis zu jeder Seitenzahl laufen, also im obigen Beispiel bis zur 11 (in der zu Kapitel 1.2 gehörenden Zeilen) und bis zur 7, also über der ersten 1 der 11 (in der zu Kapitel 1.1 gehörenden Zeile).


Vielen Dank nochmals und mal wieder im Voraus.

Florian

rais
28-07-2009, 12:31
Moin moin,

Mit \cftsetpnumwidth hingegen ändert man die Größe der Kästchen in welchen die Seitenzahlen stehen. Wenn ich das nun runterregel (z.B. auf 0em), dann laufen zwar die Punkt direkt bis an die Seitenzahlen heran, aber nur, weil diese nun linksbündig sind. Es steht ja auch im tocloft.pdf, dass Zahlen, die zu groß sind, rechts aus dem \cftsetpnumwidth-großen Kasten rausgucken.

Betrachten wir dazu folgendes kleines Beispiel:
(..)
Was ich gerne hätte, ist, dass die Zahlen rechtsbündig sind, aber trotzdem die Punkt direkt bis zu jeder Seitenzahl laufen, also im obigen Beispiel bis zur 11 (in der zu Kapitel 1.2 gehörenden Zeilen) und bis zur 7, also über der ersten 1 der 11 (in der zu Kapitel 1.1 gehörenden Zeile).

dann musst Du vermutlich den beim Setzen der Box f. die Seitenzahl intern verwendeten \hfil(l) durch \cftdotfill ersetzen, etwa


\documentclass{scrbook}

\usepackage{tocloft}
\renewcommand{\cftdot}{\tiny.}
\renewcommand{\cftdotsep}{0.01}
\cftsetpnumwidth{2.1em}
\cftsetrmarg{0em}
\makeatletter
\renewcommand*\cftsecfillnum[1]{%
\cftsecleader\nobreak
\hb@xt@\@pnumwidth{\cftdotfill{\cftsecdotsep}\cfts ecpagefont#1}\cftsecafterpnum\par}
\makeatother

\begin{document}

\tableofcontents

\chapter{Cosmological Inflation}
1\newpage1\newpage1\newpage1\newpage

\section{Perturbations}
1\newpage1\newpage1\newpage1\newpage

\section{Baryon-Radiation Plasma and Cold Dark Matter}

\end{document}

Achte beim Setzen aber darauf, dass sich beim Wechsel zwischen `normalem' \cftdotfill und dem nur innerhalb der Seitenzahlenbox keine Kante durch den `Neustart' des \cftdotfill-Befehls bildet -- Du kannst hier den \cftsetpnumwidth leicht anpassen.

MfG

Slatibartfass
28-07-2009, 12:54
Vielen Dank Rainer!

Das funktioniert bestens! :) Damit sind nun alle typographischen Mängel meiner Diss. (zumindest soweit sie mir aufgefallen sind) ausgemerzt. Ich werde Deine Hilfe im "Acknowledgements"-Kapitel würdigen.


Besten Dank und feine Grüße,

Florian



P.S.: Hier nun der für mein Inhaltsverzeichnis-Problem relevante Teil der Präambel (falls es Jemanden interessiert):



\usepackage{tocloft}

\makeatletter
\renewcommand*\cftsecfillnum[1]{%
\cftsecleader\nobreak
\hb@xt@\@pnumwidth{\cftdotfill{\cftsecdotsep}\cfts ecpagefont#1}\cftsecafterpnum\par}

\renewcommand*\cftsubsecfillnum[1]{%
\cftsubsecleader\nobreak
\hb@xt@\@pnumwidth{\cftdotfill{\cftsubsecdotsep}\c ftsubsecpagefont#1}\cftsubsecafterpnum\par}

\cftsetindents{chap}{1em}{1em}
\cftsetindents{sec}{2em}{2em}
\cftsetindents{subsec}{4em}{2.65em}
\makeatother

\cftsetpnumwidth{2.4em}

\renewcommand{\cfttoctitlefont}{\hfill\chapterfont }
\renewcommand{\cftaftertoctitle}{\hfill}

\renewcommand{\cftchappagefont}{\numberfont}
\renewcommand{\cftsecpagefont}{\numberfont}
\renewcommand{\cftsubsecpagefont}{\numberfont}

\renewcommand{\cftchapfont}{\subsectionfont}
\renewcommand{\cftsecfont}{\subsectionfont}
\renewcommand{\cftsubsecfont}{\subsectionfont}

\renewcommand{\cftchapafterpnum}{\hspace*{1em}}
\renewcommand{\cftsecafterpnum}{\hspace*{1em}}
\renewcommand{\cftsubsecafterpnum}{\hspace*{1em}}

\renewcommand{\cftdot}{\tiny\color{grey}.}
\renewcommand{\cftdotsep}{0.01}


wobei ich mir meine Schriften und Farben so definiert habe:



\definecolor{grey}{rgb}{0.4,0.4,0.4}

\DeclareFixedFont{\numberfont}{OT1}{pzc}{m}{it}{0. 42cm}
\DeclareFixedFont{\numberfontbf}{OT1}{pzc}{b}{it}{ 0.48cm}

\DeclareFixedFont{\titlefont}{T1}{put}{b}{n}{1.16c m}
\DeclareFixedFont{\titlefontnormal}{T1}{put}{m}{n} {1.16cm}
\DeclareFixedFont{\subtitlefont}{T1}{put}{b}{n}{0. 58cm}
\DeclareFixedFont{\smalltitlefont}{T1}{put}{b}{n}{ 0.53cm}
\DeclareFixedFont{\smallsubtitlefont}{T1}{put}{b}{ n}{0.42cm}
\DeclareFixedFont{\chapterfont}{T1}{put}{m}{n}{0.8 5cm}
\DeclareFixedFont{\sectionfont}{T1}{put}{m}{n}{0.4 5cm}
\DeclareFixedFont{\subsectionfont}{T1}{put}{m}{n}{ 0.35cm}
\DeclareFixedFont{\subsectionfontbf}{T1}{put}{m}{n }{0.48cm}
\DeclareFixedFont{\subsectionfonttitle}{T1}{put}{m }{n}{0.40cm}
\DeclareFixedFont{\subsubsectionfont}{T1}{put}{m}{ n}{0.25cm}