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,203 +1,110 @@
1
1
  # Re:VIEW フォーマット InDesign XML 形式拡張
2
2
 
3
- Re:VIEW フォーマットから、Adobe 社の DTP ソフトウェア「InDesign
4
- で読み込んで利用しやすい XML 形式に変換できます (通常の XML とほぼ同じ
5
- ですが、文書構造ではなく見た目を指向した形態になっています)。
6
- 現時点では idgxmlbuilder.rb と topbuilder.rb のみが拡張に対応しています。
7
- 実際には出力された XML を InDesign のスタイルに割り当てるフィルタをさらに
8
- 作成・適用する必要があります。
3
+ Re:VIEW フォーマットから、Adobe 社の DTP ソフトウェア「InDesign」で読み込んで利用しやすい XML 形式に変換できます (通常の XML とほぼ同じですが、文書構造ではなく見た目を指向した形態になっています)。実際には出力された XML を InDesign のスタイルに割り当てるフィルタをさらに作成・適用する必要があります。
9
4
 
10
- ## 章・節・項・段
5
+ 基本のフォーマットのほかにいくつかの拡張命令を追加しています。
11
6
 
12
- 従来の`[column]`のほかに、オプションを追加しています。
7
+ このドキュメントは、Re:VIEW 2.0 に基づいています。
13
8
 
14
- * `[nonum]` : これを指定している章・節・項・段には連番を振りません。
15
- * `[circle]`: 「・」を先頭に付けた小さな見出し(連番なし)を作成します。
16
- * `[world]`: Real Worldコラム。
17
- * `[hood]`: Under the Hoodコラム。
18
- * `[edition]`: Editionコラム。
19
- * `[insideout]`: インサイドアウトコラム。
9
+ ## 追加したブロック
10
+ これらのブロックは基本的に特定の書籍向けのものであり、将来廃棄する可能性があります。
20
11
 
21
- ## 書式ブロック
22
-
23
- `//insn[タイトル]{ 〜 //}` または `//box[タイトル]{ 〜 //}` で書式を指定します。
24
-
25
- ## ノート
26
-
27
- `//note{ 〜 //}` または `//note[タイトル]{ 〜 //}` で注意文章を指定します。
28
-
29
- ## メモ
30
-
31
- `//memo{ 〜 //}` または `//memo[タイトル]{ 〜 //}` でメモ文章を指定します。
32
-
33
- ## ヒント
34
-
35
- `//tip{ 〜 //}` または `//tip[タイトル]{ 〜 //}` でヒント(Tip)文章を指定します。
36
-
37
- ## 参照ブロック
38
-
39
- `//info{ 〜 //}` または `//info[タイトル]{ 〜 //}` で参照文章を指定します。
40
-
41
- ## プランニング
42
-
43
- `//planning{ 〜 //}` または `//planning[タイトル]{ 〜 //}` でプランニング文章を指定します。
44
-
45
- ## ベストプラクティス
46
-
47
- `//best{ 〜 //}` または `//best[タイトル]{ 〜 //}` でベストプラクティス文章を
48
- 指定します。
49
-
50
- ## ここが重要 (キーワード)
51
-
52
- `//important[タイトル]{ 〜 //}` で重要項目を指定します。
53
-
54
- ## セキュリティ
55
-
56
- `//security{ 〜 //}` または `//security[タイトル]{ 〜 //}` でセキュリティ文章を
57
- 指定します。
58
-
59
- ## 警告
60
-
61
- `//caution{ 〜 //}` または `//caution[タイトル]{ 〜 //}` で警告文章を指定します。
62
-
63
- ## エキスパートに訊く
64
-
65
- `//expert{ 〜 //}` で「エキスパートに訊く」を指定します (rawで`<expert>〜</expert>`
66
- を使うほうがよいかもしれません)。
67
- QとAは`@<b>{Q}:〜` と `@<b>{A}:〜` で示します。
68
-
69
- ## 注意
70
-
71
- `//notice{ 〜 //}` または `//notice[タイトル]{ 〜 //}` で注意を指定します。
72
-
73
- ## ワンポイント
74
-
75
- `//point{ 〜 //}` または `//point[タイトル]{ 〜 //}` でワンポイントを指定します。
76
-
77
- ## トラブルシューティング
78
-
79
- `//shoot{ 〜 //}` または `//shoot[タイトル]{ 〜 //}` でトラブルシューティングを
80
- 指定します。
81
-
82
- ## 用語解説
83
-
84
- `//term{ 〜 //}` で用語解説を指定します(ただし、ブロック指定ができないので
85
- 実質的にはrawで`<term>〜</term>`を通常使うことになるでしょう)。
86
-
87
- ## リンク
88
-
89
- `//link{ 〜 //}` または `//link[タイトル]{ 〜 //}` で他の章やファイルなどへの
90
- 参照内容を指定します。
91
-
92
- ## 練習問題
93
-
94
- `//practice{ 〜 //}` で練習問題を指定します。
95
-
96
- ## 参考
97
-
98
- `//reference{ 〜 //}` で参考情報を指定します。
12
+ * `//insn[タイトル]{ 〜 //}` または `//box[タイトル]{ 〜 //}` : 書式
13
+ * `//planning{ 〜 //}` または `//planning[タイトル]{ 〜 //}` : プランニング
14
+ * `//best{ 〜 //}` または `//best[タイトル]{ 〜 //}` : ベストプラクティス
15
+ * `//security{ 〜 //}` または `//security[タイトル]{ 〜 //}` : セキュリティ
16
+ * `//expert{ 〜 //}` : エキスパートに訊く
17
+ * `//point{ 〜 //}` または `//point[タイトル]{ 〜 //}` : ワンポイント
18
+ * `//shoot{ 〜 //}` または `//shoot[タイトル]{ 〜 //}` : トラブルシューティング
19
+ * `//term{ 〜 //}` : 用語解説
20
+ * `//link{ 〜 //}` または `//link[タイトル]{ 〜 //}` : 他の章やファイルなどへの参照説明
21
+ * `//practice{ 〜 //}` : 練習問題
22
+ * `//reference{ 〜 //}` : 参考情報
99
23
 
