2009年03月30日

味噌ラーメン

27日の補完。出来合いチャーシュー、もやし、ネギにて。せっかく冷蔵庫に早く食べなくちゃいけないメンマがあるのに入れ忘れたよ…。しかし、この手の出来合いのチャーシューはなんでラーメン屋のチャーシューとは全然違う変なもの(酒のつまみっぽいもの)しか売ってないんだろう。唯一某スーパー系のところでお惣菜で売られているのはラーメン屋っぽいものなんだけど、いつも売ってるというわけではない。

2009年03月27日

XML要素から独立テキストフレーム/インラインテキストフレームを作る、続く/続きアイコンを付ける

InDesign+XMLによる自動組版で作られた書籍も実績を重ねて10冊以上となりました。それぞれは構成もスタイルもまちまちですが、処理系のライブラリ化、抽象化を進めることで1冊ごとの対応の時間、作業時間は着実に短縮できてきています。

ただ、大半のお客様にとっては、その組版がXML処理で自動生成されたものであるのかあるいは手で1つずつ積み上げたものであるのかといったことはどうでもよいことであり、成果物である紙(あるいはPDF)の見栄えが直接の評価対象です。修正要望の中には自動組版で処理するには辛いものも多いのですが、手作業修正を経験し、その流れを自動化することを試み実装する、という繰り返しによって自動組版の機能を向上できたのもまた事実です(とはいえ終盤でちゃぶ台返しは本当に辛いので勘弁してください…)。

ということで、最近実装したものを2つご紹介。ソースコードはInDesign Hacking with JavaScriptにあります。CS3用です。CS4は環境がないので不明です。

1つはコラムなどの処理のためのスクリプトライブラリlibProcessXMLmakeBlock.jsxです。指定のXML要素から独立またはインラインのテキストフレームを作ります。前にもこの実装はしたのですが、当時のものはバギーで不具合も多いものでした。今回のものも完全ではありませんが(たとえばフレームに移動された側のXMLドキュメントの該当箇所に、空行1行が残ってしまう)、今後わりと応用が効きそうです。呼び出しはこんな感じ。

#include "libProcessXMLmakeBlock.jsx"
var obj = new Object; // パラメータ格納用のオブジェクト
  // 適用するオブジェクトスタイル。getObjectStyleByNameはlibCommon.jsxライブラリのもの
obj.objectStyle = getObjectStyleByName(app.activeDocument, "コラム");
  // フレームの幅。0なら自動
obj.width = 0;
  // インラインフレーム化するか。インラインはまだバギーかも
obj.inline = false;
  // ドキュメントオブジェクト、XPath、パラメータオブジェクトを指定して実行
MakeBlock(app.activeDocument, "//column", obj);

過去のライブラリAPIではパラメータを引数にずらずら並べていたのですが、リファクタリングなども面倒なので、Objectクラスをハッシュ風に使うようにしています。今後のスクリプトでは基本的にこのスタイルで進めていきます。XMLを探すのもCS3から使用できるglue codeを使うようにしてみました。でもなんかglue codeかネイティブのXPath探索にバグがあるような気がします。glue code版のXML呼び出しは確かに速度的には悪くないのですが、コールバックのコードのデバッグが困難で、XPathの問題も解明できていません(CS4だと直ってるとかなバグかも)。InDesign CS3の機能制限を避けるべく必死なコードも一部あります。

もう1つは表やコードリストなどがページをまたぐときに「続く」などのアイコンを入れられるようにするlibProcessXMLforContinuous.jsx。まだ開発途上ですが、このスクリプトで手作業の量はだいぶ軽減できています。手だと忘れやすいところですしね。

#include "libProcessXMLforContinuous.jsx"
var obj = new Object; // パラメータ格納用のオブジェクト
  // 配置するレイヤー。nullの場合には現在選択中のレイヤー。存在しない場合は作成される
obj.layername = "続く/続き";
  // 前側ページに配置するファイルオブジェクト。nullの場合は配置しない。placeできるオブジェクトならなんでもよい?
obj.nextostyle = File("tuduku.eps");
obj.nextostyle = getObjectStyleByName(app.activeDocument, "続く"); // 画像オブジェクトスタイル
obj.nextoffset = [0, 0, 0, 0]; // 基本配置位置(現時点では版面右下)からのオフセット
  // 後側ページに配置するファイルオブジェクト
