トップ 最新 追記

KeN's GNU/Linux Diary


2013年12月01日

_ [cooking] 梅蘭風焼きそば


豚肉と野菜であんかけを作っておき、フライパンで固く炒めた焼きそばに水溶き卵を注いで固め、返し乗せる、という原理。

具のほうは黒酢も入れてわりとよくできたのだが、焼きそばのほうがかなり油っこくなってしまった。テフロンフライパンのほうが作りやすいのかな。


2013年12月02日

_ [cooking] ローストチキン、切干し大根


パートナーが仕事で遅いということで、とりあえず2品作り、カフェ風に盛り付けて先に1人ゴハン。怪しい組み合わせに見えるけど、切り干し大根の相性の万能さは異常。


2013年12月03日

_ [cooking] パエージャ


鶏肉とシーフード、ナスで。いくぶん柔らかめになったけど美味しくできた。


2013年12月04日

_ [cooking] 酢豚、豆腐とワカメの味噌汁


微妙な食材群からどうするか…ということで、こんなときはお手軽に酢豚に。


2013年12月06日

_ [cooking] 味噌ラーメン


小松菜とモヤシをたっぷり入れてみた。


2013年12月07日

_ [cooking] さばの塩焼、人参のなます、かぶの味噌汁、大根のぬか漬け


干しサバをメインに、さっぱりと食べるためにせん切りの人参でなますを作成。大根おろしと一緒に食べると完全に紅白なますだな。美味。


2013年12月08日

_ [cooking] 焼き餃子


今回ははてブで見たレシピに従って、ニンニクもニラも入れず、豚肉・白菜・生姜・塩・ごま油というシンプルなものに。 皮もうまく延ばせた。1つひとつがあっさりと食べやすく、ぺろりと完食。


2013年12月09日

_ [cooking] 鶏肉と薩摩芋・きのこのソテー、切干し大根の煮物


忙しいので、ありあわせで適当に。適当なわりに満足度が高い。


2013年12月11日

_ [cooking] ビーフストロガノフ


久しぶりに。冷凍庫でずっと眠らせていた牛ステーキ肉、ちょっと臭みが出てしまってる。ヨーグルトソースでの煮込み時間をやや長めにして臭いを減じさせてみた。


2013年12月13日

_ [cooking] ポークとカブのソテー、ポテトと人参の温サラダ、大根のぬか漬け


カブは肉の油で炒めてもおいしい。温サラダのほうは茹で加減が一定でなくて、妙にポクポクした人参が…。


2013年12月14日

_ [cooking] サバと大根の味噌煮、小松菜と厚揚げの炒め物


いくぶん時間を長めで圧をかけてみた。骨まで柔らかく、焦げもしなかったものの、ちょっと身がパサついてしまった…。味噌煮の道は険しい。


2013年12月15日

_ [cooking] ビーフシチュー


お昼に作ったものの続きで。ビネガーの味が馴染んで食べやすい。 というか食べすぎ?


2013年12月16日

_ [cooking] 豚肉と大根の煮込み、蒸籠蒸しレンコン


圧力鍋定番の、豚ロース肉、大根、昆布の和風ポトフ煮込み。くるみ味噌とネギを混ぜたタレをつけながら食べると極上。 レンコンはちょっと放置していたせいか、時間をかけても固いままになってしまっていた。


2013年12月17日

_ [cooking] かぶとタコのトマトソースパスタ、白菜の漬物


手軽なパスタ食材としてタコを買ってきた。かぶと一緒にトマト缶で煮込み。 白菜は日曜から漬け始めたものが十分に水が上がってきたので、味見代わりに。塩気はあるが味がまだ薄い。


2013年12月19日

_ [cooking] ミラノ風カツレツ、薩摩芋グリル、白菜の漬物、かぶの味噌汁


レタスが痛んでもうた…。予定の野菜が一品消失。 白菜はだいぶいい具合に漬かってきた。


