digicademy / svsal

The School of Salamanca. Web Application
MIT License
16 stars 7 forks source link

<lb> wird in <note>ignoriert #95

Closed phoenix-mossimo closed 3 years ago

phoenix-mossimo commented 3 years ago

AW: S. 15 Z. 1 (fol. 10r) TenetJaso in note m - Fehlerhaft zusammengeschrieben.

phoenix-mossimo commented 3 years ago

Analyse:

Im XML File steht Tenet</expan></choice><lb break="yes" xml:id="W0004-00-0023-lb-m007"/>Jaso. Die <lb> werden vom Formatierer ignoriert und zwei Wörter zusammengeschlossen >>>> TenetJaso.

Das gleiche gilt für:

im selben note m.

Diese Tatsache ist bisher nicht aufgefallen, weil im Sal-TEI vor dem <lb> immer ein "newline" ( \n) steht, welcher vom Formatter als leerzeichen interpretiert wird. Ausnahmen sind <lb>s, die innerhalb einer <note> sind - sie stehen OHNE "newline" ( \n)

PDF

Lösung:

<xsl:template match="//tei:note//tei:lb[@break eq 'yes']">
        <fo:inline>
        <xsl:text xml:space="preserve"> </xsl:text>
        </fo:inline>
        <xsl:apply-templates/>                  
    </xsl:template>
awagner-mainz commented 3 years ago

Könnte man das auch so machen?:

<xsl:template match="tei:lb[not(@break eq 'no')]">
    <fo:inline>
        <xsl:text xml:space="preserve"> </xsl:text>
    </fo:inline>
</xsl:template>

Also von allen lbs Leerzeichen erzeugen lassen, außer dort, wo sie eben explizit unterbunden werden. (Ggf. müsste man überzählige Leerzeichen normalisieren, wenn man hier Leerzeichen erzeugt und in den Quelldateien auch "harte" Leerzeichen/Linebreaks vor den lbs stehen, aber ich vermute fast, dass das durch das XSL/FO sowieso gemacht wird.)

(Und braucht man das apply-templates am Schluss? lbs haben ja keine Kind-Elemente...

phoenix-mossimo commented 3 years ago

Ja, das geht auch. Implementiert.