縦書きビューワ Ver.0.9.5.3を公開しました(空き量調整)

今回は、趣味に突っ走ったマイナーアップデートですが、ソーシャル系の機能に行く前に、足腰を鍛えることも大事と考えて。
最初のバージョンを公開したときから気になっていた、約物が連続する場合の空き量調整を実装しました。

縦書きビューワ@窓の杜(その2)

本日、窓の杜さんで「縦書きビューワ」が紹介されました。

 Android用の青空文庫ビューワーはいくつか公開されているが、今回は他アプリと連携でき、拡張性の高い「縦書きビューワ」を紹介したい。縦書き表示専用で、ルビ・傍点・禁則処理や挿絵の表示などに対応しており、単体でも青空文庫ビューワーとして十分な機能を備えている。さらに、今後普及することが見込まれる電子書籍の規格“EPUB”にも対応しており、EPUB形式の電子書籍を縦書き・挿絵つきで表示することが可能。

【杜のAndroid研究室】第2回:「縦書きビューワ」を使ってAndroid端末をどこでも読める“文庫本”に

上記の説明に続き、アプリの導入から快適な使い方まで、とても詳しく丁寧にご紹介いただいています(多謝)。初めての方や使い方に迷っている方には良い案内となり、既にお使いの方がご覧になっても、今まで使っていなかった機能の発見があるかもしれません。

挿絵表示について

HTMLタグによる挿絵指定について

