カテゴリー「絶版100冊」の14件の記事

新潮文庫の絶版100冊をテキストファイルにしたり,青空文庫リーダで読める形に整形したり.

2012年4月 2日 (月)

新潮文庫の絶版100冊 テキスト化と青空文庫リーダ対応 まとめ

表題について記事を過去に何本か不定期不規則に書き散らして放置してあったんだけど,先日,当ブログのページ別アクセス統計を観てたら意外なことに一番アクセスが多いのがこの話題らしい事を発見した.

極めて限定的な対象,極めて私的な用途,極めて怪しい動き.であるにも関わらず世界の果ての名も知れない誰かが検索エンジンでここまで漂着してきたのかと思うと感慨ひとしお.
ろくにバージョン管理もしてないし,まとまった記事を順に読む手段も無いブログシステムだから検索して当ブログに飛んで来た人はさぞかし雑音の海の中で苦労したと思う.お手数お掛けしてます.

けど,私も横着者だから読む人の立場に立った読みやすい記事とかを新たに起こす気は無い.面倒だから.

で,せめて関連記事にちゃんとしたカテゴリ名を付加しておくことにした.
「PC関連」──従前.
「絶版100冊」──これ.
これで多少は探し物が見つけやすくなることを期待するです.

| | コメント (2) | トラックバック (0)

2011年11月19日 (土)

新潮文庫の絶版100冊の挿絵とApple QuickTime

disebkでこれまでTEXTブロックを抜き出して,とりあえず文字の文章として読めるところまではなんとかなった.
で,今,ちょっと脇道にそれて挿絵をなんとか抜き出してみようと試行錯誤してる.
絶版100冊には,BOOKディレクトリに各種EBKファイルと一緒に,ビーグル号航海記と収容所群島の挿絵がPICTファイルとして雑然と紛れ込んでいる.
PICT形式のファイルはApple由来の古典的なフォーマットだそうで,Windows文化圏ではろくなブラウザソフトが無い.ようだ.
というのは,QT32以外ではsusieプラグインが見つかったけど,ほとんどのファイルが表示不能だった.(幾つかは表示できるのが悩ましい)
結局,フリーソフトをさんざん探し回ってとうとう諦めた.
しかたなく,apple製QuickTime7をインストールしたところ,やっと全てのPICTファイル画像を拝むことができた.

で,disebkの話に戻る.
PICTイメージは*.ebkの中にも埋もれている.
ただし,ファイル先頭に必要な512バイトのヘッダ(全部0)が欠落してるんで,単体のファイルとして抽出するにはそれを補っておく必要がある.
とりあえず試したのは
グーテンベルグプロジェクトから入手できるサンプル版シャーロックホームズの冒険「青い紅玉」.もちろんここではエキスパンドブック版で.
disebkで全ブロックを抽出してみると「青い紅玉」には,BMPとPICTの2種類の画像が埋め込まれていた.
BMPファイルは切り出ししたそのまま,ごく普通に表示できる.グーテンベルグのロゴと文庫の表紙挿絵っぽい.
PICTファイルもdisebkで先に書いたように512バイトのヘッダを付けるようにしたんでQuickTime Picture viewerで表示できる.2枚の挿絵がQT32環境で表示されるのと同じ画像として抽出できる事を確認した.


と,まあ.ここまでは良し.

さて,絶版100冊から改めてPICTブロックの抽出をやりなおしてみた.
各EBKファイルには,たいてい一つのPICTブロックがあって,サイズは共通して560kB.640x480くらいのサイズ.たぶん,QT32で読むときの背景画像かなあと思いつつ,さっそくQuickTimeで開いてみる.と,

「適切なグラフィックインポーターが見つかりませんでした」

だってさ.
なんだよそれ.
まだ何か抜かりがあるのかなあ,と何気なくついさっきまで表示できてた元から独立ファイルとしてあった絶版100冊BOOKディレクトリ内のPICTファイルを試してみた.

「適切なグラフィックインポーターが見つかりませんでした」

