Hallo,
Ich glaube, da liegt immer noch ein Missverständnis vor.
Normalerweise bin ich nicht so begrifstutzig ;-) aber ich habe glaube einen Brett vor dem Kopf.
»»Es ist so, dass eine ausgegebene Adresse auf eine Zeile passen kann, sie kann aber auch bis zu drei Zeilen benötigen, je nach Länge. Wäre jede Adresse nur eine Zeile lang, wären die Spalten ja unten jeweils bis zum Rand ausgefüllt.
spalte 1 spalte 2 spalte 3
----------------- ---------------- ------------------
1 | adressse | adresse | adresse |
2 | | in drei | |
3 | | zeilen | |
----------------- ---------------- ------------------
1 | adressse | adresse | adresse |
2 | | | in zwei zeile |
3 | | | |
----------------- ---------------- ------------------
Ich möchte nun aber verhindern, dass eine mehrzeilige Adresse am Ende einer Spalte auseinandergerissen wird, wenn der Platz nicht reicht. Die Adresse soll also zusammengehalten werden und wird damit automatisch auf die nächste Spalte umbrochen.
Wenn ich dich jetzt richtig verstehe solltest du das Attribut
»keep-with-next.within-column="always"« verwenden. Dies kann bei
"block-level formatting objects, inline formatting objects, fo:list-item, and fo:table-row" benüzt werden.
»»Dadurch bleiben aber ein oder zwei Zeilen am Ende der Spalte leer. Der Text in der Spalte soll nun vertikal so ausgedehnt werden, dass diese Leerzeilen ausgefüllt werden. Eben Blocksatz, wie ich das auch z.B. in QuarkXPress machen kann.
Das verstehe ich wiederum leider nicht. (Ich kann mir es visuell nicht vorstellen was du meinst) Wenn der Text nur eine Zeile in Ansprich nimmt, nimmt es eben nur eine Zeile in Anspruch.
Du kannst den TExt entweder nach unten ausrichten, oder mit "word-spacing" oder "letter-spacing" spielen.
Es tut mir leid, ich verstehe das Problem noch immer nicht.
Was funktioniert an deinem Template nicht?Das Template funktioniert schon. Ich suchte nur nach einer Möglichkeit abzufragen, ob mit dem Ausgeben des aktuellen Datensatzes gerade eine neue Spalte begonnen wurde. Ich möchte diese IF-Schleife um eben diese Abfrage ergänzen, da die erste Adresse eine neuen Spalte _immer_ mit ausgeschriebenen Nachnamen erfolgen soll.
<xsl:when test=". = preceding::nachname" and (...AbfrageNeueSpalte...)>
Ich glaube zu verstehen was du meinst.
Nein, das ist nicht möglich. Bzw. du müsstest sehr vieles ausrechnen, angefangen von der noch zur Verfügung stehenden Platzes in der Seite, in der Spalte, Textlänge und das ganze versuchen in einer Variable ausrechenen, das geht dann deshalb nicht, weil du eigentich den Transfomationsprozess sebst überwachen und dann in diesem Prozess aktiv eingreifen müsstest.
Was aber trotzdem und immer noch davon ausgeht, dass innerhalb von einem <name>-Element mehrere <nachname>-Elemente vorkommen können.
Es kommt auf jeden Fall nur eines vor.
Das ist die Abfrage falsch.
Grüße
Thomas