2013年12月20日

_ [review] 最近の制作協力作品から - 『Effective Android』『[iPhone/Android対応]HTML5ハイブリッドアプリケーション開発[実践]入門』『NFC Hacks』『Linuxサーバーセキュリティ徹底入門』『ゲームクリエイターが知るべき97のこと 2』『コネクト』『開発者のためのChromeガイドブック』『実践Fiddler』『Androidアプリケーションテスト』『きつねさんでもわかるLLVM』『たのしいRuby 第4版』

2月以降で制作のお手伝いをさせていたものからピックアップ(実際にはこの倍くらいの案件数。まだ書誌情報が出ていないものもあるので来月にでも)。はからずもReVIEW制作ばかりになった。

Effective Android
TechBooster/小太刀御禄/出村成和/重田大助/西岡靖代/宮川大輔/柏本和俊/あんざいゆき/八木俊広/木村尭海/小林慎治/有山圭二/中西良明/わかめ まさひろ/新井祐一/桝井草介/久郷達也/寺園聖文/shige0501/山下智樹/前田章博/秋葉ちひろ/末広尚義/中澤慧/日高正博/塚田翔也/井形圭介/中川幸哉/山崎誠/山下武志/なまそで/橋爪香織/さとうかずのり/l_b__/ゼロハチネット/長汐祐哉
インプレス
¥ 3,456

近刊『Effective Android』は編集・DTPで協力。Amazonの著者欄がおかしなことになっているとおり、著名なAndroid開発者たちが集結した同人誌から始まっている。順繰りに読むよりも雑誌記事のように好きなトピックを好きなように読んだほうが楽しいかも。

もともとReVIEWを導入して制作されていたこともあり、最初から最後までReVIEWの能力を活かしてスピーディかつコントロールしやすい制作ができたと思う(とはいえ、5時間で512ページを組む、というのはかなり大変だったけど……)。GitHubで原稿管理と著者質問・pull req更新を行い、Google Spreadsheetで進行確認、という体制はほかでも活かせそう。著者の方々も商業刊行のルールをいろいろと学んでいただいたと思うので、ぜひ次回何かでご一緒できれば。

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)
久保田 光則/アシアル株式会社
技術評論社
¥ 3,110

新刊『[iPhone/Android対応]HTML5ハイブリッドアプリケーション開発[実践]入門』。編集、DTP、ePUB/Kindle制作で協力。HTML5とWebViewでスタンドアロンアプリでもなくブラウザアプリでもない、iOSとAndroid OS両方で動作するアプリケーションを制作する手法を扱った開発者向けの本。

著者さまの原稿はMarkdownで執筆されていたので、これをmd2reviewでReVIEW化して制作を進めた。著者・版元の校正はPDFの赤字ベースで、これをReVIEW原稿に転記して組んでいった。普通なら深刻な遅延要因がいくつもあったにもかかわらず、十分な準備をしておいたのでさほど問題なくスケジュールどおりに入稿。ePUB版はけっこうがんばったつもり。CSS管理をCompassで行うようにしてから捗るようになった。Kindleの目次フォーマットに合わせる都合上、ReVIEWのePUBライブラリのePUB3対応も進んだというオマケ付き。

NFC Hacks ―プロが教えるテクニック & ツール
株式会社ブリリアントサービス
オライリージャパン
¥ 3,456

『NFC Hacks』はDTPのみ。SuicaなどのNFC近距離無線技術について、知識から開発までTipsで扱う。

版元で用意したReVIEW原稿(元々はMarkdownだったかな)から組んでいく。Hacksシリーズは初めてだったのでテンプレートの改変にはそれなりに苦戦したが、今後に使えるテンプレートはできたと思う。ePUB対応の予定はないものの、複雑な表の再現にタグテキストだけではさっぱりわからない、実際に組むとコストがかかっちゃう、という問題解決のためにHTMLプレビューも用意してタグの確認を進めた。数式とInDesignの文字・行処理の相性の悪さは異常。