同じ.
なにそれ.

ところが.「青い紅玉」の抽出PICTファイルは表示できる.
一体何が気に入らないのかのー.

腹立たしいからAuickTimeは綺麗にばっさりアンインストール.これだとQT32でEBKが開けなくなるんかな,と思ったけど,試してみたら普通に開けて普通に挿絵も表紙も表示された.まあ,静止画だけならQuickTimeは無くても不自由しないってことか.
で,替わりになにか改めて探してみたら XnView というのがあった.あんまりごちゃごちゃした画像ビュアは好みでないんだけど,まあ,とりあえずこれでもいいや.
で,表示できたの?

表示出来なかったのも含めて,PICTファイルは全部表示できた.
で,その内容は?
ほぼ全部,表紙の画像だけだった.挿絵じゃあないな,これ.

ついでに言うと,THUMセクションというのがあって,こいつも中身はPICTフォーマットらしい.
抽出しただけでは拡張子がTHUMになる.んで,拡張子を手でpictに変更してビュアで表示させてみた.
表紙のサムネイルだった.しかも,なぜか色が左右にズレてて,画がぼけぼけ.
そうでないやつもあったけどね.(なんで「そうでないやつも」存在するんだろ.ほんとに嫌になってきた)

やれやれ.
なんかもう,疲れたな.

なにはともあれ.
disebkの今日のスナップショット:
disebk6_111119a.lzhをダウンロード
前述の変更の他,抽出するファイル名の付け方を少し変えた.

| | コメント (0) | トラックバック (0)

2011年11月10日 (木)

新潮文庫の絶版100冊を青空文庫リーダーで(2)

前回とりあえずお試し気分でAndroidスマートフォン上の青空文庫リーダに流し込める形式に手直ししてみたんだが,実際にスマフォを持ち歩いて暇つぶしに読んでみるといろいろアラが見えてきた.
で,またつまみ食い程度に手直し.

