🚀
WordをTEI/XMLに変換する
概要
WordをTEI/XMLファイルに変換する機会がありました。調べてみたところ、TEIGarage ConversionなどのTEI公式のツールに加えて、以下のTEI Publisherでの変換例が見つかりました。
上記の例では、Wordのスタイル情報を中心に、TEIのタグに変換しているようだったので、この方法を試してみました。なお今回は、TEI Publisherとは独立して使用することを目的として、python-docxライブラリを使用しました。
Wordファイル
以下のようなWordファイルを試作しました。いずれも仮ですが、「tei:persName」や「tei:warichu」といったスタイルを作成し、色などのスタイルを変更しました。スタイルを当てていくことで、簡易な構造化を行う仕組みです。
TEI/XMLへの変換
上記のようなWordファイルを入力として、スタイル情報を中心に、TEI/XMLに変換するスクリプトを作成しました。いずれpipなどを使って共有したいと考えています。
変換したTEI/XMLの例は以下です。まだまだ改善が必要ですが、validなTEI/XMLファイルに変換することができました。
<lb/>
<seg>
ワードの入力サンプル
</seg>
<lb/>
<lb/>
<seg type="dateline">
日付の行にスタイル「dateLine」を使用してください。先頭に2文字の空白が入ります。
</seg>
<lb/>
<seg type="personline">
名前の行にスタイル「personLine」を使用してください。末尾に2文字の空白が入ります。
</seg>
<lb/>
<seg>
<ruby>
<rb>
中村
</rb>
<rt>
なかむら
</rt>
<rt place="left">
さとる
</rt>
</ruby>
の形で両側ルビを記述します。緑色が左ルビです。
</seg>
<lb/>
<lb/>
<seg>
<seg type="red">
朱書
</seg> はスタイル「
<seg type="red">
red
</seg> 」を使用してください。
</seg>
<lb/>
<lb/>
<seg>
文字のサイズについては検討中です。
</seg>
<lb/>
<lb/>
<seg>
<persName>
中村覚
</persName> のような人名には、スタイル「
<persName>
persName
</persName> 」を使用してください。
</seg>
<lb/>
<lb/>
<seg>
割注は
<note type="割書">
あああああ
<milestone unit="wbr"/>
いいい
</note>
のように入力してください。正しく改行されるまで、全角スペースを入力してください。
<note type="割書">
こんな
<milestone unit="wbr"/>
スタイル
</note>
もあります。「こんな」の後に全角スペースを入れています。
</seg>
<lb/>
<lb/>
<seg type="dateline">
二〇二三年一月十七日
</seg>
<lb/>
<seg type="personline">
作成:中村覚
</seg>
<lb/>
別途開発中のTEI/XMLビューアで表示した例が以下です。<rt place="left">
や朱書などのスタイルがまだ適用できていませんが、人名や割書などは再現することができました。
まとめ
複雑な構造は難しいと思いますが、Wordで作成したテキストをある程度意図した形でTEI/XMLに変換できるようになれば、TEI/XMLの導入ハードルを軽減できるのではないかと思います。引き続き試行錯誤を試みたいと思います。
Discussion