obj.tofile = File("tuduki.eps");
obj.toostyle = getObjectStyleByName(app.activeDocument, "続き");
obj.tooffset = [0, 0, 0, 0]; // 現時点では基本配置位置は版面左上
 // 右ページで分かれる場合にのみ配置するか(現時点では左閉じのみ想定)
obj.spread = false;

// ドキュメントオブジェクト、XPath、パラメータを指定して実行
processXMLforNextToIcon(app.activeDocument, "//codelist", obj);

配置位置が版面基準なのがちょっとナニなんですが、最下段を調べるのは実はけっこう難しい。ページのlinesの最後を見てそのベースラインを…という感じなのですかね。ただそれが表だったりするとまた困難だったりするわけですが。

では、Happy InDesigning!

すき焼き

割下は醤油・味醂・酒・砂糖・塩・かつお節にて。牛脂で牛肉・人参・ネギを炒めて割下を加え、白菜、白滝、しめじ、えのき、焼き豆腐、春菊と入れて蓋をして煮る。溶き卵に付けながら食べる。うまい。途中で冷凍うどん投入、再点火。これがまたうまい。

蒸し鷄のサラダ

25日の補完。鷄もも肉に塩胡椒してビニール袋に詰め、熱湯を入れた鍋に放って1時間。醤油、中華山椒、紹興酒、鷄から出たスープの一部、生姜を煮て、切った鶏肉と絡める。セロリとキュウリを敷いた皿に鷄とタレを乗せる。鶏肉がふわふわしておいしい。マヨネーズをかけるもよし。

めんたいパスタ、ふきのとうのおひたし

24日の補完。ふきのとうをさっと塩茹でして食べるのがおいしいんだよ、というのをネットで見てやってみたのだけど、に、苦い…苦いのがわりと平気な自分でもこれは苦い。二度茹でしてアクを出してみたけど、それでもまだちょっと苦さというかアクがきつめ。ちょっと時間が経ってたせいもあるのかな。

天ぷら、鳥皮と大根のスープ

23日の補完。ふきのとうをいただいたので、天ぷらで食べる。ほかはナス、玉葱、ピーマン、しめじ、舞茸。

チゲ鍋

22日の補完。昆布、キムチ、豚肉、海老、白菜、ネギ、椎茸、人参、コチュジャン、酒、味醂、輪切り唐辛子と入れて煮込み、ごま油で作った卵焼きを加える。見た目と裏腹に上品な味になっておいしい。

マトンタジン、モロカンサラダ、フランスパンもどきパン

20日の補完。あいかわらずフランスパンは「フランスパン」にはならずにkmutoパンになるな(笑)。タジンとモロカンサラダは前回と同様。うまいよー。

鮭ハラス、筍とワカメの煮物

19日の補完。和食系で。ハラスは脂が乗ってておいしい。筍も季節感があっていいね。

ハンバーグ、カニクリームコロッケ

18日の補完。コロッケはスーパーの出来合い。付け合わせに人参、ほうれん草、アスパラ、トマトと野菜多めにしてみた。

マカロニアラビアータ

17日の補完。玉葱、ニンニク、挽肉、トマト、人参、唐辛子でミートソース風に仕上げ、マカロニとあえてみた。

牛スジ煮込み

16日の補完。牛スジを下茹でし、よく洗って切る。牛スジ、大根、ネギ、昆布、醤油、酒、味醂、泡盛、塩を圧力鍋に入れて20分ほど。豆腐を入れて軽く煮つめる。

豚キムチ炒め

すっかり日が空いてしまった。それほどひどく忙しいわけではないのだけど、なんか帰ってくると気力が出てきてないというか。ということで、15日の補完。キムチ、豚肉、椎茸、ニラ、ニンニク、大根、コチュジャン、塩、胡椒、ごま油とよく混ぜて炒め、溶き卵をふんわり仕上げて合わせる。ごはんが進むクンです。

2009年03月16日

Subject: Section changes in the archive

debian-devel-announceに、ftpmasterのJeoergから。

debian-develでの議論を経て、パッケージのセクションを数個追加することが決定した。debtagsのほうが長期的ソリューションとしてはベターであるものの、まだ完全にはセクションを置き換えるには至っていない。

まずはもう使われていないセクションbase(昔のインストーラによって使われていたもの)を削除した。