・特殊記号の一部をPCやスマフォで読める程度の文字に置き換えた.
 けど,漢文の「レ点」等は却って文章が意味不明になっちゃう….
 (絶版100冊は,自前で4種類のフォントを持ってる:
 1.通常の文字……問題なし.
 2.特殊記号……とりあえず代用可能な文字で置き換えた.
 3.難しい文字……えーととととと.現在解読中.
 4.もっと難しい文字……えーととととと.難しすぎて対処不能.
 
・見出しの一覧やジャンプ機能が使えるリーダーの為に整形書式をちょっと変えてみた.
 (けど,書籍によっては無駄な見出しが一覧に出てきたりする.どういう仕様なのかよくわからん)
・その都合でインデントの書式もちょっと変えた.

・改ページを今まで消去してたのを,それなりに有効にしてみた.
 リーダーによっては改ページがほとんど無意味なのもあるんだけどね.

・ルビの開始位置を常に明示した.
 青空仕様だとフリガナの場合は開始位置が自明な場合は省略する事になってるらしいけど,傍点の場合やら自明かどうかを調べるのが面倒だから.
・そのついでに幾つかの誤変換があったのを修正してみた.

・えーと.他になにかあったっけ.まあ,いろいろ.

ま,いいや.
使い方は前バージョンと同じだから省略.
text2ebktxt12_111110.lzhをダウンロード

| | コメント (0) | トラックバック (0)

2011年11月 3日 (木)

新潮文庫の絶版100冊を青空文庫リーダーで

携帯電話をスマートフォン SHARP SH-13C に変更した.
いろいろ遊べて便利だ.
今まで使っていたいわゆる「ケータイ」は電話すること以外に全く使う気がしなかったんだが,androidになってとたんに出来ることが増えた事が素直に嬉しい.
さっそく,持ち歩きたいデータをスマフォにいろいろ詰め込んで試して観てるところだ.

その一つに,表題のテキストファイルがある.
スマフォでテキストリーダを探してみたら,青空文庫用のテキスト縦書きリーダが幾つか見つかった.
で,縦書きリーダでこれまでテキスト変換していた絶版100冊を読めればいいかも,とごく自然に思いついた次第.
実際に読んでみるとルビの扱いがまず気になった.これまでは純粋なテキストエディタで読んでいたからルビや傍点が本文に混ざっているのが当たり前でそれほど気にはならなかったけれど,青空文庫の幾つかの文庫ファイルを読んでいると
「やっぱルビはルビらしく表示された方が嬉しいな」
という気分になった.贅沢なものだ.
で,数年の間放置していた変換スクリプトをちょこちょこ手直しして青空文庫仕様に変更してみた.

あくまでも,「ちょこちょこ」とした変更で対応できる範囲でしかない.が,まあ,気分はかなり良い.

使い方:
c:\>perl Text2EBKtxt5.perl -a 入力ファイル

「-a」オプションがキモ."Aozora" の意味.
入力ファイル(絶版100冊ファイルからTEXTブロックを一括抜きだしした物)を与えて,拡張子txtの青空文庫仕様のテキストファイルを出力する.

text2ebktxt5_111103.lzhをダウンロード

| | コメント (0) | トラックバック (0)

2009年5月18日 (月)

エキスパンドブック(*.ebk) 豆だ.豆をなんとかしろ.

調子よく読み進んでたら「謄」「豆」なんて文字が唐突に目に飛び込んで来る.
外字か特殊記号なんだろうなあとぼんやりとは想像がつく.

秀英太明朝KIGOとかGAIJIなるフォントが時々使われてるのは前から判ってたけど,実際にどんな文字に使われてるのかまでは面倒であんまり調べてなかった.
で,外字は本当にどうしようも無いんだけど,KIGOに付いてはざっくりなんとかなるんじゃないのかと思い至った.
もっとも.
QT32をインストールしたら一緒に紛れ込んで来るこれらのフォント,文字コード表で開いてみたらけっこうたくさんの文字数が入ってる.
あぁ,こいつら全部を置き換えるか代替するのか…
と放置してた次第.
で,ふと思い立ってこのフォントが使われてる箇所をピックアップしてみた.
ら.意外なことに実際に使われている文字はほんの数個しかなかった.

というわけで,何かかっこよく置換テーブルでも作ってみるかと初めてみたものの,結局めんどくさくなって全数網羅的な泥臭い対策で済ますことにした.
いいや,どーせこんなもん,一度変換出来てしまえばそれまでの道具なんだし.

Text2EBKtxt4_090518.lzh (7.4K)

| | コメント (0) | トラックバック (0)

2009年5月 8日 (金)

エキスパンドブック(*.ebk) 改行コードが…

はあ.1冊読み進む毎に何かどこかおかしいのが見つかるよ….
今度は.丹下左膳(160401.ebl)で引っかかった.
他のebkで0d0a+0aでマヌケになるやつを場当たり的にやっつけてたんだけれど,今度はそのあおりで空くべき行が詰まってしまうというのが見つかった.

くやしい.

というわけで,やりたくなかったけどperlでちゃんと
$/=\x0d\x0a;
とやってから改行コードの掃除をすることにした.
このアオリで,TEXTブロック抜きだしツールの中で使ってる改行コードも一部変更.

ついでだから,なんとなく中途半端だったインデントをちょっとだけ手直し.

disebk5_090508.lzh (25.9K)

#ところで,今何冊目? やっと2冊目. 先は遠いなあ….

| | コメント (0) | トラックバック (0)

2009年5月 6日 (水)

エキスパンドブック(*.ebk) 落ち穂拾い

やっと落ち着いて読める,と思ったのもつかのま.

絶版100冊の中の「生活の探求(160201.ebk)」で変なのが見つかった.
本文中,第二部,十一節あたりから妙に行間がマヌケになってしまっている.
最初はそういう効果を狙ったレイアウトなのかと思っていたけど,あまりに変なんでしょうがないからQT32で確認してみた.
ら,まあ,当たり前なんだろうけど,特に変な空行は観られない.

ebkの中身を確認してみたら,通常の改行コード0d0aに続いて0aが入ってる.
何故か本文の途中から突然に,だ.
もういい加減,本当にイヤになってきた.どうしてこうもダメダメなんだ?

面倒だから0aだけ全部消してみた.
ら,めちゃくちゃになった. まあ,そらそうだろうな….
単純に消せば良いってわけでもないらしい.

そんなわけで,単独の0a全てが邪魔者というわけでは無い模様.ますますハラが立ってきた.

んで,0d0aで区切られたレコード先頭に0aが現れた時だけ削除するようにText2EbkTxt.perlを変更した.

──ここに書いたのは試行錯誤の極々ほんの一部.なんだかPerlのせいなんだからWin32環境のせいなんだか,単にスクリプトの書き方の問題なんだか判らなくなってきた.
とにかく,スナップショット:Text2EBKtxt2_090506.lzh (6.0K)

| | コメント (0) | トラックバック (0)

2009年4月28日 (火)

エキスパンドブック(*.ebk) テキスト化 やっと順番に読めた

思えば長い闘いの日々であった….
やっと,文章順の乱丁落丁は解決できた模様.
(外字や欧文はまだダメ.UNICODE限定でならなんとかなりそうだけれど,SHIFT-JIS出力だとなあ…)

これでやっと起動しただけで負荷100%になっちゃったり,検索しても存在するはずの文字列を見つけてくれなかったり,勝手にebk内容を書き換え更新しちゃうような巫山戯た動きをする専用リーダとおさらばできる……かも.


DisEbk_090428.lzh (25.0K)
現時点でちょっと以下に整理:

「新潮文庫の絶版100冊」と青空文庫「スレイヴ」で動作確認.

■DisEbk.exe
EBKファイルを入力して,テキスト部分だけとか,その他の構成要素を個々のファイルに切り出す.
基本的には切り出しと(-tオプションの場合のみ,文章順序の並び換え)が目的なんで,文字修飾や脚注番号などの整形処理は後述するperlスクリプトを使う.

細かい事は省略するが,かいつまんで使い方を例示しておく.

例)「スレイブ(slave.ebk)」からテキスト部分を抽出して,「slave.ebk.TEXT」という単一ファイルに出力する.

