Seite 1 von 1
reset \setlength{\@fptop}{0pt}
Verfasst: Di 20. Jul 2010, 10:19
von fploink
Hallo,
in meiner Arbeit habe ich am Ende eines Kapitels, ein Bilde (dass alleine auf einer Seite ist) durch den Befehl:
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
nach oben verschoben (standardmäßig wäre das Bild auf die Seite zentriert).
Das Problem dabei ist, dass nun auch alle folgenden Bilder unmittelbar am Seitenkopf beginnen.
Wie kann ich den Befehl "\setlength{\@fptop}{0pt}" nur für diese eine Seite wirksam machen bzw. wieder die Standardeinstellungen herstellen?
Damit die foldenen Bilder "normal" angeordnet werden?
Danke für eure Hilfe
mfg Florian
Vorübergehende Längenänderung
Verfasst: Di 20. Jul 2010, 10:48
von Stefan Kottwitz
Hallo Florian,
Du kannst die Wirkung solcher Befehle begrenzen, indem Du den betreffenden Bereich in geschweifte Klammern setzt. Nach Schließen der geschweiften Klammer gilt wieder die vorherige Länge.
Alternativ kann man sich ein Längenmakro definieren, dies als Speicher des originalen Längen-Werts verwenden und der geänderten Länge später den gespeicherten Wert wieder zuweisen.
Viele Grüße,
Stefan
Verfasst: Di 20. Jul 2010, 11:03
von fploink
Hallo,
zuerst mal vielen Dank für deine rasche Antwort.
Du hast mir in den letzten Monaten schon oft weitergeholfen. Danke.
Mir ist aber noch nicht klar wo ich diese Klammer anordnen muss habe sie an mehrere Stellen ausprobiert.
Wo muss ich die Klammern anordnen, damit sich die Wirkung wirklich nur auf dieses eine Bilde begrenzt?
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
{
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{bild1}
\end{figure}
}
mfg Florian
Verfasst: Di 20. Jul 2010, 11:07
von Stefan Kottwitz
Die Klammern sollten den \setlength-Befehl einschließen und die Abbildung.
Stefan
Verfasst: Di 20. Jul 2010, 11:15
von KOMA
Ganz so einfach dürfte es in dem Fall nicht sein. Wenn Du eine figure-Umgebung benutzt, bedeutet das, dass sich die Ausgabe der Gleitumgebung nach hinten verschieben kann. Deshalb wäre selbst ein
{
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{bild1}
\end{figure}
}
reines Glücksspielt. Nun könnte man auf die Idee kommen, vor der Klammer am Ende noch ein \clearpage einzufügen. Das hat aber den Nachteil, dass dann eben kein Text von dahinter mehr nach vorn wandern kann und außerdem würde sich die \@fptop-Änderung auch noch auf Abbildungen, Tabellen und ggf. andere Gleitobjekte auswirken, die durch das \clearpage ausgegeben werden. Eine bessere Lösung wäre hier vermutlich die Verwendung des afterpage-Pakets:
\afterpage{\clearpage% schon einmal alle gespeicherten Gleitobjekte ausgeben
\begingroup
\setlength{\csname @fptop\endcsname}{0pt}
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{bild1}
\end{figure}
\clearpage% auch dieses Gleitobjekt ausgeben
\endgroup}
Wenn man allerdings ohnehin bereits afterpage verwendet, kann man auch gleich auf die Gleitumgebung verzichten:
\afterpage{\clearpage% Alle Gleitobjekte ausgeben, falls man gleich \caption oder \caption verwendet (sonst nicht notwendig)
\centerline{\includegraphics[width=1.0\textwidth]{bild1}}%
\clearpage% nur falls, auf dieser Seite sonst nichts mehr stehen soll
}
Braucht man eine Bildunterschrift geht das bei Verwendung einer KOMA-Script-Klasse oder des Pakets caption oder des Pakets capt-of ebenfalls:
\afterpage{\clearpage% Alle Gleitobjekte ausgeben
\centerline{\includegraphics[width=1.0\textwidth]{bild1}}%
\captionof{figure}{Bildunterschrift}
\clearpage% nur falls, auf dieser Seite sonst nichts mehr stehen soll
}
Statt mit \centerline kann man natürlich auch mit einem \centering innerhalb einer Gruppe oder mit \raggedleft oder \raggedright innerhalb einer Gruppe und im Extremfall sogar mit Blocksatz arbeiten.
Näheres zur Verwendung von
afterpage (← dies ist ein geprüfter Link, der direkt zur Paketkurzbeschreibung auf CTAN führt!) ist der Anleitung zu diesem Paket zu entnehmen.
Verfasst: Di 20. Jul 2010, 11:15
von fploink
Hallo,
mit den Klammer um den Befehl und das Bild:
\makeatletter
{
\setlength{\@fptop}{0pt}
\makeatother
\begin{figure}
\centering
\includegraphics[width=1.0\textwidth]{bild1}
\end{figure}
}
bleibt das Bild aber unverändert (zentriert) in der Bildmitte.
mfg Florian
Verfasst: Di 20. Jul 2010, 11:18
von KOMA
fploink hat geschrieben:mit den Klammer um den Befehl und das Bild:
bleibt das Bild aber unverändert (zentriert) in der Bildmitte.
Siehe meine Antwort, die zur selben Uhrzeit verfasst wurde wie Deine.
Verfasst: Di 20. Jul 2010, 11:28
von fploink
Vielen Dank!