この問題は、TEI マークアップ (www.tei-c.org) を使用するテキスト ドキュメントの書式設定で発生します。それは私の XSLT/XPATH スキルを超えています。(XSLT/XPATH 1.0 のソリューションが必要です。)
<lb>
改行をマークするマークアップ要素 があります。属性を取ることができます@break
。の場合、出力を生成するときに と周囲のテキスト@break="no"
の間のスペースは無視されます。<lb>
そう
This little tea <lb break="no" />
pot, short and stout.
として理解されるべきである
This little teapot, short and stout.
つまり、「tea」の後のスペースと「pot」の前の改行は、出力ストリームでレンダリングされるべきではありません。
の前のスペースの場合<lb>
、これは機能します。
<xsl:template match="text()[following-sibling::*[1][self::lb[@break='no']]">
<!-- Do something about the space here. -->
</xsl:template>
の後の改行でも同様のことが機能します<lb>
。
わかった。しかし、これはよりトリッキーです:
This <emph>little <ref>tea </ref> </emph>
<lb break="no" />
pot, short and stout.
要素内のテキスト<ref>
は の兄弟ではなくなりました<lb>
。また、 の前のスペース、前</ref>
のスペース、前後</emph>
の改行は<lb>
すべて、出力ストリームから削除する必要があります。
どのように?