whine: Trennung verhindern

Guten Morgen!

Ich gebe mittels xslt (fo) meine XML-Daten als pdf aus. Dabei habe ich Textpassagen, die sehr oft eine Abkürzung "U-F." oder "O-F." beinhalten. Diese sollen am Bindestrich nicht getrennt werden. Leider passiert das mit

  
<fo:block>  
 <xsl:value-of select="TEXTBESCHREIBUNG"/>  
</fo:block>  

sehr oft. Eine völlige Verhinderung (wäre auch akzeptabel) mit a la hyphenate="false" trennt mir am Bindestrich trotzdem.

Hat jemand eine Idee?

whine

  1. Hallo whine,

    sehr oft. Eine völlige Verhinderung (wäre auch akzeptabel) mit a la hyphenate="false" trennt mir am Bindestrich trotzdem.

    Falls FOP benutzt wird, mal die FOP XML Hyphenation Patterns hinzufügen.

    Probiere es mit hyphenation-remain-character-count="2" (Anzahl der Buchstaben, die mindestens vor dem Trennzeichen stehen), wobei das bereits der Vorgabewert sein sollte.

    Ansonsten könnte der Zeilenumbruch bereits durch die Transformation erzeugt werden, müsste dann im FO-Code sichtbar sein. Vielleicht hilft auch die Angabe von xml:lang="de" beim jeweiligen fo:block, um nach den deutschen Regeln (nicht) zu trennen.

    Grüße,
    Thomas

    1. Falls FOP benutzt wird, mal die FOP XML Hyphenation Patterns hinzufügen.

      Probiere es mit hyphenation-remain-character-count="2" (Anzahl der Buchstaben, die mindestens vor dem Trennzeichen stehen), wobei das bereits der Vorgabewert sein sollte.

      Danke Thomas,

      Ja, ich benutze FOP 1.1 und habe mir Hyphenation Patterns mal runtergeladen. Die fop-hyph.jar habe in mein /lib kopiert. Kriege ich irgendwie raus, ob die "greift"? Das hyphenation-remain-character-count="2" gehört in den fo:block, oder? Bisher wird immer noch umgebrochen.

      whine

      1. Hallo whine,

        Ja, ich benutze FOP 1.1 und habe mir Hyphenation Patterns mal runtergeladen. Die fop-hyph.jar habe in mein /lib kopiert. Kriege ich irgendwie raus, ob die "greift"?

        Notiere <fo:block hyphenate="true" xml:lang="de"></fo:block> (der hyphenate-Defaultwert ist false) und nimm fop-hyph.jar aus /lib heraus:

        --> Schwerwiegend: Couldn't find hyphenation pattern for lang="de".

        Das hyphenation-remain-character-count="2" gehört in den fo:block, oder? Bisher wird immer noch umgebrochen.

        Ja. Den problematischen Teil ggf. in <fo:inline hyphenate="false"></fo:inline> einschließen.

        Grüße,
        Thomas

        1. Notiere <fo:block hyphenate="true" xml:lang="de"></fo:block> (der hyphenate-Defaultwert ist false) und nimm fop-hyph.jar aus /lib heraus:

          Es scheint zu laufen, leider stört sich mein Bindestrich überhaupt nicht am hyphenation-remain-character-count="2". Wenn ich mit translate meine Bindestriche durch etwas anderes ersetze, wird nicht getrennt.

          1. @@whine:

            nuqneH

            Wenn ich mit translate meine Bindestriche durch etwas anderes ersetze, wird nicht getrennt.

            Durch U+2011 non-breaking hyphen beispielsweise?

            Qapla'

            PS. Als ich den das letzte Mal irgendwo einsetzen wollte, wurde er (im Browser) nicht wie ein Bindestrich, sondern wie ein Halbgeviertstrich (en dash) gerendert. :-( Also testen!

            --
            „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
            1. @@whine:

              nuqneH

              Wenn ich mit translate meine Bindestriche durch etwas anderes ersetze, wird nicht getrennt.

              Durch U+2011 non-breaking hyphen beispielsweise?

              Qapla'

              PS. Als ich den das letzte Mal irgendwo einsetzen wollte, wurde er (im Browser) nicht wie ein Bindestrich, sondern wie ein Halbgeviertstrich (en dash) gerendert. :-( Also testen!

              fop macht in das pdf mit translate ein # aus &#x2011; und ein U aus U+2011
              :-(

              1. Hallo whine,

                fop macht in das pdf mit translate ein # aus &#x2011; und ein U aus U+2011
                :-(

                Siehe FOP und Fonts.

                Antenna House stellt das Zeichen z. B. mittels font-family="'Lucida Sans Unicode'" dar.

                Grüße,
                Thomas

                1. Hallo whine,

                  fop macht in das pdf mit translate ein # aus &#x2011; und ein U aus U+2011
                  :-(

                  Siehe FOP und Fonts.

                  Antenna House stellt das Zeichen z. B. mittels font-family="'Lucida Sans Unicode'" dar.

                  Grüße,
                  Thomas

                  Vielen Dank für den Hinweis. Ich werde mich mal etwas genauer damit beschäftigen, bin aber leider an lizenzfreie SW gebunden (Antenna House hat in der lite-Version ein 300-Seiten-Limit). Dummerweise darf ich Dank Corporate Desingn auch nur eine besondere Schriftart ausgeben.

                  whine