review 2.0.0.beta1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +66 -1
  3. data/.rubocop_todo.yml +617 -0
  4. data/.travis.yml +16 -1
  5. data/ChangeLog +48 -0
  6. data/Dockerfile +22 -0
  7. data/Gemfile +0 -1
  8. data/README.md +97 -0
  9. data/Rakefile +10 -11
  10. data/appveyor.yml +9 -0
  11. data/bin/review +46 -0
  12. data/bin/review-check +8 -21
  13. data/bin/review-compile +26 -43
  14. data/bin/review-index +9 -22
  15. data/bin/review-init +21 -25
  16. data/bin/review-preproc +9 -13
  17. data/bin/review-validate +1 -1
  18. data/bin/review-vol +3 -17
  19. data/bin/review-webmaker +15 -0
  20. data/doc/NEWS.ja.md +534 -0
  21. data/doc/NEWS.md +538 -0
  22. data/doc/catalog.ja.md +10 -18
  23. data/doc/catalog.md +5 -9
  24. data/doc/config.yml.sample +319 -0
  25. data/doc/customize_epub.ja.md +42 -0
  26. data/doc/format.ja.md +320 -288
  27. data/doc/format.md +277 -170
  28. data/doc/format_idg.ja.md +82 -175
  29. data/doc/pdfmaker.ja.md +61 -0
  30. data/doc/pdfmaker.md +65 -0
  31. data/doc/quickstart.ja.md +88 -98
  32. data/doc/quickstart.md +72 -110
  33. data/doc/sample.css +41 -0
  34. data/doc/writing_vertical.ja.md +55 -0
  35. data/doc/writing_vertical.md +5 -0
  36. data/lib/epubmaker/content.rb +3 -3
  37. data/lib/epubmaker/epubcommon.rb +173 -145
  38. data/lib/epubmaker/epubv2.rb +24 -77
  39. data/lib/epubmaker/epubv3.rb +72 -73
  40. data/lib/epubmaker/producer.rb +54 -30
  41. data/lib/lineinput.rb +48 -0
  42. data/lib/review/book.rb +0 -1
  43. data/lib/review/book/base.rb +47 -27
  44. data/lib/review/book/chapter.rb +48 -19
  45. data/lib/review/book/compilable.rb +10 -14
  46. data/lib/review/book/index.rb +10 -19
  47. data/lib/review/book/page_metric.rb +0 -10
  48. data/lib/review/book/part.rb +17 -3
  49. data/lib/review/builder.rb +84 -68
  50. data/lib/review/catalog.rb +5 -1
  51. data/lib/review/compiler.rb +327 -4657
  52. data/lib/review/configure.rb +84 -10
  53. data/lib/review/converter.rb +28 -0
  54. data/lib/review/epubbuilder.rb +1 -1
  55. data/lib/review/epubmaker.rb +142 -158
  56. data/lib/review/ewbbuilder.rb +5 -5
  57. data/lib/review/exception.rb +1 -1
  58. data/lib/review/extentions.rb +1 -1
  59. data/lib/review/extentions/hash.rb +15 -0
  60. data/lib/review/extentions/string.rb +2 -1
  61. data/lib/review/htmlbuilder.rb +364 -348
  62. data/lib/review/htmltoc.rb +44 -0
  63. data/lib/review/htmlutils.rb +12 -6
  64. data/lib/review/i18n.rb +78 -6
  65. data/lib/review/i18n.yml +7 -4
  66. data/lib/review/idgxmlbuilder.rb +226 -267
  67. data/lib/review/latexbuilder.rb +281 -274
  68. data/lib/review/latexutils.rb +56 -49
  69. data/lib/review/makerhelper.rb +8 -4
  70. data/lib/review/markdownbuilder.rb +80 -124
  71. data/lib/review/pdfmaker.rb +197 -138
  72. data/lib/review/preprocessor.rb +16 -67
  73. data/lib/review/template.rb +24 -0
  74. data/lib/review/textbuilder.rb +1 -1
  75. data/lib/review/textutils.rb +18 -24
  76. data/lib/review/tocparser.rb +51 -106
  77. data/lib/review/tocprinter.rb +61 -117
  78. data/lib/review/topbuilder.rb +119 -126
  79. data/lib/review/unfold.rb +2 -2
  80. data/lib/review/version.rb +1 -1
  81. data/lib/review/webmaker.rb +302 -0
  82. data/lib/review/webtocprinter.rb +48 -0
  83. data/lib/review/yamlloader.rb +47 -0
  84. data/review.gemspec +3 -3
  85. data/templates/html/layout-html5.html.erb +17 -0
  86. data/templates/html/layout-xhtml1.html.erb +20 -0
  87. data/{lib/review → templates/latex}/layout.tex.erb +107 -115
  88. data/templates/ncx/epubv2.ncx.erb +11 -0
  89. data/templates/opf/epubv2.opf.erb +21 -0
  90. data/templates/opf/epubv3.opf.erb +18 -0
  91. data/templates/web/html/layout-html5.html.erb +56 -0
  92. data/templates/web/html/layout-xhtml1.html.erb +20 -0
  93. data/templates/xml/container.xml.erb +6 -0
  94. data/test/assets/test.xml.erb +3 -0
  95. data/test/assets/test_template.tex +28 -71
  96. data/test/assets/test_template_backmatter.tex +1 -9
  97. data/test/sample-book/src/Rakefile +12 -3
  98. data/{doc/sample.yml → test/sample-book/src/config-epub2.yml} +92 -147
  99. data/test/sample-book/src/config.yml +40 -154
  100. data/test/sample-book/src/style-web.css +45 -0
  101. data/test/sample-book/src/style.css +23 -1
  102. data/test/test.re +1 -1
  103. data/test/test_book.rb +15 -17
  104. data/test/test_book_chapter.rb +2 -80
  105. data/test/test_book_part.rb +1 -1
  106. data/test/test_builder.rb +28 -6
  107. data/test/test_catalog.rb +17 -0
  108. data/test/test_compiler.rb +14 -59
  109. data/test/test_configure.rb +94 -0
  110. data/test/test_converter.rb +21 -0
  111. data/test/test_epub3maker.rb +155 -3
  112. data/test/test_epubmaker.rb +245 -30
  113. data/test/test_epubmaker_cmd.rb +2 -2
  114. data/test/test_extentions_hash.rb +60 -0
  115. data/test/test_helper.rb +4 -47
  116. data/test/test_htmlbuilder.rb +282 -175
  117. data/test/test_htmltoc.rb +33 -0
  118. data/test/test_i18n.rb +134 -70
  119. data/test/test_idgxmlbuilder.rb +58 -39
  120. data/test/test_latexbuilder.rb +132 -14
  121. data/test/test_lineinput.rb +5 -26
  122. data/test/test_makerhelper.rb +6 -4
  123. data/test/test_markdownbuilder.rb +23 -5
  124. data/test/test_pdfmaker.rb +86 -20
  125. data/test/test_pdfmaker_cmd.rb +1 -3
  126. data/test/test_review_ext.rb +1 -1
  127. data/test/test_template.rb +27 -0
  128. data/test/test_textutils.rb +36 -0
  129. data/test/test_tocparser.rb +25 -0
  130. data/test/test_topbuilder.rb +34 -2
  131. data/test/test_yamlloader.rb +188 -0
  132. metadata +71 -29
  133. data/README.rdoc +0 -81
  134. data/bin/review-epubmaker-legacy +0 -1024
  135. data/doc/ruby-uuid/README +0 -11
  136. data/doc/ruby-uuid/README.ja +0 -34
  137. data/lib/review/compiler/literals_1_8.kpeg +0 -19
  138. data/lib/review/compiler/literals_1_8.rb +0 -432
  139. data/lib/review/compiler/literals_1_9.kpeg +0 -22
  140. data/lib/review/compiler/literals_1_9.rb +0 -435
  141. data/lib/review/extentions/array.rb +0 -25
  142. data/lib/review/htmllayout.rb +0 -41
  143. data/lib/review/inaobuilder.rb +0 -357
  144. data/lib/review/location.rb +0 -24
  145. data/lib/review/node.rb +0 -267
  146. data/lib/review/review.kpeg +0 -724
  147. data/lib/uuid.rb +0 -312
  148. data/rubocop-todo.yml +0 -456
  149. data/test/test_inaobuilder.rb +0 -247
  150. data/test/test_uuid.rb +0 -157
@@ -1,15 +1,16 @@
1
1
  # Re:VIEW カタログファイル ガイド
2
2
 
3
- Re:VIEW のカタログファイル catalog.ymlについて説明します。
3
+ Re:VIEW のカタログファイル catalog.yml について説明します。
4
+
5
+ このドキュメントは、Re:VIEW 2.0 に基づいています。
4
6
 
5
7
  ## カタログファイルとは
6
8
 
7
- Re:VIEW フォーマットで記述された各ファイルを特に一冊の本(例えばPDFやEPUB)にまとめる際に、どのようにそれらのファイルを構造化するかを指定するファイルです。
8
- 現在はカタログファイルと言えばcatalog.ymlのことを指します。
9
+ カタログファイルは、Re:VIEW フォーマットで記述された各ファイルを1冊の本(たとえば PDF EPUB)にまとめる際に、どのようにそれらのファイルを構造化するかを指定するファイルです。現在はカタログファイルと言えば catalog.yml のことを指します。
9
10
 
10
- ## catalog.ymlを用いた場合の設定方法
11
+ ## catalog.yml を用いた場合の設定方法
11
12
 
12
- catalog.yml内で、`PREDEF`(前付け)、`CHAPS`(本編)、`APPENDIX`(付録、連番あり)、`POSTDEF`(後付け、連番なし)を記述します。CHAPSのみ必須です。
13
+ catalog.yml 内で、`PREDEF`(前付け)、`CHAPS`(本編)、`APPENDIX`(付録、連番あり)、`POSTDEF`(後付け、連番なし)を記述します。CHAPS のみ必須です。
13
14
 
