Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Csspage1 2014-06-22

1,472 views

Published on

  • Be the first to comment

Csspage1 2014-06-22

  1. 1. 構造とスタイルの分離 っていったい CSS 組版とその周辺 第 1 回勉強会 2014.6.22 鹿野 桂一郎 k16.shikano@gmail.com golden_lucky
  2. 2. 内容 s ドキュメントの構造とスタイルを分離す るのは無条件に正義 s で、その方法は? s でも、ドキュメントにとって重要なのは 構造だから、スタイルを付ける方法は何 でもいいんじゃないの? 注意:この発表は事例紹介でも研究発表でも技術提案でもありません。私見に基づいた雑 感であり、無邪気な思い違いや妄想が含まれているかもしれませんが、議論の呼び水にな ることを期待しています。
  3. 3. 昔、FrameMaker でマニュアルとか作っ ていました s DTP ソフト的な使い方が中心だけど、 DTD を外注するとかはしてた s DTP 実務には基本ノータッチだったの で、どこまでやってたかは知らない
  4. 4. 出版社に転職したら、紙ゲラに入れた赤 字を DTP オペレーターに絵として修正し てもらっていた s 制御できない r grep できない、フィードバックを得にくい、 全体に目を通す機会しかない s 管理できない r diff とれない、バージョン管理できない、共 有困難
  5. 5. 原稿はマークアップされたテキストデー タなので、HTML に変換して CSS を当て ればゼロ校を内製できるのでは? s これを著者向けの初校にすれば手戻りが 数回稼げる! r 当時の Web ブラウザは日本語の均等割り付 けとかサポートしてなかったので見た目はい まいちだった s 著者の赤字を反映したマークアップテキ ストを制作会社に入稿して DTP 化。その 後、再校で印刷所入稿できるレベルに
  6. 6. でも、このゼロ校の HTML 原稿、そもそ も DTP ソフトで組んでもらう必要ってあ るの? 常時バージョン管理してる HTML 原稿を LATEX に変換して、 印刷所入稿データまで 内製してみよう
  7. 7. なんで LATEX を使ったか s 事前許可を会社からもらえる見込みが ない r 有料版でしか印刷所入稿データが作れない ツールは無理 r 書籍や Web で十分な情報が得られる s 多少使えた
  8. 8. なんで LATEX を使ったか s 事前許可を会社からもらえる見込みが ない r 有料版でしか印刷所入稿データが作れない ツールは無理 r 書籍や Web で十分な情報が得られる s 多少使えた s 今にして思うと、LATEX で正解だった r 良くも悪くもページメディア向けに異常に発 達している
  9. 9. そもそもスタイルと構造を分離するのは、 「メディアに依存せずにコンテンツを扱い たいから」 s スタイル ≡ メディアに応じて変化する 部分 s スタイルの都合で構造がお仕着せになる のいや
  10. 10. 構造とスタイルが分離されていれば、書 き手は構造に集中し、あとで好きなスタ イルをあてられる?
  11. 11. 構造とスタイルが分離されていれば、書 き手は構造に集中し、あとで好きなスタ イルをあてられる? s うそ、とはいわないまでも、びみょう
  12. 12. 構造とスタイルが分離されていれば、書 き手は構造に集中し、あとで好きなスタ イルをあてられる? s うそ、とはいわないまでも、びみょう s 構造にスタイルをあてる「方法」は、そん なにお手軽じゃない s なので通常は、「構造 × スタイル × 構造変 換の仕組み」がセットで提供される r XHTML, CSS, JavaScript r XML, HTML, XSL r LATEX , cls ファイル, TEX マクロ r Re:VIEW, InDesign, Ruby
  13. 13. 自分はこんなふうにやっています(でき ればデモ) s 構造からスタイルへのマッピングを、 宣言的に定義したい r たぶん CSS も同じ発想 r それを XHTML → LATEX でやりたい
  14. 14. 自分はこんなふうにやっています(でき ればデモ) s 構造からスタイルへのマッピングを、 宣言的に定義したい r たぶん CSS も同じ発想 r それを XHTML → LATEX でやりたい s 「構造 × スタイル × 構造変換の仕組み」 でいうと、XHTML, LATEX , Scheme
  15. 15. xml2tex での「スタイル指定」例 (define-tag p (when-lang "ja" (define-rule "" trim "nn") "en" (define-rule "{small" trim "}nn") else (ignore))) (define-tag br (define-rule "" "" (lambda () (cond (($under? ’(table h1 h2)) "newline ") (($under? ’(pre)) "n") (else ""))))) (define-simple-rules make-latex-cmd footnote emph textit texttt text textbf) 詳しくは https://github.com/k16shikano/xml2tex/wiki/Tour で。
  16. 16. define-rule で、スタイル対応付けの ルールを定義 s ある構造の「始まり」「途中」「終わり」の 処理だけ書く s その処理を書く際に木構造を簡単に活用 するための Lisp マクロを用意 r ($parent)、($under? ’(ul)) r ($ ’foo) とするだけで foo 属性の値が手 に入る
  17. 17. CSS として「構造から LATEX へのマッピン グ」が書けるか
  18. 18. CSS として「構造から LATEX へのマッピン グ」が書けるか s とりあえずトイ実装し始めてみた r https://gist.github.com/ k16shikano/0d1bc27b010fbfeac397 r グローバルなレイアウト指定/局所的なレイ アウト指定は、がんばればなんとかなりそう s レイアウトモデルの違いをどう吸収? r CSS はボックスモデル、TEX は段落モデル r ページにうまく収められないボックスをどう あつかうのか s テーブルつらそう(CSS に限らないけど) s 擬似要素とか関数とか
  19. 19. そもそもどこまでがスタイルの範疇? s 要素の配置 s ある種の要素そのもの r 箇条書きの番号 r ノンブル、柱、ツメ、背景 s 構造ともみなせる? r 章の最初の段落だけ大きくとか r 擬似要素(:first-line とか)
  20. 20. というわけで CSS組版が気になります!

×