コンピュータ

CSV Importerを使ってみた

MAMP上でのWordPressで,簡易データベース構築の実験中。既存の文書から一括して登録するために,ツールをあれこれ探してしるが,CSV Importer というプラグインがあったので,使ってみた。インポートしたいデータをCSV (Comma Separated Value) の形にしておけば,一括して読み込めるというもの。

試した結果,何とか使えそうだが,いくつか問題点も。自分の用途だと,改行のタブとかパラグラフのpタグなどが自動で追加されるのは,ちょっと迷惑。ということで,ソースを読んで改造。

'post_content' => wpautop(convert_chars($data['csv_post_post'])),

という箇所で,記事の本体が取り込まれているのだが,wpautop という関数によって,タグ付きに整形されている。wpautop をはずすことで,タグが付かない元の文章のままで読み込むことが出来た。これで1つ解決。

もう1つは少しやっかい。数学の文章なので,TeXで書いてあるのだが,バックスラッシュが消滅してしまうのだ。記事本体は,ダブルクオートで囲まれていて,そこの部分を1つの文字変数に代入していると思うのだが,その段階で,バックスラッシュがメタ文字と解釈されているのだと思う。試しに,変換前の文章でバックスラッシュ2個にしてみたら,変換後はバックスラッシュ1個になっていたので,多分間違いないと思う。これをどうしたものか。

MAMP上でWordPressをインストール

MAMPを入れたあとは,WordPressをMAMP上にインストール。これで,ローカルであれこれ実験できる環境が出来た。まずは,MathJaxとmathjax-latexプラグインを入れて,数式が表示できるようにした。そのままだとダラーで囲んだ部分が変換されないので,default.jsを編集して,ダラーを有効に,また,amsmathを有効にした。

実験というのは,WordPressを簡易データベースの代わりにできないかということ。カテゴリーやタグなどの機能があるから,十分可能性はあると思うのだが。

MAMP2.2.1

仕事で,ちょっと実験したいことがあるので,ローカルにWordPressをインストールすることにした。ということで,準備として MAMP をインストール。最新版のバージョンは,2.2.1 であるが,以前と違って,解凍すると pkg ファイルになっていた。インストールの場所は,/Applications/MAMP になっていたが,MAMPの名前を変えないようにという注意が表示された。一緒に MAMP PRO の体験版もインストールされるのだが,こちらは使う予定がないので,起動時のオプションをOFFにした。

「続きを読む」

Macのファインダーでパスを表示させる

いま,どの階層に居るのかが,ウィンドウのタイトルバーに表示されていれば便利なのになあ・・・と検索したら,そのものずばりを実現できることがわかった。ターミナルを起動して,

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

として,ファインダーを再起動する。ほら,ウィンドウ上部のタイトル部分に /usr/local/ … とパスが表示されている。

タイトルバーにパス表示

最初からこうしてあれば良いのに〜。

Wineskin使ってWinアプリのChessBase11をMacで動かす

BootCampとかParallelsなどの仮想化環境でWindowsを動かすのとはちょっと違って、WindowsのAPIをMac上でサポートすることでWinアプリを動作させようというのが、Wineというもの。以前、Mikuinstallerというので一度Wineを入れたことはあるが、今回は、Wineskin Winery というものを使ってみた。参考にしたのは次のサイト。

Safx: WindowsアプリをMac上で簡単に動かせるようにするツールWineskin

Monoというものをインストールすることで、dotNet Frameworkにも (一応) 対応しているらしい。ダメ元で ChessBase11 を試してみた。

上記のサイトに従って、まずはWineskinをインストール。Wineskin Wineryを起動して、新規のWindowsアプリ用のラッパーを作成する。名前をChessBase11とし、ChessBase11/Setup/Setup.msi を起動させる。すると、インストーラーの画面が現れて、あとは指示に従うだけ。とりあえず初期設定終わって、なんとかインストール出来たみたいだ。

あとは、アイコンをWin用のCBase11.icoからMacのCBase11.icnsに変換すれば、ChessBase11.appというマック用のアプリが出来上がる。

Chessbase11 on Wineskin Winery

さっそく、ゲームを検索。スクリーンショットを撮ってみた。ちなみにこれは、1974年のKarpov-Kortchnoiの第2戦、シシリアン・ドラゴンのゲーム。メニューのフォントがちょっと読みにくいので、ここを何とかしたいのであるが、まあ、それはそのうちってことで。

Hardy全集をお出かけ自炊してきた

