• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
650
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
3
Comments
0
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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