14
15
  ```yaml
15
16
  PREDEF:
@@ -26,7 +27,7 @@ POSTDEF:
26
27
  - postscript.re
27
28
  ```
28
29
 
29
- 本編に対して、「部」構成を加えたい場合、`CHAPS`を段階的にして記述します。部の指定については、タイトル名でもファイル名でもどちらでも使えます。
30
+ 本編に対して、「部」構成を加えたい場合、`CHAPS` を段階的にして記述します。部の指定については、タイトル名でもファイル名でもどちらでも使えます。
30
31
 
31
32
  ```yaml
32
33
  CHAPS:
@@ -38,16 +39,7 @@ CHAPS:
38
39
  - ch04.re
39
40
  ```
40
41
 
41
- (旧バージョンの利用者の方へ: `PART`という項目はありません。`CHAPS`に記述してください)
42
-
43
- ## バージョン 1.3以前について
44
-
45
- `APPENDIX`は指定できません。`POSTDEF`を使ってください。
46
-
47
- ## バージョン 1.2以前について
48
-
49
- 1.2以前のRe:VIEWではカタログファイルとしてPREDEF, CHAPS, POSTDEF, PARTという独立した4つのファイルを使用していました。
50
- そのため、当時のバージョンを利用する際にはcatalog.ymlではなくそちらを記述する必要があります。
42
+ ## 古いバージョンについて
43
+ 1.2 以前の Re:VIEW ではカタログファイルとして PREDEF, CHAPS, POSTDEF, PART という独立した4つのファイルを使用していました。古いカタログファイルを変換するツールとして、`review-catalog-converter` を提供しています。
51
44
 
52
- 現在のRe:VIEWはcatalog.ymlを用いた方法と旧バージョンが使用していたCHAPS, PREDEF, POSTDEF, PARTを用いた方法と両方をサポートしています。
53
- ただしcatalog.ymlが存在する場合、そちらが優先されます。
45
+ このコマンドにドキュメントのパスを指定して実行後、生成された catalog.yml の内容が正しいか確認してください。
@@ -9,7 +9,7 @@ Now we use catalog.yml as catalog file.
9
9
 
10
10
  ## How to write catalog.yml
11
11
 
12
- In catalog.yaml, you can write `PREDEF`(frontmatter), `CHAPS`(bodymatter), `APPENDIX`(appendix) and `POSTDEF`(backmater). `CHAPS` is required.
12
+ In catalog.yml, you can write `PREDEF`(frontmatter), `CHAPS`(bodymatter), `APPENDIX`(appendix) and `POSTDEF`(backmater). `CHAPS` is required.
13
13
 
