reset \setlength{\@fptop}{0pt}

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


fploink
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mo 15. Feb 2010, 15:09

reset \setlength{\@fptop}{0pt}

Beitrag 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

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2544
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Vorübergehende Längenänderung

Beitrag 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

fploink
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mo 15. Feb 2010, 15:09

Beitrag 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

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2544
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Die Klammern sollten den \setlength-Befehl einschließen und die Abbildung.

Stefan

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.
Zuletzt geändert von KOMA am Di 20. Jul 2010, 11:40, insgesamt 2-mal geändert.

fploink
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mo 15. Feb 2010, 15:09

Beitrag 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

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

fploink
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mo 15. Feb 2010, 15:09

Beitrag von fploink »

Vielen Dank!

Antworten