| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

txt2xhtmlの問題点と対処

Page history last edited by michio TOMITA 13 years, 6 months ago

テキスト版をXHTML版に変換するプログラムの問題点と対処についてまとめていきます。

変換プログラムは、「青空文庫 組版案内」の「変換してみる」で利用でき、「自分のPCで変換」からダウンロードできます。

 

0.2.0の修正

 

以下の変更を予定しています。

ご迷惑をかけると思います。ごめんなさい。

 

▽バグ修正

 

バグの修正は完了しました。(2010年10月26日現在)

11月1日公開分からは、修正済みプログラムで作ったXHTML版を公開していきます。

 

その際、目次生成スクリプト(contents.js)も、新しい見出しのタグ付けに対応したものに差し替えます。

本年5月から公開したファイルのうち、見出しをもつものの目次が動かなくなりますが、順次、作り直していきます。(2010年10月27日、富田)

 

▼metadataクラスの新設

 

ファイル冒頭のbody開始直後、main_textに入る前の作品名、著者名等を、新設したmetadataでクラス指定して、bodyに直接改行タグを書くことを回避。

 

▼見出しタグの入れ子の修正

 

<a><hn>...</hn></a>となっていたものを、<hn><a>...</a></hn>に修正。

 

▼midashi_anchor中のnameをidに置き換え

 

name属性を、id属性に置き換え。

 

▼目次生成プログラムの変更

 

見出しタグの入れ子の修正に対応する形で、目次生成スクリプト(contents.js)を変更。 → 新旧のプログラムを併置するのではなく、置き換えを予定。これによって、旧ファイルでは目次が生成されなくなるが、作り直しで対処する。

 

▼改行タグのバグ修正

 

ぶら下げ注記から、直接、字下げ注記に移行する部分の最初の段落の末に、改行タグが入らない問題を修正。

 

▼被ルビ文字の開始点を示す「|」のバグ修正

 

ファイル末の、bibliographical_informationと注記内の「|」が、変換後も残る問題を修正。

 

▼<、>、&、"のエスケープ

 

本文中の<、>、&、"を、代替文字列に置き換え。(ただし、アクセント分解中の&をのぞく。)

 

▼alt中の文字のへのタグ付けを停止

 

画像注記中の外字注記やアクセント分解等へのタグ付けを停止。

 

▽追加要素

 

以下の要素のうち、開始/終了型への対応については、記法が確定した段階で進めます。

クラス名の追加については、新しい要素なので、広く意見を求めてから採否、書き方を決めたいと思います。

 

▼ルビタグに変換される注記の開始/終了型に対応

 

新設予定の開始/終了型注記のタグ変換機能を盛り込む。

現在の記法案は、以下のとおり。

 

