SlideShare a Scribd company logo
ドキュメントシステムは
これを使え
2015年版
鹿野 桂一郎
k16.shikano@gmail.com
@golden_lucky
2015 年 11 月 24 日
於 SphinxCon JP 2015
1 / 44
誰?
IT 系の技術書を世に出す仕事
2 / 44
過去の主な仕事
IT 系の技術書を世に出す仕事(過去)
3 / 44
職務経歴書
IT 系の技術書を世に出す仕事
職務経歴書:
http://note.golden-lucky.net/2015/09/blog-post.html
4 / 44
制作システムの開発
IT 系の技術書を世に出す仕事
職務経歴書:
http://note.golden-lucky.net/2015/09/blog-post.html
制作システムの開発
IT 系の技術書を世に出す仕事
職務経歴書:
http://note.golden-lucky.net/2015/09/blog-post.html
自動組版システム?
制作システムの開発
IT 系の技術書を世に出す仕事
職務経歴書:
http://note.golden-lucky.net/2015/09/blog-post.html
自動組版システム?
WTF?
7 / 44
版管理+自動組版システム
GitHub
Dropbox
印刷・製本へ
Webストアへ
・原稿と図版(多様な形式)
Jenkins
著者陣
レビュアー陣
編集者 組版担当
・LATEX生成スクリプト
・LATEXスタイル
・HTML生成スクリプト
・EPUB生成ツール
・CSSスタイル
・索引、用語集生成ツール
make ebook
make epub
make release
make kousei
8 / 44
版管理+自動組版イベント
版管理+自動組版イベント
いつかは第 2 回!
10 / 44
ドキュメントシステム
とは
思いつくキーワードを挙げてみた
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
12 / 44
歴史遺産
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
13 / 44
CMS
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
14 / 44
DTP ソフト
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
15 / 44
入力( マークアップ、XML アプリケーションなど)
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
16 / 44
出力(フォーマッタ、スタイルシートなど)
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
17 / 44
汎用変換ツール
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
18 / 44
ソフトウェアのドキュメント向け
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
19 / 44
書籍向け(特化)
POD
Javadoc など
WEB
Sphinx
Re:VIEW
EWB
CAS-UB
Atlas
Gitbook
PressBooks
Booktype
IGP digital
publisher
BCCKS
でんでんコン
バータ
Markdown
Wiki 記法
reStructuredText
RD、RDoc
AsciiDoc
HTMLBook
DocBook
DITA、JATS
LATEX とか
Docutils
Calibre
Pandoc
Word(MS Office)
Writer(LibreOffice)
Adobe InDesign
Adobe FrameMaker
AH Formatter
Prince
Apache FOP
Vivliostyle
TEX エンジン
ブラウザエンジン
CSS Books
cl-typesetting +
cl-pdf
Wikipedia
WordPress
Scribe
roff 系
Setext
Jade
(SGML+DSSSL)
20 / 44
ドキュメントシステムを特徴づける要素
入力方法(マークアップ方法)
レイアウトの指定方法
構造の指定方法
メタ情報の指定方法
出力の用途(品質)
API マニュアル
Web サイト
単一記事
電子書籍
紙書籍
21 / 44
マークアップから
考える
入力フォーマットの起源と変遷
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
23 / 44
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
24 / 44
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
ターゲット向け
の出力指示をコ
マンドとしてテ
キスト中に挿入
ターゲット向け
の出力指示をコ
マンドとしてテ
キスト中に挿入
ターゲット向け
の出力指示をコ
マンドとしてテ
キスト中に挿入
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
ターゲット向け
の出力指示をコ
マンドとしてテ
キスト中に挿入
ターゲット向け
の出力指示をコ
マンドとしてテ
キスト中に挿入
ターゲット向け
の出力指示をコ
マンドとしてテ
キスト中に挿入
これも?
26 / 44
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
ターゲットによ
らない高レベル
な記述を意識
ターゲットによ
らない高レベル
な記述を意識
27 / 44
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
構造と表現
の分離という
概念の発明
28 / 44
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
特定ターゲット
向けに簡素化
入力フォーマットの起源と変遷[要出典]
Text90 RUNOFF TRoff
EQN
TEX
Scribe
LATEX
IBM GML SGML
HTML
XML AsciiDoc
EWB Re:VIEW
文芸的プロ
グラミング
ソフトウェア
ドキュメント
pod
setext
reST Markdown
RD
Wiki 記法
HTMLBook
特定ターゲット
向けに簡素化
先祖返り?
30 / 44
入力フォーマットの指向性
HTML
DocBook
( 独自 )
XML
LaTeX
reST
簡易マークアップ
(Markdown とか)
構造きっちり
表現力柔軟
書きやすい
編集指向
執筆指向
組版指向
31 / 44
出力の用途から
考える
Yes/No チャート(異論は認める)
ソフトウェア
ドキュメント?
PDF の本?
EPUB ?
独自の構造や
組版をしたい?
Webサイトも?
Web
サイト?
PDF に
整形?
Python ?
縦書?
好きなマーク
アップ言語
ページ
っぽく
GUI ? Calibre
Pandoc
Vivliostyle
有料でも?
Web UI ほしい?
Ruby好き?
pLATEX
Sphinx
Re:VIEW
Gitbook
でんでんコンバータ
CAS-UB
各言語のドキュメントツール
Y
N
N N
N
N
N
N
N
N
N
N
N N
N
Y
Y Y
Y
Y
Y
Y
Y
Y
Y Y
Y
Y
33 / 44
Sphinx
ドキュメントを PDF でも EPUB でも HTML でも
出力したいといった用途に幅広く便利
特に、Python プログラムのドキュメントならこれ
一択
構文などの拡張性は高い。既存の便利なエクステン
ションも豊富
紙書籍向けサポートは弱い
http://sphinx-doc.org/
(http://sphinx-users.jp/)
34 / 44
Re:VIEW
横書きの技術書(紙書籍向け PDF、電子書籍向け
PDF、EPUB)が作りやすい
構文などの拡張性は高い
見た目をデフォルト以外にしたければ出力
(LaTeX、CSS、InDesign)の知識が不可欠
https://github.com/kmuto/review/wiki
35 / 44
Gitbook
技術書が GitHub と Markdown(AsciiDom も
可)で書ける。Web UI もある
構文の拡張性はないが、ある程度のスタイルは定義
可能。いくつかプラグインもある
PDF 出力がひどい(Calibre の PDF エンジン)
https://www.gitbook.com(https:
//github.com/GitbookIO/gitbook)
36 / 44
CAS-UB
縦書きを含む日本語の本(紙書籍向け PDF、電子書
籍向け PDF、EPUB)が作れて、売れる
構文の拡張性はないが、ある程度のスタイルは定義
可能
Web ブラウザでの編集が基本。1 カ月の無償期間
を超えると有償
http://www.cas-ub.com/index.php
(PressBooks、Booktype、Lean Book、
Atlas など、ほかにも同様の書籍執筆 Web サービ
スはある)
37 / 44
でんでんコンバーター
縦書きを含む日本語の EPUB が作れる
構文は Markdown の独自拡張だが、HTML の埋
め込みはできる
EPUB のみを生成するなら特に不満はないような?
http://conv.denshochan.com/
38 / 44
Vivliostyle
CSS 組版エンジン
Web ブラウザで本のようなページが動的にレンダ
リングできる
Web ページ用の CSS から PDF が作れるわけでは
ない
http://vivliostyle.com/ja/
39 / 44
Pandoc
さまざまなフォーマットを変換できる。似たような
ツールはほかにもあるけど(kramdown とか)、
対応フォーマット数が多く、しかも増えている
Haskell 製
基本的には Markdown を他の書式に変換するた
めのツールだと割り切ったほうが良い
http://pandoc.org/
40 / 44
Calibre
電子書籍の統合開発環境。なんでもできる。コマン
ド(ebook-convert)もある
Python 製
EPUB3 には未対応
http://calibre-ebook.com/
41 / 44
結論
ドキュメントシステムの選び方
ドキュメントシステムとは、テキスト本体にマーク
アップされた情報を使って、人間が視覚的に読みや
すいレイアウトを生成する仕組みである
シンプルなマークアップは、ターゲットを決め打ち
した結果かもしれない
そもそも視覚的な読みやすさだけが目標でいいのか
(構造を読み取るデバイスは肉眼とは限らない)
その意味では、XML は強い
なんでも好きなものを選べる状況なら、書きやすい
マークアップ(あるいは Web UI)があるとか、必
要なターゲット向けに素敵なテンプレートがあると
か、そんな基準でいいのかもしれない
43 / 44
参考資料、URL
Martin Bryan 著, 山崎俊一監訳 “SGML 入門”(アスキー出版局, 1991)
Brian Reid “Scribe: A Document Specification Language and
its Compiler”(Doctor Thesis, 1980)
Leslie Lamport 著, Edgar Cooke・倉沢良一監訳 “文書処理システム
LATEX”(アスキー出版局, 1990)
O’Reilly Media “Using Web Standards in Print and Digital
Book Workflows” http://www.w3.org/2012/12/
global-publisher/slides/Day1/P0-witwer_adam.pdf
pod:http://perldoc.perl.org/perlpod.html
AsciiDoc:http://www.methods.co.nz/asciidoc/
HTMLBook:http://jagat-xml-publishing-study-group.
github.io/HTMLBook-JA/
Philosophy of Markdown:https://daringfireball.net/
projects/markdown/syntax#philosophy
44 / 44

More Related Content

ドキュメントシステムはこれを使え2015年版