次に、下記の新しいセクションを追加し、該当パッケージを移動した。変更したい/すべきと思われるパッケージがあるときにはoverride-change at debian.orgまで連絡されたい。次のミラーパルスで反映される。

  • ruby: Ruby言語関連
  • java: Java関連
  • video: ビデオビューア、エディタ、レコーダ、ストリーミング
  • fonts: フォント
  • gnustep: Gnustep環境
  • xfce: XFCEデスクトップ環境
  • httpd: Webサーバとモジュール
  • localization: 言語パッケージ
  • debug: デバッグ用パッケージ
  • lisp: Lisp関連
  • vcs: バージョン制御システム
  • haskell: Haskell関連
  • zope: Zope/Ploneフレームワーク
  • database: データベース
  • kernel: カーネルおよびカーネルモジュール
  • ocaml: Ocaml関連
  • cli-mono: MonoとCommon Language Infrastructure関連
  • gnu-r: GNU R関連
  • php: PHP関連

セクションを決めるにあたっての順位は次のとおり。debug > doc > localization > 言語固有 (>インタプリタ) > アプリケーション固有 > 一般

……言語関連が一気にセクション分けされたなぁ。

2009年03月15日

最近の書籍作りのプロセス(2)

前回に引き続き。

先端的な書籍制作にチャレンジし続けている hisashimさん もたびたび言及されているように、ソフトウェア開発のプロセスやツールは、書籍制作にも効果的に応用できます。 中でも、バージョン制御システム(VCS)は欠かせぬツールです(制作にかかわる人たちすべてが広く利用するようになれば、書籍作りはもっと楽に・スピーディーになるのですが)。

VCSは、あるプロジェクトにかかわる電子的なデータのすべてを「リポジトリ」という場所に蓄え、そこになされる追加・変更・削除などをすべて追跡可能にするものです。ソフトウェア開発では主要な対象データはソースコードになるわけですが、書籍制作では原稿(翻訳なら原書原稿と翻訳後原稿の両方)、差し込む画像、アイコン、組版データ、台割、企画書、目次案、方針議事録といったいろいろなものになるでしょう。

VCSを導入することで、作業者全員が常に最新の状態のファイル群を得られ、進捗も明確になり、どのような変更が加えられたのかも明示されます。リポジトリがインターネットに公開されていれば、場所を選ばずアクセスして作業にかかれます。
VCSの概略図
FTPや宅ふぁいる便は不要となり、ファイル名で必死に区別することもなく、ちゃんと執筆や編集が仕事をしているかもバレ(これは一長一短かもしれませんが…)、過去の作業内容を確認したり変更が気にいらなくなったら元に戻してやり直すこともできるわけです。作業環境のマシンが壊れて再インストールや別のマシンで作業という羽目になったとしても(佳境の時期によくあることです)、リポジトリから取得し直すだけで何も失うことなくすぐに作業を再開できます。

VCSといってもCVS、Subversion、Mercurial、git、Darcs、BitKeeper、Bazaar、Visual SourceSafeなどいろいろありますが、フリー・OSを問わない・メジャーという点でいうとSubversionかgitのどちらかとなるでしょう。 Subversion/gitそれぞれ特徴がありますが、個人的経験からいえば書籍制作全体として採用するにはSubversionのほうが以下の観点で勝っているかなと思っています。

  • 比較的単純な構成で直観的な操作なので、知識背景のさまざまな関係者に用語や概念を説明する際にそれほど苦労しない。
  • Windowsにはエクスプローラ統合のクライアント「TortoiseSVN」があり、日本語化されていて、情報も豊富。(ちなみにgitクライアントTortoiseGitというのがあります)
  • たいていのUNIX/Linux系の人は使用に慣れている。
  • MacOS X Leopard以降にはプリインストールされている(管理者権限のない環境でもすぐに使用開始できるし、インストールするための説得も不要)。
  • リポジトリの最新内容を普通のWebブラウザでも参照してファイル取得できる。WebDAVでファイルを追加変更することも可能。
  • コマンドのヘルプが日本語で出る(Leopardのはまだ駄目だったっけ?)。
  • リポジトリが1つなので、最新版の置き場所が明確であり、(単一障害点ともなり得るが)バックアップも容易。

私のかかわる書籍制作では、1人作業にせよグループ作業にせよ作業データをSubversionリポジトリに登録するようにしています。自動組版用のツールも全部Subversionリポジトリ内なので、組版環境を構成したい場合もすぐに展開可能です。リポジトリを格納しているサーバーは、離れた場所も含めて数箇所にデータをバックアップするようにしています。