Linuxサーバーセキュリティ徹底入門 オープンソースによるサーバー防衛の基本
中島 能和
翔泳社
¥ 4,104

安定の中島さんの『Linuxサーバーセキュリティ徹底入門』は編集、DTPで。Kindle版が出ているけど、これはこちらで作ったものではないはず…(一応サンプルePUBは提出したけど)? CentOSベースでファイアウォール構築やその他各レイヤーのセキュリティソフトウェアを扱う。安全なLinuxサーバー構築の基本を知るのに良い。副題が"ープンソース"になっているのはこちらのせいではないけど、早く直らないかね…。

中島さんはまだReVIEWにさほど馴染んでいないので、半分ReVIEW、半分いつもの中島さんタグの形式から100%のReVIEW形式に変換して制作を進めた。徹底本シリーズはテンプレートがほぼ完成しているので作りやすい。

ゲームクリエイターが知るべき97のこと 2
NPO法人IGDA日本 小野 憲史
オライリージャパン
¥ 2,052

『ゲームクリエイターが知るべき97のこと 2』も編集、DTP。前巻に続き、ゲームクリエーションの最前線の人たちのコラム集。

前巻では編者の吉岡さんの意向もあってほとんど原稿はいじらなかったけど、今回は編者が小野さんに変わり、原稿もそこそこいじることに。テンプレートと制作フローは前巻同様なので、約1ヶ月程度の短期で完了(DTP自体は各工程1日)。

コネクト ―企業と顧客が相互接続された未来の働き方
Dave Gray/Thomas Vander Wal/野村 恭彦/牧野 聡
オライリージャパン
¥ 2,376

『コネクト』はDTPのみ。企業のあり方の変革をうたった本。面白いので、ともかく読んでみよう。

読み物でテンプレートも作りやすかったため、教育を兼ねて社内で協業でReVIEW式のDTPを進めた。図版の配置などで一工夫。後ろに4色カラーのを付けるということで台割構成で、少々アタフタしたもののePUBを含めて綺麗な仕上がりになったと思う。

開発者のためのChromeガイドブック (Google Expert Series)
吉川 徹/あんどうやすし/田中 洋一郎/小松 健作
インプレス
¥ 15,373

『開発者のためのChromeガイドブック』は編集、DTP。ChromeブラウザでのChromeアプリ開発およびデバッグ手法を扱っている。

Chromeのバージョンアップを待ったり、構成を途中で変えたり、でちょっとドタバタした進行になってしまったが、ReVIEW化しておいたので大きな問題にはならず。ただページ数・表数が多いとReVIEWでの組み直しがけっこう辛いことになり、さまざまな最適化(省力化)に悩むことになった。また、内容構成についてはページ数の配分など気になる点があったので、もうちょっと最初から口出ししたほうがよかったのかなぁ、と思う。

実践 Fiddler
Eric Lawrence/日本マイクロソフト株式会社 エバンジェリスト 物江 修/長尾 高弘
オライリージャパン
¥ 3,456

入門 Androidアプリケーションテスト
瀬戸 直喜/株式会社ブリリアントサービス
オライリージャパン
¥ 3,456

どちらもDTPのみで、社内教育のために私はメンター役で制作を進めた。

『実践Fiddler』はWebトラフィックを監視してデバッグするためのプロキシですね。DTPはイレギュラーパターンは少なめでやりやすかった。

『Androidアプリケーションテスト』はAndroid Testing Frameworkの解説書。これのDTPはかなり大変で、章あたりの分量が多く、1ページに収まらない表、図版多数で、苦戦の末に最適化を施すまでは1日かかっても仮組の処理が終わらないという羽目になっていた。読者として読むと、残念ながらAmazonのコメントが示唆しているとおりだと思う。読者が紙面で読みたいのはコードのフルリストじゃないんだよね…。

きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~
柏木 餅子/風薬
インプレス
¥ 2,592

『きつねさんでもわかるLLVM』は編集、DTP。達人出版会を経由してのコミケReVIEW原稿からインプレス刊行へ、というルートを確立した本?(笑) gccのLLVM機能を解説するマニア向け。

DTPはともかく、著者さまがまだライティングに不慣れということで編集として相当手を入れることに。コミケならではの荒削りだが楽しい味というのは、商業誌だとなかなか出しづらいんだよねぇ。各章に入るイラストは配置固定ではないので、仮組してから手動で差し込んでいる。

たのしいRuby 第4版
高橋 征義/後藤 裕蔵/まつもと ゆきひろ
ソフトバンククリエイティブ
¥ 2,300

『たのしいRuby 第4版』も編集、DTP。著者陣も制作もいつものメンバー。Rubyの勉強には、この本とオーム社の『プログラミングRuby 1.9』の2冊(後者は分冊なので3冊か)を使うといいのではないかな。

ReVIEWでの編集・組版についてはソフトバンククリエイティブさんと一緒に始めたこともあってお互いわかってはいるものの、旧版の見栄えの踏襲という制約があるとReVIEWの限界にいろいろとぶつかる。コラムを版面上下合わせにしないといけなかったり、コードに囲み説明を入れたり。とはいえ、だいぶ慣れてはきたのでこれまでよりはスムーズだったかな。著者陣が多忙でドタバタしたのはいつも通り(笑)。


2013年12月21日

_ [cooking] 汁なし担々麺、豆苗と人参のゴマ油炒め


汁なし担々麺を自作してみたけど、いくら汁なしとは言ってもラー油汁はもっとたくさん作る必要があったようだ。渋谷の美味しいところのを撮影させてもらって研究しないとだな。

炒め物は定番となり得るクセになる味。単に炒めて塩・醤油と紹興酒での味つけなんだけど。


2013年12月22日

_ [cooking] ウィンナーとナスのペペロンチーノ


微妙なお腹の空き具合なので、軽めのパスタ。


2013年12月23日

_ [cooking] エキメキ


夜に向けて、トルコ風パンを焼く。フランスパンと違ってモルトを入れたりする必要がなく(本当にシンプルに砂糖・イースト、薄力強力、塩だけ)、整形や二次発酵もけっこう適当なんだけど、なにやらいい具合に焼けたぞ。 まだ食べてないので、どんな味になることやら。

_ [ahf] AHFormatter実証実験中。前書き