d:\disebk.exe -t slave.ebk

-tオプションを付けた場合,次の順序でテキスト出力する.
1. 脚注(内容が空でも見出し行は挿入する)
2.目次
3.本文(目次に出現する順序)


例)「化石の森(161201.ebk)からTEXTブロックだけを切り出して「161201.ebk.TEXT_xx」というファイルに出力する.

d:\disebk.exe -TEXT 161201.ebk

ここでは"TEXT"を例として挙げてるけれど,他にも多くの構成要素がある.
また,TEXTブロックのように同一名称で複数ブロックが存在する場合は「TEXT_01」「TEXT_02」…という感じの拡張子で個別にファイル出力する.
この場合のファイル名は必ずしも本文の正しい並びにはなっていない事に注意.

■Text2EbkTxt.perl
DisEbk.exe -t で作った「*.TEXT」を入力して,テキストエディタで読める形に整形する.
(Perl5.xxが必要.また,*.TEXTファイルのある場所に作業ファイルを作るんで,書き込み可能な場所で実行する必要がある)

例)「収容所群島(170601.ebk.TEXT)」を入力して「170601.ebk.EbkTxt」ファイルを出力する.

d:\perl Text2EbkTxt.perl 170601.ebk.TEXT

例)ルビのうち,傍点(「丶」や「・」)を抑止する.

d:\perl Text2EbkTxt.perl -b 170601.ebk.TEXT

例)全てのルビを抑止する.

d:\perl Text2EbkTxt.perl -r 170601.ebk.TEXT