[#(左に)注記付き]……[#(左に)「○○」の注記付き終わり]

 

▼ルビタグへのクラス名の追加

 

振り仮名として使われているか、注釈かというルビの役割で、テキスト版の書き方は《》と注記に分けてある。ところがXHTMLに変換した際は、同じタグ付けとなって区別がつかない。

 

そこで、例えば《》を変換したものには「furigana」、注記を変換したものには「chushaku」といったクラス名を与えて区別し、音声変換時に親文字を読むか読まないか選べるようにする可能性も念頭において、構造化しておく。

 

振り仮名 <ruby class="furigana"><rb>所詮</rb><rp>(</rp><rt>しょせん</rt><rp>)</rp></ruby>

注釈 <ruby class="chushaku"><rb>所詮</rb><rp>(</rp><rt>結局</rt><rp>)</rp></ruby>

 

 

↓ここから2SC1815J追記 2010/11/09

 

江戸期から明治初期によく見られた両ルビの場合はどうしますか。

両ルビで、右側に読み、左側に意味というケースは青空文庫の入力対象となる書籍でも見られると思います。

 

例えば、岡島先生のサイト http://www.let.osaka-u.ac.jp/~okajima/saikoku/ にある『西国立志編』に見られるような、


といった両ルビは、青空文庫の注記記法では次のようにテキスト化されるでしょう。

 

薦擧《センキヨ》[#「薦擧」の左に「スヽメアゲ」のルビ]

 

これは、XHTML Complex ruby (http://www.w3.org/TR/ruby/#complex) を用いると

 

<ruby>
  <rbc>
    <rb>薦</rb>
    <rb>擧</rb>
  </rbc>
  <rtc>
    <rt>セン</rt>
    <rt>キヨ</rt>
  </rtc>
  <rtc>
    <rt rbspan="2">スヽメアゲ</rt>
  </rtc>
</ruby>

 

としてマークアップできますが、この場合は、rubyタグではなく、rtcタグにclass名を付与しないと区別ができません。

例えば次のようになると思います。

 

<ruby>
  <rbc>
    <rb>薦</rb>
    <rb>擧</rb>
  </rbc>
  <rtc class="transcription">
    <rt>セン</rt>
    <rt>キヨ</rt>
  </rtc>
  <rtc class="annotation">
    <rt rbspan="2">スヽメアゲ</rt>
  </rtc>
</ruby>

 

もっとも、http://kumihan.aozora.gr.jp/etc.html によると、

現行のtxt2xhtmlでは、Complex rubyは用いず、Simple rubyでマークアップしているとのことなので、次のようにXHTML化されるでしょう。

 

<ruby><rb>薦擧</rb><rp>(< /rp><rt>センキヨ</rt><rp>)</rp>< /ruby><span class="notes">[#「薦擧」の左に「スヽメアゲ」のルビ]</span>

 

http://kumihan.aozora.gr.jp/etc.html に例が挙がっているように、注記で記述されたもので左側につくものは、class名を"notes"としています。

 

もしclass名を付与することにしたとして、
振り仮名のclass名を"furigana"とするのか、"transcription"とするのか、"reading"とするのか、
注釈のclass名を"chushaku"とするのか、"annotation"とするのか、"notes"とするのか、
Complex rubyの場合は本当に考えなくて良いのか、考えるなら(Complex rubyが廃止された)HTML5 Rubyになったときにはどうするかなど、
検討課題はいろいろあります。


なお、総務省の「平成22年度 新ICT利活用サービス創出支援事業」で採択された
「アクセシビリティを考慮した電子出版サービスの実現」 http://www.soumu.go.jp/main_content/000086457.pdf では、
「音声読み上げ対応テキスト表記仕様書及び音声読み上げ対応電子出版制作ガイドラインを策定する。」とされており、
そちらの動向も気になるところです。

 

以上から、必ずしも急いで対応する必要がないのであれば、関連する動きの様子を見つつ汎用性/互換性のある仕様を考えていくこととして、現時点で「注記一覧」と「組版案内」の改訂を進めてはいかがでしょうか。

 

↓↓ここから富田追記 2010年11月14日

 

txt2xhtmlには当初、Complex rubyのタグ付け盛り込みました。

ところが、テスト当時のIEであまりに表示が乱れるので、当面の採用をあきらめて、コメントアウトしました。(組版案内 http://kumihan.aozora.gr.jp/ から引き落とせるプログラムで、確認してもらえます。)

 

使う気満々たったし、その後も意欲を失ったわけではないので、ご指摘の通り、rubyタグにclass名を入れるわけにはいきません。意識せずに書いたのは、不注意でした。

 

テキスト版では、どちら側についているかを、振り仮名か注釈かも含めて、分けて入力する。

XHTMLに変換する際は、ブラウザーで大きな表示の乱れが生じることがなくなれば、Complex rubyで両側にタグ付けし、クラス名で、振り仮名と注釈を区別する。

その他のファイルフォーマットに変換することにもしなれば、その制約条件に合わせたタグ付けを、テキスト版からの変換時に行うことにする。

 

そのように考えれば、XHTML版の枠組み内での仕様変更ということで、今、話を進めても良いのではという気もします。

ただその場合も、Complex rubyと、振り仮名/注釈のクラス名の採用という二つの要素があるので、変更のタイミングの吟味が必要ですね。

同時に変更したいのは山々だけれど、クラス名採用もゴドー待ちになる可能性もあり、とすれば、先行させる手もあると思うのですが。

 

↑↑ここで富田追記終わり。

 

↑ここで追記終わり

Comments (0)

You don't have permission to comment on this page.