PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abbildungsverzeichnis "komprimieren"?



Huschpuscheldi
11-11-2010, 11:45
Hallo!
Habe in meinem Dokument ein 4-seitiges Abbildungsvz, wovon nur zwei Einträge auf der 4ten Seite sind. Das finde ich etwas unschön. Mir wäre es am liebsten, wenn diese beiden Einträge auf den vorherigen Seiten erscheinen würden.
Ist es möglich die vorherigen Seiten des Abbvz um jeweils eine Zeile zu komprimieren, so dass die beiden Einträge auf der 4ten Seite nach oben rutschen?

tral
11-11-2010, 15:43
\enlargethispage{\baselineskip}.

Christian.

Huschpuscheldi
11-11-2010, 16:12
Den Befehl hab ich vor \listoffigures gesetzt, da passiert nichts.
Kann es sein das man mit dem Befehl nur einzelne Seiten bearbeiten kann? Ich habe in dem Abbildungsvz gar nicht die Möglichkeit auf eine bestimmte Seite im zuzugreifen.

Ich hab den Befehl \setlength{\baselineskip}{Abstand} gefunden und ihn vor die \listoffigures gesetzt, das bringt zwar den gewünschten Effekt, aber auch alle folgenden Seiten sind dann "komprimiert". Kann man diesen Befehl auf die lof beschränken, oder muss ich nach der lof wieder diesen Befehl setzen mit dem Ursprünglichen Abstand?
In etwa so?



\tableofcontents
\setlength{\baselineskip}{15pt}
\listoffigures
\setlength{\baselineskip}{18pt}
\listoftables

Oder gibt es da eine elegantere Methode?

PS.: Ich verwende Schriftgröße 12pt und onehalfspacing im ganzen Dokument. Wenn ich dann nach der lof den Befehl \setlength{\baselineskip}{18pt} einfüge, entsprechen dann 18pt (12*1,5) dem ursprünglichem Zeilenabstand?

Schweinebacke
11-11-2010, 16:36
Wenn Du eine KOMA-Script-Klasse (scrreprt oder scrbook) verwendest, könntest Du den Abstand zwischen Kapiteleinträgen im Inhaltsverzeichnis verringern. Das geht per Option und ist in der Anleitung dokumentiert (genaueres müsste ich jetzt auch erst nachschlagen, aber das kannst Du sicher selbst auch).

Außerdem könntest und solltest Du, wenn Du das Paket setspace verwendest, das Inhaltsverzeichnis mit
\begin{spacing}{1}\tableofcontents\end{spacing} setzen. Falls Du nicht setspace verwendest, sondern eineinhalbzeilig anderweitig realisierst, solltest Du das ändern. Auch die anderen Verzeichnisse und die Titelei solltest Du nicht eineinhalbzeilig setzen.

tral
11-11-2010, 16:48
\begingroup
\setlength{\baselineskip}{15pt}
\listoffigures
\endgroup


Die \enlargethispage musst du mit

\addtocontents{lof}{\enlargethispage{\baselineskip }}

natürlich ins Verzeichniss schreiben. Z.B. immer nach einer Figure, die irgendwo im LOF in der Mitte der Seite steht...

Christian.
Christian.

Schweinebacke
11-11-2010, 16:54
An \baselineskip sollte man besser nicht auf diese Art herumdoktern, weil das beim nächsten Schriftgrößenbefehl (und sei es nur ein implizites \normalsize) wieder verloren geht. LaTeX kennt dafür die \linespread-Anweisung. Mit dem setspace-Paket gibt es zusätzliche Möglichkeiten (siehe auch oben).

Huschpuscheldi
11-11-2010, 17:23
Erstmal vielen Danke für eure Hilfe.

@tral:
Ich habe jetzt


\begingroup
\setlength{\baselineskip}{15pt}
\listoffigures
\endgroup

verwendet und komme damit gut klar.



Die \enlargethispage musst du mit
Code:

\addtocontents{lof}{\enlargethispage{\baselineskip }}

natürlich ins Verzeichniss schreiben. Z.B. immer nach einer Figure, die irgendwo im LOF in der Mitte der Seite steht...

Das hab ich leider immernoch nicht verstanden.
In welches Verzeichnis? In das Abbvz? Wie soll ich da was reinschreiben?
Oder in meinem Dokument nach der figure nach der der Seitenumbruch erfolgen soll? Das führte zu einer Fehlermeldung.

@Schweinebacke:
Ich verwende scrreprt.
Du schreibst Inhaltsverzeichnis, ich meine aber das Abbildungsvz, oder meinst du das auch? Eine Anleitung für dasAbbvz habe ich nicht gefunden.
Ich nutze \usepackage[onehalfspacing]{setspace} für den 1,5fachen Zeilenabstand. Ist das jetzt gut oder schlecht.