100
24
  ## 相互参照
101
25
 
102
- `//label[〜]`でラベルを定義し、`@<labelref>{〜}`で参照します。
103
- XMLとしては`<label id='〜' />`と`<labelref idref='〜' />`というタグに
104
- 置き換えられます。
105
- 実際にどのような相互参照関係にするかは、処理系に依存します。
106
- 想定の用途では、章や節の番号およびタイトルを記憶し、labelrefの出現箇所
107
- に"「節(あるいは章)番号 タイトル」"という文字列を配置します。
26
+ `//label[〜]` でラベルを定義し、`@<labelref>{〜}` で参照します。XML としては `<label id='〜' />` と `<labelref idref='〜' />` というタグに置き換えられます。
108
27
 
109
- `@<chapref>`の展開形式を、`--chapref="前装飾文字列,中間装飾文字列,後装飾文字列"`
110
- でコンパイル実行時に指定できます。デフォルトは`",「,」"`です。たとえば
111
- "`第2章「コンパイラ」`" のように普通は展開されます。
112
- `"「, ,」"`と指定すると、"`「第2章 コンパイラ」`" に展開されます。
28
+ 実際にどのような相互参照関係にするかは、処理プログラムに依存します。想定の用途では、章や節の番号およびタイトルを記憶し、labelref の出現箇所に `「節(あるいは章)番号 タイトル」` という文字列を配置します。
29
+
30
+ `@<chapref>` の展開形式を、`--chapref="前装飾文字列,中間装飾文字列,後装飾文字列"` でコンパイル実行時に指定できます。デフォルトは`",「,」"`です。たとえば "`第2章「コンパイラ」`" のように普通は展開されます。`"「, ,」"`と指定すると、"`「第2章 コンパイラ」`" に展開されます。
113
31
 
114
32
  ## 丸数字
115
33
 
116
- `@<maru>{数値}` で丸数字を出力します。
34
+ `@<maru>{数値}` で丸数字を出力します。UTF-8 の丸数字を直接使うほうが適切です。
117
35
 
118
36
  ## キートップ
119
37
 
120
- `@<keytop>{キー文字}` でキーボードマークを出力します。
38
+ `@<keytop>{キー文字}` でキーボードマークを出力します(実際のフォントとの割り当て処理はフィルタや review-ext.rb で調整します)。
121
39
 
122
40
  ## 吹き出し
123
41
 
124
- `@<balloon>{〜}` でコード内などでの吹き出しを作成します。吹き出しは右に寄せ
125
- られ、記入した箇所から吹き出しまで線が引かれます。
126
- `@<>`オペレータは入れ子ができないため、丸数字を使いたいときには`@maru[数値]`
127
- という特別な書式を代わりに使います。
128
-
129
- ## ロー指定
42
+ `@<balloon>{〜}` でコード内などでの吹き出しを作成します。通常、吹き出しは右に寄せられ、記入した箇所から吹き出しまで線が引かれます。
130
43
 
131
- 現時点で Re:VIEW はブロックの入れ子処理ができないため、ロー指定で XML
132
- エレメントを指定しなければならないこともあります。
133
-
134
- インラインの`@<raw>{ 〜 }`の他に、単一行の`//raw[〜]`、ブロック版の `//rawblock{ 〜 //}` でも、フォーマット処理をせずにそのままの文字列が出力できます。
44
+ ## DTP 命令指定
135
45
 
136
- ## キャプションなし表
46
+ `@<dtp>{ 〜 }` で「`<? dtp 〜 ?>`」という XML インストラクションを埋め込みます。処理系に渡す任意の文字列を指定できますが、次のような文字列を特殊文字指定できます。
137
47
 
