2010-11-15(月) [長年日記]
■ デザインする技術 ~よりよいデザインのための基礎知識(矢野 りん)
積読箱の奥底から発掘(またか)。2006年の出版だけど、古びないタイプのいい本でした。
著者の矢野りんさんは個人的に最近やたらとよく見る名前で、なんでかっつーと日本Androidの会 女子部で活躍されてるからだ。多才な人だよなー。
紙・ウェブに限らず、「デザイン」に関わるさまざまな技術や考え方を見開きないしは1ページで簡潔に解説して並べた本。いわば「デザインに関するパターンカタログ」になっていて、これが実にわかりやすい。以前取り上げた情報アーキテクチャについての本が同じ狙いでみごとにカタログ化に失敗していたのと対照的に、こちらは各項目の粒度も揃って独立性も高く(でも関連性が高い項目は近くに配置してあったりして)、すごくよく考えられていて感心してしまった。
とはいえ、これからデザインを志す人が読むものではないと思う(というかおれだってそんなつもりはない)。「パターン」になっているということは、ここで取り上げられているのは「語彙」なのだ。デザイナが持ってきたデザインの「意図」や「背景」を理解して、その上で的確な注文をつけたりするための共通言語なんだな、この本に並んでいるのは。
というわけで、デザイナじゃない人がデザイナと対等に会話をするための基礎固めの本、という位置づけがいいんじゃなかろうか。
2010-11-14(日) [長年日記]
■ 川崎 1-2 鹿島@等々力陸上競技場
体調もだいぶよくなってきたので久々に現地観戦。で、ひとり観戦だと負けるの法則ふたたび。とほほ……。
なんかねー、貪欲な感じがないんだよなぁ。ゴール前にいて、目の前にボールが転がってきてるのにダッシュしない矢島とかさぁ。あいかわらずDF陣もちぐはぐで、2点目なんて完全にやらなくていい失点だよなぁ。
2010-11-13(土) [長年日記]
■ 「jQueryクックブック」を自炊した(再々) - PDFから余白の除去に成功するの巻
そろそろ自炊用のタグをつけるべきか。というか、ScanSnapを買った時、べつに蔵書をPDF化するわけではないとか書いてたくせに、自炊街道まっしぐらという雰囲気が濃厚になってきているのはどういうわけですか。
そんなこんなでこないだの続き。(Kindleで読むために)余白をもっと削りたい。
で、「PDF トリミング」みたいなキーフレーズでいろいろ調べていたんだけど、これはもう、Adobe Acrobatの独壇場(あとはソースネクストの「いきなりPDF」もできそう?)。Acrobatを個人で買うとか勘弁して欲しいので、できるとこまで無償ソフトでいきたいんだが……とこぼしていたらPDFCROPというプロジェクトを教えてもらう。
そうか、探すべきキーワードは「crop」だったのか!
で、上のPDFCROPはオプションすらないビミョーなツールで、動かしてみたけどエラーの原因もよくわからない。ただ、「PDF crop」で探してみると同名かつ同目的の違うソフトがあるらしい。で、こっちはDebianにもパッケージがある。
pdfcropはtexlive-extra-utilsパッケージに入っているようなのでaptitudeでインストール。ところがこれが「PDFCROP 1.5, 2004/06/2」という古いファイルで、公式配布元であるCTAN(TeX版のCPAN?)にあるのが「PDFCROP 1.31, 2010/09/17」。バージョンのつけ方が変わってて「えっ」と思ったけど、1.31の方が新しいということか。少なくともつい最近更新があったくらいなので生きているプロジェクトらしい。lennyのパッケージはなんでこんなに古いんだ?
というわけで、最新版を落としてきて使ってみる。依存関係は先の(古い)pdfcropがなんとかしてくれるのでいちおう入れておく:
% sudo aptitude install texlive-extra-utils % wget http://mirror.ctan.org/support/pdfcrop/pdfcrop.pl % mv pdfcrop.pl pdfcrop % chmod +x pdfcrop % ./pdfcrop --verbose test1.pdf out.pdf PDFCROP 1.31, 2010/09/17 - Copyright (c) 2002-2010 by Heiko Oberdiek. * PDF header: %PDF-1.3 * Running ghostscript for BoundingBox calculation ... GPL Ghostscript 8.62 (2008-02-29) Copyright (C) 2008 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 475. Page 1 Error: /undefined in /90ms-RKSJ-H (以下略)
なにやらエラー。「90ms-RKSJ-H」をググってみると、PDFで使われている文字コードの表記(?)で、Windowsで作られた日本語PDFという程度の意味合いか。日本語フォントがないという意味だろうな。あー……これはフォントの泥沼にはまるヨカン……。そういうのは全力で避けたい方向。
そこで、ここはいったん諦めて、ふたたびWindowsオンリーでなんとかしようと考えた。
Adobe ReaderやFoxit ReaderのようなPDFビューアで余白がなくなるくらいの倍率で「拡大印刷」し、それをpdf995やPrimoPDFのようなプリンタドライバを介してトリミング済みのPDFを入手しようという作戦に。
pdf995で作成したPDFファイルはむやみやたらとファイルサイズがデカくなってしまい(5倍以上)、PrimoPDFだと倍程度に収まったのでよしよしと思っていたのだが、困ったことに画像情報しか残ってない。よく考えてみればプリンタへ印刷するという機能を使っているんだから、決して印刷されない透明な文字の情報がプリンタドライバに渡るわけがないではないか。
おまけにこうして作ったPDFファイルを、Kindleを持っている知人に試してもらったところ、起動に5分かかるという結果に。なんじゃそら。なんかこう、PDFの作りがいろいろおかしいということか。やっぱまっとうな方法でPDFファイルを直接いじるしかないのかね。
というわけで、ふたたびLinux環境に舞い戻る。ちょっと調べてみると、「gs-cjk-resource」というのが見つかった。これを入れればいいのか。aptitude installしてからリトライ:
% sudo aptitude install gs-cjk-resource % ./pdfcrop --verbose test1.pdf out.pdf PDFCROP 1.31, 2010/09/17 - Copyright (c) 2002-2010 by Heiko Oberdiek. * PDF header: %PDF-1.3 * Running ghostscript for BoundingBox calculation ... GPL Ghostscript 8.62 (2008-02-29) Copyright (C) 2008 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 475. Page 1 Substituting CID font resource/Adobe-Japan1 for /MSMincho. Error: /undefinedresource in findresource
お、「MSMincho」なんてキーワードが登場するようになりましたな。ようするに、PDFファイルに「MSMincho」という名前が埋め込まれてるけど、マッピングできないと言ってるんだろう。マッピングのためにはなんらかの代替TrueTypeフォントを入れてやればいい。ここはおなじみ東風フォントでいいのかな。さらに調べると、cidfmapというファイルでそのマッピングを指定してやるらしい:
% sudo aptitude install ttf-kochi-mincho % sudo vi /usr/share/ghostscript/8.62/lib/cidfmap (ごにょごにょ) % tail -1 /usr/share/ghostscript/8.62/lib/cidfmap /MSMincho << /FileType /TrueType /Path (/usr/share/fonts/truetype/ttf-japanese-mincho.ttf) /SubfontID 3 /CSI [(Japan1) 2] >> ;
これで準備完了(のはず)。pdfcropを再実行:
% ./pdfcrop --verbose test1.pdf out.pdf PDFCROP 1.31, 2010/09/17 - Copyright (c) 2002-2010 by Heiko Oberdiek. * PDF header: %PDF-1.3 * Running ghostscript for BoundingBox calculation ... GPL Ghostscript 8.62 (2008-02-29) Copyright (C) 2008 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 2. Page 1 %%BoundingBox: 0 0 498 658 * Page 1: 0 0 498 658 %%BoundingBox: 0 0 498 658 %%HiResBoundingBox: 0.000000 0.000000 497.285985 657.485980 %%HiResBoundingBox: 0.000000 0.000000 497.285985 657.485980 Page 2 %%BoundingBox: 0 0 498 659 * Page 2: 0 0 498 659 %%BoundingBox: 0 0 498 659 %%HiResBoundingBox: 0.000000 0.000000 497.753985 658.925980 %%HiResBoundingBox: 0.000000 0.000000 497.753985 658.925980 * Running pdfTeX ... This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) %&-line parsing enabled. entering extended mode (./tmp-pdfcrop-10192.tex [1 <./test1.pdf>] [2 <./test1.pdf>] ) Output written on tmp-pdfcrop-10192.pdf (2 pages, 197614 bytes). Transcript written on tmp-pdfcrop-10192.log. ==> 2 pages written on `out.pdf'.
できた! で、開いてみるとなにも変わってない。
いや、予想はしていたんだ。自炊PDFは画像が一面に埋まってるわけで、余白を検出できないんだろう。メッセージにある「HiResBoundingBox」がそのヒントだ。これを--bboxオプションで適当な値に狭めてやればいい。試行錯誤の末、こんな感じにするときれいに余白が消えたPDFができた。
% ./pdfcrop --bbox "50 40 447 627" test1.pdf out.pdf
前回の記事と比べると一目瞭然。バンザイ!
--bboxオプションには奇数ページと偶数ページを別々に指定できる機能もあるので、左右でマージンが大きく異なる本でもなんとかなりそうだ。これでKindleを買う権利ができた!(←権利?)
◆ kou [おぉ!すごい! というか、テキスト云々関係なかったです。 こんなスクリプトで https://ruby-gnome2..]
◆ ただただし [おー、すばらしい。これってghostscriptには依存してない? Linuxでいろいろ苦労するのはあの周辺に依存し..]
◆ kou [Ghostscriptは必要ないです! cairoはフォントまわりのバックエンドがPangoになっていて、Pango..]
◆ ただただし [fontconfigにもいい思い出ないけど(笑)、ghostscript関係ないのはいいねぇ。単一パッケージにしてW..]
◆ 馴染めない [(自炊)と言う言い方、馴染めない、もっとセンスの良い言葉ないもんでしょうか]
◆ ただただし [[警告] 「センス」が未定義です。]
◆ せんごく [去年会社の書庫申請して蹴られた記憶。貸してください~。]