PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \tableofcontents breite definieren



moono
15-03-2013, 20:09
Hallo zusammen

Ich lasse mein Inhaltsverzeichnis zweispaltig ausgeben:


\makeatletter
\renewcommand\tableofcontents{%
%\section*{Inhalt}%
\begin{multicols}{2}%
{\@starttoc{toc}}%
\end{multicols}
}
\makeatother


Das Problem ist allerdings, dass der Text zu nahe an die Seitenzahlen herankommt, was nicht schön aussieht. Ausserdem geht der Text bei Einträgen, die mehr als eine Zeile ausfüllen über die Zahl in der Zeile untendran hinaus.
Wie kann ich die Breite des (Text)Eintrages in einem Inhaltsverzeichnis festlegen, damit dieser umbricht und nicht zu breit wird?

localghost
16-03-2013, 09:20
Ein ordentliches, weil in sich geschlossenes Minimalbeispiel (http://minimalbeispiel.de) wäre der erste Schritt auf dem Weg zu einer möglichen Lösung.


Thorsten

moono
16-03-2013, 10:58
Der von mir gezeigte Code funktioniert. Was soll ich denn noch mehr an Minimalbeispiel liefern? Ist das nicht minimal genug?

Ich kann noch ein tableofcontents ausgeben. Zeigt aber nicht wirklich mehr:


\documentclass[ngerman,a4paper,12pt]{article}
\usepackage[ngerman]{babel}
\usepackage[printonlyused]{acronym}


% multicolumn
\usepackage{multicol}

% make table of contents multicol
\makeatletter
\renewcommand\tableofcontents{%
%\section*{Inhalt}%
\begin{multicols}{2}%
{\@starttoc{toc}}%
\end{multicols}
}
\makeatother


\begin{document}
\tableofcontents

\section{Section / Abschnitt 1}
\section{Section / Abschnitt 2 mit mega langem Titel}
\section{Section / Abschnitt 3 mit mega langem Titel}
\section{Section / Abschnitt 4}
\section{Lorem Ipsum Di Amet Agno Dala Di Lera}
\section{Lorem Ipsum Di Amet Agno Dala}

\end{document}

Donalduck
16-03-2013, 11:14
Nein, der von dir gezeigte Code lässt sich nicht kompilieren und ist daher kein Minimalbeispiel. Auch zeigt er dein Problem nicht.

moono
16-03-2013, 11:50
Sehe ich ja ein. Nur hat das Ganze wenig Bezug zu meiner Frage, weil diese sich auf das Modul \tableofcontents als ganzes und bezieht und unabhängig einer spezifischen Verwendung ist:

Wie kann ich die Breite des (Text)Eintrages in einem Inhaltsverzeichnis festlegen, damit dieser umbricht und nicht zu breit wird?
Der Rest ist nur Begründung um zu verhindern, dass mir jemand das ganze ausreden will oder ich Alternativen anstelle Lösungen erhalte.

Ich will eigentlich nur wissen, wie ich \tableofcontents konfigurieren kann.

Donalduck
16-03-2013, 12:25
Doch, das ist wichtig, da man so z.B. sieht dass du die article Klasse benutzt, und nicht eine KOMA-Klasse.

Es gibt mehrere Möglichkeiten, du könntest alternative Titel für dein TOC benutzen, die kürzer als die richtigen sind, oder die einen Zeilenumbruch haben.

EDIT: Ich kann dein Problem, so wie ich es verstanden habe, mit deinem Minimalbeispiel nicht nachvollziehen.

u_fischer
16-03-2013, 13:04
Ich will eigentlich nur wissen, wie ich \tableofcontents konfigurieren kann.

Der LaTeX-Companion enthält dazu etwa 18 Seiten. Sollen wir die für dich abschreiben?

Ein konkretes Problem zu lösen, geht meist schneller als allgemeine Anweisungen zu geben. Also mach ein Minimalbeispiel.

moono
16-03-2013, 13:05
Vielleicht muss ich es noch etwas besser erklären.

Die von \tableofcontents generierte Darstellung/Tabelle sieht etwa so aus:
1 KapitelnameKapitel1 1
2 KapitelnameKapitel2 1
3 KapitelnameKapitel3 1

Mir ist der Abstand zwischen KapitelTitel und SeitenNr zu klein. Ich möchte das ganze in eta so:

1 KapitelnameKapitel1     1
2 KapitelnameKapitel2     1
3 KapitelnameKapitel3     1

Damit das Ganze weniger gequetscht aussieht.

Besonders bei langen Titeln, die umbrechen ist das ganze nicht so hübsch:
1 Kapitelname
Kapitel1         1
2 Kapitelname
Kapitel2         1
3 Kapitelname
Kapitel3         1

Hier wäre folgendes viel hübscher:

1 Kapitelname
Kapitel1                 1
2 Kapitelname
Kapitel2                 1
3 Kapitelname
Kapitel3                 1

@u_fischer

Ein konkretes Problem zu lösen, geht meist schneller als allgemeine Anweisungen zu geben. Also mach ein Minimalbeispiel.
Also meines Erachtens ist die Frage 'Wie kann ich den Abstand zwischen den Elementen im Inhaltsverzeichnis, bzw. die Breite des KapitelTitels einstellen' sehr konkret.

u_fischer
16-03-2013, 14:08
Du musst \@tocrmarg und \@pnumwidth umdefinieren. (Aktuelle Werte stehen in article.cls)

moono
17-03-2013, 09:01
Vielen Dank

Das war genau das, das ich gesucht habe.



\makeatletter

\renewcommand{\@pnumwidth}{4em}
\renewcommand{\@tocrmarg}{5em}

\renewcommand\tableofcontents{%
%\section*{Inhalt}%
\begin{multicols}{2}%
{\@starttoc{toc}}%
\end{multicols}
}
\makeatother