Hallo Skripter,
in einem Katalog sind immer wieder Bilder im Text verankert, die nicht spaltenbreit sind, es läuft also Text an einer Seite.
Die Texte haben immer die gleiche Typo, die Bilder schließen oben mit der Versaloberkante der ersten Zeile im Absatz ab; die Bildhöhe ist variabel, solange die Unterkante auf der Schriftlinie einer der nachfolgenden Zeilen steht.
Um die Bildhöhe komfortabel ändern zu können (je nach Umbrucherfordernissen und Bildinhalt) habe ich ein Skript geschrieben, dass die aktuelle Bildhöhe ermittelt, die Versalhöhe der Textschrift davon abzieht und den Rest durch den Zeilenabstand teilt (mit
div). Dabei sollte eigentlich ein glatter Wert herauskommen. Da aber die Rahmenunterkante etwas nach oben oder unten gezupft worden sein kann, habe ich auch den Rest ermittelt (mit
mod).
Die Rahmenhöhe ermittle ich aus den geometric bounds des Rahmens.
Die Versalhöhe und den Zeilenabstand habe ich als feste Werte in Variablen vorgegeben, was aber für mein Problem keine Rolle spielen dürfte.
So sieht der Teil des Skripts aus:
Meist klappt alles wunderbar, der Rest ist mal 0.0, mal 1.68753899743024E-14 oder ähnlich, also ganz weit weg vom Komma; oder der Rest ist 3.175 mit einer nicht angezeigten minimalen Abweichung und ergibt zusammen mit dem Ergebnis aus der div-Zeile die richtige Gesamtzeilenzahl. Mit diesen kleinen Ungenauigkeiten kann ich umgehen.
Jetzt gibt es aber auch den Fall, dass die div-Zeile z. B. bei einem 6 Zeilen hohen Rahmen 6 ergibt (ist ja auch in Ordnung) und die mod-Zeile 3.175. Dieser Fall tritt auf, ich konnte aber noch keine Logik dafür finden.
Kann mir da jemand auf die Sprünge helfen?