<img src="001.png">形式の挿絵対応のご要望をいただいています。実は「縦書きビューワ」は、そうしたHTMLタグによる挿絵指定にも対応していて、ファイルの拡張子が.htmlや.xhtmlになっている場合に有効になります(拡張子が.txtである場合は、テキスト向けの処理のみを行うので、HTMLのタグはそのまま表示されます)。
お手数ですが、HTMLタグによる挿絵指定の場合は拡張子を.htmlに変更するか、HTMLタグを青空文庫テキスト形式の挿絵注記([#挿絵(001.png)入る]等) にご変換ください。

v0.9.5.4 (20100515)から、テキストファイル(拡張子.txt)の場合も、imgタグによる挿絵指定が有効になりました。

テキストファイル中の挿絵指定について

テキストファイル中の挿絵指定は、青空文庫の画像注記形式に対応しています。シンプルなケースとしては、例えば以下のような形です。

[#図(001.png)入る]

挿絵ではない注記と区別するため、全角丸括弧で画像ファイル名を指定した後に「入る」の文字列が必要です。
青空文庫txt形式」として青空文庫以外で公開されているテキストファイルのなかには、独自の記法で挿絵を指定しているものがあるようですが、対応対象のパターンを増やせば増やすほど、読み込み処理に時間がかかるようになってしまうため、現状では青空文庫純正の画像注記形式とimgタグによる指定のみを解釈するようになっています。

「青空プロバイダ」連携時の挿絵表示について

先日、「青空プロバイダ」の改訂最新版(ver1.8)が公開され、青空文庫サイトからテキストをダウンロードした際に画像ファイルも展開されるようになりました。これにより、現在は「青空プロバイダ」と連携した場合も挿絵表示が可能となっています。

主な変更点

約物が連続する場合の空き量を調整

約物(句点類、括弧類、中点類など)が連続する場合の空き量を改善しました。
百聞は一見に如かずで、スクリーンショットをご覧ください。
Before:これまでのバージョンでの表示です。
なんだかスカスカで間延びしている気がしませんか。


After:今回のバージョンでの表示です。
約物の間が調整されて締まりました。

普段パソコンや携帯電話で目にしている表示は、圧倒的に前者のような表示が多いと思いますから、もはや気にならない方もいらっしゃるかもしれません。電子機器では、「似たような字だから一つの字にまとめて扱おう」と制限された文字を使い、処理が厄介だからと前者のような文字の配置を目にすることが多いものです。
しかし、もはやコンピュータ創生期ではないのだから、より豊かで美しい表示がもっと増えても良いと思います。
パソコンに比べれば非力なAndroid端末で動作させるため、「縦書きビューワ」には組版処理が十分ではないところが多々ありますが(親文字列長がルビ文字列長未満の場合の処理など)、速度とのバランスを考慮した上で、より読みやすい表示ができればと考えています。

今回の変更で若干とは言え従来よりもページ計算に時間がかかるようになってしまったので、ゆくゆくはオプション設定として、組版処理レベルを「簡易」「標準」「高度」から選べるようにしても良いかもしれません。

Ver.0.9.5.6 (20100525)

  • XHTML/EPUB対応のささやかな改善
    • EPUBが複数のXHTMLファイルに分割されているときの見出し(簡易目次)表示を改善
      • 次のファイルを選択しやすいように、今読んでいるファイルに目印として"*"が表示されます。
      • 現在の簡易目次から分かりやすい目次への改善は、DRMなし日本語EPUBファイルの今後の普及度合いを見ながら考えます。
    • styleタグでCSSを定義しているXHTMLファイルの表示を改善
    • 一定のブロック要素タグの扱いを改善
    • ルビタグの扱いを改善
  • 青空文庫の新形式字下げ注記の一部に対応
  • メモリ使用量の若干の削減

【補足】
挿絵表示On/Off機能は、まだテストが十分ではないため、今回のバージョンアップでは見送り、今後のバージョンアップで対応したいと思います。
Android Marketでコメントをいただいたページめくりアニメーションは、以前ちょっと試してみたこともあるのですが、HT-03Aでは動きがカクカクして情けない感じだったので見送っています。
最近、Android Marketで「縦書きビューワ」が表示されなくなったというお問い合わせをいただくことがありますが、HTC Desireが発売されたときと同じように、GoogleがROMデータベースを更新するまでの一時的な現象の可能性もあり、こちらでも情報を集めつつ様子を見ているところです。また、非公式ROM(GoogleのROMデータベースにないもの)を導入した場合には、Marketに一部アプリが表示されない仕様となっているようです。

Ver.0.9.5.5 (20100516)

  • Xperiaにおける全画面/非全画面切り替え時のズレを修正
    • Xperiaでフォントサイズを大にすると、上記のズレのため文字抜けが発生してしまっていました。誠に申し訳ありません。
    • Xperiaは、同じ画面サイズの標準的なAndroid端末とはステータスバーの高さが異なることが原因でした。
    • 不具合報告をくださったみなさま、お陰さまで不具合を修正できました。ありがとうございました。

Ver.0.9.5.4 (20100515)

  • テキストファイル(拡張子.txt)の場合もimgタグを有効にするよう変更

Ver.0.9.5.3 (20100513)

  • 約物が連続する場合の空き量を調整

スクリーンショット

「FARCEに就て」(坂口安吾
4行目、終わり括弧と読点の間はベタ組み、読点と始めかぎ括弧の間は二分アキになっています。
また、3行目は通常通り行末全角ドリですが、4行目は行末二分ドリにして読点を追い込んでいます。
1行目は、2行目行頭の読点が行頭禁則にかかるため一文字追い出し。本来は、1行目最初の読点と句点の二分アキを四分アキに詰めて、1行目行末に読点を追い込む方が望ましいですが、現在のバージョンではそこまでの処理は行っていません。

(おまけ)Androidのデフォルトフォントについて

Androidのデフォルトフォント(DroidSansJapanese.ttf)でテキストを表示した場合、全角丸括弧の表示位置が妙だなと思っていましたが、謎が解けました。なんと、全角の丸括弧はデフォルトフォントに含まれていないのです!

まずは、どのような表示になるのか左図をご覧ください。HT-03Aでデフォルトフォントを用いて標準的にテキスト表示した例です。
画面下部の「使用許諾(以下」の部分を見ると、丸括弧の前後が同じように空いているのが分かります。
元のテキストでは「(IPA)」の丸括弧は半角、和文をはさむ丸括弧は全角になっています。


なぜ、こうなるのか。下図は、FontForgeを用いて「定義済みのグリフのみ表示」したものです。DroidSansJapanese.ttfの方には全角丸括弧は存在せず、DroidSansFallback.ttfに半角の丸括弧が存在していることが分かります。
DroidSansJapanese.ttf


DroidSansFallback.ttf


どうやら、Androidでは、全角の丸括弧を表示させるとき、DroidSansFallback.ttfに含まれる半角丸括弧を平体にして表示しているような雰囲気です。このため、全角の丸括弧であっても、前後が四分アキのように見え、和文よりも少し下がって見えるのだと思います。
小さなフォントファイルサイズで多くの文字を表現しているのはすごいけど、これはあんまりじゃないですか、Googleさん〜。
そんなこんなでデフォルトフォントを用いるといろいろ妙な表示になるので、「縦書きビューワ」をお使いの際には、ぜひ「IPA明朝」などのフォントを指定してくださいね!