diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..133519f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+node_modules/
+Gemfile.lock
+.sass-cache/
+
+articles/*.pdf
+articles/*.epub
+articles/*.html
+# articles/*.md
+articles/*.xml
+articles/*.txt
+
+.DS_Store
diff --git a/Documentation/bible_logo.png b/Documentation/bible_logo.png
new file mode 100644
index 0000000..07be2d4
Binary files /dev/null and b/Documentation/bible_logo.png differ
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..b350d83
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,7 @@
+# A sample Gemfile
+source "https://rubygems.org"
+
+gem 'review', '5.3.0'
+gem 'pandoc2review'
+gem 'rake'
+# gem 'review-peg', '0.2.2'
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..202fa80
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,179 @@
+"use strict";
+
+let fs = require("fs");
+let yaml = require("js-yaml");
+
+const articles = "articles";
+const bookConfig = yaml.safeLoad(fs.readFileSync(`${articles}/config.yml`, "utf8"));
+
+const reviewPrefix = process.env["REVIEW_PREFIX"] || "bundle exec ";
+const reviewPostfix = process.env["REVIEW_POSTFIX"] || ""; // REVIEW_POSTFIX="-peg" npm run pdf とかするとPEGでビルドできるよ
+const reviewConfig = process.env["REVIEW_CONFIG_FILE"] || "config.yml"; // REVIEW_CONFIG_FILE="config-ebook.yml" npm run pdf のようにすると別のconfigでビルドできるよ
+const reviewPreproc = `${reviewPrefix}review-preproc${reviewPostfix}`;
+const reviewCompile = `${reviewPrefix}review-compile${reviewPostfix}`;
+const reviewPdfMaker = `${reviewPrefix}rake pdf ${reviewPostfix}`;
+const reviewEpubMaker = `${reviewPrefix}rake epub ${reviewPostfix}`;
+const reviewWebMaker = `${reviewPrefix}rake web ${reviewPostfix}`;
+const reviewTextMaker = `${reviewPrefix}rake text ${reviewPostfix}`;
+const reviewIDGXMLMaker = `${reviewPrefix}rake idgxml ${reviewPostfix}`;
+const reviewVivliostyle = `${reviewPrefix}rake vivliostyle ${reviewPostfix}`;
+
+module.exports = grunt => {
+ grunt.initConfig({
+ clean: {
+ review: {
+ src: [
+ `${articles}/${bookConfig.bookname}-*/`, // pdf, epub temp dir
+ `${articles}/*.pdf`,
+ `${articles}/*.epub`,
+ `${articles}/*.html`,
+ `${articles}/*.md`,
+ `${articles}/*.xml`,
+ `${articles}/*.txt`,
+ `${articles}/webroot`
+ ]
+ }
+ },
+ shell: {
+ preprocess: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewPreproc} -r --tabwidth=2 **/*.re`
+ },
+ compile2text: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewTextMaker}`
+ },
+ compile2markdown: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewCompile} --target=markdown`
+ },
+ compile2html: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewCompile} --target=html --stylesheet=style.css --chapterlink`
+ },
+ compile2latex: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewCompile} --target=latex --footnotetext`
+ },
+ compile2idgxml: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewCompile} --target=idgxml`
+ },
+ compile2pdf: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewPdfMaker}`
+ },
+ compile2epub: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewEpubMaker}`
+ },
+ compile2web: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewWebMaker}`
+ },
+ compile2idgxmlmaker: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewIDGXMLMaker}`
+ },
+ compile2vivliostyle: {
+ options: {
+ execOptions: {
+ cwd: articles,
+ }
+ },
+ command: `${reviewVivliostyle}`
+ }
+ }
+ });
+
+ function generateTask(target) {
+ return ["clean", "shell:preprocess", `shell:compile2${target}`];
+ }
+
+ grunt.registerTask(
+ "default",
+ "原稿をコンパイルしてPDFファイルにする",
+ "pdf");
+
+ grunt.registerTask(
+ "text",
+ "原稿をコンパイルしてTextファイルにする",
+ generateTask("text"));
+
+ grunt.registerTask(
+ "markdown",
+ "原稿をコンパイルしてMarkdownファイルにする",
+ generateTask("markdown"));
+
+ grunt.registerTask(
+ "html",
+ "原稿をコンパイルしてHTMLファイルにする",
+ generateTask("html"));
+
+ grunt.registerTask(
+ "idgxmlmaker",
+ "原稿をコンパイルしてInDesign用XMLファイルにする",
+ generateTask("idgxmlmaker"));
+
+ grunt.registerTask(
+ "pdf",
+ "原稿をコンパイルしてLaTeXでpdfファイルにする",
+ generateTask("pdf"));
+
+ grunt.registerTask(
+ "epub",
+ "原稿をコンパイルしてepubファイルにする",
+ generateTask("epub"));
+
+ grunt.registerTask(
+ "web",
+ "原稿をコンパイルしてWebページファイルにする",
+ generateTask("web"));
+
+ grunt.registerTask(
+ "vivliostyle",
+ "原稿をコンパイルしてVivliostyle-CLIでpdfファイルにする",
+ generateTask("vivliostyle"));
+
+ require('load-grunt-tasks')(grunt);
+};
diff --git a/README.md b/README.md
index 374d788..2cb5e9a 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,17 @@
-# UnityPerformanceTuningBible
\ No newline at end of file
+
+
+
+
+# Unity Performance Tuning Bible
+本書はUnityのパフォーマンスチューニングに関するノウハウを体系的にまとめた書籍です。
+本リポジトリから電子書籍をPDFとしてダウンロードすることができます。
+
+ご意見、ご指摘は [Issues](https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible/issues) や [Pull Requests](https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible/pulls) からお願いいたします。
+
+## 電子書籍のダウンロード方法
+1. [Releasesの最新版](https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible/releases/latest)へ遷移します。
+
+2. AssetsからPDFをダウンロードします。
+
+## Copyright
+(C) 2022 CyberAgent, Inc.
diff --git a/README_CONTRIBUTOR.md b/README_CONTRIBUTOR.md
new file mode 100644
index 0000000..60916ff
--- /dev/null
+++ b/README_CONTRIBUTOR.md
@@ -0,0 +1,250 @@
+Unity Performance Tuning Bible for Contributor
+
+執筆者向けのドキュメントです。
+本プロジェクトはRe:VIEW 5.1と5.3が混在しています。
+これは5.3でビルドを行った場合、一部レイアウトが崩れるためです。
+今後、5.3に統一していく予定となります。
+
+# セットアップ
+
+## ローカルでビルド(PDF出力)する環境の構築
+まずローカルで出力を確認できる環境を作ります。
+Dockerを使ったセットアップが簡単なため推奨します。
+
+```
+$ docker pull vvakame/review:5.1
+```
+
+Macの場合、Ruby・TeXLive・Re:VIEWをそれぞれインストールすれば自力で環境構築できますが、
+いろいろと面倒なので特別な理由がなければDockerを使うのがいいと思います。
+
+## ビルド方法
+
+#### ローカルでビルドする
+上述のDockerイメージをpullして環境構築が完了している状態を想定しています。
+Dockerを使ってローカルでビルドするには以下のシェルを実行します。
+
+書籍用
+```
+$ ./build-in-docker.sh
+```
+
+電子書籍用
+```
+$ ./build-in-docker-epub.sh
+```
+
+# 記事を編集する
+
+#### 編集するファイル
+articles/text内の「.reファイル」を編集します。
+
+#### 記事を新たに追加する
+articles/textに新規で「.reファイル」を作成します。
+
+つぎに章扉の画像をimages/chapter_titleに追加します。
+章扉の画像名は「chapter_章番号.png」となります。
+
+#### Re:VIEWの書き方
+Re:VIEWの一般的な記法は以下を参照してください。
+https://github.com/kmuto/review/blob/master/doc/format.ja.md
+よく使う記法や注意事項については[記法](#記法)にまとめます。
+
+# Unityバージョンについて
+使用するUnityバージョンは、当時最新だったLTSバージョンの2020.3.24f1を利用します。
+他Unityバージョンの機能について言及する際は、バージョンを明記してから執筆を行いましょう。
+
+# 画像ファイルの解像度
+一般的にA4サイズの書籍の印刷の場合、DPIの基準は以下のようになります。
+* フルカラー:350dpi = 2894×4093
+* モノクロ:600dpi = 4961×7016
+書籍には余白があるため、使用可能な横幅の最大サイズは約1/2ぐらいでしょう。
+それでもモノクロの場合は2500近く必要になります。
+スクリーンショットは画面解像度に依存するため現実的ではありません。
+
+そのため、本書籍では解像度のレギュレーションは細かく決めませんが、以下のことを意識してください。
+* 画面の解像度を最大まで上げる(Macの場合、設定→ディスプレイから変更する。4Kディスプレイがあるなら4K推奨)
+* フルカラー基準で考慮し、横幅最大の画像で1400ぐらいを目安とする。(基準を満たさないとしても、なるべく大きく撮る)
+
+# テキストの校正
+Visual Studio Codeのプラグインとして提供されている「テキスト校正くん」を必ず使いましょう。
+https://marketplace.visualstudio.com/items?itemName=ICS.japanese-proofreading
+
+# 記法
+記法について、執筆者ごとにブレないようにまとめます。
+「キャプション」という馴染みのない言葉が出てきますが、「見出し」や「タイトル名」のことを指しています。
+
+## 見出し
+見出しには5つのレベルが存在します。
+記法は次のようになります。
+```review
+={ラベル} 章のキャプション
+=={ラベル} 節のキャプション
+==={ラベル} 項のキャプション
+===={ラベル} 目のキャプション
+====={ラベル} 段のキャプション
+======{ラベル} 小段のキャプション
+```
+見出しはなるべく第3レベルの「項」までに抑えましょう。
+
+第4レベルは利用しても良いですが、本文書体と見分けがつきにくいため、なるべく使用は控えてください。
+記述量が少ない場合などの区切りとして使うのは問題ありません。
+使う場合は、本文書体と区別を明確にするために採番することを推奨します。
+
+第5レベル以降は禁止とします。
+
+#### 参照方法
+・章を参照する場合
+`@{reファイル名}`:「第3章」のように章番号に置換される。
+`@{reファイル名}`:「第3章 最適化」のように章番号と章タイトルに置換される。
+`@{reファイル名}`:「最適化」のように章タイトルに置換される。
+
+・節や項を参照する場合
+`@{ラベル または 見出し}`:「2.1 最適化手法」のように見出し名に置換される。
+また、他ファイルの節や項を参照する場合は、次のようにファイル名を使用します。
+`@{ファイル名|ラベル名}`
+
+## 囲み枠
+### インフォ
+本文から少し逸れた話など、雑談のような情報を書く際に使います。
+数行の短い文章量の場合に使うと良いでしょう。
+記法は次のようになります。
+```review
+//info[キャプション]{
+
+インフォの内容
+インフォの内容
+
+//}
+```
+キャプションは省略可能です。
+
+
+### コラム
+インフォと同様の用途ですが、文章量が多い際はコラムの方を使用します。
+記法は次のようになります。
+```review
+===[column]{ラベル} キャプション
+
+コラムの内容
+コラムの内容
+
+===[/column]
+```
+ラベルは省略可能です。
+
+#### 参照方法
+`@{ラベル または 見出し}>`:「GC.Allocの小話」のようにコラム名に置換される。
+
+
+## 図
+記法は次のようになります。
+```review
+//image[識別子][キャプション][scale=1.0]
+```
+scaleは省略可能です。
+
+識別子は画像ファイル名と同じ名前にする必要があります。
+識別子のファイル参照先は、`images/reファイル名/識別子の画像ファイル名`になります。
+
+#### 参照方法
+`@
{識別子}>`:「図1.1」のように図番号に置換される。
+
+また、他ファイルの図を参照する場合は、次のようにファイル名を使用します。
+`@
{ファイル名|識別子}`
+
+## ソースコード
+特別な理由がなければ、連番、行番号付のlistnumを使用します。
+記法は次のようになります。
+```review
+//listnum[識別子][キャプション][csharp]{
+public class Sample {
+ public void SampleMethod() {
+ // サンプルメソッド
+ }
+}
+//}
+```
+コードフォーマットはRiderのデフォルト設定を採用します。
+不安な場合は、コアテク標準のRider設定をインポートしてください。
+
+#### 参照方法
+`@{識別子}`:「リスト2.1」のようにリスト番号に置換される
+
+また、他ファイルのリストを参照する場合は、次のようにファイル名を使用します。
+`@{ファイル名|識別子}`
+
+## ソースコードの本文引用
+本文中にソースコードを記述したい場合に使用します。
+改行が出来ないので1行に収まる引用にしか使えません。
+記法は次のようになります。
+```review
+@{var sample = gameobject.name;}
+```
+
+クラス名、メソッド名、プロパティ名などの本文引用は、この記法を原則、利用しましょう。
+
+## テーブル
+特別な理由がなければ、採番あり、キャプションありのテーブルを使用します。
+記法は次のようになります。
+```review
+//table[識別子][キャプション]{
+A B
+--------------------
+HogeHoge FugaFuga
+FugaFuga .
+//}
+```
+ヘッダーと内容を分ける罫線は「-」を12個以上連続する必要があります。
+また、表の各列は「タブ」によって区切りと判定されます。
+エディターの設定で、タブがスペースに自動変換されると適切に表示されないので注意してください。
+
+空白のセルには「.」を記入します。
+先頭文字に「.」を使用する場合は「..」と書きましょう。
+
+#### 参照方法
+`@{識別子}`:「表1.1」のようにテーブル番号に置換される
+
+また、他ファイルのテーブルを参照する場合は、次のようにファイル名を使用します。
+`@{ファイル名|識別子}`
+
+## 箇条書き
+記法は次のようになります。
+```review
+ * 第1の項目
+ ** 第1の項目のネスト
+ * 第2の項目
+ ** 第2の項目のネスト
+```
+分かりにくいですが、行頭に1つ以上の空白が必要になるので注意してください。
+通常の段落との結合を防ぐために、前後に空行を入れましょう。
+
+## 番号付き箇条書き
+記法は次のようになります。
+```review
+ 1. 1つ目の内容
+ 2. 2つ目の内容
+ 3. 3つ目の内容
+```
+分かりにくいですが、行頭に1つ以上の空白が必要になるので注意してください。
+通常の段落との結合を防ぐために、前後に空行を入れましょう。
+
+## 用語リスト
+記法は次のようになります。
+```review
+ : 用語1
+ 用語の説明
+ 用語の説明
+ : 用語2
+ 用語の説明
+```
+分かりにくいですが、行頭に1つ以上の空白が必要になるので注意してください。
+通常の段落との結合を防ぐために、前後に空行を入れましょう。
+
+## その他
+`@{太字}`:強調の太字はこれに統一します。
+`@{キーワード}`:キーワード。はじめて出てくる専門用語などを強調するために使います。
+`@{https://www.google.com/}`:URLがそのまま記載されます。
+`@{https://www.google.com/, Google}`:Googleという文字へ置換されたリンクになります。
+`@
{}`:基本的に使用しません。テーブルのセル内、箇条書き内だけに限定して使いましょう。
+`//blankline`:基本的に使用しません。前後のページでキャプションだけ分離した場合などに使用するイメージです。
diff --git a/Third Party Notices.md b/Third Party Notices.md
new file mode 100644
index 0000000..81345ef
--- /dev/null
+++ b/Third Party Notices.md
@@ -0,0 +1,10 @@
+This package contains third-party software components governed by the licenses indicated below:
+---------
+
+Component Name: Morisawa BIZ UDMincho (https://github.com/googlefonts/morisawa-biz-ud-mincho)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at https://scripts.sil.org/OFL
+
+Component Name: Morisawa BIZ UDGothic (https://github.com/googlefonts/morisawa-biz-ud-gothic)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at https://scripts.sil.org/OFL
diff --git a/articles/Rakefile b/articles/Rakefile
new file mode 100644
index 0000000..07b7219
--- /dev/null
+++ b/articles/Rakefile
@@ -0,0 +1,3 @@
+Dir.glob('lib/tasks/*.rake').sort.each do |file|
+ load(file)
+end
diff --git a/articles/backcover.tex b/articles/backcover.tex
new file mode 100644
index 0000000..71a9a7f
--- /dev/null
+++ b/articles/backcover.tex
@@ -0,0 +1,4 @@
+% バックカバー画像
+\begin{titlepage}
+ \includefullpagegraphics[height=\paperheight,keepaspectratio]{/book/articles/images/cover/tuning_bible_cover_back.png}
+\end{titlepage}\clearpage
diff --git a/articles/catalog.yml b/articles/catalog.yml
new file mode 100644
index 0000000..daabd5c
--- /dev/null
+++ b/articles/catalog.yml
@@ -0,0 +1,22 @@
+PREDEF:
+ - preface.re
+
+CHAPS:
+ - tuning_start.re
+ - basic.re
+ - profile_tool.re
+ - tuning_practice_asset.re
+ - tuning_practice_assetbundle.re
+ - tuning_practice_physics.re
+ - tuning_practice_graphics.re
+ - tuning_practice_ui.re
+ - tuning_practice_script_unity.re
+ - tuning_practice_script_csharp.re
+ - tuning_practice_player_settings.re
+ - tuning_practice_third_party.re
+
+APPENDIX:
+
+POSTDEF:
+ - end_of_summary.re
+ - contributors.re
diff --git a/articles/config-epub.yml b/articles/config-epub.yml
new file mode 100644
index 0000000..c1be984
--- /dev/null
+++ b/articles/config-epub.yml
@@ -0,0 +1,480 @@
+# review-epubmaker向けの設定ファイルの例。
+# yamlファイルをRe:VIEWファイルのある場所に置き、
+# 「review-epubmaker yamlファイル」を実行すると、.epubファイルが
+# 生成されます。
+# このファイルはUTF-8エンコーディングで記述してください。
+
+# この設定ファイルでサポートするRe:VIEWのバージョン番号。
+# major versionが違うときにはエラーを出す。
+review_version: 5.1
+
+# ほかの設定ファイルの継承を指定できる。同じパラメータに異なる値がある場合は、
+# 呼び出し元の値が優先される。
+# A.yml、B.ymlのパラメータを継承する例。A.ymlとB.ymlに同じパラメータがある
+# 場合、B.ymlの値が優先される。さらに今このファイルに同じパラメータがあるなら、
+# その値がB.ymlよりも優先される。
+# 同様にA.yml、B.yml内でさらにinherit:パラメータを使うこともできる。
+# inherit: ["A.yml", "B.yml"]
+
+# ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
+bookname: Unityパフォーマンスチューニングバイブル
+# 記述言語。省略した場合はja
+language: ja
+
+# 書名
+booktitle: {name: "Unity パフォーマンスチューニング バイブル", file-as: "TuningBible"}
+
+# 著者名。「, 」で区切って複数指定できる
+aut: [{name: "株式会社 サイバーエージェント SGEコア技術本部"}]
+
+# 以下はオプション
+# 以下はオプション(autと同じように配列書式で複数指定可能)。
+# 読みの指定はaut:の例を参照。
+# a-が付いているものはcreator側、
+# 付いていないものはcontributor側(二次協力者)に入る
+# a-adp, adp: 異なるメディア向けに作り直した者
+# a-ann, ann: 注釈記述者
+# a-arr, arr: アレンジした者
+# a-art, art: グラフィックデザインおよび芸術家
+# a-asn, asn: 関連・かつての所有者・関係者
+# a-aqt, aqt: 大きく引用された人物
+# a-aft, aft: 後書き・奥付の責任者
+# a-aui, aui: 序論・序文・前書きの責任者
+# a-ant, ant: 目録責任者
+# a-bkp, bkp: メディア制作責任者
+# a-clb, clb: 限定参加または補足者
+# a-cmm, cmm: 解釈・分析・考察者
+# a-csl, csl: 監修者
+# a-dsr, dsr: デザイナ
+# a-edt, edt: 編集者
+# a-ill, ill: イラストレータ
+# a-lyr, lyr: 歌詞作成者
+# a-mdc, mdc: メタデータセットの一次的責任者
+# a-mus, mus: 音楽家
+# a-nrt, nrt: 語り手
+# a-oth, oth: その他
+# a-pht, pht: 撮影責任者
+# a-pbl, pbl: 出版社(発行所)
+# a-prt, prt: 印刷所
+# prt: TechBooster
+# a-red, red: 項目の枠組起草者
+# a-rev, rev: 評論者
+# a-spn, spn: 援助者
+# a-ths, ths: 監督者
+# a-trc, trc: 筆記・タイプ作業者
+# a-trl, trl: 翻訳者
+
+pbl: 株式会社 サイバーエージェント
+dsr: 株式会社 サイバーエージェント SGE統括本部 PRデザイン室
+
+# 刊行日(省略した場合は実行時の日付)
+date: 2022-07-08
+# 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
+# 複数指定する場合は次のように記述する
+# [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]]
+# 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
+history: [["2022年7月8日 初版第1刷 発行"]]
+# 権利表記(配列で複数指定可)
+# rights: (C) 2016 Re:VIEW Developers
+rights: ["(C) 2022 CyberAgent, Inc."]
+# description: 説明
+# subject: 短い説明用タグ(配列で複数指定可)
+# type: 書籍のカテゴリーなど(配列で複数指定可)
+# format: メディアタイプおよび特徴(配列で複数指定可)
+# source: 出版物生成の重要なリソース情報(配列で複数指定可)
+# relation: 補助的リソース(配列で複数指定可)
+# coverage: 内容の範囲や領域(配列で複数指定可)
+
+# デバッグフラグ。nullでないときには一時ファイルをカレントディレクトリに作成し、削除もしない
+debug: null
+
+# 固有IDに使用するドメイン。省略した場合は時刻に基づくランダムUUIDが入る
+urnid: urn:uuid:https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible/
+#
+# ISBN。省略した場合はurnidが入る
+# isbn: null
+#
+# @, @, @, @命令をハイパーリンクにする(nullでハイパーリンクにしない)
+# chapterlink: true
+
+# HTMLファイルの拡張子(省略した場合はhtml)
+htmlext: html
+#
+# CSSファイル(配列で複数指定可、yamlファイルおよびRe:VIEWファイルを置いたディレクトリにあること)
+stylesheet: ["style.css"]
+
+# ePUBのバージョン (2か3)
+epubversion: 3
+#
+# HTMLのバージョン (4か5。epubversionを3にしたときには5にする)
+htmlversion: 5
+
+# 目次として抽出する見出しレベル
+toclevel: 3
+
+# 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする
+#
+# 本文でセクション番号を表示する見出しレベル
+secnolevel: 3
+
+# 本文中に目次ページを作成するか。省略した場合はnull (作成しない)
+toc: true
+
+# EPUB2標準の目次(NCX)以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない)
+# ePUB3においてはこの設定によらず必ず作成される
+# mytoc: true
+
+# 表紙にするファイル。ファイル名を指定すると表紙として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+# cover: null
+#
+# 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg)
+# PDFMaker 固有の表紙設定は pdfmaker セクション内で上書き可能
+coverimage: cover/tuning_bible_cover_color.png
+#
+# 表紙の後に大扉ページを作成するか。省略した場合はtrue (作成する)
+titlepage: true
+#
+# 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+titlefile: title-epub.tex
+#
+# 原書大扉ページにするファイル。ファイル名を指定すると原書大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+# originaltitlefile: null
+#
+# 権利表記ページファイル。ファイル名を指定すると権利表記として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+# creditfile: null
+
+# 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
+# デフォルトの奥付における各項目の名前(「著 者」など)を変えたいときにはlocale.ymlで文字列を設定する(詳細はdoc/format.ja.mdを参照)
+colophon: true
+# デフォルトの奥付における、各項目の記載順序
+# colophon_order: ["aut", "csl", "trl", "dsr", "ill", "cov", "edt", "pbl", "contact", "prt"]
+
+# 裏表紙データファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+backcover: backcover.tex
+
+# プロフィールページファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)。ファイル名を指定すると著者紹介として入る
+# profile: null
+# プロフィールページの目次上の見出し
+# profiletitle: 著者紹介
+
+# 広告ファイル。ファイル名を指定すると広告として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+# advfile: null
+
+# 取り込む画像が格納されているディレクトリ。省略した場合は以下
+# imagedir: images
+
+# 取り込むフォントが格納されているディレクトリ。省略した場合は以下
+# fontdir: fonts
+
+# imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
+# image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"]
+
+# fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
+# font_ext: ["ttf", "woff", "otf"]
+
+# ソースコードハイライトを利用する (rouge,pygmentsには外部gemが必要)
+# highlight:
+# html: "rouge"
+# latex: "listings"
+
+# カタログファイル名を指定する
+# catalogfile: catalog.yml
+
+# reファイルを格納するディレクトリ。省略した場合は以下 (. はカレントディレクトリを示す)
+contentdir: text
+# pandoc2reviewを利用してMarkdownコンテンツを取り込むには、以下を有効にする
+# contentdir: _refiles
+
+# @命令で使用する単語ファイルのパス。["common.csv", "mybook.csv"]のように配列指定も可
+# words_file: words.csv
+
+# //table命令における列の区切り文字。tabs (1文字以上のタブ文字区切り。デフォルト), singletab (1文字のタブ文字区切り), spaces (1文字以上のスペースまたはタブ文字の区切り), verticalbar ("0個以上の空白 | 0個以上の空白"の区切り)
+# table_row_separator: tabs
+
+# 複数行から段落を結合する際、前後のUnicode文字種に基づき必要に応じて空白文字を挿入するか
+# 省略した場合はnull (挿入しない)。別途unicode-eaw gemファイルが必要
+# join_lines_by_lang: null
+
+# 図・表・コードリスト・数式のキャプション位置。
+# 値はtop(上)またはbottom(下)でデフォルトは以下のとおり
+# caption_position:
+# image: bottom
+# table: top
+# list: top
+# equation: top
+
+# review-toc向けのヒント情報
+# (文字幅を考慮した行数計測には、別途unicode-eaw gemファイルが必要)
+# ページあたりの行数文字数を用紙サイズで指定する(A5 or B5)
+# page_metric: A5
+#
+# あるいは、配列で指定することもできる
+# 各数字の意味は、順にリストの行数、リストの1行字数、テキストの行数、テキストの1行字数
+# page_metric: [40,34,29,34]
+
+# @, //texequation に記述したTeX数式の表現方法 (PDFMaker (LaTeX) 以外)
+# null: TeX式をそのまま文字列として出力 (デフォルト)
+# mathml: MathML変換。別途math_ml gemファイルが必要。EPUBMaker/WebMakerのみ効果
+# imgmath: 画像化。オプションはimgmath_optionsで設定する
+# mathjax: MathJax変換。EPUBMaker/WebMakerのみ効果。なお、MathJaxに必要なデータはインターネットから取得される。EPUBで利用できるかはEPUBリーダ依存
+# math_format: null
+
+# math_formatがimgmathの場合の設定
+# 以下のパラメータを有効にするときには、
+# imgmath_options:
+# パラメータ: 値
+# パラメータ: 値
+# ...
+# という構成にする必要がある(インデントさせる)
+# imgmath_options:
+ # 使用する画像拡張子。通常は「png」か「svg」(svgの場合は、pdfcrop_pixelize_cmdの-pngも-svgにする)
+ # format: png
+ # 変換手法。pdfcrop または dvipng
+ # converter: pdfcrop
+ # プリアンブルの内容を上書きするファイルを指定する(デフォルトはupLaTeX+jsarticle.clsを前提とした、lib/review/makerhelper.rbのdefault_imgmath_preambleメソッドの内容)
+ # preamble_file: null
+ # 基準のフォントサイズ
+ # fontsize: 10
+ # 基準の行間
+ # lineheight: 12
+ # converterにpdfcropを指定したときのpdfcropコマンドのコマンドライン。プレースホルダは
+ # %i: 入力ファイル、%o: 出力ファイル
+ # pdfcrop_cmd: "pdfcrop --hires %i %o"
+ # PDFから画像化するコマンドのコマンドライン。プレースホルダは
+ # %i: 入力ファイル、%o: 出力ファイル、%O: 出力ファイルから拡張子を除いたもの
+ # %p: 対象ページ番号、%t: フォーマット
+ # pdfcrop_pixelize_cmd: "pdftocairo -%t -r 90 -f %p -l %p -singlefile %i %O"
+ # pdfcrop_pixelize_cmdが複数ページの処理に対応していない場合に単ページ化するか
+ # extract_singlepage: null
+ # extract_singlepageがtrueの場合に単ページ化するコマンドのコマンドライン
+ # pdfextract_cmd: "pdfjam -q --outfile %o %i %p"
+ # converterにdvipngを指定したときのdvipngコマンドのコマンドライン
+ # dvipng_cmd: "dvipng -T tight -z 9 -p %p -l %p -o %o %i"
+ #
+ # PDFで保存したいときにはたとえば以下のようにする
+ # format: pdf
+ # extract_singlepage: true
+ # pdfextract_cmd: "pdftk A=%i cat A%p output %o"
+ # pdfcrop_pixelize_cmd: "mv %i %o"
+
+# EPUBにおけるページ送りの送り方向、page-progression-directionの値("ltr"|"rtl"|"default")
+direction: "ltr"
+
+# EPUBのOPFへの固有の追加ルール
+# 要素に追加する名前空間
+# opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
+# 追加する要素のプロパティとその値
+# opf_meta: {"ebpaj:guide-version": "1.1.3"}
+
+# 以下のパラメータを有効にするときには、
+# epubmaker:
+# パラメータ: 値
+# パラメータ: 値
+# ...
+# という構成にする必要がある(インデントさせる)
+
+epubmaker:
+ # HTMLファイルの拡張子
+ htmlext: xhtml
+ stylesheet: ["style.css", "epub_style.css"]
+ #
+ # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。
+ # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに
+ # パスしない目次ができるが、そのようなときにはこれをtrueにする
+ # flattoc: null
+ #
+ # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ)
+ # flattocindent: true
+ #
+ # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない
+ # ncxindent:
+ #-
+ #- -
+ # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される
+ # プログラムには実行権限が必要
+ # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。
+ # 渡される引数1=作業用展開ディレクトリ
+ # hook_beforeprocess: null
+ #
+ # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
+ # 渡される引数1=作業用展開ディレクトリ
+ # hook_afterfrontmatter: null
+ #
+ # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
+ # 渡される引数1=作業用展開ディレクトリ
+ # hook_afterbody: null
+ #
+ # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
+ # 渡される引数1=作業用展開ディレクトリ
+ # hook_afterbackmatter: null
+ #
+ # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。
+ # 渡される引数1=作業用展開ディレクトリ
+ # hook_aftercopyimage: null
+ #
+ # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。
+ # 渡される引数1=ePUB準備ディレクトリ
+ # hook_prepack: null
+ #
+ # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む)
+ # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる
+ # verify_target_images: null
+ #
+ # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
+ # force_include_images: []
+ #
+ # 画像ファイルの縦x横の最大ピクセル数許容値
+ # image_maxpixels: 4000000
+ #
+ # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか
+ # rename_for_legacy: null
+ #
+ # ePUBアーカイブの非圧縮実行
+ # zip_stage1: "zip -0Xq"
+ #
+ # ePUBアーカイブの圧縮実行
+ # zip_stage2: "zip -Xr9Dq"
+ #
+ # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS)
+ # zip_addpath: null
+ #
+ # EPUBで表紙をコンテンツに含めるか。デフォルトでは作成されない。yesにするとiBooks等でも最初に表紙が表示されるようになる
+ # cover_linear: null
+ #
+ # @タグでの外部リンクを禁止し、地の文にする(falseで禁止する)
+ # externallink: true
+ #
+ # 脚注に「戻る」リンクを追加する(trueで追加)。脚注の記号および戻るリンクの記号はlocale.ymlで変更可能
+ # back_footnote: null
+ # epubmaker:階層を使うものはここまで
+
+# LaTeX用のスタイルファイル(styディレクトリ以下に置くこと)
+texstyle: ["reviewmacro"]
+#
+# LaTeX用のdocumentclassを指定する
+# オプションについてはsty/README.mdを参照
+# デフォルトは印刷用。電子配布版を作るには media=ebook のほうを使う
+# serial_pagination=trueはアラビア数字通し
+# hiddenfolio=nikko-pcは日光企画向けのノドへの隠しノンブル配置
+#
+
+# B5の設定(10pt 40文字×35行) - 電子版
+texdocumentclass: ["review-jsbook", "media=ebook,paper=b5,serial_pagination=false,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=41mm,headsep=10mm,headheight=5mm,footskip=16mm"]
+
+# B5の設定(10pt 40文字×35行) - 紙版
+#texdocumentclass: ["review-jsbook", "media=print,paper=b5,serial_pagination=true,hiddenfolio=nikko-pc,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=30mm,headsep=10mm,headheight=5mm,footskip=10mm"]
+# B5の設定(10pt 40文字×35行) - 電子版
+# texdocumentclass: ["review-jsbook", "media=ebook,paper=b5,serial_pagination=true,openany,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=30mm,headsep=10mm,headheight=5mm,footskip=10mm"]
+# A5の設定(9pt 38文字×37行) - 紙版
+# texdocumentclass: ["review-jsbook", "media=print,paper=a5,serial_pagination=true,hiddenfolio=nikko-pc,openany,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm"]
+# A5の設定(9pt 38文字×37行) - 電子版
+# texdocumentclass: ["review-jsbook", "media=ebook,paper=a5,serial_pagination=true,openany,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm"]
+#
+# LaTeX用のコマンドを指定する
+# texcommand: "uplatex"
+#
+# LaTeXのコマンドに渡すオプションを指定する
+# texoptions: "-interaction=nonstopmode -file-line-error -halt-on-error"
+#
+# LaTeX用のdvi変換コマンドを指定する(dvipdfmx)
+# dvicommand: "dvipdfmx"
+#
+# LaTeX用のdvi変換コマンドのオプションを指定する。変換が遅い場合は`-d 5 -z 3`等にする
+# dvioptions: "-d 5 -z 9"
+
+# 以下のパラメータを有効にするときには、
+# pdfmaker:
+# パラメータ: 値
+# パラメータ: 値
+# ...
+# という構成にする必要がある(インデントさせる)
+#
+pdfmaker:
+ #
+ # TeX版で利用する表紙画像。
+ # 仕上がりサイズ+塗り足し3mmありのPDFまたはIllustratorファイル(PDF互換オプション付き)を推奨。
+ # 拡縮はされず「そのまま」貼り付けられる
+ # 原寸画像を用意できないときには、「,cover_fit_page=true」をtexdocumentclassパラメータの2つめの値に追加すると、仕上がりサイズにリサイズして貼り付ける
+ # coverimage: cover-a5.ai
+ #
+ # TeXコンパイル前に実行するプログラム。変換後のTeXソースを調整したいときに使用する。
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
+ # hook_beforetexcompile: null
+ #
+ # 索引処理前に実行するプログラム。idxファイルを加工したいときなどに使用する。
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
+ # hook_beforemakeindex: null
+ #
+ # 索引処理後に実行するプログラム。indファイルを加工したいときなどに使用する。
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
+ # hook_aftermakeindex: null
+ #
+ # ひととおりのコンパイル後に実行するプログラム。目次を加工して再度コンパイルしたいときなどに使用する。
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
+ # hook_aftertexcompile: null
+ #
+ # PDF(__REVIEW_BOOK__.pdf)作成後に実行するプログラム。PDFに加工を施したいときに使用する。
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
+ # hook_afterdvipdf: null
+ #
+ # 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換する
+ # image_scale2width: true
+ #
+ # 画像のデフォルトのサイズを、版面横幅合わせではなく、原寸をそのまま利用する
+ # use_original_image_size: null
+ #
+ # PDFやIllustratorファイル(.ai)の画像のBoudingBoxの抽出に指定のボックスを採用する
+ # cropbox(デフォルト), mediabox, artbox, trimbox, bleedboxから選択する。
+ # Illustrator CC以降のIllustratorファイルに対してはmediaboxを指定する必要がある
+ # bbox: mediabox
+ #
+ # 索引を作成するか。trueにすると索引作成が有効になる
+ # makeindex: null
+ # 索引作成コマンド
+ # makeindex_command: mendex
+ # 索引作成コマンドのオプション
+ # makeindex_options: "-f -r -I utf8"
+ # 索引作成コマンドのスタイルファイル
+ # makeindex_sty: null
+ # 索引作成コマンドの辞書ファイル
+ # makeindex_dic: null
+ # MeCabによる索引読み探索を使うか
+ # makeindex_mecab: true
+ # MeCabの読みの取得オプション
+ # makeindex_mecab_opts: "-Oyomi"
+ # 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
+ colophon: true
+ # 表紙挿入時に表紙のページ番号名を「cover」とし、偶数ページ扱いにして大扉前に白ページが入るのを防ぐ。デフォルトはtrue
+ # use_cover_nombre: true
+ #
+ # 囲み表現の切り替え設定
+ # column, note, memo, tip, info, warning, important, caution, noticeを設定可
+ # styleはreview-tcbox.styまたは独自に作成したスタイルで定義済みの囲みスタイル名
+ # optionsはキャプションなし囲みに対するtcolorboxの追加・上書きオプション
+ # options_with_captionはキャプション付き囲みのtcolorboxの追加・上書きオプション(省略した場合はoptionsと同じ)
+ #
+ # boxsetting:
+ # note:
+ # style: squarebox
+ # options: "colback=black!5!white"
+ # options_with_caption: "colbacktitle=black!25!white"
+ #
+ # pdfmaker:階層を使うものはここまで
+
+# 以下のパラメータを有効にするときには、
+# webmaker:
+# パラメータ: 値
+# パラメータ: 値
+# ...
+# という構成にする必要がある(インデントさせる)
+#
+webmaker:
+ stylesheet: ["style.css", "style-web.css"]
+
+# TechBooster Re:VIEW-Template独自設定
+techbooster:
+ # 表紙および裏表紙を実寸ではなく仕上がりサイズにリサイズするか
+ # texdocumentclassでcover_fit_page=trueを付けるのと同じ
+ cover_fit_page: true
+ # 裏表紙画像指定。画像はimages/から探索される
+ # backcoverimage: backcover.jpg
diff --git a/articles/config.yml b/articles/config.yml
new file mode 100644
index 0000000..8b3fbce
--- /dev/null
+++ b/articles/config.yml
@@ -0,0 +1,19 @@
+# 書籍版用の上書き設定
+
+# 継承元設定
+inherit: ["config-epub.yml"]
+
+# 書籍版を別のファイル名にしたい場合
+# bookname: ReVIEW-Template-ebook
+
+# 書籍版のみ印刷所を追記
+prt: 株式会社 日光企画
+
+# 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+titlefile: title.tex
+
+# 裏表紙データファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
+backcover: null
+
+# B5の設定(10pt 40文字×35行)
+texdocumentclass: ["review-jsbook", "media=print,paper=b5,serial_pagination=false,fontsize=10pt,baselineskip=15.4pt,line_length=40zw,number_of_lines=35,head_space=41mm,headsep=10mm,headheight=5mm,footskip=16mm"]
diff --git a/articles/doc/catalog.ja.md b/articles/doc/catalog.ja.md
new file mode 100644
index 0000000..57b8aec
--- /dev/null
+++ b/articles/doc/catalog.ja.md
@@ -0,0 +1,45 @@
+# Re:VIEW カタログファイル ガイド
+
+Re:VIEW のカタログファイル catalog.yml について説明します。
+
+このドキュメントは、Re:VIEW 2.0 に基づいています。
+
+## カタログファイルとは
+
+カタログファイルは、Re:VIEW フォーマットで記述された各ファイルを1冊の本(たとえば PDF や EPUB)にまとめる際に、どのようにそれらのファイルを構造化するかを指定するファイルです。現在はカタログファイルと言えば catalog.yml のことを指します。
+
+## catalog.yml を用いた場合の設定方法
+
+catalog.yml 内で、`PREDEF`(前付け)、`CHAPS`(本編)、`APPENDIX`(付録、連番あり)、`POSTDEF`(後付け、連番なし)を記述します。CHAPS のみ必須です。
+
+```yaml
+PREDEF:
+ - intro.re
+
+CHAPS:
+ - ch01.re
+ - ch02.re
+
+APPENDIX:
+ - appendix.re
+
+POSTDEF:
+ - postscript.re
+```
+
+本編に対して、「部」構成を加えたい場合、`CHAPS` を段階的にして記述します。部の指定については、タイトル名でもファイル名でもどちらでも使えます。
+
+```yaml
+CHAPS:
+ - ch01.re
+ - 第1部:
+ - ch02.re
+ - ch03.re
+ - pt02.re:
+ - ch04.re
+```
+
+## 古いバージョンについて
+1.2 以前の Re:VIEW ではカタログファイルとして PREDEF, CHAPS, POSTDEF, PART という独立した4つのファイルを使用していました。古いカタログファイルを変換するツールとして、`review-catalog-converter` を提供しています。
+
+このコマンドにドキュメントのパスを指定して実行後、生成された catalog.yml の内容が正しいか確認してください。
diff --git a/articles/doc/catalog.md b/articles/doc/catalog.md
new file mode 100644
index 0000000..86e6801
--- /dev/null
+++ b/articles/doc/catalog.md
@@ -0,0 +1,48 @@
+# Re:VIEW catalog.yml Guide
+
+This article describes Re:VIEW catalog file catalog.yml.
+
+## What's catalog.yml
+
+Catalog file shows the structure of files to generate books (such as PDF or EPUB) in Re:VIEW format.
+Now we use catalog.yml as catalog file.
+
+## How to write catalog.yml
+
+In catalog.yml, you can write `PREDEF`(frontmatter), `CHAPS`(bodymatter), `APPENDIX`(appendix) and `POSTDEF`(backmater). `CHAPS` is required.
+
+```yaml
+ PREDEF:
+ - intro.re
+
+ CHAPS:
+ - ch01.re
+ - ch02.re
+
+ APPENDIX:
+ - appendix.re
+
+ POSTDEF:
+ - postscript.re
+```
+
+You can add parts in body to use `CHAPS` in a hierarchy. You can use both title name and file name to specify parts.
+
+```yaml
+ CHAPS:
+ - ch01.re
+ - TITLE_OF_PART1:
+ - ch02.re
+ - ch03.re
+ - pt02.re:
+ - ch04.re
+```
+
+(For old version user: there is no `PART`. You write them in `CHAPS`.)
+
+## About earlier version
+
+In version 1.x, Re:VIEW use 4 files PREDEF, CHAPS, POSTDEF, PART as catalog files.
+
+You can convert there files with `review-catalog-converter`.
+When using it, you should compare with these files and the generated file `catalog.yml`.
diff --git a/articles/doc/customize_epub.ja.md b/articles/doc/customize_epub.ja.md
new file mode 100644
index 0000000..7eafa67
--- /dev/null
+++ b/articles/doc/customize_epub.ja.md
@@ -0,0 +1,65 @@
+# EPUB ローカルルールへの対応方法
+Re:VIEW の review-epubmaker が生成する EPUB ファイルは IDPF 標準に従っており、EpubCheck を通過する正規のものです。
+
+しかし、ストアによってはこれに固有のローカルルールを設けていることがあり、それに合わせるためには別途 EPUB ファイルに手を入れる必要があります。幸い、ほとんどのルールは EPUB 内のメタ情報ファイルである OPF ファイルにいくつかの情報を加えることで対処できます。
+
+Re:VIEW の設定ファイルは config.yml を使うものとします。
+
+## 電書協ガイドライン
+* http://ebpaj.jp/counsel/guide
+
+電書協ガイドラインの必須属性を満たすには、次の設定を config.yml に加えます。
+
+```yaml
+opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
+opf_meta: {"ebpaj:guide-version": "1.1.3"}
+```
+
+これは次のように展開されます。
+
+```xml
+
+ ……
+ 1.1.3
+```
+
+ただし、Re:VIEW の生成する EPUB は、ファイルやフォルダの構成、スタイルシートの使い方などにおいて電書協ガイドラインには準拠していません。
+
+## iBooks ストア
+デフォルトでは、iBooks で EPUB を見開きで開くと、左右ページの間に影が入ります。
+これを消すには、次のように指定します。
+
+```yaml
+opf_prefix: {ibooks: "http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/"}
+opf_meta: {"ibooks:binding": "false"}
+```
+
+すでにほかの定義があるときには、たとえば次のように追加してください。
+
+```yaml
+opf_prefix: {ebpaj: "http://www.ebpaj.jp/", ibooks: "http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/"}
+opf_meta: {"ebpaj:guide-version": "1.1.3", "ibooks:binding": "false"}
+```
+
+## Amazon Kindle
+
+EPUB を作成したあと、mobi ファイルにする必要があります。これには Amazon が無料で配布している KindleGen を使用します。
+
+- https://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211
+
+OS に合わせたインストーラでインストールした後、`kindlegen EPUBファイル` で mobi ファイルに変換できます。
+
+Kindle Previewer にも内包されています。
+
+- https://kdp.amazon.co.jp/ja_JP/help/topic/G202131170
+
+注意点として、KindleGen は論理目次だけだとエラーを報告します。物理目次ページを付けるために、次のように config.yml に設定します。
+
+```yaml
+epubmaker:
+ toc: true
+```
+
+CSS によっては、Kindle では表現できないことについての警告が表示されることがあります。「Amazon Kindle パブリッシング・ガイドライン」では、使用可能な文字・外部ハイパーリンクの制約・色の使い方・画像サイズなどが詳細に説明されています。
+
+- http://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines_JP.pdf
diff --git a/articles/doc/customize_epub.md b/articles/doc/customize_epub.md
new file mode 100644
index 0000000..4684a62
--- /dev/null
+++ b/articles/doc/customize_epub.md
@@ -0,0 +1,70 @@
+# Supporting local rules of EPUB files
+
+EPUB files that generated by Re:VIEW (review-epubmaker) should be valid in eubcheck in IDPF.
+
+But some e-book stores have their own rules, so they reject EPUB files by Re:VIEW. To pass their rules, you can customize OPF file with config.yml.
+
+## EBPAJ EPUB 3 File Creation Guide
+
+* http://ebpaj.jp/counsel/guide
+
+EBPAJ, the Electronic Book Publishers Association of Japan, releases the guide for publishers to create EPUB files that make nothing of trouble in major EPUB readers.
+
+To pass their guide, you can add some settings into config.yml:
+
+```yaml
+opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
+opf_meta: {"ebpaj:guide-version": "1.1.3"}
+```
+
+With this settings, Re:VIEW generates OPF files with epbaj attributes:
+
+```xml
+
+ ...
+ 1.1.3
+```
+
+But EPUB files that Re:VIEW generates are not the same of name and structure to EBPAJ guide.
+
+
+## iBookStore
+
+Without special setting, iBooks has a margin between right page and left page in double-page spread.
+
+To remove it, you can add some settings in config.yml.
+
+```yaml
+opf_prefix: {ibooks: "http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/"}
+opf_meta: {"ibooks:binding": "false"}
+```
+
+If you have already some settings, merge them:
+
+```yaml
+opf_prefix: {ebpaj: "http://www.ebpaj.jp/", ibooks: "http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/"}
+opf_meta: {"ebpaj:guide-version": "1.1.3", "ibooks:binding": "false"}
+```
+
+## Amazon Kindle
+
+For Kindle, you need to convert EPUB to mobi format using KindleGen, which Amazon distributes.
+
+- https://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211
+
+After installation, you can convert EPUB with `kindlegen EPUB file`.
+
+KindleGen is also included in Kindle Previewer.
+
+- https://kdp.amazon.co.jp/ja_JP/help/topic/G202131170
+
+Note: if there is only a "logical" table of contents, KindleGen reports a strange error. To include "physical" table of contents, set config.yml as follows.
+
+```yaml
+epubmaker:
+ toc: true
+```
+
+You may be warned about some CSS can't be handled in Kindle. "Amazon Kindle Publishing Guidelines" describes in detail the usable characters, restrictions on hyperlinks to the outside, usage of colors, image size, and so on.
+
+- http://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines_JP.pdf
diff --git a/articles/doc/format.ja.md b/articles/doc/format.ja.md
new file mode 100644
index 0000000..510d259
--- /dev/null
+++ b/articles/doc/format.ja.md
@@ -0,0 +1,1162 @@
+# Re:VIEW フォーマットガイド
+
+Re:VIEW フォーマットの文法について解説します。Re:VIEW フォーマットはアスキー社(現カドカワ)の EWB を基本としながら、一部に RD や各種 Wiki の文法を取り入れて簡素化しています。
+
+このドキュメントは、Re:VIEW 5.1 に基づいています。
+
+## 段落
+
+段落(本文)の間は1行空けて表現します。空けずに次の行を記述した場合は、1つの段落として扱われます。
+
+例:
+
+```
+だんらくだんらく〜〜〜
+この行も同じ段落
+
+次の段落〜〜〜
+```
+
+* 2行以上空けても、1行空きと同じ意味になります。
+* 空行せずに改行して段落の記述を続ける際、英文の単語間スペースについては考慮されないことに注意してください。Re:VIEW は各行を単純に連結するだけであり、TeX のように前後の単語を判断してスペースを入れるようなことはしません。
+
+## 章・節・項・目・段(見出し)
+
+章・節・項・目といった見出しは「`=`」「`==`」「`===`」「`====`」「`=====`」で表します。7 レベル以上は使えません。`=`のあとにはスペースを入れます。
+
+例:
+
+```review
+= 章のキャプション
+
+== 節のキャプション
+
+=== 項のキャプション
+
+==== 目のキャプション
+
+===== 段のキャプション
+
+====== 小段のキャプション
+```
+
+見出しは行の先頭から始める必要があります。行頭に空白を入れると、ただの本文と見なされます。
+
+また、見出しの前に文があると、段落としてつながってしまうことがあります。このようなときには空行を見出しの前に入れてください。
+
+## コラムなど
+
+節や項の見出しに `[column]` を追加すると以降がコラムとして扱われ、見出しはコラムのキャプションになります。
+
+例:
+
+```review
+===[column] コンパイラコンパイラ
+```
+
+このとき、「=」と「[column]」は間を空けず、必ず続けて書かなければなりません。
+
+コラムは、そのコラムのキャプションの見出しと同等か上位のレベル(コラムキャプションが `===` であれば、`=`〜`===`)の見出しが登場するかファイル末尾に達した時点で終了します。これを待たずにコラムを終了する場合は、「`===[/column]`」と記述します(`=`の数はコラムキャプションと対応)。
+
+例:
+
+```review
+===[column] コンパイラコンパイラ
+
+コラムの内容
+
+===[/column]
+```
+
+より下位の見出しを使うことでコラム内に副見出しを入れることができますが、それが必要になるほど長いコラムはそもそも文章構造に問題がある可能性があります。
+
+このほか、次のような見出しオプションがあります。
+
+* `[nonum]` : これを指定している章・節・項・段には連番を振りません。見出しは目次に含まれます。
+* `[nodisp]` : これを指定している章・節・項・段の見出しは変換結果には表示されず、連番も振りません。ただし、見出しは目次に含まれます。
+* `[notoc]` : これを指定している章・節・項・段には連番を振りません。見出しは目次に含まれません。
+
+## 箇条書き
+
+箇条書き(HTML で言う ul、ビュレット箇条書きともいう)は「` *`」で表現します。ネストは「` **`」のように深さに応じて数を増やします。
+
+例:
+
+```
+ * 第1の項目
+ ** 第1の項目のネスト
+ * 第2の項目
+ ** 第2の項目のネスト
+ * 第3の項目
+```
+
+箇条書きには行頭に1つ以上の空白が必要です。行頭に空白を入れず「*」と書くと、ただのテキストと見なされるので注意してください。
+
+通常の段落との誤った結合を防ぐため、箇条書きの前後には空行を入れることをお勧めします(他の箇条書きも同様)。
+
+## 番号付き箇条書き
+
+番号付きの箇条書き(HTML で言う ol)は「` 1. 〜`」「` 2. 〜`」「` 3. 〜`」のように示します。ネストはサポートしていません。
+
+例:
+
+```
+ 1. 第1の条件
+ 2. 第2の条件
+ 3. 第3の条件
+```
+
+番号付き箇条書きも、ただの箇条書きと同様、行頭に1つ以上の空白が必要です。
+
+## 用語リスト
+
+用語リスト(HTML で言う dl)は空白→「:」→空白、で始まる行を使って示します。
+
+例:
+
+```review
+ : Alpha
+ DEC の作っていた RISC CPU。
+ 浮動小数点数演算が速い。
+ : POWER
+ IBM とモトローラが共同製作した RISC CPU。
+ 派生として POWER PC がある。
+ : SPARC
+ Sun が作っている RISC CPU。
+ CPU 数を増やすのが得意。
+```
+
+「`:`」それ自体はテキストではないので注意してください。その後に続く文字列が用語名(HTML での dt 要素)になります。
+
+そして、その行以降、空白で始まる行が用語内容(HTML では dd 要素)になります。次の用語名か空行になるまで、1つの段落として結合されます。
+
+## ブロック命令とインライン命令
+
+見出しと箇条書きは特別な記法でしたが、それ以外の Re:VIEW の命令はほぼ一貫した記法を採用しています。
+
+ブロック命令は1〜複数行の段落に対して何らかのアクション(たいていは装飾)を行います。ブロック命令の記法は次のとおりです。
+
+```
+//命令[オプション1][オプション2]…{
+対象の内容。本文と同じような段落の場合は空行区切り
+ …
+//}
+```
+
+オプションを取らなければ単に `//命令{` という開始行になります。いずれにせよ、開始と終了は明確です。オプション内で「]」という文字が必要であれば、`\]` でリテラルを表現できます。
+
+亜種として、一切段落を取らないブロック命令もごく少数あります。
+
+```
+//命令[オプション1][オプション2]…
+```
+
+インライン命令は段落、見出し、ブロック内容、一部のブロックのオプション内で利用でき、文字列内の一部に対してアクション(装飾)を行います。
+
+```
+@<命令>{対象の内容}
+```
+
+内容に「}」という文字が必要であれば、`\}` でリテラルを表現できます。なお、内容の末尾を「\」としたい場合は、`\\` と記述する必要があります(たとえば `@{\\}`)。
+
+記法および処理の都合で、次のような制約があります。
+
+* ブロック命令内には別のブロック命令をネストできません。
+* ブロック命令内には見出しや箇条書きを格納できません。
+* インライン命令には別のインライン命令をネストできません。
+
+### インライン命令のフェンス記法
+
+インライン命令において `}` や 末尾 `\` を多用したい場合、それぞれ `\}` や `\\` のようにエスケープするのはわずらわしいことがあります。そのようなときには、インライン命令の囲みの `{ }` の代わりに `$ $` あるいは `| |` を使って内容を囲むことで、エスケープ表記せずに記述できます。
+
+```
+@<命令>$対象の内容$
+@<命令>|対象の内容|
+```
+
+例:
+
+```review
+@$\Delta = \frac{\partial^2}{\partial x_1^2}+\frac{\partial^2}{\partial x_2^2} + \cdots + \frac{\partial^2}{\partial x_n^2}$
+@|if (exp) then { ... } else { ... }|
+@|\|
+```
+
+あくまでも代替であり、推奨する記法ではありません。濫用は避けてください。
+
+## ソースコードなどのリスト
+
+ソースコードなどのリストには`//list`を使います。連番を付けたくない場合は先頭に `em`(embedded の略)、行番号を付ける場合は末尾に `num` を付加します。まとめると、以下の4種類になります。
+
+* `//list[識別子][キャプション][言語指定]{ 〜 //}`
+ * 通常のリスト。言語指定は省略できます。
+* `//listnum[識別子][キャプション][言語指定]{ 〜 //}`
+ * 通常のリストに行番号をつけたもの。言語指定は省略できます。
+* `//emlist[キャプション][言語指定]{ 〜 //}`
+ * 連番がないリスト。キャプションと言語指定は省略できます。
+* `//emlistnum[キャプション][言語指定]{ 〜 //}`
+ * 連番がないリストに行番号を付けたもの。キャプションと言語指定は省略できます。
+
+例:
+
+```review
+//list[main][main()][c]{ ←「main」が識別子で「main()」がキャプション
+int
+main(int argc, char **argv)
+{
+ puts("OK");
+ return 0;
+}
+//}
+```
+
+例:
+
+```review
+//listnum[hello][ハローワールド][ruby]{
+puts "hello world!"
+//}
+```
+
+例:
+
+```review
+//emlist[][c]{
+printf("hello");
+//}
+```
+
+例:
+
+```review
+//emlistnum[][ruby]{
+puts "hello world!"
+//}
+```
+
+言語指定は、ハイライトを有効にしたときに利用されます。
+
+コードブロック内でもインライン命令は有効です。
+
+また本文中で「リスト X.X を見てください」のようにリストを指定する場合は、インライン命令 `@` を使います。`//list` あるいは `//listnum` で指定した識別子を指定し、たとえば「`@{main}`」と表記します。
+
+他章のリストを参照するには、後述の「章ID」を指定し、たとえば `@{advanced|main}`(`advanced.re` ファイルの章にあるリスト `main` を参照する)と記述します。
+
+### 行番号の指定
+
+行番号を指定した番号から始めるには、`//firstlinenum`を使います。
+
+例:
+
+```review
+//firstlinenum[100]
+//listnum[hello][ハローワールド][ruby]{
+puts "hello world!"
+//}
+```
+
+### ソースコード専用の引用
+
+ソースコードを引用するには次のように記述します。
+
+例:
+
+```review
+//source[/hello/world.rb]{
+puts "hello world!" # キャプションあり
+//}
+
+//source{
+puts "hello world!" # キャプションなし
+//}
+
+//source[/hello/world.rb][ruby]{
+puts "hello world!" # キャプションあり、ハイライトあり
+//}
+
+//source[][ruby]{
+puts "hello world!" # キャプションなし、ハイライトあり
+//}
+```
+
+ソースコードの引用は、`//emlist` とほぼ同じです。HTML の CSS などでは区別した表現ができます。
+
+## 本文中でのソースコード引用
+
+本文中でソースコードを引用して記述するには、`code` を使います。
+
+例:
+
+```review
+@{p = obj.ref_cnt}
+```
+
+## コマンドラインのキャプチャ
+
+コマンドラインの操作を示すときは `//cmd{ 〜 //}` を使います。インライン命令を使って入力箇所を強調するのもよいでしょう。
+
+例:
+
+```
+//cmd{
+$ @{ls /}
+//}
+```
+
+## 図
+
+図は `//image{ 〜 //}` で指定します。後述するように、識別子に基づいて画像ファイルが探索されます。
+
+ブロック内の内容は単に無視されますが、アスキーアートや、図中の訳語などを入れておくといった使い道があります。
+
+例:
+
+```
+//image[unixhistory][UNIX系OSの簡単な系譜]{
+ System V 系列
+ +----------- SVr4 --> 各種商用UNIX(Solaris, AIX, HP-UX, ...)
+V1 --> V6 --|
+ +--------- 4.4BSD --> FreeBSD, NetBSD, OpenBSD, ...
+ BSD 系列
+
+ --------------> Linux
+//}
+```
+
+3番目の引数として、画像の倍率・大きさを指定することができます。今のところ「scale=X」で倍率(X 倍)を指定でき、HTML、TeX ともに紙面(画面)幅に対しての倍率となります(0.5 なら半分の幅になります)。3番目の引数をたとえば HTML と TeX で分けたい場合は、`html::style="transform: scale(0.5);",latex::scale=0.5` のように `::` でビルダを明示し、`,` でオプションを区切って指定できます。
+
+※TeX において原寸からの倍率にしたいときには、`config.yml` に `image_scale2width: false` を指定してください。
+
+また、本文中で「図 X.X を見てください」のように図を指定する場合は、インライン命令 `@
` を使います。`//image` で指定した識別子を用いて「`@
{unixhistory}`」のように記述します(`//image` と `@
` でつづりが違うので注意してください)。
+
+他章の図を参照するには、リストと同様に「章ID」を指定します。たとえば `@
{advanced|unixhistory}`(`advanced.re` ファイルの章にある図 `unixhistory` を参照する)と記述します。
+
+### 画像ファイルの探索
+
+図として貼り込む画像ファイルは、次の順序で探索され、最初に発見されたものが利用されます。
+
+```
+1. ///.
+2. //-.
+3. //.
+4. //.
+5. /-.
+6. /.
+```
+
+* `` はデフォルトでは images ディレクトリです。
+* `` は利用しているビルダ名(ターゲット名)で、たとえば `--target=html` としているのであれば、images/html ディレクトリとなります。各 Maker におけるビルダ名は epubmaker および webmaker の場合は `html`、pdfmaker の場合は `latex`、textmaker の場合は `top` です。
+* `` は章 ID です。たとえば ch01.re という名前であれば「ch01」です。
+* `` は //image[〜] の最初に入れた「〜」のことです(つまり、ID に日本語や空白交じりの文字を使ってしまうと、後で画像ファイル名の名前付けに苦労することになります!)。
+* `` は Re:VIEW が自動で判別する拡張子です。ビルダによってサポートおよび優先する拡張子は異なります。
+
+各ビルダでは、以下の拡張子から最初に発見した画像ファイルが使われます。
+
+* HTMLBuilder (EPUBMaker、WEBMaker)、MARKDOWNBuilder: .png、.jpg、.jpeg、.gif、.svg
+* LATEXBuilder (PDFMaker): .ai、.eps、.pdf、.tif、.tiff、.png、.bmp、.jpg、.jpeg、.gif
+* それ以外のビルダ・Maker: .ai、.psd、.eps、.pdf、.tif、.tiff、.png、.bmp、.jpg、.jpeg、.gif、.svg
+
+### インラインの画像挿入
+
+段落途中などに画像を貼り込むには、インライン命令の `@{識別子}` を使います。ファイルの探索ルールは同じです。
+
+## 番号が振られていない図
+
+`//indepimage[ファイル名][キャプション]` で番号が振られていない画像ファイルを生成します。キャプションは省略できます。
+
+例:
+
+```
+//indepimage[unixhistory2]
+```
+
+同様のことは、`//numberlessimage`でも使えます。
+
+例:
+
+```
+//numberlessimage[door_image_path][扉絵]
+```
+
+## グラフ表現ツールを使った図
+
+`//graph[ファイル名][コマンド名][キャプション]` で各種グラフ表現ツールを使った画像ファイルの生成ができます。キャプションは省略できます。
+
+例: gnuplotの使用
+
+```
+//graph[sin_x][gnuplot][Gnuplotの使用]{
+plot sin(x)
+//}
+```
+
+コマンド名には、「`graphviz`」「`gnuplot`」「`blockdiag`」「`aafigure`」「`plantuml`」のいずれかを指定できます。ツールはそれぞれ別途インストールし、インストール先のフォルダ名を指定することなく実行できる (パスを通す) 必要があります。
+
+* Graphviz ( https://www.graphviz.org/ ) : `dot` コマンドへのパスを OS に設定すること
+* Gnuplot ( http://www.gnuplot.info/ ) : `gnuplot` コマンドへのパスを OS に設定すること
+* Blockdiag ( http://blockdiag.com/ ) : `blockdiag` コマンドへのパスを OS に設定すること。PDF を生成する場合は ReportLab もインストールすること
+* aafigure ( https://launchpad.net/aafigure ) : `aafigure` コマンドへのパスを OS に設定すること
+* PlantUML ( http://plantuml.com/ ) : `java` コマンドへのパスを OS に設定し、`plantuml.jar` が作業フォルダにあること
+
+## 表
+
+表は `//table[識別子][キャプション]{ 〜 //}` という記法です。ヘッダと内容を分ける罫線は「`------------`」(12個以上の連続する `-` または `=`)を使います。
+
+表の各列のセル間は「1つ」のタブで区切ります。空白のセルには「`.`」と書きます。セルの先頭の「`.`」は削除されるので、先頭文字が「`.`」の場合は「`.`」をもう1つ余計に付けてください。たとえば「`.`」という内容のセルは「`..`」と書きます。
+
+例:
+
+```
+//table[envvars][重要な環境変数]{
+名前 意味
+-------------------------------------------------------------
+PATH コマンドの存在するディレクトリ
+TERM 使っている端末の種類。linux・kterm・vt100など
+LANG ユーザのデフォルトロケール。日本語ならja_JP.eucJPやja_JP.utf8
+LOGNAME ユーザのログイン名
+TEMP 一時ファイルを置くディレクトリ。/tmpなど
+PAGER manなどで起動するテキスト閲覧プログラム。lessなど
+EDITOR デフォルトエディタ。viやemacsなど
+MANPATH manのソースを置いているディレクトリ
+DISPLAY X Window Systemのデフォルトディスプレイ
+//}
+```
+
+本文中で「表 X.X を見てください」のように表を指定する場合はインライン命令 `@` を使います。たとえば `@{envvars}` となります。
+
+表のセル内でもインライン命令は有効です。
+
+「採番なし、キャプションなし」の表は、`//table` ブロック命令に引数を付けずに記述します。
+
+```
+//table{
+〜
+//}
+```
+
+「採番なし、キャプションあり」の表を作りたいときには、`//emtable` ブロック命令を利用します。
+
+```
+//emtable[キャプション]{
+〜
+//}
+```
+
+### 表の列幅
+
+LaTeX および IDGXML のビルダを利用する場合、表の各列の幅を `//tsize` ブロック命令で指定できます。
+
+```
+//tsize[|ビルダ|1列目の幅,2列目の幅,……]
+```
+
+* 列の幅は mm 単位で指定します。
+* IDGXML の場合、3列のうち1列目だけ指定したとすると、省略した残りの2列目・3列目は紙面版面の幅の残りを等分した幅になります。1列目と3列目だけを指定する、といった指定方法はできません。
+* LaTeX の場合、すべての列について漏れなく幅を指定する必要があります。
+* LaTeX の場合、「`//tsize[|latex||p{20mm}cr|]`」のように LaTeX の table マクロの列情報パラメータを直接指定することもできます。
+* その他のビルダ (HTML など) においては、この命令は単に無視されます。
+
+### 複雑な表
+
+現時点では表のセルの結合や、中央寄せ・右寄せなどの表現はできません。
+
+複雑な表については、画像を貼り込む `imgtable` ブロック命令を代わりに使用する方法もあります。`imgtable` の表は通常の表と同じく採番され、インライン命令 `@` で参照できます。
+
+例:
+
+```
+//imgtable[complexmatrix][複雑な表]{
+complexmatrixという識別子に基づく画像ファイルが貼り込まれる。
+探索ルールはimageと同じ
+//}
+```
+
+## 引用
+
+引用は「`//quote{ 〜 //}`」を使って記述します。
+
+例:
+
+```
+//quote{
+百聞は一見に如かず。
+//}
+```
+
+複数の段落を入れる場合は、空行で区切ります。
+
+## 囲み記事
+
+技術書でよくある、コラムにするほどではないけれども本文から独立したちょっとした記事を入れるために、以下の命令があります。
+
+* `//note[キャプション]{ 〜 //}` : ノート
+* `//memo[キャプション]{ 〜 //}` : メモ
+* `//tip[キャプション]{ 〜 //}` : Tips
+* `//info[キャプション]{ 〜 //}` : 情報
+* `//warning[キャプション]{ 〜 //}` : 注意
+* `//important[キャプション]{ 〜 //}` : 重要
+* `//caution[キャプション]{ 〜 //}` : 警告
+* `//notice[キャプション]{ 〜 //}` : 注意
+
+いずれも `[キャプション]` は省略できます。
+
+内容には、空行で区切って複数の段落を記述可能です。
+
+Re:VIEW 5.0 以降では、囲み記事に箇条書きや図表・リストを含めることもできます。
+
+```
+//note{
+
+箇条書きを含むノートです。
+
+ 1. 箇条書き1
+ 2. 箇条書き2
+
+//}
+```
+
+## 脚注
+
+脚注は「`//footnote`」を使って記述します。
+
+例:
+
+```
+パッケージは本書のサポートサイトから入手できます@{site}。
+各自ダウンロードしてインストールしておいてください。
+//footnote[site][本書のサポートサイト: http://i.loveruby.net/ja/stdcompiler ]
+```
+
+本文中のインライン命令「`@{site}`」は脚注番号に置換され、「本書のサポートサイト……」という文は実際の脚注に変換されます。
+
+注意: TeX PDF において、コラムの中で脚注を利用する場合、`//footnote` 行はコラムの終わり(`==[/column]` など)の後ろに記述することをお勧めします。Re:VIEW の標準提供のコラム表現では問題ありませんが、サードパーティのコラムの実装によってはおかしな採番表現になることがあります。
+
+### footnotetext オプション
+TeX PDF において、コラム以外の `//note` などの囲み記事の中で「`@{~}`」を使うには、`footnotetext` オプションを使う必要があります。
+
+`footnotetext` オプションを使うには、`config.yml` ファイルに`footnotetext: true` を追加します。
+
+ただし、通常の脚注(footnote)ではなく、footnotemark と footnotetext を使うため、本文と脚注が別ページに分かれる可能性があるなど、いろいろな制約があります。また、採番が別々になるため、footnote と footnotemark/footnotetext を両立させることはできません。
+
+## 参考文献の定義
+
+参考文献は同一ディレクトリ内の `bib.re` ファイルに定義します。
+
+```
+//bibpaper[cite][キャプション]{…コメント…}
+```
+
+コメントは省略できます。
+
+```
+//bibpaper[cite][キャプション]
+```
+
+例:
+
+```
+//bibpaper[lins][Lins, 1991]{
+Refael D. Lins. A shared memory architecture for parallel study of
+algorithums for cyclic reference_counting. Technical Report 92,
+Computing Laboratory, The University of Kent at Canterbury , August
+1991
+//}
+```
+
+本文中で参考文献を参照したい場合は、インライン命令 `@` を使い、次のようにします。
+
+例:
+
+```
+…という研究が知られています(@{lins})。
+```
+
+## リード文
+
+リード文は `//lead{ 〜 //}` で指定します。歴史的経緯により、`//read{ 〜 //}` も使用可能です。
+
+例:
+
+```
+//lead{
+本章ではまずこの本の概要について話し、
+次にLinuxでプログラムを作る方法を説明していきます。
+//}
+```
+
+空行区切りで複数の段落を記述することもできます。
+
+## TeX 式
+
+LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
+
+例:
+
+```
+//texequation{
+\sum_{i=1}^nf_n(x)
+//}
+```
+
+「式1.1」のように連番を付けたいときには、識別子とキャプションを指定します。
+
+```
+//texequation[emc][質量とエネルギーの等価性]{
+\sum_{i=1}^nf_n(x)
+//}
+```
+
+参照するにはインライン命令 `@` を使います(たとえば `@{emc}`)。
+
+インライン命令では `@{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{` はエスケープ不要)。「インライン命令のフェンス記法」も参照してください。
+
+LaTeX の数式が正常に整形されるかどうかは処理系に依存します。LaTeX を利用する PDFMaker では問題なく利用できます。
+
+EPUBMaker および WEBMaker では、MathML に変換する方法、MathJax に変換する方法、画像化する方法から選べます。
+
+### MathML の場合
+MathML ライブラリをインストールしておきます(`gem install math_ml`)。
+
+さらに config.yml に以下のように指定します。
+
+```
+math_format: mathml
+```
+
+なお、MathML で正常に表現されるかどうかは、ビューアやブラウザに依存します。
+
+### MathJax の場合
+config.yml に以下のように指定します。
+
+```
+math_format: mathjax
+```
+
+MathJax の JavaScript モジュールはインターネットから読み込まれます。現時点で EPUB の仕様では外部からの読み込みを禁止しているため、MathJax を有効にすると EPUB ファイルの検証を通りません。また、ほぼすべての EPUB リーダーで MathJax は動作しません。CSS 組版との組み合わせでは利用できる可能性があります。
+
+### 画像化の場合
+
+LaTeX を内部で呼び出し、外部ツールを使って画像化する方法です。画像化された数式は、`images/_review_math` フォルダに配置されます。
+
+TeXLive などの LaTeX 環境が必要です。必要に応じて config.yml の `texcommand`、`texoptions`、`dvicommand`、`dvioptions` のパラメータを調整します。
+
+さらに、画像化するための外部ツールも用意します。現在、以下の2つのやり方をサポートしています。
+
+- `pdfcrop`:TeXLive に収録されている `pdfcrop` コマンドを使用して数式部分を切り出し、さらに PDF から画像化します。デフォルトでは画像化には Poppler ライブラリに収録されている `pdftocairo` コマンドを使用します(コマンドラインで利用可能であれば、別のツールに変更することもできます)。
+- `dvipng`:[dvipng](https://ctan.org/pkg/dvipng) を使用します。OS のパッケージまたは `tlmgr install dvipng` でインストールできます。数式中に日本語は使えません。
+
+config.yml で以下のように設定すると、
+
+```
+math_format: imgmath
+```
+
+デフォルト値として以下が使われます。
+
+```
+imgmath_options:
+ # 使用する画像拡張子。通常は「png」か「svg」(svgの場合は、pdfcrop_pixelize_cmdの-pngも-svgにする)
+ format: png
+ # 変換手法。pdfcrop または dvipng
+ converter: pdfcrop
+ # プリアンブルの内容を上書きするファイルを指定する(デフォルトはupLaTeX+jsarticle.clsを前提とした、lib/review/makerhelper.rbのdefault_imgmath_preambleメソッドの内容)
+ preamble_file: null
+ # 基準のフォントサイズ
+ fontsize: 10
+ # 基準の行間
+ lineheight: 12
+ # pdfcropコマンドのコマンドライン。プレースホルダは
+ # %i: 入力ファイル、%o: 出力ファイル
+ pdfcrop_cmd: "pdfcrop --hires %i %o"
+ # PDFから画像化するコマンドのコマンドライン。プレースホルダは
+ # %i: 入力ファイル、%o: 出力ファイル、%O: 出力ファイルから拡張子を除いたもの
+ # %p: 対象ページ番号、%t: フォーマット
+ pdfcrop_pixelize_cmd: "pdftocairo -%t -r 90 -f %p -l %p -singlefile %i %O"
+ # pdfcrop_pixelize_cmdが複数ページの処理に対応していない場合に単ページ化するか
+ extract_singlepage: null
+ # 単ページ化するコマンドのコマンドライン
+ pdfextract_cmd: "pdfjam -q --outfile %o %i %p"
+ # dvipngコマンドのコマンドライン
+ dvipng_cmd: "dvipng -T tight -z 9 -p %p -l %p -o %o %i"
+```
+
+たとえば SVG を利用するには、次のようにします。
+
+```
+math_format: imgmath
+imgmath_options:
+ format: svg
+ pdfcrop_pixelize_cmd: "pdftocairo -svg -r 90 -f %p -l %p -singlefile %i %o"
+```
+
+デフォルトでは、pdfcrop_pixelize_cmd に指定するコマンドは、1ページあたり1数式からなる複数ページの PDF のファイル名を `%i` プレースホルダで受け取り、`%p` プレースホルダのページ数に基づいて `%o`(拡張子あり)または `%O`(拡張子なし)の画像ファイルに書き出す、という仕組みになっています。
+
+単一のページの処理を前提とする `sips` コマンドや `magick` コマンドを使う場合、入力 PDF から指定のページを抽出するように `extract_singlepage: true` として挙動を変更します。単一ページの抽出はデフォルトで TeXLive の `pdfjam` コマンドが使われます。
+
+```
+math_format: imgmath
+imgmath_options:
+ extract_singlepage: true
+ # pdfjamの代わりに外部ツールのpdftkを使う場合(Windowsなど)
+ pdfextract_cmd: "pdftk A=%i cat A%p output %o"
+ # ImageMagickを利用する例
+ pdfcrop_pixelize_cmd: "magick -density 200x200 %i %o"
+ # sipsを利用する例
+ pdfcrop_pixelize_cmd: "sips -s format png --out %o %i"
+```
+
+textmaker 向けに PDF 形式の数式ファイルを作成したいときには、たとえば以下のように設定します(ページの抽出には pdftk を利用)。
+
+```
+math_format: imgmath
+imgmath_options:
+ format: pdf
+ extract_singlepage: true
+ pdfextract_cmd: "pdftk A=%i cat A%p output %o"
+ pdfcrop_pixelize_cmd: "mv %i %o"
+```
+
+Re:VIEW 2 以前の dvipng の設定に合わせるには、次のようにします。
+
+```
+math_format: imgmath
+imgmath_options:
+ converter: dvipng
+ fontsize: 12
+ lineheight: 14.3
+```
+
+## 字下げの制御
+
+段落の行頭字下げを制御するタグとして、`//noindent` があります。HTML では `noindent` が `class` 属性に設定されます。
+
+## 空行
+
+1行ぶんの空行を明示して入れるには、`//blankline` を使います。
+
+例:
+
+```
+この下に1行の空行が入る
+
+//blankline
+
+この下に2行の空行が入る
+
+//blankline
+//blankline
+```
+
+## 見出し参照
+章に対する参照は、次の3つのインライン命令を利用できます。章 ID は、各章のファイル名から拡張子を除いたものです。たとえば `advanced.re` であれば `advanced` が章 ID です。
+
+* `@{章ID}` : 「第17章」のような、章番号を含むテキストに置換されます。
+* `@{章ID}` : その章の章題に置換されます。
+* `@{章ID}` : 『第17章「さらに進んだ話題」』のように、章番号とタイトルを含むテキストに置換されます。
+
+節や項といったより下位の見出しを参照するには、`@` インライン命令を利用します。見出しの階層を「`|`」で区切って指定します。
+
+例:
+
+```
+@{はじめに|まずは}
+```
+
+他の章を参照したい場合は、先頭に章 ID を指定してください。
+
+例:
+
+```
+@{preface|はじめに|まずは}
+```
+
+参照先にラベルが設定されている場合は、見出しの代わりに、ラベルで参照します。
+
+```
+=={hajimeni} はじめに
+…
+=== まずは
+…
+@{hajimeni|まずは}
+```
+
+### コラム見出し参照
+
+コラムの見出しの参照は、インライン命令 `@` を使います。
+
+例:
+
+```
+@{Re:VIEWの用途いろいろ}
+```
+
+ラベルでの参照も可能です。
+
+```
+==[column]{review-application} Re:VIEWの応用
+…
+@{review-application}
+```
+
+## リンク
+
+Web ハイパーリンクを記述するには、リンクに `@`、アンカーに `//label` を使います。リンクの書式は `@{URL, 文字表現}` で、「`, 文字表現`」を省略すると URL がそのまま使われます。URL 中に `,` を使いたいときには、`\,` とエスケープしてください。
+
+例:
+
+```
+@{http://github.com/, GitHub}
+@{http://www.google.com/}
+@{#point1, ドキュメント内ポイント}
+@{chap1.html#point1, ドキュメント内ポイント}
+//label[point1]
+```
+
+## 単語ファイルの展開
+
+キーと値のペアを持つ単語ファイルを用意しておき、キーが指定されたら対応するその値を展開するようにできます。`@{キー}` あるいは `@{キー}` インライン命令を使います。後者は太字にします。
+
+現在、単語ファイルは CSV(コンマ区切り)形式で拡張子 .csv のものに限定されます。1列目にキー、2列目に値を指定して列挙します。
+
+```
+"LGPL","Lesser General Public License"
+"i18n","""i""nternationalizatio""n"""
+```
+
+単語ファイルのファイルパスは、`config.yml` に `words_file: ファイルパス` で指定します。`word_file: ["common.csv", "mybook.csv"]` のように複数のファイルも指定可能です(同一のキーがあるときには後に指定したファイルの値が優先されます)。
+
+例:
+
+```review
+@{LGPL}, @{i18n}
+```
+
+テキストビルダを使用している場合:
+
+```
+Lesser General Public License, ★"i"nternationalizatio"n"☆
+```
+
+展開されるときには、ビルダごとに決められたエスケープが行われます。インライン命令を含めるといったことはできません。
+
+## コメント
+
+最終結果に出力されないコメントを記述するには、「`#@#`」を使います。行末までがコメントとして無視されます。
+
+例:
+
+```
+#@# FIXME: あとで調べておくこと
+```
+
+最終結果に出力するコメントを記述したい場合は、`//comment` または `@` を使ったうえで、review-compile コマンドに `--draft` オプションを付けて実行します。
+
+例:
+
+```
+@{あとで書く}
+```
+
+## 生データ行
+
+Re:VIEW のタグ範囲を超えて何か特別な行を挿入したい場合、`//raw` ブロック命令や`//embed`ブロック命令、または `@` インライン命令や `@