ソフトウェア開発においては、Subversionのリポジトリ内は主となる開発進捗を管理するトランク(trunk、幹)と、そこから枝分かれして別の追加開発を行う複数のブランチ(branch、枝。開発成果はいずれトランクにマージ(合流)される)に分かれて使われることが多いのですが、書籍制作では枝分かれして実験するような場面はなく(書籍原稿の文字づらを変更して何かが壊れるということはないですし)、ややこしくなるだけなので、通常はトランクのみを使用します。ただ、組版データもある場合には、著者や編集担当者に組版データを渡してもしょうがないので、組版用のブランチを用意しています。よって、リポジトリ内の構成は次のようになります。

https://Subversionサーバ/svn/書籍/trunk (著者・監訳者・編集者・出版社向けのトランク)
https://Subversionサーバ/svn/書籍/branches/indesign (InDesign組版用ブランチ)

著者や編集者らはtrunkを取得して使用、組版環境はindesignブランチを取得して使用するというわけです。覚えておくべきSubversionの機能としては、チェックアウト・更新・追加・削除・コミットの5つで十分でしょう。あとは復帰・競合解決・移動(リネーム)・コピーを理解すればほぼ用は足りると思います。

差分を表示したり過去のバージョンを取得したりするには、Subversionの機能を使うよりも、TracというWikiと課題追跡をセットにしたシステムを使うと便利です。こちらももともとはソフトウェアプロジェクト向けですが、デフォルトでは行単位でしか差分表示してくれない(標準diffコマンド以外のものを使うという手もありますが)Subversionに比べてTracでは差分をわりとがんばって文字単位で出してくれたり、log -v相当のファイル変更をわかりやすく一覧できたりといったSubversion支援機能を提供しており、制作にあたってのメモをWikiに書いたり、出版までに解決しておくべきTODOを課題として登録するといった使い方もできます。InDesignファイルはバイナリなので「差分」は出せませんが、それでも過去の作成バージョンをいちいち別ファイル名で「人が」区別することなく機械的に管理できるだけでも十分役立ちます。

これらSubversionリポジトリとTracに加えて、quickmlという簡易メーリングリスト(作業者間の連絡のほか、Subversionコミットでの変更通知が届きます)をセットにした、(「bookforge」とまでは言えませんが)書籍制作プロジェクト環境のホスティングを勤務先で提供しています。ご興味あればご一報ください(ついでに編集なり組版なりでお仕事をくださるのがベストです :) )。git、Marcurial、Darcsも(がんばれば)対処できると思います。

2009年03月14日

ロースステーキ、厚揚げのサラダ

500gの巨大なステーキ肉を半分に分け、フランス風に弱火焼き→ホイル包み→ソースで絡めるという方式で焼いてみた。が、やはり内臓側肉なのか臭うね…。この手のはおとなしくスパイス漬けにするかハーブ入れて煮込みに使うほうがよさそう。サラダは厚揚げ、レタス、トマトをオイルとビネガーのドレッシングで。

鷄の唐揚げ、ポテトサラダ、春菊の黒ごま和え

12日の補完。春菊はさっと茹でて、ゴマすりですった黒ごま、醤油、塩、砂糖と絡めてみた。わりと久しぶりな気もする唐揚げもおいしい。

お好み焼き

11日の補完。人参、キャベツ、ほたて、豚肉、山芋といった冷蔵庫からの残り物でなんとかしてみる。山芋いっぱい入れたら妙に芋っぽいほくほくしたものになった。

タイカレー

10日の補完。久々にタイカレー作り。豚肉、人参、ナス、じゃがいも、ピーマンにて。ココナツミルクをけっこう入れたので甘くもあるんだけどペーストが激辛なので、「甘くて辛い」のタイ料理の真髄。

干しサンマ、大根おろし、大根と鷄そぼろの煮物

9日の補完。干しサンマが出ていたので買ってきた。脂が乗っていておいしい。

豚肉のバジル炒め、鰹のサラダ

8日の補完。ナンプラー入れるのを忘れたものの、唐辛子をいっぱい入れたバジル炒めはなかなか良い味に。だいぶ辛いけど…。

2009年03月10日

SONY TypeZのLinuxハックが進んでいたらしい

