Hat jemand eine Idee, wie man via Javascript die Gesamthöhe aller Fußnoten auf einer Seite auslesen kann, um einen entsprechenden Taxtrahmen darüber platzieren zu können? (wir wollen dadurch versuchen, dem "leere-Seiten-Bug" ein Schnippchen zu schlagen ...) Gruß Frank InDesign UserGroup Rhein/Ruhr
was ist die Gesamthöhe aller Fußnoten einer Seite?
Oberkante Großbuchstabenhöhe der ersten Fußnotenzeile bis Grundlinie der letzten Fußnotenzeile? Oder oben ab Fußnotentrennline oder Grundlinie der letzten möglichen Zeile des Grundtextes?
Die Berechnung wird dann problematisch, wenn Fußnoten überlaufen. Mir fällt spontan keine unkomplizierte Ermittlung der ersten Fußnotenzeile, die vom vorangehenden Textrahmen rüberläuft, ein (wenn sie nicht überläuft, ist es nicht schwierig).
Als untere Grenze könnte man unabhängig vom Überlauf die Unterkante des Textrahmens verwenden (ggf. mit Abzug des unteren Versatzes), da die Fußnoten nach unten ausgerichtet werden.
Aber das mit der Platzierung eines 'entsprechenden Textrahmens' kapiere ich nicht. Was ist Deine Strategie?
In den nächsten Tagen (11.4.2011?) wird ein neues Release von InDesign CS5 erwartet. Vielleicht ist es deswegen besser, abzuwarten, was dieses bringt, um nicht unnötige Mühe in die Umgehung eines Bugs zu investieren, der in diesem Release möglicherweise behoben ist.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 23. Mär 2011, 11:01 geändert)
Das leere-Seiten-Problem tritt nicht an Seiten auf, bei denen ein Fußnotenüberlauf wirklich stattfindet, sondern an denen er eben nicht stattfindet ... das zu deiner ersten Anmerkung ... -- Zum Warten auf den 11.4. ... da fehlt mir der Glauben. Ein Bug, der sich seit der CS2 durchzieht und noch nie so schlimm wie in der CS5 auftrat, soll endlich ausgemerzt werden ??? -- Aber lass uns die drei Wochen noch abwarten. -- Wir "beheben" diesen leere-Seiten-Bug zur Zeit mit dem Platzieren von leeren Rahmen unten auf die Seiten, bei denen eine FN-Ziffer noch mit in eine Zeile passen würde, aber die FN selbst nicht mehr. Die Rahmen platzieren wir dann so hoch, dass dem Seitenumbruch ohne diese Zeile sowieso stattfinden würde, und Indesign sich erst gar nicht anstrengen muss ... Wir bräuchten also die Gesamthöhe der durch die FNs generierten Rahmen ... Gruß Frank
Also mit einem verdrängenden Textrahmen, dessen Höhe bei einer Umbruchänderung erneut angepasst werden müsste?
Die Idee ist im Grunde genommen nicht schlecht. Aber es hört sich für mich doch nach einer sehr wackeligen bzw. risikobehafteten Bastelei an. Da bleibe ich lieber bei CS4. ;-)
Im Ernst. Schick mir mal ein Muster vorher-nachher, damit ich sicher gehen kann, Dich richtig verstanden zu haben. Denn auch meine Hoffnung bzgl. der Behebung dieses Bugs hält sich in Grenzen. Aber im April kann man nie wissen. ;-)
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 23. Mär 2011, 12:57 geändert)
Wirklich? Ich glaube, wir haben uns missverstanden. Ich meinte den Fußnotenüberlauf, der oben vom vorherigen Rahmen reinkommt; nicht den, der von dem Rahmen, dem der Fokus gilt, in den nächsten Rahmen reinläuft.
Der Fehler ist m.W. unabhängig davon, was oben reinkommt. Er ist viel mehr davon abhängig, was unten wg. der Schusterjungen-Option (x Zeilen am Anfang zusammenhalten) nicht rein kann.
Hallo Martin zu 1: genau das meinte ich auch: wenn eine FN bereits einen Überlauf erzeugt, hat sie ja bereits mit ihrer "Mutter" unten auf der Seite Platz gefunden, dann tritt der Bug nicht auf ... zu 2: Das mit der Musterdatei ist schwierig, weil es ja nicht auftreten muss, aber auftreten kann und immer nur dann auftreten wird, wenn man meint, dass es nicht mehr auftritt sollte ... (ich habe heute meinen epischen Tag!) 2. zu 2: Dass das ein wackeliges Konzept ist, ist uns klar. Wir haben aber eine ganze Reihe von Publikationen in den verschiedenen Stufen der Korrektur, die wir in CS5 gemacht haben und - wegen der etwas geänderten Silbentrennung - nicht mehr in CS4 weiter machen können, weil solche Änderungen versteht der Kunde nie, und du kannst sicher sein, dass er so eine Stelle findet, auch wenn es nur eine auf 700 Seiten gibt ... Alle aktuellen (wissenschaftlichen) Sachen machen wir bereits wieder mit der CS4 ... Gruß Frank
BTW: Mein Sohn hat nen Beispiel gemacht, die Mail ist aufm weg zu dir ...
(Dieser Beitrag wurde von Frank Münschke am 23. Mär 2011, 13:51 geändert)
[InDesign CS5]: Höhe des Fußnotenbereichs via JavaScript
Nochmal: mein Problem ist nicht die Fußnote, die im Textrahmen unten in den nächsten Textrahmen überläuft. Mein Problem ist der Fußnotentext, der oben ggf. von dem vorangehenden Textrahmen reinläuft. Dessen ersten Zeile ist für mich nicht auf einfachem Wege zu ermitteln.
Eine mögliche Lösung bestünde darin, über einen temporären verankerten Textrahmen zu ermitteln, auf welcher Seite die Fußnotenzeile steht und das Ergebnis mit den Ergebnissen aus anderen Fußnotenzeilen zu vergleichen. Aber wenn ich es richtig sehe, dann müsste auf diese Weise zunächst für alle Zeilen aller Fußnoten die dazugehörige Seite ermittelt werden. Das stelle ich mir recht zeitaufwendig vor.
Vielleicht hat jemand eine bessere Idee für dieses Problem: 1. Wie lässt sich zügig die erste Zeile des Fußnotenbereich eines Textrahmens ermitteln, auch wenn im Text des Textrahmen selbst keine Fußnote vorhanden ist. 2. Wie lässt sich zügig ermitteln, auf welcher Seite eine Fußnotenzeile steht.
Wie das Problem aussieht, darüber weiß ich ausreichend Bescheid. ;-) Mir ging es darum, zu verstehen, wie Eure Strategie ist. In Deiner Beispieldatei konnte ich bestätigt sehen, dass ein textverdrängender Textrahmen über den Fußnotenbereich gelegt werden soll. Noch nicht so richtig klar ist mir, wie die Position der Oberkante dieses Verdrängers ermittelt werden soll.
Inzwischen habe ich Dir ein Skript zum Test zukommen lassen.
'Wegen der etwas geänderten Silbentrennung …' – hier war ich ein bißchen im Vorteil: InDihyph trennt in CS5 genauso (gut) wie in CS4. In meinen nach CS4 rückkonvertierten Daten konnte ich keine Zeilenumbruchverschiebungen infolge geänderter Silbentrennung feststellen.
Ich habe ein einziges Buchprojekt in CS5 bis zum bitteren Ende durchgezogen. Hatte mir davon versprochen, doch noch eine praktikable und zufriedenstellende Lösung für dieses leidige Malheur zu finden. Leider war alle Mühe bislang erfolglos.
Aber vielleicht ist Deine Strategie tatsächlich ein erfolgversprechender Ansatz.
Viele Grüße Martin
[InDesign CS5]: Höhe des Fußnotenbereichs via JavaScript
Aber hilft das bei diesem Problem tatsächlich? Ja, ich glaube, Du hast mich auf einen guten Weg geführt.
Man muss eben manchmal negativ denken: – nicht 'wo beginnt mein Fußnotenbereich', – sondern 'wo endet mein Textbereich'.
Und bei der Lösung dieses leerer-Textrahmen-Problems spielt der variable Raum zwischen dem Text- und dem Fußnotenbereich wahrscheinlich gar keine Rolle. Bzw. es ist möglicherweise sogar entscheidend besser, die letzte Textzeile als Referenz zu nehmen, statt der ersten Fußnotenzeile.
Hab vielen Dank.
Viele Grüße Martin
[InDesign CS5]: Höhe des Fußnotenbereichs via JavaScript
Wenn ich es richtig verstanden habe, sollen Rahmen mit Konturenführung platziert werden, die (falls notwendig) die letzte Zeile des Lauftextes verdrängen, also ist doch die letzte Textzeile Referenz (die Rahmen mit Konturenführung sind ja für Fussnotentext ohne Auswirkung).
Aber wie soll das Skript wissen, auf welcher Seite die letzte Textzeile verdrängt werden muss? Dies muss ja nur auf problematischen Seiten geschehen. Oder ist die Idee, dass die Rahmen platziert werden und bei Bedarf manuell aufgezogen/verschoben werden, damit sie Text verdrängen?
Gruss, Marco
[InDesign CS5]: Höhe des Fußnotenbereichs via JavaScript
So weit ich verstanden habe, soll der verdrängende Textrahmen verhindern, dass InDesign sich bei einer nachträglichen Neuberechnung des Fußnotenbereichs wg. Berücksichtigung der Schusterjungen-Regel verhaspelt und auf Grund dieses gescheiterten Neuberechnungsprozesses den folgenden Textrahmen leert.
Deswegen soll das Anlegen der verdrängenden Textrahmen selbst nichts am status quo ändern, sondern helfen, diesen zu bewahren. Das setzt voraus, dass der Fehlerteufel vor dem Anlegen der verdrängenden Textrahmen noch nicht zugeschlagen hat. Das setzt aber auch voraus, dass der Umbruch vor dem Anlegen der verdrängenden Textrahmen im Wesentlichen abgeschlossen ist.
Der verdrängende Textrahmen ist als eine Art Stützstrumpf, wie man ihn zur Symptombehandlung von Krampfadern kennt, zu betrachten.
Hier der Entwurf eines solchen Stützstrumpfs für InDesign CS5 (vor Ausführung Cursor in Textabschnitt platzieren oder Textrahmen auswählen).
In der Zeile var space_tolerance = 1; wird eine kleine Toleranz für den Bereich zwischen Grundlinie der letzten Textzeile und Oberkante des verdrängenden Textrahmens definiert. Hier 1 Einheit der aktiven Maßeinheit. Damit soll verhindert werden, dass der verdrängende Textrahmen direkt an die Unterkante anstößt.
Das Skript legt eine neue Ebene 'Textverdränger' an, auf der später die verdrängenden Textrahmen angelegt werden. Diese Ebene ist nach Beendigung des Skripts gesperrt, damit man beim Versuch, Fußnotentext zu bearbeiten, nicht in dem verdrängenden Rahmen hängen bleibt.
Bei der nächsten Ausführung des Skripts wird diese Ebene mit allen sich auf ihr befindlichen Objekten gelöscht! Man sollte also darauf achten, dass auf dieser Ebene nichts anderes als diese verdrängenden Textrahmen erzeugt werden. Da die Ebene nach Beendigung des Skripts gesperrt ist, besteht die Gefahr erst dann, wenn ein Dussel die Sperrung aufhebt. ;-)
Im Skript enthalten ist eine Prüfung auf leere Textrahmen in den verketteten Textrahmen. Diese Prüfung ist der Anlage der Ebene und der verdrängenden Textrahmen vorgeschaltet. Wird das Skript fündig, bietet es an, die weitere Ausführung abzubrechen. Das Dokument bleibt in diesem Fall unverändert.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 24. Mär 2011, 11:53 geändert)