自転車圏内に裁断機・スキャナ完備のレンタル自炊スペースが開店していることを知ったので、先日試しに行ってみた。開放的でゆったりとしていて、お店の人も親切かつ知識豊富。料金はちょっと高めだが、業務用の高性能スキャナで取り込めることなどを考慮すれば、個人的には許容範囲。書籍以外でも、つまりコピー用紙や資料のシートなどでも取り込んで良いという話だったので、大昔にコピーしておいたハーディー全集(第1巻)を自転車に積んで再訪した。

デフォルトは品質80%のjpegなのだが、自分で設定を変えて良いので、可逆圧縮のPNGで取り込んでみた。解像度は300dpi。さすがに600dpiで取り込む勇気はなかった 😉 もっとも、600dpiでモノクロ2値での取り込みなら、ファイルサイズも大したことはないので、こちらは検討の余地あったかも。

JPEGに比べるとPNGの方がサイズ大きいので、若干スピードが遅くなったが、この程度であれば全然問題ない。取り込んだ画像をPCで確認する。

Hardy全集1のプレビュー中

ものの数分で取り込み作業は終了する。むしろ確認に時間が掛かる。まあ、サムネイルでチェックしても大丈夫そうだが。このあとPDFに変換することも出来るようだが、それは自宅でも出来るから、PNG画像のまま、持参したUSBメモリーにコピーして終了。

最初のページは、こんな感じ。読むだけであれば、このままで十分かな。

ハーディー全集第1巻

電子書籍の自炊関係では、著作権がらみで、もろもろあるようだが、裁断機や業務用スキャナをレンタルで使えるお店は個人的には非常に助かるので、長続きして欲しいなあと思う。

ImageMagickとXnConvertを併用してみる

[備忘録] 自炊PDFの後処理関係のメモ。

XnConvertのバージョンが1.51に上がり,従来のBrightness, Contrast以外にも,白黒のレベル指定が出来るようになった。これで,ImageMagickでの -level high, low, gamma と同じ(多分ね)パラメーターの指定が可能となった。速度的にはLanczosでの拡大処理を含めてXnConvertの方が速いので,こちらをメインにしようかと思う。

ただ,XnConvertでは,モノクロ2値への変換で threshold値を選ぶことが出来ない。また,ImageMagickの shave (上下左右を切り取る),border (逆に上下左右を塗る) などの処理が出来ないみたいだ。shaveに関しては,cropとrotateを組み合わせれば良いようにも思うが,よく分からない。一番の問題点は,thresholdの値(閾値)を選べないということなので,この部分はImageMagickを使う方が良いだろう。

ということで,試しに一冊処理してみた。hoge.pdfをpdfimagesを使って,hoge_000.jpgからhoge_124.jpgにバラす処理は済んでいるものとする。そこの階層に行って,次のようにする。

nconvert -extract 0 -ratio -rtype lanczos -resize 200% 200%  -levels 60 255 -gamma 0.7  -posterize 64 -posterize 32 -posterize 16 -posterize 8 -posterize 4 -out png  -o nc_% -overwrite  *.jpg

コマンドの意味は次の通り。-extract 0 で赤チャンネル抽出。-ratio 以下は,lanczosアルゴリズムによる200%拡大。-levels 60 255 と -gamma 0.7 は ImageMagickでの level 60,255,0.7 と同じ。今回の本は,スキャンの具合が良くなくて,全体的に文字が薄くてボケた感じなので,白飛びさせると文字が消えてしまいそうだったので,high=255とマックスのままにした。

-posterize は減色(ポスタリゼーション)処理。64色から順に半分ずつにして,4色まで減色している。-out png は出力ファイル形式をPNGにするということ。-o nc_% は出力ファイルの名前の設定。これだと,元ファイルがhoge002.jpgの場合,nc_hoge002.png となる。-overwrite は出力ファイルと同じ名前があった場合に上書きするということ。nconvert による処理は以上で終了。

次は,ImageMagickを使う。mogrifyコマンドを使って,上下左右を削除して白で元にもどす。それから,閾値を80%にして,モノクロ2値化する。出力ファイルはtiffにして,FAX Group4で圧縮する。

mogrify -shave 40x40 -border 40x40 -bordercolor "#FFFFFF" -threshold 80% -format tiff -compress Group4 nc_*.png

続いて,tiffをpdfに変換。

mogrify -format pdf nc_*.tiff

最後に,pdfファイルをまとめて,hoge-mono.pdf にする。

pdftk nc_*.pdf cat output hoge-mono.pdf

