kmuto’s blog

はてな社でMackerel CREをやっています。料理と旅行といろんなIT技術

CSS組版 Vivliostyle ユーザーと開発者の集い 2022秋 に参加した (2)

続き。

kmuto.hatenablog.com

Vivliostyleプロジェクトの今までとこれから

  • 引き続き村上さん
  • Vivliostyle Pubのアルファ版を公開 https://vivliostyle-pub-develop.vercel.app/
    • Markdownを編集するとズビャッと表示が変わる
  • Viewerの改良として文字列検索機能、目次機能など
  • VFM v2 Markdown拡張仕様を改良。セクション分けでの属性の扱いを仕様変更する。:has() でシンプルに同定できるようになったため

Vivliostyle CLI update - 2022 Autumn

paper.dropbox.com

  • 緑豆はるさめさん
  • CLIの4.11.0→5.9.0のアップデート報告
  • Webブラウザ操作をPuppeteer→Playwrightへ移行した
    • Puppeteerの挙動が怪しかったため。まれに起動応答しない、ARM64 Linuxの新しいChromium対応がされていないなど
    • Playwrightで問題は解決した。また副次効果として、experimentalではあるがFirefoxWebKit--browser で指定して実行可に
    • PuppeteerではChromiumのコピーが各プロジェクトのnode_modulesに置かれていたが、Playwrightでは一元管理されてディスク消費が抑えられるようになった
  • 出力PDFにtrimboxとbleedboxの情報(いわゆるデジタルトンボ)を埋め込むようにした。これにより印刷所入稿がより適切になった
  • --css オプションを導入し、ランタイムにCSS変数を上書きできるようになった。トンボマークの有無や塗り足し幅の調整なども実行時指定可になる
  • テーマ機能を強化中。CSS変数を導入し、@vivliostyle/theme-base を用意して、テーマ共通のCSS変数(--vs-*)を提供する。テーマ側は calc(var(--vs-〜)) とかで参照できる
    • 上書きしてカスタムも可。:root { --vs-color-body: blue; } など。もちろん :root だけでなく、セレクタで個別にタッチアップできる
    • --vs-column-count の値で1段組を2段組にする例
    • テーマの中でほかのテーマを参照できるようにする機能などを追加予定
    • --vs-* の変数をconfigで設定できるようにするかも
  • EPUB対応はテーマ作業が終わった後にがんばる予定

VFMの仕様設計の再考

  • @nosuke23さんのお話
  • 別件でこれは聞いていなかった

vivliostyle-cli-helperの公開と商業出版『Viviliostyle CSS組版入門』

  • リブロワークスの大津さん
  • C&R研究所からVivliostyleの入門書を刊行予定、4〜5月目標
  • まだ執筆中。読者がCUI不慣れでも使えるよう、VS Codeのメニューからコマンドを実行できるような拡張機能を作成した https://marketplace.visualstudio.com/items?itemName=Libroworks.vivliostyle-cli-helper
  • 紹介する印刷方法については、同人誌と商業物は別のレイヤーで考える
    • 同人誌: Type3フォントPDFだろうがRGBだろうが受け付ける印刷所多し
      • Chromium系からOTFを使っているものを書き出すと、文字がType3という形式で表現される。商業印刷所ではPDF内では文字はType1かCID、またはアウトラインになっていないとNG)
    • 商業物: InDesign貼り込み・1色化(いわゆる1C)・PDF/X-4書き出しの方向で説明予定
    • Vivliostyle.jsの場合の4C(CMYK)データ、2C(K+C/M/Y or K+特色)印刷について。WebブラウザエンジンだとCMYKモデルがなく、RGBになってしまう。特に2C化はかなり難しく、色が混じってしまう。PDFを解析して無理矢理後加工する?
  • 塗り足し領域にもデザインのある、商業書籍レベルのしっかり本格的な紙面なので刊行期待

Vivliostyle、もう一つのブルーオーシャン

vivliostyle.org

  • Vivliostyleの小形さん
  • Vivliostyle.jsはライブラリであり、単に印刷用途だけでなくほかの用途でもいろいろ活用できるのでは?という提案
  • 「納品ドキュメントの作成にMarkdown+Vivliostyleを採用した話」 https://t.co/EkEwXY3JlO
  • Vivliostyle.jsの良いところは、羃等性がある、Gitなどでバージョン管理できる、共同編集できる、PDFを出力できる など
  • ファーストマリンサービス社のVivliostyle Pub使用例
    • GitHubMarkdownで連絡コンテンツを置き、管理配信システムを介して船舶に配信する。各船舶ではVivliostyle Viewerで閲覧する
    • 英語文書(月次品質目標。画像や表組を含む)、日本語文書(船舶保守規程)の例
  • vivliostyle-sitegen。VFMが使えるCMS
    • 開発のakabekoさんが多忙で中断中
  • ページ分割しないモードを追加するのはどうか

この後は開発者会議に入ったけれど、お昼を食べ損ねていたので離脱。

GitHubの通知を見ていても毎週の勢いで進捗開発されているので、今後も楽しみにしている。Re:VIEW側でのVivliostyle呼び出し対応ももう少し強化したいけど、まずはちゃんとテーマ作らないとなぁというところ(現状でも無理矢理流用しようと思えばできなくはないけど)。