txt2sxwは、JIS X 0208/0213で符号化されたプレーンテキストを StarSuite/OpenOffice.org Writerのsxw形式に変換するプログラムです。 青空文庫形式のルビをWriterのル ビに変換することも可能です。
バージョン0.2を公開しました。(2005/05/28)
以下のソフトウェアが必要です。
前のバージョンがインストールされている場合は、txt2sxw.rbと template.sxwの双方のファイルを新しいバージョンのもので上書きしてくださ い。
txt2sxw.rb と template.sxw を同じディレクトリに置きます。 コマンドラインから以下のようにタイプして実行します。
$ ruby txt2sxw.rb euc-encoded-file.txt output.sxw
これで、EUCで符号化されたテキストファイルeuc-encoded-file.txtを sxw形式に変換してoutput.sxwに出力します。生成されたoutput.sxwをWriter で開いて読むことができます。
勿論、txt2sxw.rb を実行可能にして (chmod +x txt2sxw.rb)、パスの通った ディレクトリに置いておけば、以下のようにして実行できます (template.sxwをtxt2sxw.rbと同じディレクトリに置くのを忘れないでください)。
$ txt2sxw.rb euc-encoded-file.txt output.sxw
入力文字コードの指定は、-e を指定するとEUC-JISX0213、-s を指定 するとShift_JISX0213になります。デフォルトは -e です。 例えば、青空文庫の「蜘蛛の糸」をsxw形式にするには以下のようにします。
$ txt2sxw.rb -s kumonoito.txt kumonoito.sxw
こうして出来た kumonoito.sxw を StarSuite 8 Beta Writerで開くと以下の ようになります。
この画面では、「かんだた」と注釈のある語の「かん」にあたる漢字が、 JIS X 0213で追加された文字です (第三水準、87区71点)。
上記で得られた出力は、ルビが括弧の中に入っていて、お世辞にも読 みやすいとは言えません。そこで、txt2sxwでは、青空文庫形式のルビを Writerのルビに変換することができます。この機能は、実行時に -r オプショ ンを付けることで有効になります。なお、オプションを複数指定する際は「-s -r」のようにも「-sr」のようにひとまとめにしても書けます。
$ txt2sxw.rb -sr kumonoito.txt kumonoito.sxw
こうして出来た kumonoito.sxw を開くと、下図のようになります。
今度はルビが文字の上に振られています。ただし、ルビのある行と無 い行とで、行間が違ってしまっています。これはWriterの機能改善に期待しま しょう。
txt2sxwはデフォルトでStarSuite付属の「HG 明朝L Sun」フォントを 用います。しかし、StarSuiteをお使いの方以外ではこのフォントをお持ちの 方は少ないでしょう。そこで、このフォントに代えて、他のJIS X 0213対応フォ ントを用いるには、変換実行時に -f オプションを用います。例えば、 Windows XP のコマンドプロンプトからXANO明朝U32を指定して変換するには次のようにします。
> ruby txt2sxw.rb -srf XANO明朝U32 kumonoito.txt kumonoito.sxw
【技術的な注意: コマンドラインから渡すフォント名に 非ASCII文字を使った場合、WindowsではSJISとして解釈し、それ以外のOSで はEUCとして解釈しています。】
私は以下の環境で動作確認しています: VineLinux 3.1 + Ruby 1.8.2 + StarSuite 8 Beta
Windows XP SP2 上でCygwinを使って少し試してみました。動くようです。