こんな手順で,モノクロ2値化が完了。一冊毎にパラメーター変えるのなら,この程度の入力を毎回行なっても,それほど面倒ではない。パラメーター固定で複数の書籍を変換するのなら,やはりバッチ処理用のスクリプトを書いた方が良いだろうなあ,やはり。

ImageMagickのmogrifyコマンドを使う

[備忘録] 以前 The Internet Archive からダウンロードしておいた E. Cahen の Theorie des nombre, tome 2 (整数論,第2巻)。サイズも小さくで良いのだが,何故かMacのプレビュー.appで見ると,ものすごく動作が遅くてスクロールもままならないという状況だった。それで,放っておいたのだった。そのときは対処法など分からなかったのだが,業者に依頼した自炊(?)PDFが時々同じようにスクロールが重たいという経験を経て,どうすれば良いかが自分なりに少し分かってきたので,それを試してみることにした。

処理対象は,thoriedesnombr02caheuoft_bw.pdf というファイル。サイズは27.2MBほど。このままでも良いが,これを cahen2.pdf として保存。Acrobatで開き,jpegにバラして保存。cahen2_Page_001.jpg から cahen2_Page_762.jpg までの762個のjpegファイルが出来る。これらはモノクロの画像なのだが,サイズは500KBないし900KBもあり,かなり大きい。762個で520MBくらいになっている。グレースケールなのかもだが,拡大した様子では,文字部分は2値のようにも感じる。ともかく,これが27MBに圧縮されていたのだから,すごい圧縮率ではある。

さて,これを ImageMagick で白黒2値のtiffに変換して,CCITT Group4の圧縮をかけることにする。ついでに,広すぎる余白を少し削ってみた。iPhoneで見るときは余白ないほうが見やすいから。

ImageMagickのconvertでは多数のファイルを処理させると,ウソみたいに大量のメモリーを消費してしまうので,今回は mogrify というコマンドを使ってみた。convertとほとんど同じ処理が出来る。

mogrify -shave 100x200 -threshold 80% -compress Group4 -format tiff cahen*.jpg
mogrify -format pdf cahen*.tiff
pdftk cahen*.pdf cat output cahen2mono.pdf

作業内容は次の通り。mogrify コマンドで,まず, -shave 100×200 として,左右100ピクセル,上下200ピクセルずつを削除。次に,-threshold 80% で2値化。さらに, -compress Group4 でFAX G4での圧縮,最後に -format tiff でファイル・フォーマットをTIFFにする。これらを cahen*.jpg すべてに適用する。次に,生成されたtiffファイルをpdfに変換し,pdftkによって,これらのpdfを結合して,cahen2mono.pdf にする。最終的なファイルサイズは,25MBくらいになり,Macのプレビューでも,iPhone4Sの i文庫S でも,スムーズにスクロールして,すこぶる快適になった。

最初のページは次のような感じ。

Cahen "Theorie des Nombres" tome 2

iPhone 4Sでのスクリーンショットは大体こんな感じ。

Cahen "Theorie des nombres" on iPhone4S

iPhoneではさすがに文字が小さく,老眼にはつらいのだが,メガネ外すと,それでも何とか読める。何よりも,750ページもあるのに25MBに収まり,動作も軽くなったので,大満足である。

9月10日(月曜日)

  • このところ日記を書かなくなっているが、タイトルが決まらない、というのが理由の1つだったりする。そこで、特にタイトルがないなあというときは、日付をタイトルにして、ともかく何か書くことにする。
  • 理想的には、twitterまとめ、みたいに、時系列でその日に何かしらメモったこと、書いたことが、ログとして残れば良いのだが。そういうツール、つまり、ブログ内ツイート、みたいなものは無いだろうか。いや、あるにはあるのだ。WordPressのプラグインで、twitter toolsみたいなものはある。しかし、それでは、まず twitter にtweetしてしまう。それはしたくないよ、というケースも多いのだ。
  • 暫定的だが、その都度、日記に書き足していくことにする。ホントは、時刻が自動的に付加されたり、リスト形式のレイアウトになる方が良いのだが、面倒だと長続きしないので。
  • TeX関係で、メモ。以前から、PDF以外の画像ファイル(jpegとかpngとか)を取り込めないでいた。昨日、やっと解決した。colorパッケージにも dvipdfm オプションを付けないといけないようだった。つまり、次のようにする。
    \usepackage[dvipdfm]{graphicx}
    \usepackage[dvipdfm]{color}
    これで、ちゃんと読み込まれる。