14
14
  ```yaml
15
15
  PREDEF:
@@ -40,13 +40,9 @@ You can add parts in body to use `CHAPS` in a hierarchy. You can use both title
40
40
 
41
41
  (For old version user: there is no `PART`. You write them in `CHAPS`.)
42
42
 
43
- ## About version 1.3 or earlier
43
+ ## About earlier version
44
44
 
45
- You can not use `APPENDIX`. Use `POSTDEF`.
45
+ In version 1.x, Re:VIEW use 4 files PREDEF, CHAPS, POSTDEF, PART as catalog files.
46
46
 
47
- ## About version 1.2 or earlier
48
-
49
- Before version 1.2 or earlier, Re:VIEW use 4 files PREDEF, CHAPS, POSTDEF, PART as catalog files.
50
- So you must use these files instead of catalog.yml when you use these versions of Re:VIEW.
51
-
52
- Current Re:VIEW supports both catalog.yml and old catalog files. When there are both files, catalog.yml is used.
47
+ You can convert there files with `review-catalog-converter`.
48
+ When using it, you should compare with these files and the generated file `catalog.yml`.
@@ -0,0 +1,319 @@
1
+ # review-epubmaker向けの設定ファイルの例。
2
+ # yamlファイルをRe:VIEWファイルのある場所に置き、
3
+ # 「review-epubmaker yamlファイル」を実行すると、<bookname>.epubファイルが
4
+ # 生成されます。
5
+ # このファイルはUTF-8エンコーディングで記述してください。
6
+
7
+ # この設定ファイルでサポートするRe:VIEWのバージョン番号。
8
+ # major versionが違うときにはエラーを出す。
9
+ review_version: 2.0
10
+
11
+ # ほかの設定ファイルの継承を指定できる。同じパラメータに異なる値がある場合は、
12
+ # 呼び出し元の値が優先される。
13
+ # A.yml、B.ymlのパラメータを継承する例。A.ymlとB.ymlに同じパラメータがある
14
+ # 場合、B.ymlの値が優先される。さらに今このファイルに同じパラメータがあるなら、
15
+ # その値がB.ymlよりも優先される。
16
+ # 同様にA.yml、B.yml内でさらにinherit:パラメータを使うこともできる。
17
+ # inherit: ["A.yml", "B.yml"]
18
+
19
+ # ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
20
+ bookname: book
21
+ # 記述言語。省略した場合はja
22
+ language: ja
23
+
24
+ # 書名
25
+ # 読みを入れる例 booktitle: {name: "Re:VIEW EPUBサンプル", file-as: "リビューイーパブサンプル"}
26
+ booktitle: Re:VIEWサンプル書籍
27
+
28
+ # 著者名。「, 」で区切って複数指定できる
29
+ # 読みを入れる例 aut: [{name: "青木峰郎", file-as: "アオキミネロウ"}, {name: "武藤健志", file-as: "ムトウケンシ"}, {name: "高橋征義", file-as: "タカハシマサヨシ"}, {name: "角征典", file-as: "カドマサノリ"}]
30
+ aut: ["青木峰郎", "武藤健志", "高橋征義", "角征典"]
31
+
32
+ # 以下はオプション
33
+ # 以下はオプション(autと同じように配列書式で複数指定可能)。
34
+ # 読みの指定はaut:の例を参照。
35
+ # a-が付いているものはcreator側、
36
+ # 付いていないものはcontributor側(二次協力者)に入る
37
+ # a-adp, adp: 異なるメディア向けに作り直した者
38
+ # a-ann, ann: 注釈記述者
39
+ # a-arr, arr: アレンジした者
40
+ # a-art, art: グラフィックデザインおよび芸術家
41
+ # a-asn, asn: 関連・かつての所有者・関係者
42
+ # a-aqt, aqt: 大きく引用された人物
43
+ # a-aft, aft: 後書き・奥付の責任者
44
+ # a-aui, aui: 序論・序文・前書きの責任者
45
+ # a-ant, ant: 目録責任者
46
+ # a-bkp, bkp: メディア制作責任者
47
+ # a-clb, clb: 限定参加または補足者
48
+ # a-cmm, cmm: 解釈・分析・考察者
49
+ # a-dsr, dsr: デザイナ
50
+ # a-edt, edt: 編集者
51
+ # a-ill, ill: イラストレータ
52
+ # a-lyr, lyr: 歌詞作成者
53
+ # a-mdc, mdc: メタデータセットの一次的責任者
54
+ # a-mus, mus: 音楽家
55
+ # a-nrt, nrt: 語り手
56
+ # a-oth, oth: その他
57
+ # a-pht, pht: 撮影責任者
58
+ # a-pbl, pbl: 出版社(発行所)
59
+ # a-prt, prt: 印刷所
60
+ # a-red, red: 項目の枠組起草者
61
+ # a-rev, rev: 評論者
62
+ # a-spn, spn: 援助者
63
+ # a-ths, ths: 監督者
64
+ # a-trc, trc: 筆記・タイプ作業者
65
+ # a-trl, trl: 翻訳者
66
+
67
+ # 刊行日(省略した場合は実行時の日付)
68
+ # date: 2016-04-20
69
+ # 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
70
+ # 複数指定する場合は次のように記述する
71
+ # [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]]
72
+ # 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
73
+ # history: [["2016-04-20 v1.0.0版発行"]]
74
+ # 権利表記(配列で複数指定可)
75
+ # rights: (C) 2016 Re:VIEW Developers
76
+ # description: 説明
77
+ # subject: 短い説明用タグ(配列で複数指定可)
78
+ # type: 書籍のカテゴリーなど(配列で複数指定可)
79
+ # format: メディアタイプおよび特徴(配列で複数指定可)
80
+ # source: 出版物生成の重要なリソース情報(配列で複数指定可)
81
+ # relation: 補助的リソース(配列で複数指定可)
82
+ # coverage: 内容の範囲や領域(配列で複数指定可)
83
+
84
+ # デバッグフラグ。nullでないときには一時ファイルをカレントディレクトリに作成し、削除もしない
85
+ debug: null
86
+
87
+ # 固有IDに使用するドメイン。指定しない場合には、時刻に基づくランダムUUIDが入る
88
+ # urnid: urn:uid:http://example.com/book-title/
89
+ #
90
+ # ISBN。省略した場合はurnidが入る
91
+ # isbn: null
92
+ #
93
+ # HTMLファイルの拡張子(省略した場合はhtml)
94
+ # htmlext: html
95
+ #
96
+ # CSSファイル(配列で複数指定可)
97
+ stylesheet: ["sample.css"]
98
+
99
+ # ePUBのバージョン (2か3)
100
+ # epubversion: 2
101
+ #
102
+ # HTMLのバージョン (4か5。epubversionを3にしたときには5にする)
103
+ # htmlversion: 4
104
+
105
+ # 目次として抽出する見出しレベル
106
+ toclevel: 3
107
+
108
+ # 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする
109
+ #
110
+ # 本文でセクション番号を表示する見出しレベル
111
+ secnolevel: 2
112
+
113
+ # 以下のsecnolevelはまだ未実装。
114
+ # 前付でセクション番号を表示する見出しレベル(未実装)
115
+ # pre_secnolevel: 0
116
+ #
117
+ # 後付(付録)でセクション番号を表示する見出しレベル(未実装)
118
+ # post_secnolevel: 1
119
+ #
120
+ # 部番号を表示する見出しレベル(未実装)
121
+ # part_secnolevel: 1
122
+
123
+ # 本文中に目次ページを作成するか。省略した場合はnull (作成しない)
124
+ # toc: true
125
+
126
+ # EPUB2標準の目次(NCX)以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない)
127
+ # ePUB3においてはこの設定によらず必ず作成される
128
+ # mytoc: true
129
+
130
+ # 表紙にするHTMLファイル。ファイル名を指定すると表紙として入る
131
+ # cover: null
132
+ #
133
+ # 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg)
134
+ # coverimage: null
135
+ #
136
+ # 表紙の後に大扉ページを作成するか。省略した場合はnull (作成しない)
137
+ # titlepage: null
138
+ #
139
+ # 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る
140
+ # titlefile: null
141
+ #
142
+ # 原書大扉ページにするHTMLファイル。ファイル名を指定すると原書大扉として入る
143
+ # originaltitlefile: null
144
+ #
145
+ # 権利表記ページファイル。ファイル名を指定すると権利表記として入る
146
+ # creditfile: null
147
+
148
+ # 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
149
+ # colophon: null
150
+
151
+ # 裏表紙ファイル (画像はcoversまたはimagesに配置する)。ファイル名を指定すると裏表紙として入る
152
+ # backcover: null
153
+
154
+ # プロフィールページファイル。ファイル名を指定すると著者紹介として入る
155
+ # profile: null
156
+ # プロフィールページの目次上の見出し
157
+ # profiletitle: 著者紹介
158
+
159
+ # 広告ファイル。ファイル名を指定すると広告として入る
160
+ # advfile: null
161
+
162
+ # 取り込む画像が格納されているディレクトリ。省略した場合は以下
163
+ # imagedir: images
164
+
165
+ # 取り込むフォントが格納されているディレクトリ。省略した場合は以下
166
+ # fontdir: fonts
167
+
168
+ # imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
169
+ # image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"]
170
+
171
+ # fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
172
+ # font_ext: ["ttf", "woff", "otf"]
173
+
174
+ # ソースコードハイライトを利用する (pygmentsには外部gemが必要)
175
+ # highlight:
176
+ # html: "pygments"
177
+ # latex: "listings"
178
+
179
+ # カタログファイル名を指定する
180
+ # catalogfile: catalog.yml
181
+
182
+ # 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5)。
183
+ # page_metric: A5
184
+ #
185
+ # あるいは、配列で指定することもできる
186
+ # 各数字の意味は、順にリストの行数、リストの1行字数、テキストの行数、テキストの1行字数、1kバイト毎のページ数
187
+ # page_metric: [40,80,40,80,2]
188
+
189
+ # ページ送りの送り方向、page-progression-directionの値("ltr"|"rtl"|"default")
190
+ # direction: "ltr"
191
+
192
+ # EPUBのOPFへの固有の追加ルール
193
+ # <package>要素に追加する名前空間
194
+ # opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
195
+ # 追加する<meta>要素のプロパティとその値
196
+ # opf_meta: {"ebpaj:guide-version": "1.1.3"}
197
+
198
+ # 以下のパラメータを有効にするときには、
199
+ # epubmaker:
200
+ # パラメータ: 値
201
+ # パラメータ: 値
202
+ # ...
203
+ # という構成にする必要がある(インデントさせる)
204
+
205
+ epubmaker:
206
+ # HTMLファイルの拡張子
207
+ htmlext: xhtml
208
+ #
209
+ # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。
210
+ # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに
211
+ # パスしない目次ができるが、そのようなときにはこれをtrueにする
212
+ # flattoc: null
213
+ #
214
+ # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ)
215
+ # flattocindent: true
216
+ #
217
+ # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない
218
+ # ncxindent:
219
+ #-
220
+ #- -
221
+ # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される
222
+ # プログラムには実行権限が必要
223
+ # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。
224
+ # 渡される引数1=作業用展開ディレクトリ
225
+ # hook_beforeprocess: null
226
+ #
227
+ # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
228
+ # 渡される引数1=作業用展開ディレクトリ
229
+ # hook_afterfrontmatter: null
230
+ #
231
+ # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
232
+ # 渡される引数1=作業用展開ディレクトリ
233
+ # hook_afterbody: null
234
+ #
235
+ # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
236
+ # 渡される引数1=作業用展開ディレクトリ
237
+ # hook_afterbackmatter: null
238
+ #
239
+ # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。
240
+ # 渡される引数1=作業用展開ディレクトリ
241
+ # hook_aftercopyimage: null
242
+ #
243
+ # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。
244
+ # 渡される引数1=ePUB準備ディレクトリ
245
+ # hook_prepack: null
246
+ #
247
+ # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む)
248
+ # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる
249
+ # verify_target_images: null
250
+ #
251
+ # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
252
+ # force_include_images: []
253
+ #
254
+ # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか
255
+ # rename_for_legacy: null
256
+ #
257
+ # ePUBアーカイブの非圧縮実行
258
+ # zip_stage1: "zip -0Xq"
259
+ #
260
+ # ePUBアーカイブの圧縮実行
261
+ # zip_stage2: "zip -Xr9Dq"
262
+ #
263
+ # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS)
264
+ # zip_addpath: null
265
+ #
266
+ # EPUBで表紙をコンテンツに含めるか。デフォルトでは作成されない。yesにするとiBooks等でも最初に表紙が表示されるようになる
267
+ # cover_linear: null
268
+ #
269
+ # @<href>タグでの外部リンクを禁止し、地の文にする(falseで禁止する)
270
+ # externallink: true
271
+ #
272
+ # epubmaker:階層を使うものはここまで
273
+
274
+ # LaTeX用のスタイルファイル(styディレクトリ以下に置くこと)
275
+ # texstyle: samplemacro
276
+ #
277
+ # LaTeX用のdocumentclassを指定する
278
+ # texdocumentclass: ["jsbook", "uplatex,oneside"]
279
+ #
280
+ # LaTeX用のコマンドを指定する
281
+ # texcommand: "uplatex"
282
+ #
283
+ # LaTeXのコマンドに渡すオプションを指定する
284
+ # texoptions: null
285
+ #
286
+ # LaTeX用のdvi変換コマンドを指定する(dvipdfmx)
287
+ # dvicommand: "dvipdfmx"
288
+ #
289
+ # LaTeX用のdvi変換コマンドのオプションを指定する
290
+ # dvioptions: "-d 5"
291
+
292
+ # 以下のパラメータを有効にするときには、
293
+ # pdfmaker:
294
+ # パラメータ: 値
295
+ # パラメータ: 値
296
+ # ...
297
+ # という構成にする必要がある(インデントさせる)
298
+ #
299
+ pdfmaker:
300
+ #
301
+ # TeXコンパイル前に実行するプログラム。変換後のTeXソースを調整したいときに使用する。
302
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
303
+ # hook_beforetexcompile: null
304
+ #
305
+ # TeXコンパイル後に実行するプログラム。索引作業をして再度コンパイルしたいときなどに使用する。
306
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
307
+ # hook_aftertexcompile: null
308
+ #
309
+ # PDF(book.pdf)作成後に実行するプログラム。PDFに加工を施したいときに使用する。
310
+ # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
311
+ # hook_afterdvipdf: null
312
+ #
313
+ # 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換します。
314
+ # image_scale2width: true
315
+ #
316
+ # 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
317
+ colophon: true
318
+ # pdfmaker:階層を使うものはここまで
319
+
@@ -0,0 +1,42 @@
1
+ # EPUB ローカルルールへの対応方法
2
+ Re:VIEW の review-epubmaker が生成する EPUB ファイルは IDPF 標準に従っており、EpubCheck を通過する正規のものです。
3
+
4
+ しかし、ストアによってはこれに固有のローカルルールを設けていることがあり、それに合わせるためには別途 EPUB ファイルに手を入れる必要があります。幸い、ほとんどのルールは EPUB 内のメタ情報ファイルである OPF ファイルにいくつかの情報を加えることで対処できます。
5
+
6
+ Re:VIEW の設定ファイルは config.yml を使うものとします。
7
+
8
+ ## 電書協ガイドライン
9
+ * http://ebpaj.jp/counsel/guide
10
+
11
+ 電書協ガイドラインの必須属性を満たすには、次の設定を config.yml に加えます。
12
+
13
+ ```yaml
14
+ opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
15
+ opf_meta: {"ebpaj:guide-version": "1.1.3"}
16
+ ```
17
+
18
+ これは次のように展開されます。
19
+
20
+ ```xml
21
+ <package …… prefix="ebpaj: http://www.ebpaj.jp/">
22
+ ……
23
+ <meta property="ebpaj:guide-version">1.1.3</meta>
24
+ ```
25
+
26
+ ただし、Re:VIEW の生成する EPUB は、ファイルやフォルダの構成、スタイルシートの使い方などにおいて電書協ガイドラインには準拠していません。
27
+
28
+ ## iBooks ストア
29
+ デフォルトでは、iBooks で EPUB を見開きで開くと、左右ページの間に影が入ります。
30
+ これを消すには、次のように指定します。
31
+
32
+ ```yaml
33
+ opf_prefix: {ibooks: "http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/"}
34
+ opf_meta: {"ibooks:binding": "false"}
35
+ ```
36
+
37
+ すでにほかの定義があるときには、たとえば次のように追加してください。
38
+
39
+ ```yaml
40
+ opf_prefix: {ebpaj: "http://www.ebpaj.jp/", ibooks: "http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/"}
41
+ opf_meta: {"ebpaj:guide-version": "1.1.3", "ibooks:binding": "false"}
42
+ ```
@@ -1,12 +1,12 @@
1
1
  # Re:VIEW フォーマットガイド
2
2
 
3
- Re:VIEW フォーマットの文法について解説します。Re:VIEW
4
- フォーマットは ASCII の EWB を基本としながら、一部に
5
- RD や各種 Wiki の文法をとりいれて簡素化しています。
3
+ Re:VIEW フォーマットの文法について解説します。Re:VIEW フォーマットはアスキー社(現カドカワ)の EWB を基本としながら、一部に RD や各種 Wiki の文法を取り入れて簡素化しています。
4
+
5
+ このドキュメントは、Re:VIEW 2.0 に基づいています。
6
6
 
7
7
  ## 段落
8
8
 
9
- 段落(本文)の間は英語の段落のように1行空けます。
9
+ 段落(本文)の間は1行空けて表現します。空けずに次の行を記述した場合は、1つの段落として扱われます。
10
10
 
11
11
  例:
12
12
 
@@ -17,11 +17,12 @@ RD や各種 Wiki の文法をとりいれて簡素化しています。
17
17
  次の段落〜〜〜
18
18
  ```