sony-laptopでまだ使えないホットキーはなんとかならんかね、とうろうろしていたらlaunchpadで「Sony Vaio Z-seires Laptop」プロジェクトが立ち上がってて、ハックが進められていた。

ホットキーについては普通のカーネルと同様にまだ音量コントロールしかできないんだけど、その代わりにSTAMINA/SPEEDを切り替える……というよりNVIDIAをoffにすることができるようにはなったらしい。

Sony Vaio Z21VN/X Installation OpenSuse 11.1ページからsony-laptop-zseries-0.6.tar.bz2を取得し、make、make install。Debianのカーネル2.6.28向けに普通にビルドできた。

「echo 0 > /sys/devices/platform/sony-laptop/bluetoothpower」でBluetoothの給電を止められる。 「echo stamina > /sys/devices/platform/sony-laptop/speed_stamina」でスタミナモード(NVIDIA off)。echo speedとやればスピードモード。ランプは一応切り替わるけど、この状態でintelドライバ設定にしたXを起動してみたらやはりIntelのほうが使われちゃった。本当に効いてるのだろうか?

ということでNVIDIAは実際のところどうでもいいので、staminaの状態で実行。ACを外し、Bluetoothは上記のとおりOFFにし、無線もドライバを外して(ifaceを落としてもドライバ抜くまで割り込みがかかってる)、画面を暗め設定(ホットキーが使えないのでGNOMEの明るさ設定)、powertopで推奨されるものを全部実行。powertopでのバッテリ駆動時間が7時間と出てきて、最初計測ルーチンが新しいドライバで壊れたのかと思ったのだが、消費電力量も8〜9Wしか消費しなくなっている。8Wで定常化できるなら11時間くらい持つらしいけど、さすがにそれだと何もできないので、エディタでちょこちょこ作業するとしてだいたい6〜7時間くらいを目途と考えるべきか。新しいsony-laptopにする前(NVIDIAにも通電されていた?)には18〜20Wくらいだった気がするので、すばらしすぎる改善。もともとのバッテリのカタログスペックでは7〜11時間らしいので、ようやくWindowsに近づくスペックになってきた?無線をONにしても5時間は持ちそうな雰囲気。

ホットキーのほうもモチベーションの高い人たちががんばってるようなので期待大(むしろ自分でもハックしろ、か)。

2009年03月09日

最近の書籍作りのプロセス(1)

いろいろな経緯があって、昨年から編集という業務だけでなくこのblogセクションにもあるようにAdobe InDesignを中心に据えたXML組版業務にも関わるようになっています(幼少からのコンピュータ、大学でUnix/LaTeX/SGML、最初の会社でPerl/SGML/XML/Webプログラミング、今の会社でEmacsマクロ/Ruby、もう10年以上になるDebianとフリーソフトウェアとオープンソースソフトウェアへのかかわり、と蓄積してきた知識が今になって集大成化してきたというのは不思議な感じもありますね)。

LaTeXを知る身からすると、高価にもかかわらず旧来のDTPソフトのおそろしいほどの手作業っぷり、まさに1ページ1ページを絵のように作っているのを見て愕然としていたわけですが、最近はDTPソフトも機能が向上してきてだいぶ作業者に優しく、機械処理にも優しいものになってきたと思います。特にAdobeのDTPソフトInDesignはXML処理やJavaScriptエンジンが塔載されて、ようやく機械組版が私にとっても現実味を帯びてきました。

バッチ組版処理ではLaTeXが最強だと思いますが、LaTeXのマクロや入力は常人には理解不能で標準的な書籍制作プロセスには採用し難いものがあります。原著がTeXでタグを活かさないと死ぬとか、著者なり編集なりが入稿青焼きまで責任を持ってやってくれるとかではない限りはまず敬遠されます。私の務めている(株)トップスタジオは編集プロダクション会社なので、データも組版レイアウト(テンプレート)もお客様のご希望合わせであり、定型フォーマットでのシステムを組むわけにもいきません。とはいえ、これまで同様にちまちまと手で作っているのでは、コストの安いところに根こそぎ持っていかれることはほぼ確実であり、各社バッチ的な組版を検討、あるいは実装を始めているところではないかと思います。

TeXに比べると、InDesignならDTPオペレータも馴染んでおり、新たな機能を使用するための教育コストはずっと低く済みます。導入するシステムの下地にはXMLがあるにしても、そこにかかわる作業者ができるだけそれを意識しないような仕組みにしておけば、既存知識+α程度で作業を進めることができます。