かねがね使ってみたかったアンテナハウスさんのAHFormatter ( http://www.antenna.co.jp/AHF/ ) を弊社に実験的に導入したので、弊社で扱っているような商業出版物やマニュアル制作がこれでどこまで実現できるか(あるいはできないか)の実証実験を進めている。開発の村上さんからはどんどん書いてください、というお言葉を頂いたので、間違ったことを書くかもしれないけれども、いろいろと試行錯誤の過程を今後書いていきたい。

AHFormatter(以降AHF)は大まかに言えば、「意味」に基づくXMLコンテンツに「装飾」としてのスタイルシートを適用し、紙面PDFを生成するページレイアウトソフト(組版ソフト)だ。ページレイアウトにはWordやInDesignのようにWYSIWYGの画面で見ながら見栄えを調整する方法と、TeXやWebページのようにコンピュータが紙面配置を計算する方法に大別されるが、AHFは後者のコンピュータ計算型になる。

かつてのAHFの敷居はスタイルシートにXSL-FO形式を使っているというのが大きかった。XSLはXMLでプログラム的にスタイルを定義するもので、前職の経験などからいくらかの知識はあるものの(実際、今でもオライリージャパンePUB刊行物の一部では利用している)、積極的に近寄りたい代物ではなかった。特に、弊社のように版元さまの見栄え要望に合わせないといけない業務ではちょっとした見栄え変更に大掛かりな改修作業が入るのは避けたいし、XSLは教育コストが高すぎる。AHF V5でスタイルシートの記述形式にCSSがサポートされ、XSLからの解放の光明は見えたものの、当時にデモで拝見した限りではまだ商業刊行書籍のページレイアウトに使うのは相当厳しいように思えた。

これが、最近のV6シリーズでAHF自体のページレイアウトの機能やCSS対応が格段に改良されたことで、弊社で制作協力しているような商業刊行書籍の品質を満たせそうな見通しがついに出てきた感がある。

_ [ahf] セットアップ

AHFは簡易GUIの付いているWindows版を除けばCUIのソフトウェアであり、Windows・Mac OS X・Linuxそれぞれの版が提供されている。

ライセンスには大きくサーバー版、スタンドアロン版の2つがある(あと、開発版)。予想どおり前者のほうはだいぶお高い。今の弊社のePUB制作システムのようにバージョン管理下の原稿のコミットを受けてJenkinsが自動ビルド、成果物をチェック、というフローに乗せようとすると多分サーバー版じゃないとダメだと思われる。

各種の商業紙面の刊行には多数のフォントを提供するモリサワパスポート入りの環境を使わざるを得ないので弊社の本番環境ではWindowsかMac OS Xになるが、実験あるいはフリーあるいは適切な所有ライセンスのフォントを使うならLinuxが使いやすい。

  • 推測: グリフの情報は直接フォントファイルから読んでいるようなので、TeXのような「フリーフォント代替で紙面を完全に作っておいて本番でモリサワフォントにする」は文字組のズレなどの問題が発生すると思われる。

フォントファイルはOTF、TTF、Type1、dfontに対応しているが、Mac DTPで資産となっているリソースフォーク欧文フォントには対応していないことには注意が必要。よって、Windowsに対するMacの優位性はあまりない(シェルの使いやすさとかリモートログインとかを無視するなら)。なお、リソースフォントは普通のDTP作業でもトラブルの温床なので私も止めたいのだが、今のところ紙面デザインシーンにおいて、この使用を控える動きは見られない。次のOS Xから廃止にでもならないかねぇ。DTP業界阿鼻叫喚の地獄絵図になるだろうけど、そのくらいしないといつまでも引きずりそう。

Linux版は32ビット/64ビット個別にrpmで提供されているが、alienコマンドでdebにしてDebianでも利用できる。現時点のバージョンでは、インストールすると/usr/AHFormatterV61_64に展開される。実際利用するのは/usr/AHFormatterV61_64/run.shだけなので、パスを通すかこのファイルを適当なbinにコピーかシンボリックリンクを張るかしておけばよいだろう。

さらに、Debianの場合のフォントパスを検索対象とするため、/usr/AHFormatterV61_64/etc/font-config.xmlに再帰検索付きで/usr/share/fontsパスを追加する。

  ...
  </font-folder>
  <font-folder path="/usr/share/fonts/" recursive="true"/>
</font-config>

これで、CSSのフォント名としてDebian環境にある各種フォントを指定できるようになる。

_ [cooking] イズミールキョフテ、メルジメッキチョルパス


ハンバーグのトマト煮込みのイズミールキョフテ。冷凍していた100%牛肉のハンバーグをキョフテ代わりに使ってみた。予想に違わず肉々しくて美味。

メルジメッキチョルパスはレンズ豆と玉葱と人参のスープ。モロッコのハリラに似ているが、バター・ドライミント・チリパウダーを混ぜ込むことで、一段上の味わいが。

_ [cooking] イマムバユルドゥ


ナスと野菜を炒め、ナスに野菜を詰めてスープ煮にしたもの。優しい味で、パンによくあう。

_ [cooking] バグラワ


ナッツ、パイ、そしてシロップたっぷりという恐しい子。現地ではあまり気にせずウマーと食べていたが、作ってみるとそのヤバさに気付く。

この耐熱容器だと浅すぎて規定の分量が入らず、ちょっと切りにくい形になってしまった。味はだいぶワイルドではあるものの、トルコを十分に思い出させる。 さて、2人でこれ2皿って油が痛む前に食べ切れるだろうか(食べ切っていいんだろうか…)。


2013年12月24日

_ [ahf] PDF生成

AHFのCSSによるページレイアウトの流れでは、コンテンツをXHTMLで記述し、拡張CSS(CSS3+CSSドラフト+AH拡張)でスタイルシートを用意して、これをフォーマッタコマンドで合成し、PDFを生成する。

フリーソフトウェアの似たようなツールとしてはQt WebKitをレンダリングエンジンにしたwkhtmltopdfがあるが、ブラウザ画面用という出自から、簡単な紙面化以上の実用性にはまだまだ十分ではない(少なくとも、CSS3のページサポートや禁則処理、ブロック単位での扱いなどの拡張ができないと厳しい)。

その点、紙面が基本思想にあるAHFでは、ほぼデフォルトの状態で日本語を配置して違和感のない見栄えのPDFができる。行の文字組についてはいくつかパターンが用意されており、InDesignほどではないにしても必要十分の調整ができそうだ。

印刷所入稿で一般的なPDF/X-1a形式は当然サポートしているし、X-4等ほかのバージョンも用意されている。フォント埋め込み、グレースケール化やRGB→CMYK化、画像可逆/非可逆圧縮比率、印刷等禁止設定、パスワード設定といったものもコマンドパラメータだけで指定できる。

  • 課題: 出版社には校正用に「見開き」(スプレッドとも言う。本を開いた状態のように左右ページを並べ、間は0間隔。実際の本の感覚で読めたり左右の行位置が揃っているかなどを確認できることからこの形式が好きな編集者も多いが、個人的にはページ数の確認がしづらいし、紙出力時に最初の奇数ページの出力がとても面倒くさいので好みではない)で提出しなければいけないことがあるが、AHFコマンドには「Acrobatで開いたときに左右表示するようにするフラグ」はあるものの、見開きPDF自体を作る機能はないように見える。影響が大きいので簡単に実現できる気もしないけど…。

2013年12月25日

_ [ahf] サンプルを作る

ちょうど要素が揃っているのと関係者が弊社と版元さんだけなので、オライリージャパンさんの許諾をいただき、『初めてのHTML5ゲームプログラミング』( http://www.oreilly.co.jp/books/9784873115603/ )をサンプルとしてみた。

で、今のところこんな感じ。


商用フォントの入っていないDebian GNU/Linux環境で試行している関係上、IPA明朝/ゴシックとVL Gothicに留めているが、本番環境ではちゃんと「A-OTFほげほげ」のようなモリサワOTFを指定すれば、InDesignで組んだものにさほど遜色のない見栄えになる。

  • 課題: CSSのfont-familyで欧文フォント→和文フォントの順で指定しておけば、和文グリフが見つからないときに和文フォントにフォールバックする、という合成フォントっぽいものは簡単にできる。ただ、InDesignの合成フォントのような詳細な設定は設定ファイルでがんばる必要があるし、文字グループごとの縦横比指定というのも難しそう。とはいえ、合成フォントでは嫌な思い出しかないし、無理にがんばるよりは今のほうがすっきりしててわかりやすい。
  • 課題: font-familyにはフォントをファミリ名で指定するが、Linuxではfc-listでなんとなくわかるものの、MacやWindowsだと面倒くさそう。AHF側でフォントパスの把握はできているということは、フォント名一覧を出力するヘルパーコマンドを用意してもらえると便利ではないだろうか。

さて、CSSの冒頭部分。CSS3のpage仕様に基づいている。

@page {
    size: A5;
    margin: 24mm 15mm 15mm 15mm;
    -ah-marks: crop cross;
    -ah-printer-marks-line-width: 0.25pt;
    -ah-crop-offset: 20mm 20mm 20mm 20mm;
    -ah-page-bleed: 3mm;
    font-family: "IPAゴシック", sans-serif;

    counter-reset: footnote;
    @footnote {
       -ah-float: bottom page;
       border-top: solid 0.25pt black;
       border-length: 100%;
       padding-top: 0.5em;
       padding-left: 2em;
    }
}

@page Chapter:left {
    background-repeat: no-repeat;
    background-image: url(line.svg);
    background-position: 10mm 16mm;

    @top-left {
       content: counter(page);
       margin-right: 0;
       padding-right: 0;
    }
    @top-center {
       padding-left: 2mm;
       width: 100mm;
       content: string(ChapterStr);
       border-left: solid 0.5mm black;
       text-align: left;
       margin-top: 8mm;
       margin-bottom: 8mm;
    }
}

@page Chapter:right {
    background-repeat: no-repeat;
    background-image: url(line.svg);
    background-position: 0mm 16mm;

    @top-right {
       content: counter(page);
    }
    @top-center {
       padding-right: 2mm;
       width: 100mm;
       content: string(Section);
       border-right: solid 0.5mm black;
       text-align: right;
       margin-top: 8mm;
       margin-bottom: 8mm;
    }
}

@page Chapter:first {
    @top-right {
       content: counter(page);
    }
    @top-center {
       padding-right: 2mm;
       width: 100mm;
       content: " ";
       border-right: solid 0.5mm black;
       text-align: right;
       margin-top: 8mm;
       margin-bottom: 8mm;
    }
}

@page Chapter:blank {
    @top-right {
       content: none;
    }
    @top-center {
       content: none;
    }
    @top-left {
       content: none;
    }
}

body {
    page: Chapter;
    break-before: right;
    font-size: 10pt;
    line-height: 1.5;
    font-family: "IPA明朝", serif;
}

AHFでは、本文ボディを中心に、左上、上、右上、左、右、左下、下、右下とそれぞれに仮想のボックスが配置される構造で紙面を作っており、それぞれのボックスからはみ出させようとするのがけっこう難しい。

たとえば紙面の見開きでまたがって上に罫線を入れたいのだけど、CSS指示でやるのは簡単ではない。結局横幅いっぱいのSVG画像を作り、ポジション指定して貼り付けるようにしてみた。

ページ番号(ノンブル)隣の縦罫線も本当はもう少し上下は詰めたいけれども、ボックスのborderで描画しているのでちょっと難しい。このあたりの柱飾りは、全部画像にして背景貼り付けとしたほうがよいのかもしれない。

body要素にChapterで指定したページテンプレートを適用するが、テンプレート側は:firstで最初のページ、:leftで左、:rightで右、:blankで何もコンテンツがないときの設定となる。

h1 {
    font-family: "IPAゴシック", sans-serif;
    -ah-bookmark-level: 1;
    bookmark-label: attr(title, string);
    string-set: ChapterStr attr(title, string);
}
h2 {
    font-family: "IPAゴシック", sans-serif;
    string-set: Section self;
    -ah-bookmark-level: 2;
}

章見出し。bookmarkはしおり、つまりPDFリーダーで展開表示したときに出てくるハイパーリンク目次。string-setは変数の値設定で、h1要素では柱用の変数ChapterStrにbookmark同様にh1要素のtitle属性から見出し文字列を引っ張ってきている。本来ここは属性からの取得ではなくh2のように「self」で自身のコンテンツを入れるのが普通なんだろうけど、HTMLデータ側でh1内にいくつか細工をしている関係上、selfの内容では不都合だったため、別途属性で値を持たせてすっきりさせるようにしている。

  • 疑問: bookmark-labelではstring関数が利用できない?

このサンプルだとちと見栄えが悪いだけの結果だけど、「ここまでインデント」がちゃんと使えるのはありがたい。図2-3ではスペースの後のところで2行目が折り返しているが、普通にtext-indentでこれをスタイル付けしてしまうと、2-10とか12-3とか出てくるとずれてしまう。スペースの後に「<span class="splitter"/>」のように隠しでタグを入れておき、次のようにすれば、折り返した2行目以降がこの位置で開始するようになる。

span.splitter {
    -ah-indent-here: 0pt;
}

AHFのCSSを作っていると、本によってはかなり複雑化していくので、全部を手打ちにするよりはCompassなどを使って効率良く作っていくのがよさそうだ。

_ [cooking] すきやき、白菜の漬物


油揚がたくさん残ってしまったので、すきやきに入れてみた。これがけっこう美味しい。


2013年12月26日

_ [cooking] ウィンナーとトマトのパスタ、茹でブロッコリーとアボカドのマヨネーズ和え


ささっと簡単に。


2013年12月27日

_ [ahf] コンテンツの管理

XHTMLで書けるからといってなんでもかんでも要素を追加するとスタイルが膨大になってしまうし、定型性を失いがちだ。「ここまでインデント」みたいな処理を都度手で入れるのはいつでもミスを起こし得るし、そもそもXHTMLはそこでモノを書いたり編集したりというのには向いているとは言い難い(細かな採番はできないし、意味ベースのブロック要素がHTML5でもさほど増えたわけじゃない)。

そこでいつものように、ReVIEW ( https://github.com/kmuto/review )の登場である(※ステマ)。コンテンツはReVIEWの簡易な各機能を使って、HTMLのタグを気にする必要なく自由に書き、これをXHTMLに変換してAHFに渡せばよい。

ただ、ReVIEWの標準のHTMLBuilderではAHFに通す上ではいくつかの改変が必要なため、HTMLBuilderを継承したAHHTMLBuilderを用意した。まだReVIEWのGit版のahbuilderブランチのほうにしかないので、適宜こちらをチェックアウトして利用いただくことになる。ターゲットビルダオプションは「review-compile --target=ahhtmlbuilder」になる。

  • 見出しに付けるIDのルールを変更。HTMLBuilderやePUBではファイル内でIDが一意であればよかったのだが、AHFで目次や索引を備えた何かを作ろうとすると、ファイルも1つにまとめたほうがよい。AHFはXMLフォーマッタなのでentity includeを使えるが、いずれにせよそれでも各IDは「全体で一意」でなければならない。だいぶヤッツケな感じはあるがひとまず簡単なハックで一意プリフィクスを付けることにした。場合によってはまだちょっと怪しい。
  • 脚注を埋め込み型に変更。HTMLBuilderやePUBには脚注をうまく表現する方法がないので、単純に参照と内容を分離して、リンクする程度になっている。AHFでは参照側のほうに直接<div class="footnote">〜</div>のように内容を埋め込んでおけば、採番は自動で脚注を紙面下部に置いてくれる。
  • 図・表・リストのキャプションの区切り文字後の折り返し。前回言及したhereindentを埋め込むようにした。
  • 表のthead、tbodyの指定。HTMLBuilderやePUBではほぼ効果のないこの区分だが、AHFではページをまたいだときにちゃんとtheadで指定したヘッダの再挿入をしてくれるので、これを入れるようにした。

まだいくつか調整すべき内容はあるので、こちらのブランチの開発も進めていきたい。


2013年12月28日

_ [cooking] 海老のクリームソースパスタ、野菜のロースト


海老を軽く茹でて、生クリームのソースで。


2013年12月29日

_ [cooking] チンゲンサイと鶏肉の黒酢炒め、燻製卵


パートナーご実家への手みやげとして燻製を作っていたので、ついでに夕食用にゆで卵も燻製。

メインはチンゲンサイと鶏肉を炒め、黒酢・紹興酒・オイスターソースで。なんでこの組み合わせはこんなに合うのだろう。