PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Top of page or not?



LuPi
18-10-2011, 08:12
Wie kann ich feststellen, ob ich gerade am Beginn einer neuen Seite bin oder
nicht? Anmerkung: In diesem speziellen Fall handelt es sich immer um einen
neuen Absatz, so dass eine Unterscheidung innerhalb eines Absatzes (die
möglicherweise aufwendiger ist) nicht erforderlich ist.

cookie170
18-10-2011, 11:23
Warum willst Du das wissen? Der Seitenumbruch ist hin und wieder sehr instabil und kann sich sogar nach jedem Durchlauf ändern. Ich habe einmal eine Datei gehabt, bei der ein einziger Buchstabe den Unterschied ausmachte.

Daher: bevor hier die TeX-Programmierer einsteigen, sag' doch 'mal, was Du anstellen willst ?!

Gruß,
Alexander

LuPi
18-10-2011, 11:30
Ich habe einen "Text", der letztlich aus einer Reihe unterschiedlicher
(nicht gleitender) Grafikblöcke besteht. Falls ein derartiger Block am
Beginn einer Seite erscheint, soll er eine spezielle Behandlung erfahren.

Schweinebacke
18-10-2011, 13:33
Wenn der Block gesetzt wird, ist es aber zu spät, um ihn noch anders zu behandeln. Da es immer Absatzanfänge sind, kann man eventuell mit \pagegoal arbeiten, also etwas in der Art:

if \pagegoal-\pagetotal < Höhe + Tiefe von neuem Block
dann
sonst

Eventuell muss man aber auch über \pdfsavepos arbeiten und die aktuelle vertikale Position über die aux-Datei retten und dann beim nächsten Aufruf eine Sonderbehandlung durchführen.

Man könnte aber auch schlicht zunächst ein Label setzen, dann mit dem needspace-Paket dafür sorgen, dass noch genügend Platz vorhanden ist, dann wieder ein Label setzen und vergleichen, ob beide Labels auf dieselbe Seite zeigen. Das verwendet dann auch wieder das Ergebnis des letzten Laufs.

Wenn das über mehrere Seiten gemacht wird, kann es ziemlich lange dauern, bis es terminiert. Im Extremfall kann es sogar gar nicht terminieren, sondern anfangen zu schwingen.

LuPi
18-10-2011, 14:25
Besten Dank, das war genau der Hinweis in die richtige Richtung. Nach etwas
Spielen habe ich die folgende, noch einfachere Lösung gefunden:


\ifdim\pagetotal>0pt
% nicht erste Zeile
\else
% erste Zeile
\fi

Die Resonanzkatastrophe wäre hier auch weniger kritisch gewesen, da das
Dokument nicht über zehn Seiten anwachsen wird und zur Not auch händisches
Nachjustieren möglich gewesen wäre. Aber als LateXy hat man es ja doch
lieber bequem und elegant ...