138
- `//table{ //}` のように id もキャプションも付けないブロックを利用できます。
139
- この場合、その表の連番付けを飛ばします。
48
+ * maru : 番号リストの各段落先頭で使い、このリスト段落の番号は丸数字であることを示す
49
+ * return 改行記号文字
50
+ * autopagenumber : 現ページ番号
51
+ * nextpageunmber : 次ページ番号
52
+ * previouspagenumber : 前ページ番号
53
+ * sectionmarker : セクションマーカー
54
+ * bulletcharacter : ビュレット (ナカグロ)
55
+ * copyrightsymbol : 著作権記号
56
+ * degreesymbol : 度記号
57
+ * ellipsischaracter : 省略記号
58
+ * forcedlinebreak : 強制改行
59
+ * discretionarylinebreak : 任意の改行
60
+ * paragraphsymbol : 段落記号
61
+ * registeredtrademark : 登録商標記号
62
+ * sectionsymbol : セクション記号
63
+ * trademarksymbol : 商標記号
64
+ * rightindenttab : 右インデントタブ
65
+ * indentheretab : 「ここまでインデント」タブ
66
+ * zerowidthnonjoiner : 結合なし
67
+ * emdash : EMダッシュ
68
+ * endash : ENダッシュ
69
+ * discretionaryhyphen : 任意ハイフン
70
+ * nonbreakinghyphen : 分散禁止ハイフン
71
+ * endnestedstyle : 先頭文字スタイルの終了文字
72
+ * doubleleftquote : 左二重引用符
73
+ * doublerightquote : 右二重引用符
74
+ * singleleftquote : 左用符
75
+ * singlerightquote : 右引用符
76
+ * singlestraightquote : 半角一重左用符
77
+ * doublestraightquote : 半角二重引用符
78
+ * emspace : EMスペース
79
+ * enspace : ENスペース
80
+ * flushspace : フラッシュスペース
81
+ * hairspace : 極細スペース
82
+ * nonbreakingspace : 分散禁止スペース
83
+ * fixedwidthnonbreakingspace : 分散禁止スペース(固定幅)
84
+ * textvariable : 全角スペース
85
+ * thinspace : 細いスペース
86
+ * figurespace : 数字の間隔
87
+ * punctuationspace : 句読点等の間隔
88
+ * sixthspace : 1/6スペース
89
+ * quarterspace : 1/4スペース
90
+ * thirdspace : 1/3スペース
91
+ * columnbreak : 改段
92
+ * framebreak : 改フレーム
93
+ * pagebreak : 改ページ
94
+ * oddpagebreak : 奇数改ページ
95
+ * evenpagebreak : 偶数改ページ
96
+ * footnotesymbol : 脚注記号
140
97
 
141
98
  ## 表セル幅の指定
142
99
 
143
- `//tsize[1列目の幅,2列目の幅,...]` で、続く `//table` の表の列幅を指定します
144
- (単位mm)。これを利用するときには、review2idgxml を実行する際、オプション
145
- `--table=表幅` を付ける必要があります (表幅の単位は mm)。列幅指定の個数が
146
- 実際の列数に満たない場合、残りの列は均等分割したものとなります。列幅の
147
- 合計が表幅を超えるとエラーになります。
100
+ `//tsize[1列目の幅,2列目の幅,...]` で、続く `//table` の表の列幅を指定します(単位mm)。これを利用するときには、`review compile --target=idgxml` を実行する際、オプション`--table=表幅` を付ける必要があります(表幅の単位は mm)。列幅指定の個数が実際の列数に満たない場合、残りの列は均等分割したものとなります。列幅の合計が表幅を超えると警告が表示されます。
148
101
 
149
- ## DTP 命令指定
102
+ ## 表セルの結合やスタイル指定
103
+ `@<dtp>{table 表オプション}` を各セルに入れることで、そのセルの挙動を制御します。
150
104
 
151
- `@<dtp>{ 〜 }` で InDesign 向けに「`<? dtp 〜 ?>`」型の XML インストラクション
152
- を埋め込みます。処理系に渡す任意の文字列を指定できますが、次のような文字列
153
- を特殊文字指定できます。
105
+ 表オプションには次のものがあります。
154
106
 