19
19
 
20
- 2行以上空いている場合も1行空きと同様に処理します。
20
+ * 2行以上空けても、1行空きと同じ意味になります。
21
+ * 空行せずに改行して段落の記述を続ける際、英文の単語間スペースについては考慮されないことに注意してください。Re:VIEW は各行を単純に連結するだけであり、TeX のように前後の単語を判断してスペースを入れるようなことはしません。
21
22
 
22
- ## 章・節・項・段(見出し)
23
+ ## 章・節・項・段(見出し)
23
24
 
24
- 章・節・項・段など、見出しは「`=`」「`==`」「`===`」「`====`」「`=====`」です。6 レベル以上は使えません。
25
+ 章・節・項・段といった見出しは「`=`」「`==`」「`===`」「`====`」「`=====`」で表します。6 レベル以上は使えません。`=`のあとにはスペースを入れます。
25
26
 
26
27
  例:
27
28
 
@@ -37,11 +38,13 @@ RD や各種 Wiki の文法をとりいれて簡素化しています。
37
38
  ===== 小段のキャプション
38
39
  ```
39
40
 
40
- 見出しは行の先頭から始める必要があります。行頭に空白が入ると、ただの本文とみなされます。
41
+ 見出しは行の先頭から始める必要があります。行頭に空白を入れると、ただの本文と見なされます。
42
+
43
+ また、見出しの前に文があると、段落としてつながってしまうことがあります。このようなときには空行を見出しの前に入れてください。
41
44
 
42
45
  ## コラムなど
43
46
 
44
- 節や項の見出しに `[column]` を追加するとコラムのキャプションになります。
47
+ 節や項の見出しに `[column]` を追加すると以降がコラムとして扱われ、見出しはコラムのキャプションになります。
45
48
 
46
49
  例:
47
50
 
@@ -49,10 +52,9 @@ RD や各種 Wiki の文法をとりいれて簡素化しています。
49
52
  ===[column] コンパイラコンパイラ
50
53
  ```
51
54
 
52
- このとき、「=」と「[column]」は間を開けず、必ず続けて書かなければ
53
- なりません。空白があってもいけません。
55
+ このとき、「=」と「[column]」は間を空けず、必ず続けて書かなければなりません。
54
56
 
55
- 次の節や項を待たずにコラムを終了する場合は、「===[/column]」を記述します。
57
+ コラムは、そのコラムのキャプションの見出しと同等か上位のレベル(コラムキャプションが `===` であれば、`=`〜`===`)の見出しが登場するかファイル末尾に達した時点で終了します。これを待たずにコラムを終了する場合は、「`===[/column]`」と記述します(`=`の数はコラムキャプションと対応)。
56
58
 
57
59
  例:
58
60
 
@@ -64,78 +66,115 @@ RD や各種 Wiki の文法をとりいれて簡素化しています。
64
66
  ===[/column]
65
67
  ```
66
68
 
69
+ より下位の見出しを使うことでコラム内に副見出しを入れることができますが、それが必要になるほど長いコラムはそもそも文章構造に問題がある可能性があります。
70
+
71
+ このほか、次のような見出しオプションがあります。
72
+
73
+ * `[nonum]` : これを指定している章・節・項・段には連番を振りません。見出しは目次に含まれます。
74
+ * `[nodisp]` : これを指定している章・節・項・段の見出しは変換結果には表示されず、連番も振りません。ただし、見出しは目次に含まれます。
75
+ * `[notoc]` : これを指定している章・節・項・段には連番を振りません。見出しは目次に含まれません。
76
+
67
77
  ## 箇条書き
68
78
 
69
- 箇条書き (HTML で言う ul) は「` *`」で表現します。
70
- ネストは「` **`」のように深さに応じて数を増やします。
79
+ 箇条書き(HTML で言う ul、ビュレット箇条書きともいう)は「` *`」で表現します。ネストは「` **`」のように深さに応じて数を増やします。
71
80
 
72
81
  例:
73
82
 
74
83
  ```
75
- * 第一の項目
76
- ** 第一の項目のネスト
77
- * 第二の項目
78
- ** 第二の項目のネスト
79
- * 第三の項目
84
+ * 第1の項目
85
+ ** 第1の項目のネスト
86
+ * 第2の項目
87
+ ** 第2の項目のネスト
88
+ * 第3の項目
80
89
  ```
81
90
 
82
- 箇条書きを書くには、行頭に1つ以上の空白を必ず入れるようにします。
83
- 行頭に空白を入れず「*」を書くと、ただのテキストとみなされます。
91
+ 箇条書きには行頭に1つ以上の空白が必要です。行頭に空白を入れず「*」と書くと、ただのテキストと見なされるので注意してください。
92
+
93
+ 通常の段落との誤った結合を防ぐため、箇条書きの前後には空行を入れることをお勧めします(他の箇条書きも同様)。
84
94
 
85
95
  ## 番号付き箇条書き
86
96
 
87
- 番号付きの箇条書き (HTML で言う ol) は「` 1. 〜`」「` 2. 〜`」
88
- 「` 3. 〜`」で示します。ネストはしません。
97
+ 番号付きの箇条書き(HTML で言う ol)は「` 1. 〜`」「` 2. 〜`」「` 3. 〜`」のように示します。ネストはサポートしていません。
89
98
 
90
99
  例:
91
100
 
92
-
93
101
  ```
94
- 1. 第一の条件
95
- 2. 第二の条件
96
- 3. 第三の条件
102
+ 1. 第1の条件
103
+ 2. 第2の条件
104
+ 3. 第3の条件
97
105
  ```
98
106
 
99
107
  番号付き箇条書きも、ただの箇条書きと同様、行頭に1つ以上の空白が必要です。
100
108
 
101
109
  ## 用語リスト
102
110
 
103
- 用語リスト (HTML で言う dl) は「:」と、続く空白で始まる行を使って示します。
111
+ 用語リスト(HTML で言う dl)は空白→「:」→空白、で始まる行を使って示します。
104
112
 
105
113
  例:
106
114
 
107
115
  ```review
108
- : Alpha
116
+ : Alpha
109
117
  DEC の作っていた RISC CPU。
110
118
  浮動小数点数演算が速い。
111
- : POWER
119
+ : POWER
112
120
  IBM とモトローラが共同製作した RISC CPU。
113
121
  派生として POWER PC がある。
114
- : SPARC
122
+ : SPARC
115
123
  Sun が作っている RISC CPU。
116
124
  CPU 数を増やすのが得意。
117
125
  ```
118
126
 
119
- 頭の「`:`」それ自体はテキストではないので注意してください。
120
- その後に続く文字列が用語名(HTMLではdt要素)になります。
127
+ 「`:`」それ自体はテキストではないので注意してください。その後に続く文字列が用語名(HTML での dt 要素)になります。
128
+
129
+ そして、その行以降、空白で始まる行が用語内容(HTML では dd 要素)になります。次の用語名か空行になるまで、1つの段落として結合されます。
130
+
131
+ ## ブロック命令とインライン命令
132
+
133
+ 見出しと箇条書きは特別な記法でしたが、それ以外の Re:VIEW の命令はほぼ一貫した記法を採用しています。
134
+
135
+ ブロック命令は1〜複数行の段落に対して何らかのアクション(たいていは装飾)を行います。ブロック命令の記法は次のとおりです。
136
+
137
+ ```
138
+ //命令[オプション1][オプション2]…{
139
+ 対象の内容。本文と同じような段落の場合は空行区切り
140
+
141
+ //}
142
+ ```
143
+
144
+ オプションを取らなければ単に `//命令{` という開始行になります。いずれにせよ、開始と終了は明確です。オプション内で「]」という文字が必要であれば、`\]` でリテラルを表現できます。
145
+
146
+ 亜種として、一切段落を取らないブロック命令もごく少数あります。
147
+
148
+ ```
149
+ //命令[オプション1][オプション2]…
150
+ ```
151
+
152
+ インライン命令は段落、見出し、ブロック内容、一部のブロックのオプション内で利用でき、文字列内の一部に対してアクション(装飾)を行います。
153
+
154
+ ```
155
+ @<命令>{対象の内容}
156
+ ```
121
157
 
122
- 用語リストの「`:`」ではじまる行は、行頭に空白があってもなくてもかまいません。
123
- そして、その行以降、空白で始まる行が用語内容(HTMLではdd要素)になります。
158
+ 内容に「}」という文字が必要であれば、`\}` でリテラルを表現できます。
124
159
 
