coenig
01-09-2013, 09:05
Liebe TeX-Gurus ;),
ich arbeite derzeit an einem größeren Projekt (Buch) und schaffe es einfach nicht, das Inhaltsverzeichnis korrekt formatiert zu bekommen. Der Fehler ist, dass die Seitenzahlen nicht bündig untereinander stehen. (In meinem minimalen Beispiel unten sieht man den Fehler nur, wenn man genau hinschaut - im Gesamtdokument ist er aber größer.)
Es gibt zwei Anforderungen an das Projekt: (1) Da ich zwei Inhaltsverzeichnisse in einem Dokument brauche, wird das Paket titletoc benötigt. (2) Ein weiteres externes Nicht-Standard-Paket muss verwendet werden.
Das folgende Beispiel ist, soweit ich es konnte, auf das Wesentliche beschränkt. Ich habe nicht das gesamte externe Paket eingebunden, sondern auch hier versucht, nur die Stellen zu finden, die etwas mit dem Problem zu tun zu haben scheinen:
\documentclass{book}
\makeatletter
%%%%%%%%%% Aus dem externen Paket:
\baselineskip11.5pt
\parindent0pt
\newskip\normalparskip
\normalparskip5.75pt plus1pt minus1pt
\parskip\normalparskip
\def\tableofcontents{
\bgroup\parskip0pt
\def\thechapter{}
\chapter*{\contentsname}
\@starttoc{toc}\egroup\clearpage\pagestyle{empty}}
\newdimen\num@indent
\num@indent15mm
% [[HIER]]
\def\l@chapter#1#2{\par\vskip4mm plus2mm\addpenalty{-\@highpenalty}%
\@tempdima\num@indent
\textbf{#1\hfill#2}}
\def\l@section{\@dottedtocline{1}{0pt}{15mm}}
\def\l@subsection{\@dottedtocline{2}{0pt}{15mm}}
\def\l@subsubsection{\@dottedtocline{3}{0pt}{15mm} }
\edef\tocskip{2mm plus.2pt}
\renewcommand\@dotsep{1.5}
\def\@dottedtocline#1#2#3#4#5{%
\ifnum #1>\c@tocdepth \else
\ifnum#1<2
\vskip\tocskip
\fi
{\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
\parindent #2\relax\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima #3\relax
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{#4}\nobreak
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
\par}%
\fi}
\def\ps@headings{%
\def\@evenhead{%
\vbox to\headheight{%
\hbox to\textwidth{{\normalfont\normalsize\strut\thepage \hfill{\leftmark}}}%
\vss
\hrule width\textwidth height0.4pt depth0pt}}
\def\@oddhead{%
\vbox to\headheight{%
\hbox to\textwidth{{\normalfont\normalsize\strut{\rightm ark}\hfill\thepage}}%
\vss
\hrule width\textwidth height0.4pt depth0pt}}
\def\@evenfoot{}%
\def\@oddfoot{}%
}
%%%%%%%%%%
\makeatother
\usepackage{titletoc}
\begin{document}
\startlist{toc}\printlist{toc}{}{\section*{T. o. C.}}
\chapter{Chap 1} Some Text 1.
\chapter{Chap 2} Some Text 2.
\end{document}
Ich habe mich da schon so manche Stunde daran versucht, aber meine TeX-Kenntnisse stoßen hier wohl einfach an ein Ende. Es wäre toll, wenn jemand eine Idee hätte, wo der Fehler liegt :)
Viele Grüße
Lukas
ich arbeite derzeit an einem größeren Projekt (Buch) und schaffe es einfach nicht, das Inhaltsverzeichnis korrekt formatiert zu bekommen. Der Fehler ist, dass die Seitenzahlen nicht bündig untereinander stehen. (In meinem minimalen Beispiel unten sieht man den Fehler nur, wenn man genau hinschaut - im Gesamtdokument ist er aber größer.)
Es gibt zwei Anforderungen an das Projekt: (1) Da ich zwei Inhaltsverzeichnisse in einem Dokument brauche, wird das Paket titletoc benötigt. (2) Ein weiteres externes Nicht-Standard-Paket muss verwendet werden.
Das folgende Beispiel ist, soweit ich es konnte, auf das Wesentliche beschränkt. Ich habe nicht das gesamte externe Paket eingebunden, sondern auch hier versucht, nur die Stellen zu finden, die etwas mit dem Problem zu tun zu haben scheinen:
\documentclass{book}
\makeatletter
%%%%%%%%%% Aus dem externen Paket:
\baselineskip11.5pt
\parindent0pt
\newskip\normalparskip
\normalparskip5.75pt plus1pt minus1pt
\parskip\normalparskip
\def\tableofcontents{
\bgroup\parskip0pt
\def\thechapter{}
\chapter*{\contentsname}
\@starttoc{toc}\egroup\clearpage\pagestyle{empty}}
\newdimen\num@indent
\num@indent15mm
% [[HIER]]
\def\l@chapter#1#2{\par\vskip4mm plus2mm\addpenalty{-\@highpenalty}%
\@tempdima\num@indent
\textbf{#1\hfill#2}}
\def\l@section{\@dottedtocline{1}{0pt}{15mm}}
\def\l@subsection{\@dottedtocline{2}{0pt}{15mm}}
\def\l@subsubsection{\@dottedtocline{3}{0pt}{15mm} }
\edef\tocskip{2mm plus.2pt}
\renewcommand\@dotsep{1.5}
\def\@dottedtocline#1#2#3#4#5{%
\ifnum #1>\c@tocdepth \else
\ifnum#1<2
\vskip\tocskip
\fi
{\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
\parindent #2\relax\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima #3\relax
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{#4}\nobreak
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
\par}%
\fi}
\def\ps@headings{%
\def\@evenhead{%
\vbox to\headheight{%
\hbox to\textwidth{{\normalfont\normalsize\strut\thepage \hfill{\leftmark}}}%
\vss
\hrule width\textwidth height0.4pt depth0pt}}
\def\@oddhead{%
\vbox to\headheight{%
\hbox to\textwidth{{\normalfont\normalsize\strut{\rightm ark}\hfill\thepage}}%
\vss
\hrule width\textwidth height0.4pt depth0pt}}
\def\@evenfoot{}%
\def\@oddfoot{}%
}
%%%%%%%%%%
\makeatother
\usepackage{titletoc}
\begin{document}
\startlist{toc}\printlist{toc}{}{\section*{T. o. C.}}
\chapter{Chap 1} Some Text 1.
\chapter{Chap 2} Some Text 2.
\end{document}
Ich habe mich da schon so manche Stunde daran versucht, aber meine TeX-Kenntnisse stoßen hier wohl einfach an ein Ende. Es wäre toll, wenn jemand eine Idee hätte, wo der Fehler liegt :)
Viele Grüße
Lukas