bobmalaria
11-11-2010, 17:47
hi,

mit \addtocontents{verzeichnis}{irgendwas} kannst du text oder auch ein makro in ein verzeichnis einfügen

mit dem angegebenen

\addtocontents{lof}{\enlargethispage{2\baselineski p}} fügst du in lof=list of figures den abstand 2\baselineskip ein. das könnte man auch mit toc=table of contens oder lot=list of tables machen.

das ist vielleicht einfacher als die andere konstruktion.

gruss

Huschpuscheldi
11-11-2010, 18:11
Vllt bin ich etwas langsamer als ihr, aber wo kommt der Befehl "\addtocontents{lof}{\enlargethispage{2\baselineski p}}" hin und was bedeutet die 2?
Ich verstehe überhaupt nichts.

bobmalaria
11-11-2010, 18:29
hi,

der befehl muss spätestens da stehen, wo der letzte eintrag ins verzeichnis generiert wird der gerade noch auf die volle seite passt.

schau dir mal das beispiel an und kommentiere das \addcontents... erst aus, kompiliere mehrfach (mehrfach ist wichtig). schaue dir das ergebnis an und kompiliere dann nochmal mehrfach mit dem einkommentierten befehl.

einmal wird das verzeichnis auf 2 seiten verteilt, einmal passt alles auf eine seite. \baselineksip ist eine länge. schreibe ich 5\baselineskip dann wird die länge einfach mit 5 multipliziert.

grus


\documentclass{scrreprt}

%super kleine seite
\usepackage[textheight=5cm]{geometry}

\begin{document}
\listoffigures


\chapter{}
\begin{figure}%
\caption{Mein Bild}
\end{figure}
\begin{figure}%
\caption{Mein Bild}
\end{figure}
\begin{figure}%
\caption{Mein Bild}
\end{figure}
\begin{figure}%
\caption{Mein Bild}
\end{figure}
\addtocontents{lof}{\protect\enlargethispage{3\bas elineskip}}
\begin{figure}%
\caption{Mein Bild}
\end{figure}
\begin{figure}%
\caption{Mein Bild}
\end{figure}
\end{document}

Huschpuscheldi
11-11-2010, 19:23
OK, jetzt gehts, da hat das \protect gefehlt, deswegen bekam ich vorher Fehlermeldungen. Hatte es nämlich schonmal so eingetragen wie in deinem Mb.
Das ist aber nicht das was ich will, weil dadurch doch der Textkörper verlängert wird. Wenn ich 5\baselinskip eingebe sind die Einträge im Abbvz bis unter der Seitenzahl.
Ich will den Textkörper unverändert lassen und innerhalb diesem die Einträge näher zusammen setzen, um so auf jeder Seite etwas Platz zu sparen, damit die anderen 2 Einträge nach oben rutschen.
Das geht mit


\begingroup
\setlength{\baselineskip}{Xpt}
\listoffigures
\endgroup

und


\begin{spacing}{X,X}
\listoffigures
\end{spacing}


Danke für eure Hilfe

Schweinebacke
12-11-2010, 08:31
@Schweinebacke:
Ich verwende scrreprt.
Du schreibst Inhaltsverzeichnis, ich meine aber das Abbildungsvz, oder meinst du das auch?
Ich schreibe das was ich meine, nämlich das Inhaltsverzeichnis und alle anderen Verzeichnisse und die Titelei. Du liest zu selektiv.


Eine Anleitung für dasAbbvz habe ich nicht gefunden.
Das geht genau wie beim Inhaltsverzeichnis. Man muss nur \tableofcontents durch \listoffigures ersetzen. Natürlich kann man mehrere spacing-Umgebungen, die aufeinander folgen gleich zu einer zusammen fassen, also beispielsweise direkt nach \tableofcontents noch \listoffigures mit in die eine Umgebung einfügen.


Ich nutze \usepackage[onehalfspacing]{setspace} für den 1,5fachen Zeilenabstand. Ist das jetzt gut oder schlecht.
Eineinhalbzeilig ist aus typografischer Sicht immer schlecht. Das Zeilenraster wird damit überbetont und der Abstand ist so groß, dass sich das bereits negativ auf die Lesegeschwindigkeit auswirken kann. Wenn man aber schon eineinhalbzeilig setzen will, dann ist das der richtige Weg. Wenn man hingegen 1,5-fachen Zeilenabstand will (was nicht dasselbe wie eineinhalbzeiliger Satz ist), dann ist das so nicht korrekt. Dann muss man \setstretch{1.5} verwenden. Das ist dann aber deutlich mehr als eineinhalbzeilig. Ob es mehr oder weniger ist, als Word machen würde, muss man ggf. ausprobieren.