最近私が制作にかかわっている書籍は、納期的に厳しいとかデザインに凝りすぎということがなければ、InDesign+XMLでの機械組版で行うようにしています(『独習Java第4版』『OpenVZ徹底入門』『zsh最強シェル入門』『独習Javaサーバサイド編』『Windows Server 2008オフィシャルマニュアル』『独習Visual Basic 2008』『SQL Server 2008ビギナーズガイド』)。最近の書籍は立ち上げのみを私が担当し、本格的に始動してからの作業はほかの方々が担えるようになっています。

さて、私の構築した機械組版におけるステップは次のようになっています。

  1. 著者または編集者が簡易タグ付け。生のXMLは人間には見るに耐えないフォーマットであり、特にXML内の改行が重要な役割を果たすInDesignにおいてはますますひどい文書となります。そのため、この時点の作業者は扱いやすく読みやすい簡易タグでマークアップしていきます。現在は別記事でいつか紹介する予定のReVIEWという拡張可能なフォーマットを採用しています。見出しやキャプションの連番処理、相互参照といったミスや面倒を生みがちな処理はReVIEWの機能に任せることができます。Emacsと秀丸向けのエディタモードを作りました。
  2. 画像については従来同様にPhotoshopなりIllustratorなりで変換したり作成したりします。画像についてはスクリプトで一括のグレースケール化・適正リサイズ化・DPI変更をするようにしています。Illustrator(eps)向けには「4色になってる」「RGBだった」といった印刷事故を防ぐためにlgrepベースのチェッカースクリプトをかけるようにしています。
  3. 簡易タグ→XML変換。これはバッチです。簡易タグがいかにXMLに変換しやすいかが肝となります。ReVIEWフォーマット→XML変換自体はすでにReVIEWに実装されています。
  4. InDesignのテンプレートをXMLタグに合わせたり、XMLタグを構造に応じてテンプレートのスタイルに合わせたり。これはDTPオペレータとプログラマーの協業です。InDesignのXMLでは段落スタイル、文字スタイル、表スタイル、表セルスタイルを直接割り当てられます。オブジェクトスタイルはあとでJavaScriptでXMLを検査して適用します。現システムの単一障害点ですが、RubyのREXMLを使用したライブラリの充実を進めており、実装しなければならないコードはだいぶ短くなってきました。変換はRubyが動けば、たとえばLinuxに限らずMacOS Xでも動作するので、MacOS X環境であれば制作工程全部を1台で実施することも可能。
  5. テンプレートとXML変換部が完成したら本番のXMLを読み込ませ、スタイルの自動適用をします。これだけでもかなりの作業を軽減できますが、さらにオブジェクトスタイルの設定、脚注処理などもJavaScriptで自動化します。実行はメニュー形式でDTPオペレータが簡単に扱えるようにしています。
  6. ページの調整や長体処理などは通常のDTPオペレーションと同じです。InDesignで全部をバッチ処理でがんばろうとするのは無理というのが私の行き着いた結論でした。こういうお仕事では、あきらめどきの見極めが重要です。注文の多い書籍ではこの作業はそれなりに時間がかかりますが、手組みほどはかからない、かな?
  7. XMLと機械処理にとってガンなのがテキスト中にフレームを挿入して別ドキュメントをさしこむという、コラムなどによく使われるインラインテキストフレームなのですが、機械組版ではこれを極力排除して、代わりに下のレイヤーに枠やアミなどを描画しています。ページがこれ以上動かないと判断した段階でJavaScriptを実行して、XML要素の起点・終点情報からこのレイヤー描画を行うわけです。柱もこの段階でXML情報を基に作ります。実行は先と同様にメニュー形式なので、DTPオペレータが操作します。
  8. これでひととおりDTPは終わりで、Postscript出力→DistillerでPDFを生成します。InDesignの直接PDF出力はタグが含まれているとカーニングがおかしくなるという不具合が少なくともCS2,CS3にはあるので、入稿まですべてこの手順で作成するPDFを使うことになります(よってデータ入稿限定のお仕事にも使えないですね)。
  9. 目次作成はXML情報とInDesignのページ情報の双方からひっぱってXMLを生成させます。InDesignの段落スタイルベースの抜き出しはどうも怪しいことがありますし(順序が変わったりする)、XML生成版なら適当にスタイルを後処理で加えることができるというメリットがあります。
  10. 権利表記や奥付などの機械でやっても大してメリットのないところは手組みで組んでしまいます。
  11. 索引は簡易タグのときに埋め込んでおいたものをInDesignファイルから拾い出すこともできますし、別途テキストで作っておくこともできます。いずれにせよ、作ったテキストをmendexkを応用したCGIプログラムに通して索引XMLを生成します。本文のPDF内のテキストとgrepで照合するような仕組みも用意して、漏れやズレの大まかなチェックにも役立てています。
  12. 台割については簡易なテキストファイルから必要なチェック、Excelファイルへの変換をこなすようなCGIプログラムを作成して利用しています。ただその印刷についてはOpenOfficeもGnumericも必要となるマージン調整が面倒すぎるので、Microsoft Excelで印刷せざるを得ないというのが若干不満ではあります。

