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

More Related Content

Similar to Csspage1 2014-06-22

Re:Cre Vol.14 | Web design process for the future
Re:Cre Vol.14 | Web design process for the futureRe:Cre Vol.14 | Web design process for the future
Re:Cre Vol.14 | Web design process for the futuremasaaki komori
 
【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる
【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる 【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる
【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる Sapporo Sparkle k.k.
 
第2回ExtJSユーザー事例紹介
第2回ExtJSユーザー事例紹介第2回ExtJSユーザー事例紹介
第2回ExtJSユーザー事例紹介Akiyuki Nomura
 
越境する情シス
越境する情シス越境する情シス
越境する情シスZenji Kanzaki
 
Webコーディングの基本+α
Webコーディングの基本+αWebコーディングの基本+α
Webコーディングの基本+αtakapiya
 
ワイヤーフレームとは?
ワイヤーフレームとは?ワイヤーフレームとは?
ワイヤーフレームとは?Kazuma Sekiguchi
 
20180621_Node学園LT
20180621_Node学園LT20180621_Node学園LT
20180621_Node学園LTKahori Takeda
 
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)odakeiji
 
クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生
クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生
クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生WebSig24/7
 
das_recruit_compressed.pdf
das_recruit_compressed.pdfdas_recruit_compressed.pdf
das_recruit_compressed.pdfssuser2efa311
 
さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西rie05
 
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成Kazuki Akiyama
 

Similar to Csspage1 2014-06-22 (16)

Css benkyou
Css benkyouCss benkyou
Css benkyou
 
Re:Cre Vol.14 | Web design process for the future
Re:Cre Vol.14 | Web design process for the futureRe:Cre Vol.14 | Web design process for the future
Re:Cre Vol.14 | Web design process for the future
 
Lp14 komori
Lp14 komoriLp14 komori
Lp14 komori
 
【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる
【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる 【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる
【視座】 “テーマの知恵から方法の知恵へ”  -それはWhatから始まる
 
第2回ExtJSユーザー事例紹介
第2回ExtJSユーザー事例紹介第2回ExtJSユーザー事例紹介
第2回ExtJSユーザー事例紹介
 
越境する情シス
越境する情シス越境する情シス
越境する情シス
 
Webコーディングの基本+α
Webコーディングの基本+αWebコーディングの基本+α
Webコーディングの基本+α
 
ワイヤーフレームとは?
ワイヤーフレームとは?ワイヤーフレームとは?
ワイヤーフレームとは?
 
Cvpr2017事前読み会
Cvpr2017事前読み会Cvpr2017事前読み会
Cvpr2017事前読み会
 
20180621_Node学園LT
20180621_Node学園LT20180621_Node学園LT
20180621_Node学園LT
 
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
 
CSSシークレットはどのような書籍か【映像あり】
CSSシークレットはどのような書籍か【映像あり】CSSシークレットはどのような書籍か【映像あり】
CSSシークレットはどのような書籍か【映像あり】
 
クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生
クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生
クラウド登場で変化した受託案件と開発スタイルのRe-design~WebSig1日学校2013_受託の未来コース_後藤 和貴先生
 
das_recruit_compressed.pdf
das_recruit_compressed.pdfdas_recruit_compressed.pdf
das_recruit_compressed.pdf
 
さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西さあ、デザインをはじめよう。DevLOVE関西
さあ、デザインをはじめよう。DevLOVE関西
 
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
 

More from Keiichiro Shikano

技術を本にして売る、という仕事
技術を本にして売る、という仕事技術を本にして売る、という仕事
技術を本にして売る、という仕事Keiichiro Shikano
 
表とリスト(List Driven Table in LaTeX )
表とリスト(List Driven Table in LaTeX )表とリスト(List Driven Table in LaTeX )
表とリスト(List Driven Table in LaTeX )Keiichiro Shikano
 
2018年でもEPSをTeXで使う
2018年でもEPSをTeXで使う2018年でもEPSをTeXで使う
2018年でもEPSをTeXで使うKeiichiro Shikano
 
TeXの気持ちを理解するために知っておくと役立つかもしれないこと
TeXの気持ちを理解するために知っておくと役立つかもしれないことTeXの気持ちを理解するために知っておくと役立つかもしれないこと
TeXの気持ちを理解するために知っておくと役立つかもしれないことKeiichiro Shikano
 
Sphinxで売り物の書籍を作ってみた
Sphinxで売り物の書籍を作ってみたSphinxで売り物の書籍を作ってみた
Sphinxで売り物の書籍を作ってみたKeiichiro Shikano
 
TeXは軽量マークアップの夢を見るか
TeXは軽量マークアップの夢を見るかTeXは軽量マークアップの夢を見るか
TeXは軽量マークアップの夢を見るかKeiichiro Shikano
 
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごいKeiichiro Shikano
 
Index makes your book perfect
Index makes your book perfectIndex makes your book perfect
Index makes your book perfectKeiichiro Shikano
 
多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーター多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーターKeiichiro Shikano
 
オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由Keiichiro Shikano
 

More from Keiichiro Shikano (17)

技術を本にして売る、という仕事
技術を本にして売る、という仕事技術を本にして売る、という仕事
技術を本にして売る、という仕事
 
表とリスト(List Driven Table in LaTeX )
表とリスト(List Driven Table in LaTeX )表とリスト(List Driven Table in LaTeX )
表とリスト(List Driven Table in LaTeX )
 
KindleでMathMLの現実
KindleでMathMLの現実KindleでMathMLの現実
KindleでMathMLの現実
 
2018年でもEPSをTeXで使う
2018年でもEPSをTeXで使う2018年でもEPSをTeXで使う
2018年でもEPSをTeXで使う
 
TeXの気持ちを理解するために知っておくと役立つかもしれないこと
TeXの気持ちを理解するために知っておくと役立つかもしれないことTeXの気持ちを理解するために知っておくと役立つかもしれないこと
TeXの気持ちを理解するために知っておくと役立つかもしれないこと
 
Sphinxで売り物の書籍を作ってみた
Sphinxで売り物の書籍を作ってみたSphinxで売り物の書籍を作ってみた
Sphinxで売り物の書籍を作ってみた
 
TeXは軽量マークアップの夢を見るか
TeXは軽量マークアップの夢を見るかTeXは軽量マークアップの夢を見るか
TeXは軽量マークアップの夢を見るか
 
脚注をめぐる冒険
脚注をめぐる冒険脚注をめぐる冒険
脚注をめぐる冒険
 
Gaucheで本を作る
Gaucheで本を作るGaucheで本を作る
Gaucheで本を作る
 
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
『新装版リファクタリング ―既存のコードを安全に改善する―』 のここがすごい
 
TUG 2014 参加体験記
TUG 2014 参加体験記TUG 2014 参加体験記
TUG 2014 参加体験記
 
xml2tex at TUG 2014
xml2tex at TUG 2014xml2tex at TUG 2014
xml2tex at TUG 2014
 
Index makes your book perfect
Index makes your book perfectIndex makes your book perfect
Index makes your book perfect
 
Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11
 
Texuser 2012-lt
Texuser 2012-lt Texuser 2012-lt
Texuser 2012-lt
 
多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーター多値で簡単パーサーコンビネーター
多値で簡単パーサーコンビネーター
 
オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由オーム社開発部がTeXを使う3つのおもな理由
オーム社開発部がTeXを使う3つのおもな理由
 

Csspage1 2014-06-22