■確認済みの不具合^H^H^H仕様
 ・見出しは頭出しを目的として「▼」を挿入している.
 ・TEXTブロックの区切りに「■なんちゃら■」を挿入している.(文章順確認と脚注番号処理用)
 ・脚注に連番を振っている.(ただし,ずれることがある)
 ・ルビは連続して現れた場合,一つにまとめている.
  例) 牡丹(ぼた)餅(もち) → 「牡丹餅(ぼたもち」
 ・ただし,ルビ処理はまだ不満たくさん.
 ・欧文文字は無視.化けるに任せてる.
 ・外字は無視.化けるに任せてる.
 ・ルビのタグが「QR漢字TrかんじQr」のように並んでいない場合,変換に失敗する.
 ・Receiver.ebk(電子ブックリーダーにバンドル)に入ってるような妙なタグは殆ど無視.
 ・その他,一般的なテキストエディタで読むのに不要と思われるタグや,文章として抽出するのが面倒そうなもの(TEXTブロック以外にところどころ含まれている短文等)はばっさり省略している.

| | コメント (0) | トラックバック (0)

2009年4月27日 (月)

新潮文庫の絶版100冊 くやしい.まだ不明多数

絶版100冊を読破すべく,その足がかりとして進めてきた
電子ブック(*.ebk)テキスト化ツール DisEbk, Text2EbkTxt.perl
…なんだけど,まだ完全に収録ebkのテキスト化に成功できてない.

ルビだの脚注だの見出しだのフォントだのなんだはもう,文章がすらすら読めればもうどうでもいいや,
本文だの解説だの脚注だのだけが,完全に正しく乱丁落丁無しで読めさえすれば….
(泣).
たったそれだけの事が今だにできない.

…けど,くじけず今日のスナップショット.

・ルビの吐き出しを選択できるようにした.
・傍点「丶」だけ抑止できるようにした.
・その他,読んでてヘンだったところを多数修正.
・ebkから指定のブロックだけ抜きだしできるようにした.

・今だに問題多数:
 ・幾つかのebkで本文を完全に抜き出せていない.
  (抜きだし出来てる本文の順序は正しいんだけど,目次から漏れてる部分があって,これをどこに挟めばいいのかがよくわからん)
 ・外字,外国語文字
  (現在んとこ,一切無視)

DisEbk_090427.lzh (23.8K)
  

| | コメント (0) | トラックバック (0)

2009年4月23日 (木)

新潮文庫の絶版100冊 まだやってた

まだ100冊全部読めてない….

読み進むのが遅い理由は読みにくいからだ.そう思うわけです.
で,とりあえず読書は横に置いておいて,テキスト整形をごそごそやり直してみた.

■DisEbk.exe (ebk2txt.exeから改名)
・ebkファイルからテキスト抽出する時,各ブロックを個別に全部抜き出すか,TEXTブロックだけを1ファイルで抜き出すか選べるようにした.
TEXTブロックだけを選んだ場合,元のブロックのヘッダ番号を間に挟んでおくようにした.

■TEXT2_utf8.perl (TEXT.perlから改名)
・Perlスクリプトで脚注番号をちゃんと振るようにした.
・TEXTブロックのヘッダ情報をところどころに挟んだ.
・制御コードの整形書式の微妙な変更.
・外字,外国語は依然として放置.

対して進歩してない….

-----例-----
(1)*.ebkから平文テキストファイル(制御コード付き)に抜き出す.
 disebk.exe 160201.ebk と実行すると,
 160201.ebk.TEXT というのが出来る.

 for %i in (*.ebk) do disebk %1 等とまとめて作ってしまうのが楽.
 (アプリケーションエラーで落ちてしまうファイルがあるけど,細かい事は気にしない)

(2)制御コードを掃除,整形する.
 perl TEXT_utf8.perl 160201.ebk.TEXT と実行すると
 1060201.ebk.EBKTEXT というのが出来る.

 for %i in (*.ebk.TEXT) do disebk %1 等とまとめて作ってしまうのが楽.

DisEbk_090423.lzh (20.9K)

| | コメント (0) | トラックバック (0)