**Eigenschaft:** ==== Zeilenlänge ==== \\ **Beschreibung:** Mit der Eigenschaft **Zeilenlänge** wird festgelegt, wie lang eine Zeile innerhalb eines Textblocks sein darf. Die Länge wird dabei als maximale Zeichen je Zeile angegeben. Die Angabe in Zeichen pro Zeile ist eine Folge des simplen Algorithmus zum Zeilenumbruch. ((Ein genauer Zeilenumbruch erfordert die Kenntnis aller Zeichenbreiten der verwendeten Schriften und die Auswertung der Kerningtabellen. Das ist zum einen sehr rechenintensiv, ist aber andererseits auch gar nicht realisierbar, weil für druckerresidente Schriften diese Informationen nicht vorliegen. Insofern ist das, was (p2f) hier macht, ein pragmatischer Kompromiss, der die meisten Anwendungsfälle zufriedenstellend realisieren kann.\\ \\ )) Bei proportionaler oder typographischer Schrift ist das natürlich relativ ungenau, weil die Zeichenbreiten ja variieren. In der Praxis liefert es aber trotzdem brauchbare Resultate. Evenutell muss man mit der Zeilenlänge etwas experimentieren. \\ \\ {{print2forms:objekte:formular:txtlen.png}} \\ \\ Der Standardwert 512 für diese Einstellung sollte garantieren, dass bei der Ausgabe eines Textblocks kein Zeilenumbruch vorgenommen wird. In der Mehrzahl der Fälle dürfte es auch so sein, dass der Textblock bereits bei seiner Definition per Hand umgebrochen wird - durch Einfügen von Zeilenvorschüben. Werden in einem Textblock aber variable Texte eingefügt, die aus dem Druckdatenstrom entnommen wurden, ist deren Länge bei manchen Anwendungsfällen sehr unterschiedlich. Bei manuellem Umbruch kommt es dann zu einem sehr unschönen Flattersatz mit weit eingeschnittenen oder herausragenden Zeilenenden. Aus diesem Grund bietet (p2f) im Textblock einen **automatischen Zeilenumbruch** an. Dabei wird zunächst der Text des Textblocks unter **Schablone** fortlaufend ohne manuelle Zeilenumbrüche eingegeben. Dieser Text wird beim Drucken im ersten Schritt erst einmal mit den variablen Texten aus den Druckdaten gefüllt, falls das notwendig sein sollte. Dadurch kann sich die Textlänge mitunter drastisch verändern. Mit Hilfe der Einstellung **Zeilenlänge** wird dann die Zone im Text ermittelt, an der ein Zeilenumbruch erforderlich wäre. Diese Zone wird dann vom Ende her nach Wortgrenzen durchsucht, an denen der Umbruch stattfinden könnte. Als Wortgrenze gewertet werden Leerzeichen ((Nur das mit dem Code Hex 20. Alle anderen Leerzeichen Hex 2000 bis Hex 200B gelten als Buchstabe. Das Leerzeichen Hex 80 wird natürlich gemäss seiner Semantik ebenfalls nicht umgebrochen.\\ \\ )), Binde- und Schrägstriche. Ausserdem gelten die mit dem Markup '''-'' markierten Silbengrenzen als potentielle Umbruchstellen. Ist eine Umbruchstelle gefunden, wird im Text an dieser Stelle ein Zeilenwechsel eingefügt, und mit dem verbleibenden Rest des Textes weiter umgebrochen. Das wiederholt sich bis zur letzten Textzeile, deren Länge dann kürzer oder gleich dem hier vorgegebenen Maximum ist. \\ \\ ** Hinweise: ** * Darauf, wie der Zeilenumbruch beim Textblockfeld wirkt, wird auch im Tip [[print2forms:tips:tip84|Formatierung in Textblöcken]] eingegangen. \\