ごはんが食べられなくなると困るので全部を公開するわけにはいきませんが、時間のあるときに各手順などについてもう少し詳細を説明していく予定です。

2009年03月08日

Lenny d-i 2.6.28カーネル+WPAサポート+ファームウェア版

英語のほうには書いておいたので知ってる人は知ってると思うけど、Backported d-i images archiveにLenny d-i 2.6.28版を置きました。

これでLenny標準の2.6.26では有線も無線も動いてくれないVAIO TypeZとかにそのままインストールできます。カーネルはunstableのものと同一。ファームウェアはUbuntuパッケージから借りてちょっといじったもの。WPA(-PSK)サポートは以前にdebian-bootにパッチが出されていたものを適用してみたのですが、ipw2100なLet's Noteでやってみた限りではどうもうまく動いてない感じもします。解析用のツールをなんも入れてないのでこういうときは不便ですな。

鴨ソテーのパスタ

ハナマサで台湾産の鴨肉を買ってきた。塩・胡椒、強力粉をふるって両面を弱火で焼き、ホイルで包んで寝かせる。少し油を捨ててローズマリーとトマトを炒め、赤ワインを飛ばしてバターを落とす。鴨をスライスして戻し、バルサミコ酢をかけて混ぜる。ペンネに、トースターで焼いたピーマン、鴨とトマトとソースを載せる。

重めにしようと油をあまり捨てず、ピーマンを焼くのに使ったオリーブオイルもかけたのがやりすぎだったか、だいぶオイリーになってしまった。鴨はウェルダンぎみで少々固い。このタイプの冷凍物はミディアムレアでも大丈夫かなぁ…。

牛丼、大根とじゃが芋の味噌汁

6日の補完。牛丼はいつものように牛肉、ネギ、玉葱、干し椎茸だし汁、味醂、酒、醤油、塩にて。冷蔵庫整理的に作った味噌汁もけっこうおいしい。

鶏と芽キャベツのドリア

5日の補完。3日に炊いた米を4日に食べなかったので、ちょっと固くなってきてた。ということで、炒めた鶏肉、ベシャメルソースと茹でた芽キャベツ、じゃが芋と乗せて、チーズとパン粉振ってオーブンで焼き上げ。春っぽい味でおいしい。

ウィンナーとナスのトマトソース

4日の補完。仕事でだいぶ疲労困憊だったので、出来合いのソースを買ってきた。ウィンナーとナスを炒めてソースとハーブ入れてぐつぐつ。出来合いのはやはり味が濃すぎてそう簡単には変わらないな。

ひつまぶし、ごぼうと人参のサラダ

3日の補完。エネルギー補給にうなぎ。ごぼうと人参は茹でて白ごま、マヨネーズであえたもの。

1日の補完。野菜補給に鍋。鶏、タラ、白菜、人参、ネギ、えのき、椎茸、春菊、豆腐。

豚肉とガルバンゾのカレー

2月27日の補完。豚もも肉、人参、玉葱、ナス、茹でたガルバンゾ豆、ピーマンという組み合わせ。なかなか良い塩梅の味が完成。いっぱい食べてしまった。

牡蠣と水菜のパスタ、イカとレタスと水菜のサラダ

やれやれ、2月26日の補完。玉葱と牡蠣たっぷりに軽く茹でた水菜。イカは輪切りの茹で済みで売られていたものをレタス、残りの水菜と共にレモンベースのドレッシングで和えただけ。パートナーが花粉症で大変そう…。