155
- * maru 番号リストの各段落先頭で使い、このリスト段落の番号は丸数字であることを示す
156
- * return 改行記号文字
157
- * autopagenumber 現ページ番号
158
- * nextpageunmber 次ページ番号
159
- * previouspagenumber 前ページ番号
160
- * sectionmarker セクションマーカー
161
- * bulletcharacter ビュレット (ナカグロ)
162
- * copyrightsymbol 著作権記号
163
- * degreesymbol 度記号
164
- * ellipsischaracter 省略記号
165
- * forcedlinebreak 強制改行
166
- * discretionarylinebreak 任意の改行
167
- * paragraphsymbol 段落記号
168
- * registeredtrademark 登録商標記号
169
- * sectionsymbol セクション記号
170
- * trademarksymbol 商標記号
171
- * rightindenttab 右インデントタブ
172
- * indentheretab 「ここまでインデント」タブ
173
- * zerowidthnonjoiner 結合なし
174
- * emdash EMダッシュ
175
- * endash ENダッシュ
176
- * discretionaryhyphen 任意ハイフン
177
- * nonbreakinghyphen 分散禁止ハイフン
178
- * endnestedstyle 先頭文字スタイルの終了文字
179
- * doubleleftquote 左二重引用符
180
- * doublerightquote 右二重引用符
181
- * singleleftquote 左用符
182
- * singlerightquote 右引用符
183
- * singlestraightquote 半角一重左用符
184
- * doublestraightquote 半角二重引用符
185
- * emspace EMスペース
186
- * enspace ENスペース
187
- * flushspace フラッシュスペース
188
- * hairspace 極細スペース
189
- * nonbreakingspace 分散禁止スペース
190
- * fixedwidthnonbreakingspace 分散禁止スペース(固定幅)
191
- * textvariable 全角スペース
192
- * thinspace 細いスペース
193
- * figurespace 数字の間隔
194
- * punctuationspace 句読点等の間隔
195
- * sixthspace 1/6スペース
196
- * quarterspace 1/4スペース
197
- * thirdspace 1/3スペース
198
- * columnbreak 改段
199
- * framebreak 改フレーム
200
- * pagebreak 改ページ
201
- * oddpagebreak 奇数改ページ
202
- * evenpagebreak 偶数改ページ
203
- * footnotesymbol 脚注記号
107
+ * `colspan=列数` : 右方向に結合
108
+ * `rowspan=行数` : 下方向に結合
109
+ * `type=名前` : セルの種類の指定
110
+ * `align=位置` : セル内の内容の位置。通常の用途では left|center|right のいずれか
@@ -0,0 +1,61 @@
1
+ # LaTeX と review-pdfmaker について
2
+ Re:VIEW の review-pdfmaker は、フリーソフトウェアの簡易 DTP システム「LaTeX」を呼び出して PDF を作成しています。
3
+
4
+ そのため、利用にあたっては TeX の環境を別途セットアップしておく必要があります。OS に応じたセットアップについては、以下の TeX Wiki サイトなどを参照してください。
5
+
6
+ #### TeX Wiki - TeX入手法
7
+ * https://texwiki.texjp.org/?TeX入手法
8
+
9
+ ## Re:VIEW バージョンによる変化についての注意
10
+ * Re:VIEW 2.0 より、LaTeX コンパイラのデフォルトが pLaTeX から upLaTeX になりました。以下の「upLaTeX について」を参照してください。
11
+ * Re:VIEW 2.0 より、image タグに `scale` オプションを使って倍率数値を定義していた場合の挙動が変わりました。以下の「scale オプションの挙動について」を参照してください。
12
+ * Re:VIEW 2.0 より、config.yml 等の設定ファイルで使われる `prt` のデフォルトが「発行所」ではなく「印刷所」になりました。「発行所」には `pbl` のほうをお使いください。
13
+
14
+ ## upLaTeX について
15
+
16
+ 2016年4月リリースの Re:VIEW 2.0 より、LaTeX のコンパイラのデフォルトが、「pLaTeX」から「upLaTeX」に切り替わりました。upLaTeX は pLaTeX の内部文字処理を Unicode 対応にしたもので、丸数字(①②…)のように pLaTeXでは otf パッケージが必要だった文字、あるいは韓国語や中国語との混植などを、直接扱うことができます。
17
+
18
+ ほとんどの pLaTeX 向けのパッケージはそのまま動作しますが、jsbook クラスや otf パッケージなどでは uplatex オプションが必要です。
19
+
20
+ LaTeX コンパイラコマンドおよびオプションについて、Re:VIEW の設定のデフォルトは次のとおりです。
21
+
22
+ ```yaml
23
+ texcommand: uplatex
24
+ texoptions: null
25
+ texdocumentclass: ["jsbook", "uplatex,oneside"]
26
+ dvicommand: dvipdfmx
27
+ dvioptions: "-d 5"
28
+ ```
29
+
30
+ ## 旧来の pLaTeX を使用するには
31
+
32
+ 既存のドキュメントについて、利用しているマクロやパッケージが upLaTeX でうまく動かない、あるいはこれまでと異なる紙面ができてしまう場合は、pLaTeX に戻したいと思うかもしれません。
33
+
34
+ Re:VIEW 2.0 よりも前のバージョンと同じコンパイラ設定に戻すには、config.yml に次のように記述します。
35
+
36
+ ```yaml
37
+ texcommand: platex
38
+ texoptions: "-kanji=utf-8"
39
+ texdocumentclass: ["jsbook", "oneside"]
40
+ dvicommand: dvipdfmx
41
+ dvioptions: "-d 5"
42
+ ```
43
+
44
+ レイアウト erb ファイル(デフォルトは lib/review/layout.tex.erb)において、upLaTeX と pLaTeX の区別は内部変数 texcompiler で行えます。変数 texcompiler には、パラメータ texcommand の値からフォルダパスとファイル拡張子を除いたものが入っており、pLaTeX の場合は "platex"、upLaTeX の場合は "uplatex" となります。使用例は次のとおりです。
45
+
46
+ ```
47
+ <% if texcompiler == "uplatex" %>
48
+ \usepackage[deluxe,uplatex]{otf}
49
+ <% else %>
50
+ \usepackage[deluxe]{otf}
51
+ <% end %>
52
+ ```
53
+
54
+ ## scale オプションの挙動について
55
+ Re:VIEW 2.0 より、``//image`` タグの第3オプションに ``scale=倍率`` で数値のみで倍率を指定していたときの挙動が変わりました。以前は「画像ファイルに対する倍率」でしたが、「紙面横幅に対する倍率」となります(もともと数値以外の文字も scale の値に含めていた場合には、変化はありません)。
56
+
57
+ 旧来の「画像ファイルに対する倍率」に戻したいときには、config.yml にパラメータ ``image_scale2width: false`` を指定してください(デフォルトは true)。
58
+
59
+ ```yaml
60
+ image_scale2width: false
61
+ ```
@@ -0,0 +1,65 @@
1
+ # LaTeX and review-pdfmaker
2
+
3
+ The command `review-pdfmaker` in Re:VIEW use [LaTeX](https://en.wikipedia.org/wiki/LaTeX) to generate a PDF file.
4
+
5
+ To use the command, you need to set up LaTeX system.
6
+
7
+
8
+ ## Important Changes about LaTeX in Re:VIEW 2.0
9
+
10
+ * Default LaTeX compiler is upLaTeX, not pLaTeX.
11
+ * The meaning of `scale` option in `@<image>` command is changed and configurable.
12
+ * `prt` is printer, not publisher. You can use `pbl` for publisher.
13
+
14
+ ## about upLaTeX
15
+
16
+ In Re:VIEW 2.0 released at April 2016, default LaTeX compiler became upLaTeX from pLaTeX. The upLaTeX support Unicode and you can use unicode characters such like ①②... and other characters without otf package.
17
+
18
+ Almost packages in pLaTeX can be supported in upLaTeX, but some package (such as jsbook class and otf package) need `uplatex` option.
19
+
20
+ Default settings of Re:VIEW is below:
21
+
22
+ ```yaml
23
+ texcommand: uplatex
24
+ texoptions: null
25
+ texdocumentclass: ["jsbook", "uplatex,oneside"]
26
+ dvicommand: dvipdfmx
27
+ dvioptions: "-d 5"
28
+ ```
29
+
30
+ ## How to use old pLaTeX
31
+
32
+ You also use pLaTeX with Re:VIEW 2.0.
33
+
34
+ To use pLaTeX, You can add these configuration in config.yml.
35
+
36
+ ```yaml
37
+ texcommand: platex
38
+ texoptions: "-kanji=utf-8"
39
+ texdocumentclass: ["jsbook", "oneside"]
40
+ dvicommand: dvipdfmx
41
+ dvioptions: "-d 5"
42
+ ```
43
+
44
+ You can use a variable `@texcompiler` to compare latex command in layout ERB files (lib/review/layout.tex.erb in default).
45
+ The value of `@texcompiler` is `platex` (when using pLaTeX) and `uplatex` (when using upLaTeX).
46
+ The usage is below:
47
+
48
+ ```
49
+ <% if @texcompiler == "uplatex" %>
50
+ \usepackage[deluxe,uplatex]{otf}
51
+ <% else %>
52
+ \usepackage[deluxe]{otf}
53
+ <% end %>
54
+ ```
55
+
56
+ ## about `scale` option
57
+
58
+ In Re:VIEW 2.0, the meaning of `scale=..` in the third option of ``//image`` command.
59
+ The meaning in 1.0 is "scale for image file" (`1.0` is same as original image size), but the one in 2.0 is "scale for paper width" (`1.0` is same as paper widdth.)
60
+
61
+ If you need the same behavior in Re:VIEW 1.x, you should add ``image_scale2width: false`` in config.yml (default value is `true`).
62
+
63
+ ```yaml
64
+ image_scale2width: false
65
+ ```
@@ -8,15 +8,17 @@ Re:VIEW は GNU Lesser General Public License Version 2.1 に基づいて配布
8
8
 
9
9
  このドキュメントでは、Re:VIEW のセットアップから変換の例までを簡単に説明します。
10
10
 
11
+ このドキュメントは、Re:VIEW 2.0 に基づいています。
12
+
11
13
  ## セットアップ
12
14
 
13
- Re:VIEW は Ruby 言語で記述されており、Linux/Unix 互換システムで動作します。Mac OS X および Windows Cygwin でも動作可能です。Ruby gemGit、Subversion のいずれかを使ってダウンロード・展開します。
15
+ Re:VIEW は Ruby 言語で記述されており、Linux/Unix 互換システムで動作します。Mac OS X および Windows Cygwin でも動作可能です。Ruby gem あるいは Git のいずれかを使ってダウンロード・展開します。
14
16
 
15
- なお、Re:VIEW フォーマット自体は文字で表現されたタグが付いている以外は単なるテキストファイルなので、エディタ、OS についてはまったく制限はありません。
17
+ なお、Re:VIEW フォーマット自体は文字で表現されたタグが付いている以外は単なるテキストファイルなので、エディタ、OS については UTF-8 文字エンコーディングさえ使用できれば制限はありません。
16
18
 
17
19
  ### RubyGems を使う場合
18
20
 
19
- 機能セットがまとまった区切りごとに、Re:VIEW の開発チームが Re:VIEW の gem を更新しています。
21
+ 機能セットがまとまった区切りごとに、定期的に Re:VIEW の開発チームが Re:VIEW の gem を更新しています。
20
22
 
21
23
  次のように Re:VIEW の gem をインストールします。
22
24
 
@@ -32,6 +34,12 @@ Ruby gem の bin ディレクトリにパスを通すようにしておいてく
32
34
  $ gem update review
33
35
  ```
34
36
 
37
+ Gemfile を使っている場合は、以下の行を Gemfile に追加して、`bundle`コマンドを実行します。
38
+
39
+ ```Gemfile
40
+ gem 'review'
41
+ ```
42
+
35
43
  ### Gitを使う場合
36
44
 
37
45
  Re:VIEW は GitHub で開発されており、バージョン管理ツールの Git を使って最新の Re:VIEW コードを入手できます。Git は分岐が容易なので、独自のカスタマイズを施すのにも向いています。
@@ -50,28 +58,31 @@ review というディレクトリに展開されるので、review/bin にパ
50
58
  $ git pull
51
59
  ```
52
60
 
53
- ### Subversionを使う場合
54
-
55
- Git の最新コピーは、別のバージョン管理ツールの Subversion 向けにも提供しています (古い環境では Subversion のクライアントしか入っていないことがあります)。
61
+ ## Re:VIEW ドキュメントの作成
56
62
 
57
- 初めて取得するときには、次のようにします (コピーを作っています)。
63
+ ### 雛型の作成
64
+ review-init コマンドを使って、雛型となる作業フォルダを作成できます。
58
65
 
59
- ```bash
60
- $ svn co https://kmuto.jp/svn/review/trunk review
66
+ ```
67
+ $ review-init ドキュメント名
61
68
  ```
62
69
 
63
- review というディレクトリに展開されるので、review/bin にパスを通すようにしておいてください。
64
-
65
- 最新の開発に追従するには次のようにします。
70
+ これで指定のドキュメント名のフォルダが用意され、中に次のようなファイルが置かれます。
66
71
 
67
- ```
68
- $ svn up
69
- ```
72
+ * ドキュメント名を冠した「.re」拡張子を持つファイル(Re:VIEW フォーマットテキストファイル)
73
+ * config.yml : 設定ファイル
74
+ * catalog.yml : カタログファイル(目次構成)
75
+ * Rakefile : rake コマンドのルールファイル
76
+ * images : 画像の配置フォルダ
77
+ * layouts : レイアウトファイルの配置フォルダ
78
+ * style.css : サンプルスタイルシート
79
+ * sty : スタイルファイル配置フォルダ(TeX 用)
70
80
 
71
- # Re:VIEW テキストの作成と変換
81
+ review-init コマンドによらず、独自に作業フォルダを作成してもかまいません。
72
82
 
73
- セットアップを終えたら、Re:VIEW フォーマットのテキストを作り、変換できるようになります。次に Re:VIEW フォーマットテキストの簡単な例を示します。これを sample.re といった名前で保存します (拡張子も自由ですが、.re 拡張子を推奨します)。
83
+ ### Re:VIEW テキストの作成と変換
74
84
 
85
+ デフォルトの re 拡張子のファイルは、「`=`」とあるだけのほぼ空っぽのファイルです。次に Re:VIEW フォーマットで記述を追加した簡単な例を示します。
75
86
 
76
87
  ```review
77
88
  = はじめてのRe:VIEW
@@ -95,85 +106,76 @@ $ svn up
95
106
 
96
107
  1. Ruby gem
97
108
  2. Git
98
- 3. Subversion
109
+ 3. Download from GitHub
99
110
 
100
- ホームページは@<tt>{https://github.com/kmuto/review/wiki/}です。
111
+ ホームページは@<tt>{https://reviewml.org/}です。
101
112
  ```
102
113
 
103
- テキストファイルの文字エンコーディングには、UTF-8 を使うことをお勧めします。Re:VIEW は日本語文字エンコーディングとして UTF-8、EUC-JP、Shift_JIS、JIS を扱うことができ、入力ファイルについては自動判別、出力ファイルについても選択可能 (デフォルトは UTF-8) ですが、入力・出力のいずれにおいても、使用可能な文字についての制限が少ない UTF-8 が最適です。
114
+ テキストファイルの文字エンコーディングには、UTF-8 を使用してください。
104
115
 
105
- 次に、章構成ファイルの CHAPS ファイルを同じディレクトリに用意します。このファイルには、Re:VIEW フォーマットファイルの名前を格納します。
116
+ ### PDF 化と EPUB 化
106
117
 
107
- * sample.re
118
+ review-pdfmaker コマンドで PDF ブックの作成、review-epubmaker コマンドで EPUB ファイルの作成ができます。
108
119
 
109
- CHAPS ファイルの1行目に書いたものが第1章、2行目に書いたものが第2章、……と構成されます (CHAPS に似たものとして、前付けを列挙する PREDEF ファイル、後付けを列挙する POSTDEF ファイルがあります。これらを「カタログファイル」と呼びます)
120
+ PDF を作成するには、TeXLive2012 以上の環境が必要です。EPUB を作成するには、rubyzip gem あるいは zip コマンドが必要です(MathML も使いたいときには、 [MathML ライブラリ](http://www.hinet.mydns.jp/?mathml.rb)も必要です)。
110
121
 
111
- sample.re から目的の形式に変換するには、review-compile コマンドを使います。
122
+ いずれのコマンドも、必要な設定情報を記した YAML 形式ファイルを引数に指定して実行します。review-init コマンドで作成した環境には、デフォルトで config.yml として用意されているので、これを利用します。
112
123
 
113
124
  ```bash
114
- $ review-compile --target text sample.re > sample.txt ←テキストにする
115
- $ review-compile --target html sample.re > sample.html HTMLにする
116
- $ review-compile --target latex sample.re > sample.tex ←LaTeXにする
117
- $ review-compile --target idgxml sample.re > sample.xml ←XMLにする
118
- ```
119
-
120
- 上記では各ファイル個別に変換することを想定して、標準出力をリダイレクトする書式を掲載していますが、-a オプションを付ければ、CHAPS、PREDEF、POSTDEF に従ってすべてのファイルを変換できます。
121
-
122
- ```
123
- $ review-compile --target html -a ←すべてのファイルをHTMLにする
124
- ```
125
-
126
- sample.re を HTML に変換すると、次のようになります。
127
-
128
- ```html
129
- <?xml version="1.0" encoding="UTF-8"?>
130
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
131
- <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ops="http://www.idpf.org/2007/ops" xml:lang="ja">
132
- <head>
133
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
134
- <meta http-equiv="Content-Style-Type" content="text/css" />
135
- <meta name="generator" content="Re:VIEW" />
136
- <title>はじめてのRe:VIEW</title>
137
- </head>
138
- <body>
139
- <h1><a id="h1" />第1章 はじめてのRe:VIEW</h1>
140
- <div class="lead">
141
- <p>「Hello, Re:VIEW.」</p>
142
- </div>
143
-
144
- <h2><a id="h1-1" />1.1 Re:VIEWとは</h2>
145
- <p><b>Re:VIEW</b>は、EWBやRDあるいはWikiに似た簡易フォーマットで記述したテキストファイルを、目的に応じて各種の形式に変換するツールセットです。</p>
146
- <p>平易な文法ながらも、コンピュータ関係のドキュメント作成のための多くの機能を備えており、次のような形式に変換できます。</p>
147
- <ul>
148
- <li>テキスト(指示タグ付き)</li>
149
- <li>LaTeX</li>
150
- <li>HTML</li>
151
- <li>XML</li>
152
- </ul>
153
- <p>現在入手手段としては次の3つがあります。</p>
154
- <ol>
155
- <li>Ruby gem</li>
156
- <li>Git</li>
157
- <li>Subversion</li>
158
- </ol>
159
- <p>ホームページは<tt>https://github.com/kmuto/review/wiki/</tt>です。</p>
160
- </body>
161
- </html>
162
- ```
163
-
164
- Re:VIEW フォーマットについての詳細は、 [format.rdoc](https://github.com/kmuto/review/blob/master/doc/format.rdoc) を参照してください。
165
-
166
- review-compile を含め、ほとんどのコマンドは `--help` オプションを付けるとオプションについてのヘルプが表示されます。`review-compile` には多数のオプションがあるので確認してください。
167
-
168
- なお、`--target` で毎回指定するのは面倒なので、`review-compile` に対するシンボリックリンクを作成しておくとよいでしょう。「review2...」のコマンド名で呼び出せるようになります。
125
+ $ review-pdfmaker config.yml ←PDFの作成
126
+ $ review-epubmaker config.ymlEPUBの作成
127
+ ```
128
+
129
+ rake コマンドを利用できるなら、次のように実行することもできます。
169
130
 
170
131
  ```bash
171
- $ cd Re:VIEWのインストールされたパス/bin
172
- $ ln -s review-compile review2text
173
- $ ln -s review-compile review2html
174
- $ ln -s review-compile review2latex
175
- $ ln -s review-compile review2idgxml
132
+ $ rake pdf ←PDFの作成
133
+ $ rake epub ←EPUBの作成
134
+ ```
135
+
136
+ config.yml のサンプルについては以下を参照してください。
137
+
138
+ * [config.yml.sample](https://github.com/kmuto/review/blob/master/doc/config.yml.sample)
139
+
140
+ ### 章を増やす、カスタマイズする
141
+ 作成した PDF あるいは EPUB を見ると、先に作成した RE:VIEW フォーマットテキストファイルが「第1章」となっていることがわかります。
142
+
143
+ 章を増やすには、同様に .re 拡張子の Re:VIEW フォーマットテキストファイルを用意し、catalog.yml にそれを登録します。
144
+
176
145
  ```
146
+ PREDEF:
147
+
148
+ CHAPS:
149
+ - 1章のファイル
150
+ - 2章のファイル
151
+ ……
152
+
153
+ APPENDIX:
154
+
155
+ POSTDEF:
156
+ ```
157
+
158
+ catalog.yml の PREDEF は前付、CHAPS は章、APPENDIX は付録、POSTDEF は後付です。詳細は [catalog.ja.md](https://github.com/kmuto/review/blob/master/doc/catalog.ja.md) を参照してください。
159
+
160
+ ### 情報
161
+ Re:VIEW フォーマットについての詳細は、 [format.ja.md](https://github.com/kmuto/review/blob/master/doc/format.ja.md) を参照してください。
162
+
163
+ Re:VIEW の使用実例については、https://github.com/reviewml/review-samples にもまとめています。
164
+
165
+ ## ファイル単位の変換
166
+ 通常の用途では review-pdfmaker や review-epubmaker で事足りるはずですが、それ以外の形式に変換したり、PDF や EPUB の変換にあたってどのような変換が行われているのかを確認したりしたいときには、review-compile コマンドを使用します。
167
+
168
+ たとえば sample.re ファイルを変換するには次のようになります。
169
+
170
+ ```bash
171
+ $ review-compile --target text sample.re > sample.txt ←テキストにする
172
+ $ review-compile --target html sample.re > sample.html ←HTMLにする
173
+ $ review-compile --target latex sample.re > sample.tex ←LaTeXにする
174
+ $ review-compile --target idgxml sample.re > sample.xml ←XMLにする
175
+ $ review-compile --target markdown sample.re > sample.md ←Markdownにする
176
+ ```
177
+
178
+ review-compile を含め、ほとんどのコマンドは `--help` オプションを付けるとオプションについてのヘルプが表示されます。
177
179
 
178
180
  ## プリプロセッサ、ボリューム表示
179
181
 
@@ -198,25 +200,13 @@ $ review-vol
198
200
  $ review-index --level 掘り下げる見出しレベル数 -a
199
201
  ```
200
202
 
201
- ## PDF 化と EPUB 化
202
-
203
- review-pdfmaker コマンドで PDF ブックの作成、review-epubmaker コマンドで EPUB ファイルの作成ができます。
204
-
205
- PDF を作成するには、TeXLive2012 以上の環境が必要です。EPUB を作成するには、zip コマンドが必要です (MathML も使いたいときには、 [MathML ライブラリ](http://www.hinet.mydns.jp/?mathml.rb)も必要です)。
206
-
207
- いずれのコマンドも、必要な設定情報を記した YAML ファイルを引数に指定して実行します。YAML ファイルのサンプルは、 [sample.yml](https://github.com/kmuto/review/blob/master/doc/sample.yml) としてこのドキュメントと同じディレクトリに収録しています。
208
-
209
- ```bash
210
- $ review-pdfmaker YAMLファイル ←PDFの作成
211
- $ review-epubmaker YAMLファイル ←EPUBの作成
212
- ```
213
-
214
203
  ## クレジット
215
204
 
216
- Re:VIEW は、青木峰郎によって最初に作成されました。武藤健志がこの開発・保守を引き継ぎ、20143月時点では、武藤健志、高橋征義、角征典が開発・保守を継続しています。
205
+ Re:VIEW は、青木峰郎によって最初に作成されました。武藤健志がこの開発・保守を引き継ぎ、20164月時点では、武藤健志、高橋征義、角征典が開発・保守を継続しています。
217
206
 
218
207
  バグ・パッチの報告、開発者用メーリングリストなどについての情報は、
219
208
 
209
+ * http://reviewml.org/
220
210
  * https://github.com/kmuto/review/wiki
221
211
 
222
212
  を参照してください。