125
- また、リスト内でも後述するインライン命令は有効です。
160
+ 記法および処理の都合で、次のような制約があります。
161
+
162
+ * ブロック命令内には別のブロック命令をネストできません。
163
+ * ブロック命令内には見出しや箇条書きを格納できません。
164
+ * インライン命令には別のインライン命令をネストできません。
126
165
 
127
166
  ## ソースコードなどのリスト
128
167
 
129
- ソースコードなどのリストには`//list`を使います。連番をつけたくない場合は先頭に``em``(embeddedの略)、行番号をつける場合は末尾に``num``を付加します。まとめると以下の4種類になります。
168
+ ソースコードなどのリストには`//list`を使います。連番を付けたくない場合は先頭に `em`(embedded の略)、行番号を付ける場合は末尾に `num` を付加します。まとめると、以下の4種類になります。
130
169
 
131
- * ``//list[識別子][キャプション][言語指定]{ 〜 //}``
170
+ * `//list[識別子][キャプション][言語指定]{ 〜 //}`
132
171
  * 通常のリスト。言語指定は省略できます。
133
- * ``//listnum[識別子][キャプション][言語指定]{ 〜 //}``
172
+ * `//listnum[識別子][キャプション][言語指定]{ 〜 //}`
134
173
  * 通常のリストに行番号をつけたもの。言語指定は省略できます。
135
- * ``//emlist[キャプション][言語指定]{ 〜 //}``
174
+ * `//emlist[キャプション][言語指定]{ 〜 //}`
136
175
  * 連番がないリスト。キャプションと言語指定は省略できます。
137
- * ``//emlistnum[キャプション][言語指定]{ 〜 //}``
138
- * 連番がないリストに行番号をつけたもの。キャプションと言語指定は省略できます。
176
+ * `//emlistnum[キャプション][言語指定]{ 〜 //}`
177
+ * 連番がないリストに行番号を付けたもの。キャプションと言語指定は省略できます。
139
178
 
140
179
  例:
141
180
 
@@ -161,7 +200,7 @@ puts "hello world!"
161
200
  例:
162
201
 
163
202
  ```review
164
- //emlist[][ruby]{
203
+ //emlist[][c]{
165
204
  printf("hello");
166
205
  //}
167
206
  ```
@@ -174,17 +213,17 @@ puts "hello world!"
174
213
  //}
175
214
  ```
176
215
 
216
+ 言語指定は、ハイライトを有効にしたときに利用されます。
177
217
 
218
+ コードブロック内でもインライン命令は有効です。
178
219
 
179
- ブロック内でも後述するインライン命令は有効です。
220
+ また本文中で「リスト X.X を見てください」のようにリストを指定する場合は、インライン命令 `@<list>` を使います。`//list` あるいは `//listnum` で指定した識別子を指定し、たとえば「`@<list>{main}`」と表記します。
180
221
 
181
- また本文中で「リスト X を見てください」のようにリストを指定
182
- する場合は、`//list` で指定した識別子を使って「`@<list>{main}`」
183
- と表記します。
222
+ 他章のリストを参照するには、後述の「章ID」を指定し、たとえば `@<list>{advanced|main}`(`advanced.re` ファイルの章にあるリスト `main` を参照する)と記述します。
184
223
 
185
224
  ### ソースコード専用の引用
186
225
 
187
- ソースコードを引用する場合、ファイル名が必要です。
226
+ ソースコードを引用するには次のように記述します。
188
227
 
189
228
  例:
190
229
 
@@ -194,21 +233,11 @@ puts "hello world!"
194
233
  //}
195
234
  ```
196
235
 
197
- ソースコードの引用は、キャプションをつけた`//emlist`とあまり違いはありません。
198
- が、HTMLのCSSなどでは区別した表現ができます。
199
-
200
-
201
- 参照方法はlistと変わりません。
202
-
203
- 例:
204
-
205
- ```
206
- ..は@<list>{hello}をみてください。
207
- ```
236
+ ソースコードの引用は、キャプションを付けた `//emlist` とほぼ同じです。HTML の CSS などでは区別した表現ができます。
208
237
 
209
238
  ## 本文中でのソースコード引用
210
239
 
211
- 本文中でソースコードを引用して記述します。
240
+ 本文中でソースコードを引用して記述するには、`code` を使います。
212
241
 
213
242
  例:
214
243
 
@@ -218,23 +247,21 @@ puts "hello world!"
218
247
 
219
248
  ## コマンドラインのキャプチャ
220
249
 
221
- コマンドラインの操作を示すときは `//cmd{ 〜 //}` を使います。
250
+ コマンドラインの操作を示すときは `//cmd{ 〜 //}` を使います。インライン命令を使って入力箇所を強調するのもよいでしょう。
222
251
 
223
252
  例:
224
253
 
225
254
  ```
226
255
  //cmd{
227
- $ ls /
256
+ $ @<b>{ls /}
228
257
  //}
229
258
  ```
230
259
 
231
- ブロック内でも後述するインライン命令は有効です。
232
-
233
260
  ## 図
234
261
 
235
- 図は `//image{ 〜 //}` で指定します。執筆中はアスキーアートで
236
- 代替しているため、ダミーのアスキーアートが入っていることがあり
237
- ます。この部分は、組版時には単に無視してください。
262
+ 図は `//image{ 〜 //}` で指定します。後述するように、識別子に基づいて画像ファイルが探索されます。
263
+
264
+ ブロック内の内容は単に無視されますが、アスキーアートや、図中の訳語などを入れておくといった使い道があります。
238
265
 
239
266
  例:
240
267
 
@@ -250,14 +277,13 @@ V1 --> V6 --|
250
277
  //}
251
278
  ```
252
279
 
253
- 3番目の引数として、画像の倍率・大きさを指定することができます。
254
- 今のところ「scale=X」で倍率(X倍)が指定できます。
280
+ 3番目の引数として、画像の倍率・大きさを指定することができます。今のところ「scale=X」で倍率(X 倍)を指定でき、HTML、TeX ともに紙面(画面)幅に対しての倍率となります(0.5 なら半分の幅になります)。
281
+
282
+ ※TeX において原寸からの倍率にしたいときには、`config.yml` に `image_scale2width: false` を指定してください。
255
283
 
256
- また本文中で「図 X を見てください」のように図を指定する場合は、
257
- `//image` で指定した識別子を用いて「`@<img>{unixhistory}`」と
258
- 記述します。`//image` と `@<img>` でつづりが違うので注意してください。
284
+ また、本文中で「図 X.X を見てください」のように図を指定する場合は、インライン命令 `@<img>` を使います。`//image` で指定した識別子を用いて「`@<img>{unixhistory}`」のように記述します(`//image` と `@<img>` でつづりが違うので注意してください)。
259
285
 
260
- なお、後述しますが、インラインで図を出力するには`@<icon>`を使用します。
286
+ ### 画像ファイルの探索
261
287
 
262
288
  図として貼り込む画像ファイルは、次の順序で探索され、最初に発見されたものが利用されます。
263
289
 
@@ -270,11 +296,15 @@ V1 --> V6 --|
270
296
  6. <imgdir>/<id>.<ext>
271
297
  ```
272
298
 
273
- * ``<imgdir>`` はデフォルトでは images ディレクトリです。
274
- * ``<builder>`` は利用しているビルダ名 (ターゲット名) で、たとえば ``--target=html`` としているのであれば、images/html ディレクトリとなります。
275
- * ``<chapid>`` re ファイルの名前に相当します。たとえば ch01.re という名前であれば「ch01」です。
276
- * ``<id>`` は //image[〜] の最初に入れた「〜」のことです (つまり、ID に日本語や空白交じりの文字を使ってしまうと、後で画像ファイル名の名付けに苦労することになります!)。
277
- * ``<ext>`` は Re:VIEW が自動で判別する拡張子です。ビルダによってサポートおよび優先する拡張子は異なります。
299
+ * `<imgdir>` はデフォルトでは images ディレクトリです。
300
+ * `<builder>` は利用しているビルダ名(ターゲット名)で、たとえば `--target=html` としているのであれば、images/html ディレクトリとなります。
301
+ * `<chapid>` は章 ID です。たとえば ch01.re という名前であれば「ch01」です。
302
+ * `<id>` は //image[〜] の最初に入れた「〜」のことです(つまり、ID に日本語や空白交じりの文字を使ってしまうと、後で画像ファイル名の名前付けに苦労することになります!)。
303
+ * `<ext>` は Re:VIEW が自動で判別する拡張子です。ビルダによってサポートおよび優先する拡張子は異なります。
304
+
305
+ ### インラインの画像挿入
306
+
307
+ 段落途中などに画像を貼り込むには、インライン命令の `@<icon>{識別子}` を使います。ファイルの探索ルールは同じです。
278
308
 
279
309
  ## 番号が振られていない図
280
310
 
@@ -294,8 +324,6 @@ V1 --> V6 --|
294
324
  //numberlessimage[door_image_path][扉絵]
295
325
  ```
296
326
 
297
- ※ただし、`//indepimage`と機能的にかぶっているので、将来は廃止され、`//indepimage`に統合される予定です。
298
-
299
327
  ## グラフ表現ツールを使った図
300
328
 
301
329
  `//graph[ファイル名][コマンド名][キャプション]` で各種グラフ表現ツールを使った画像ファイルの生成ができます。キャプションは省略できます。
@@ -312,11 +340,9 @@ plot sin(x)
312
340
 
313
341
  ## 表
314
342
 
315
- 表は `//table[識別子][キャプション]{ 〜 //}` です。ヘッダと内容を
316
- 分ける罫線は「`------`」で書き込んであります。
343
+ 表は `//table[識別子][キャプション]{ 〜 //}` という記法です。ヘッダと内容を分ける罫線は「`------------`」(12個以上の連続する `-` または `=`)を使います。
317
344
 
318
- カラム間は任意個数のタブで区切ります。また、カラム先頭の「`.`」は削除されるので、カラムの先頭文字が「`.`」の場合は「`.`」をもう一つ余計に付けてください。例えば「`.`」という内容のカラムは「`..`」と書きます。
319
- また、空のカラムは「`.`」と書けます。
345
+ 表の各列のセル間は「1つ」のタブで区切ります。また、列の先頭セルの「`.`」は削除されるので、先頭文字が「`.`」の場合は「`.`」をもう1つ余計に付けてください。たとえば「`.`」という内容のセルは「`..`」と書きます。
320
346
 
321
347
  例:
322
348
 
@@ -336,10 +362,24 @@ DISPLAY X Window Systemのデフォルトディスプレイ
336
362
  //}
337
363
  ```
338
364
 
339
- 本文中で「表 X を見てください」のように表を指定する場合は
340
- `@<table>{envvars}` という表記を使います。
365
+ 本文中で「表 X.X を見てください」のように表を指定する場合はインライン命令 `@<table>` を使います。たとえば `@<table>{envvars}` となります。
366
+
367
+ 表のセル内でもインライン命令は有効です。
368
+
369
+ ### 複雑な表
370
+
371
+ 現時点では表のセルの結合や、中央寄せ・右寄せなどの表現はできません。
372
+
373
+ 複雑な表については、画像を貼り込む `imgtable` ブロック命令を代わりに使用する方法もあります。`imgtable` の表は通常の表と同じく採番され、インライン命令 `@<table>` で参照できます。
341
374
 
342
- 表内でも後述するインライン命令は有効です。
375
+ 例:
376
+
377
+ ```
378
+ //imgtable[complexmatrix][複雑な表]{
379
+ complexmatrixという識別子に基づく画像ファイルが貼り込まれる。
380
+ 探索ルールはimageと同じ
381
+ //}
382
+ ```
343
383
 
344
384
  ## 引用
345
385
 
@@ -353,8 +393,24 @@ DISPLAY X Window Systemのデフォルトディスプレイ
353
393
  //}
354
394
  ```
355
395
 
356
- 引用内でも後述するインライン命令は有効です。
357
- また、いまのところ引用内で別のブロック構文を使うことはできません。
396
+ 複数の段落を入れる場合は、空行で区切ります。
397
+
398
+ ## 囲み記事
399
+
400
+ 技術書でよくある、コラムにするほどではないけれども本文から独立したちょっとした記事を入れるために、以下の命令があります。
401
+
402
+ * `//note[キャプション]{ 〜 //}` : ノート
403
+ * `//memo[キャプション]{ 〜 //}` : メモ
404
+ * `//tip[キャプション]{ 〜 //}` : Tips
405
+ * `//info[キャプション]{ 〜 //}` : 情報
406
+ * `//warning[キャプション]{ 〜 //}` : 注意
407
+ * `//important[キャプション]{ 〜 //}` : 重要
408
+ * `//caution[キャプション]{ 〜 //}` : 警告
409
+ * `//notice[キャプション]{ 〜 //}` : 注意
410
+
411
+ いずれも `[キャプション]` は省略できます。
412
+
413
+ 内容には、空行で区切って複数の段落を記述可能です。
358
414
 
359
415
  ## 脚注
360
416
 
@@ -368,30 +424,27 @@ DISPLAY X Window Systemのデフォルトディスプレイ
368
424
  //footnote[site][本書のサポートサイト: http://i.loveruby.net/ja/stdcompiler ]
369
425
  ```
370
426
 
371
- 本文中の「`@<fn>{site}`」は脚注番号に置換され、「本書のサポート
372
- サイト……」という文は実際の脚注に変換されます。
427
+ 本文中のインライン命令「`@<fn>{site}`」は脚注番号に置換され、「本書のサポートサイト……」という文は実際の脚注に変換されます。
373
428
 
374
- 注意: PDFで、コラムや表など平文でないところで「`@<fn>{~}`」を使うには、`footnotetext`オプションを使う必要があります。
429
+ 注意: TeX PDF において、コラムや表など平文でないところで「`@<fn>{~}`」を使うには、`footnotetext` オプションを使う必要があります。
375
430
 
376
- ### footnotetextオプション
431
+ ### footnotetext オプション
377
432
 
378
- `footnotetext`オプションを使うには、YAMLファイルの`params`に「`--footnotetext`」を追加します。
433
+ `footnotetext` オプションを使うには、`config.yml` ファイルに`footnotetext: true` を追加します。
379
434
 
380
- これでPDFのコラムや表のなかでも脚注が使えるようになります。
435
+ これで PDF のコラムや表のなかでも脚注が使えるようになります。
381
436
 
382
- ただし、通常の脚注(footnote)ではなく、footnotemarkとfootnotetextを使うため、
383
- 本文と脚注が別ページに分かれる可能性があるなど、いろいろな制約があります。
384
- なお、採番が別々になるためfootnoteとfootnotemark/footnotetextを両立させることはできません。
437
+ ただし、通常の脚注(footnote)ではなく、footnotemark footnotetext を使うため、本文と脚注が別ページに分かれる可能性があるなど、いろいろな制約があります。また、採番が別々になるため、footnote と footnotemark/footnotetext を両立させることはできません。
385
438
 
386
439
  ## 参考文献の定義
387
440
 
388
- 参考文献は同一ディレクトリ内の bib.re に定義します。
441
+ 参考文献は同一ディレクトリ内の `bib.re` ファイルに定義します。
389
442
 
390
443
  ```
391
- //bibpaper[cite][キャプション]{..コメント..}
444
+ //bibpaper[cite][キャプション]{…コメント…}
392
445
  ```
393
446
 
394
- コメントが無い場合も定義可能です。
447
+ コメントは省略できます。
395
448
 
396
449
  ```
397
450
  //bibpaper[cite][キャプション]
@@ -408,18 +461,17 @@ Computing Laboratory, The University of Kent at Canterbury , August
408
461
  //}
409
462
  ```
410
463
 
411
- 本文中で参考文献を参照したい場合は次のようにしてください。
464
+ 本文中で参考文献を参照したい場合は、インライン命令 `@<bib>` を使い、次のようにします。
412
465
 
413
466
  例:
414
467
 
415
468
  ```
416
- …という研究が知られています(@<bib>{lins})
469
+ …という研究が知られています(@<bib>{lins})。
417
470
  ```
418
471
 
419
472
  ## リード文
420
473
 
421
- リード文は `//lead{ 〜 //}` で指定します。
422
- 歴史的経緯により`//read{ 〜 //}` でも使えます。
474
+ リード文は `//lead{ 〜 //}` で指定します。歴史的経緯により、`//read{ 〜 //}` も使用可能です。
423
475
 
424
476
  例:
425
477
 
@@ -430,7 +482,9 @@ Computing Laboratory, The University of Kent at Canterbury , August
430
482
  //}
431
483
  ```
432
484
 
433
- ## TeX式
485
+ 空行区切りで複数の段落を記述することもできます。
486
+
487
+ ## TeX 式
434
488
 
435
489
  LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
436
490
 
@@ -442,293 +496,271 @@ LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
442
496
  //}
443
497
  ```
444
498
 
445
- ## 空白制御
499
+ インライン命令では `@<m>{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{` はエスケープ不要)。
446
500
 
447
- 出力される空白を制御するタグとしては、`//noindent`があります。
501
+ LaTeX の数式が正常に整形されるかどうかは処理系に依存します。たとえば TeX PDF であれば問題なく利用できるでしょうが、EPUB では MathML 変換を有効にしても妥当な結果にならないことがあります。確実を期すならば、画像で表現するほうが適切です。
448
502
 
503
+ ## 字下げの制御
449
504
 
450
- * `//noindent` : その直後に来る段落冒頭のインデントをなくす(HTMLではnoindentクラスになる)
505
+ 段落の行頭字下げを制御するタグとして、`//noindent` があります。HTML では `noindent` が `class` 属性に設定されます。
451
506
 
507
+ ## 見出し参照
508
+ 章に対する参照は、次の3つのインライン命令を利用できます。章 ID は、各章のファイル名から拡張子を除いたものです。たとえば `advanced.re` であれば `advanced` が章 ID です。
452
509
 
453
- 以前あった「`//linebreak`」(改行)、「`//pagebreak`」(改ページ)は廃止になります。
454
-
455
- ## コメント
510
+ * `@<chap>{章ID}` : 「第17章」のような、章番号を含むテキストに置換されます。
511
+ * `@<title>{章ID}` : その章の章題に置換されます。
512
+ * `@<chapref>{章ID}` : 『第17章「さらに進んだ話題」』のように、章番号とタイトルを含むテキストに置換されます。
456
513
 
457
- 最終結果に出力されないコメントを記述したい場合は「`#@#`」を使ってください。
514
+ 節や項といったより下位の見出しを参照するには、`@<hd>` インライン命令を利用します。見出しの階層を「`|`」で区切って指定します。
458
515
 
459
516
  例:
460
517
 
461
518
  ```
462
- #@# ここで 1 行あける
519
+ @<hd>{はじめに|まずは}
463
520
  ```
464
521
 
465
- また、修正が必要な警告的コメントには`#@warn(...)`を使ってください。
522
+ 他の章を参照したい場合は、先頭に章 ID を指定してください。
466
523
 
467
524
  例:
468
525
 
469
526
  ```
470
- #@warn(あとで書く)
527
+ @<hd>{preface|はじめに|まずは}
471
528
  ```
472
529
 
473
- 最終結果に出力するコメントを記述したい場合は、`//comment`または`@<comment>`を使った上で、review-compileコマンドに`--draft`オプションを追加してください。
474
-
475
- 例:
530
+ 参照先にラベルが設定されている場合は、見出しの代わりに、ラベルで参照します。
476
531
 
477
532
  ```
478
- @<comment>{あとで書く}
533
+ =={hajimeni} はじめに
534
+
535
+ === まずは
536
+
537
+ @<hd>{hajimeni|まずは}
479
538
  ```
480
539
 
481
- ## 生データ行
540
+ ### コラム見出し参照
482
541
 
483
- Re:VIEW のタグ範囲を越えて何か特別な行を挿入したい場合、`//raw` を使います。
542
+ コラムの見出しの参照は、インライン命令 `@<column>` を使います。
484
543
 
485
544
  例:
486
545
 
487
546
  ```
488
- //raw[|html|<div class="special">\nここは特別な行です。\n</div>]
547
+ @<column>{Re:VIEWの用途いろいろ}
489
548
  ```
490
549
 
491
- 「|ビルダ名|そのまま出力させる内容」という書式です。
492
-
493
- ビルダ名には「`html`」「`latex`」「`idgxml`」「`top`」のいずれかが入り、(複数のビルダにまたがる指定が必要かは別として)「,」で区切って複数指定することも可能です。
494
- 「バックスラッシュ+n」は改行に変換されます。
495
- 該当のビルダを使用しているときのみ、内容が出力されます。
496
-
497
- 例:
550
+ ラベルでの参照も可能です。
498
551
 
499
552
  ```
500
- (HTMLビルダの場合:)
501
- <div class="special">
502
- ここは特別な行です。
503
- </div>
504
-
505
- (ほかのビルダの場合は単に無視されて何も出力されない)
553
+ ==[column]{review-application} Re:VIEWの応用
554
+
555
+ @<column>{review-application}
506
556
  ```
507
557
 
508
- `//raw` およびこの後に紹介する `@<raw>` インラインタグは、誤った内容を入れると
509
- 構造化文書を容易に破壊し得ることに注意してください。
510
-
511
- ## その他の文法
512
-
513
- Re:VIEW は任意のブロックを追加可能なので、本によって専用ブロックを
514
- 使う場合があります。これまでに使った例を以下に示します。
558
+ ## リンク
515
559
 
516
- * `//prototype` : 関数プロトタイプ。『ふつうのLinuxプログラミング』で使用。
517
- * `//type` : 関数の型宣言。『ふつうのHaskellプログラミング』で使用。
560
+ Web ハイパーリンクを記述するには、リンクに `@<href>`、アンカーに `//label` を使います。リンクの書式は `@<href>{URL, 文字表現}` で、「`, 文字表現`」を省略すると URL がそのまま使われます。URL 中に `,` を使いたいときには、`\,` とエスケープしてください。
518
561
 
519
- 拡張文法はreview-ext.rbというファイルで指定できます。
520
- 例えば、
562
+ 例:
521
563
 
522
564
  ```
523
- # review-ext.rb
524
- ReVIEW::Compiler.defblock :foo, 0..1
525
- class ReVIEW::HTMLBuilder
526
- def foo(lines, caption = nil)
527
- puts lines.join(",")
528
- end
529
- end
565
+ @<href>{http://github.com/, GitHub}
566
+ @<href>{http://www.google.com/}
567
+ @<href>{#point1, ドキュメント内ポイント}
568
+ @<href>{chap1.html#point1, ドキュメント内ポイント}
569
+ //label[point1]
530
570
  ```
531
571
 
532
- のようにすると、以下のような文法を追加できます。
572
+ ## コメント
533
573
 
534
- ```
535
- //foo{
536
- A
537
- B
538
- C
539
- //}
540
- ```
574
+ 最終結果に出力されないコメントを記述するには、「`#@#`」を使います。行末までがコメントとして無視されます。
575
+
576
+ 例:
541
577
 
542
578
  ```
543
- # 出力結果
544
- A,B,C
579
+ #@# FIXME: あとで調べておくこと
545
580
  ```
546
581
 
547
- 詳しいことについては、ここでは触れません。
548
-
582
+ 最終結果に出力するコメントを記述したい場合は、`//comment` または `@<comment>` を使ったうえで、review-compile コマンドに `--draft` オプションを付けて実行します。
549
583
 
550
- ## 段落中で使う文法 (インライン命令)
584
+ 例:
551
585
 
552
586
  ```
553
- @<list>{program}:: 「リスト1.5」のような文字列に置換される。
554
- @<img>{unixhistory}:: 「図1.3」のような文字列に置換される。
555
- @<table>{ascii}:: 「表1.2」のような文字列に置換される。
556
- @<fn>{site}:: 脚注番号に置換される。
557
- @<kw>{信任状, credential}:: キーワード。太字などにして強調してください。
558
- @<chap>{advanced}:: 「第17章」のような、章番号を含むテキストに置換される。
559
- @<title>{advanced}:: その章の章題に置換される。
560
- @<chapref>{advanced}:: 『第17章「さらに進んだ話題」』のように、章番号とタイトルを含むテキストに置換される。
561
- @<bou>{ふさわしい}:: 傍点。
562
- @<ruby>{直截, ちょくせつ}:: ルビ。
563
- @<ami>{重点ポイント}:: 文字に対するアミかけ。
564
- @<b>{どうしても}:: 太字 (ボールド)。
565
- @<i>{どうしても}:: イタリック。
566
- @<strong>{どうしても}:: 強調。
567
- @<em>{どうしても}:: 強調。
568
- @<tt>{foo($bar)}:: テキストをテレタイプ文字(等幅フォント)で出力する。
569
- @<tti>{FooClass}:: テキストをテレタイプ文字(等幅フォント)のイタリックで出力する。
570
- @<ttb>{BarClass}:: テキストをテレタイプ文字(等幅フォント)の太字で出力する。
571
- @<u>{下線}:: 下線。
572
- @<br>{}:: 段落中改行。
573
- @<m>{a + \alpha}:: TeXインライン式。
574
- @<icon>{samplephoto}:: インライン画像。
575
- @<uchar>{2460}:: Unicode文字の出力。引数は16進数で指定する。
576
- @<href>{http://www.google.com/}:: リンク。URLで指定できる
577
- @<raw>{|ビルダ名|<span>★</span>}:: そのまま出力する。「}」は「バックスラッシュ+}」でエスケープする。ビルダ名は「html」「latex」「idgxml」「top」のいずれかで、「,」で区切って複数指定することも可能。該当のビルダを使用時のみ、出力される。内容に「バックスラッシュ+n」を入れると改行に変換される。
587
+ @<comment>{あとで書く}
578
588
  ```
579
589
 
580
- ## 著者用タグ (プリプロセッサ命令)
590
+ ## 生データ行
591
+
592
+ Re:VIEW のタグ範囲を超えて何か特別な行を挿入したい場合、`//raw` ブロック命令または `@<raw>` インライン命令を使います。
581
593
 
582
- これまでに説明したタグはすべて最終段階まで残り、見ために
583
- 影響を与えます。それに対して以下のタグは著者が使うための
584
- 専用タグであり、最終段階ではすべて消されてしまいます。
594
+ 例:
585
595
 
586
596
  ```
587
- #@#:: コメント。この行には何を書いても無視される。
588
- #@warn(...):: 警告メッセージ。プリプロセス時にメッセージが出力される。
589
- #@require, #@provide:: キーワードの依存関係を宣言する。
590
- #@mapfile(ファイル名) 〜 #@end:: ファイルの内容をその場に展開する。
591
- #@maprange(ファイル名, 範囲名) 〜 #@end:: ファイル内の範囲をその場に展開する。
592
- #@mapoutput(コマンド) 〜 #@end:: コマンドを実行して、その出力結果を展開する。
597
+ //raw[|html|<div class="special">\nここは特別な行です。\n</div>]
593
598
  ```
594
599
 
595
- ## HTMLのレイアウト機能
600
+ ブロック命令は1つだけオプションをとり、「|ビルダ名|そのまま出力させる内容」という書式です。
596
601
 
597
- CHAPSファイルが置かれているディレクトリに layouts/layout.html.erb
598
- を置くとその html を ERB で評価します。
602
+ ビルダ名には「`html`」「`latex`」「`idgxml`」「`top`」のいずれかが入り、(複数のビルダにまたがる指定が必要かは別として)「,」で区切って複数指定することも可能です。「バックスラッシュ+n」は改行に変換されます。該当のビルダを使用しているときのみ、内容が出力されます。
599
603
 
600
604
  例:
601
605
 
602
606
  ```
603
- <html>
604
- <head>
605
- <title><%= title %></title>
606
- </head>
607
- <body>
608
- <%= body %>
609
- <hr/>
610
- </body>
611
- </html>
607
+ (HTMLビルダの場合:)
608
+ <div class="special">
609
+ ここは特別な行です。
610
+ </div>
611
+
612
+ (ほかのビルダの場合は単に無視されて何も出力されない)
612
613
  ```
613
614
 
614
- ## 部タイトル取得(目次生成機能)
615
+ インライン命令は、`@<raw>{|ビルダ名|〜}` という書式で、記述はブロック命令に同じです。
615
616
 
616
- Version 1.2以前の場合、PART ファイルに定義してください。
617
- PART ファイルは CHAPS の部わけと対応しています。
617
+ `//raw` および `@<raw>` は、HTML、XML や TeX の文書構造を容易に壊す可能性があります。使用には十分に注意してください。
618
618
 
619
- 例:
619
+ ## インライン命令
620
+ 主なインライン命令を次に示します。
620
621
 
621
- ```
622
- CHAPS:
623
- intro.re
622
+ ### 書体
623
+ 書体については、適用するスタイルシートなどによって異なることがあります。
624
624
 
625
- start.re
625
+ * `@<kw>{〜}`, `@<kw>{キーワード, 補足}` : キーワード。通常は太字になることを想定しています。2つめの記法では、たとえば `@<kw>{信任状, credential}` と表記したら「信任状(credential)」のようになります。
626
+ * `@<bou>{〜}` : 傍点が付きます。
627
+ * `@<ami>{〜}` : 文字に対して網がかかります。
628
+ * `@<u>{〜}` : 下線を引きます。
629
+ * `@<b>{〜}` : 太字にします。
630
+ * `@<i>{〜}` : イタリックにします。和文の場合、処理系によってはイタリックがかからないこともあります。
631
+ * `@<strong>{〜}` : 強調(太字)にします。
632
+ * `@<em>{〜}` : 強調にします。
633
+ * `@<tt>{〜}` : 等幅にします。
634
+ * `@<tti>{〜}` : 等幅+イタリックにします。
635
+ * `@<ttb>{〜}` : 等幅+太字にします。
636
+ * `@<code>{〜}` : 等幅にします(コードの引用という性質)。
637
+ * `@<tcy>{〜}` : 縦書きの文書において文字を縦中横にします。
626
638
 
627
- end.re
628
- ```
639
+ ### 参照
640
+ * `@<chap>{章ファイル名}` : 「第17章」のような、章番号を含むテキストに置換されます。
641
+ * `@<title>{章ファイル名}` : その章の章題に置換されます。
642
+ * `@<chapref>{章ファイル名}` : 『第17章「さらに進んだ話題」』のように、章番号とタイトルを含むテキストに置換されます。
643
+ * `@<list>{識別子}` : リストを参照します。
644
+ * `@<img>{識別子}` : 図を参照します。
645
+ * `@<table>{識別子}` : 表を参照します。
646
+ * `@<hd>{ラベルまたは見出し}` : 節や項を参照します。
647
+ * `@<column>{ラベルまたは見出し}` : コラムを参照します。
629
648
 
630
- ```
631
- PART:
632
- (序章なので空行)
633
- はじまりの部
634
- おわりの部
635
- ```
649
+ ### その他
650
+ * `@<ruby>{親文字, ルビ}` : ルビを振ります。たとえば `@<ruby>{愕然, がくぜん}` のように表記します。
651
+ * `@<br>{}` : 段落途中で改行します。濫用は避けたいところですが、表のセル内や箇条書き内などで必要になることもあります。
652
+ * `@<uchar>{番号}` : Unicode文字を出力します。引数は16進数で指定します。
653
+ * `@<href>{URL}`, `@<href>{URL, 文字表現}` : ハイパーリンクを作成します(後述)。
654
+ * `@<icon>{識別子}` : インラインの画像を出力します。
655
+ * `@<m>{数式}` : インラインの数式を出力します。
656
+ * `@<raw>{|ビルダ|〜}` : 生の文字列を出力します。
636
657
 
637
- Version 1.3以降では、catalog.ymlが使えるようになりました。
638
- catalog.ymlの使い方については「Re:VIEW カタログファイルガイド」を参照してください。
658
+ ## 著者用タグ(プリプロセッサ命令)
639
659
 
640
- ## 見出し参照
660
+ これまでに説明したタグはすべて最終段階まで残り、見た目に影響を与えます。それに対して以下のタグは著者が使うための専用タグであり、変換結果からは除去されます。
641
661
 
642
- 見出し番号と見出しを生成します。
643
- 見出しの階層は"`|`"で区切って指定してください。
662
+ * `#@#` : コメント。この行には何を書いても無視されます。
663
+ * `#@warn(〜)` : 警告メッセージ。プリプロセス時にメッセージが出力されます。
664
+ * `#@require`, `#@provide` : キーワードの依存関係を宣言します。
665
+ * `#@mapfile(ファイル名) 〜 #@end` : ファイルの内容をその場に展開します。
666
+ * `#@maprange(ファイル名, 範囲名) 〜 #@end` : ファイル内の範囲をその場に展開します。
667
+ * `#@mapoutput(コマンド) 〜 #@end` : コマンドを実行して、その出力結果を展開します。
644
668
 
645
- 例:
669
+ コメントを除き、プリプロセッサ `review-preproc` コマンドとの併用を前提とします。
646
670
 
647
- ```
648
- @<hd>{はじめに|まずわ}
649
- ```
650
-
651
- 見出しを一意に特定できる場合は、"`|`"は不要です。
671
+ ## 国際化(i18n)
652
672
 
653
- ```
654
- @<hd>{まずわ}
655
- ```
673
+ Re:VIEW が出力する文字列(「第◯章」「図」「表」など)を、指定した言語に合わせて出力することができます。デフォルトは日本語です。
656
674
 
657
- 他の章を参照したい場合は、先頭に章のidを指定してください。
675
+ ファイルが置かれているディレクトリに `locale.yml` というファイルを用意して、以下のように記述します(日本語の場合)。
658
676
 
659
677
  例:
660
678
 
661
679
  ```
662
- @<hd>{preface|はじめに|まずわ}
680
+ locale: ja
663
681
  ```
664
682
 
665
- 参照先にラベルが設定されている場合は、ラベルで参照します。
683
+ 既存の表記を書き換えたい場合は、該当する項目を上書きします。既存の設定ファイルは Re:VIEW の `lib/review/i18n.yml` にあります。
684
+
685
+ 例:
666
686
 
667
687
  ```
668
- =={hajimeni} はじめに
669
- :
670
- === まずわ
671
- :
672
- @<hd>{hajimeni|まずわ}
688
+ locale: ja
689
+ list: 実行例
673
690
  ```
674
691
 
692
+ ### Re:VIEW カスタムフォーマット
675
693
 
676
- ### コラム見出し参照
694
+ `locale.yml` ファイルでは、章番号などに以下の Re:VIEW カスタムフォーマットを使用可能です。
677
695
 
678
- コラムの見出しの参照は、`@<column>`を使います。
696
+ * `%pA` : アルファベット(大文字)A, B, C, ...
697
+ * `%pa` : アルファベット(小文字)a, b, c, ...
698
+ * `%pAW` : アルファベット(大文字・いわゆる全角)A, B, C, ...
699
+ * `%paW` : アルファベット(小文字・いわゆる全角)a, b, c, ...
700
+ * `%pR` : ローマ数字(大文字)I, II, III, ...
701
+ * `%pr` : ローマ数字(小文字)i, ii, iii, ...
702
+ * `%pRW` : ローマ数字(大文字・単一文字表記)Ⅰ, Ⅱ, Ⅲ, ...
703
+ * `%pJ` : 漢数字 一, 二, 三, ...
704
+ * `%pdW' : アラビア数字(0〜9まではいわゆる全角、10以降半角)1, 2, ... 10, ...
705
+ * `%pDW' : アラビア数字(すべて全角)1, 2, ... 10, ...
679
706
 
680
707
  例:
681
708
 
682
709
  ```
683
- @<column>{Re:VIEWの用途いろいろ}
710
+ locale: ja
711
+ part: 第%pRW部
712
+ appendix: 付録%pA
684
713
  ```
685
714
 
686
- ラベルでの参照もできます。
715
+ ## その他の文法
687
716
 
688
- ```
689
- ==[column]{review-application} Re:VIEWの応用
690
- :
691
- @<column>{review-application}
692
- ```
717
+ 拡張文法は `review-ext.rb` というファイルで指定できます。
693
718
 
694
- ## リンク
719
+ たとえば、
695
720
 
696
- Web ハイパーリンクを記述するには、リンクに `@<href>`、アンカーに `//label`
697
- を使います。リンクの書式は `@<href>{URL, 文字表現}` で、「`, 文字表現`」を
698
- 省略すると URL がそのまま使われます。URL 中に `,` を使いたいときには、`\,`
699
- と表記してください。
721
+ ```ruby
722
+ # review-ext.rb
723
+ ReVIEW::Compiler.defblock :foo, 0..1
724
+ class ReVIEW::HTMLBuilder
725
+ def foo(lines, caption = nil)
726
+ puts lines.join(",")
727
+ end
728
+ end
729
+ ```
700
730
 
701
- 例:
731
+ のような内容のファイルを用意すると、以下のような文法を追加できます。
702
732
 
703
733
  ```
704
- @<href>{http://github.com/, GitHub}
705
- @<href>{http://www.google.com/}
706
- @<href>{#point1, ドキュメント内ポイント}
707
- @<href>{chap1.html#point1, ドキュメント内ポイント}
708
- //label[point1]
734
+ //foo{
735
+ A
736
+ B
737
+ C
738
+ //}
709
739
  ```
710
740
 
711
- ## 国際化(i18n)
712
-
713
- Re:VIEWが出力する文字列(「第◯章」「図」「表」など)を、指定した言語に
714
- 合わせて出力することができます。デフォルトは日本語です。
715
-
716
- CHAPS などと同じディレクトリに locale.yml というファイルを用意して、
717
- 以下のように記述します(日本語の場合)。
718
-
719
- 例:
720
-
721
741
  ```
722
- locale: ja
742
+ # 出力結果
743
+ A,B,C
723
744
  ```
724
745
 
725
- 既存の表記を書き換えたい場合は、該当する項目を上書きします。
726
- 既存の設定ファイルは lib/review/i18n.yml にあります。
746
+ 詳しいことについては、ここでは触れません。
747
+
748
+ ## HTML および LaTeX のレイアウト機能
749
+
750
+ ファイルが置かれているディレクトリに layouts/layout.html.erb を置くと、デフォルトの HTML テンプレートの代わりにその HTML が使われます(erb 記法で記述します)。
727
751
 
728
752
  例:
729
753
 
730
754
  ```
731
- locale: ja
732
- image: イメージ
733
- table: テーブル
755
+ <html>
756
+ <head>
757
+ <title><%= @config["booktitle"] %></title>
758
+ </head>
759
+ <body>
760
+ <%= @body %>
761
+ <hr/>
762
+ </body>
763
+ </html>
734
764
  ```
765
+
766
+ 同様に、layouts/layout.tex.erb で、デフォルトの LaTeX テンプレートを置き換えることができます。