review 3.2.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (282) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-tex.yml +31 -0
  3. data/.github/workflows/ruby-win.yml +45 -0
  4. data/.github/workflows/ruby.yml +27 -0
  5. data/.rubocop.yml +167 -42
  6. data/.travis.yml +1 -1
  7. data/Dockerfile +21 -5
  8. data/NEWS.ja.md +428 -1
  9. data/NEWS.md +429 -2
  10. data/README.md +11 -7
  11. data/Rakefile +7 -2
  12. data/appveyor.yml +0 -20
  13. data/bin/review +2 -4
  14. data/bin/review-catalog-converter +5 -5
  15. data/bin/review-check +13 -17
  16. data/bin/review-checkdep +3 -6
  17. data/bin/review-compile +13 -22
  18. data/bin/review-epub2html +1 -4
  19. data/bin/review-epubmaker +3 -4
  20. data/bin/review-idgxmlmaker +14 -0
  21. data/bin/review-index +5 -86
  22. data/bin/review-init +1 -4
  23. data/bin/review-pdfmaker +1 -3
  24. data/bin/review-preproc +11 -13
  25. data/bin/review-textmaker +1 -3
  26. data/bin/review-update +1 -4
  27. data/bin/review-validate +7 -7
  28. data/bin/review-vol +5 -82
  29. data/bin/review-webmaker +1 -3
  30. data/doc/config.yml.sample +67 -16
  31. data/doc/config.yml.sample-simple +4 -3
  32. data/doc/format.ja.md +133 -21
  33. data/doc/format.md +135 -34
  34. data/doc/makeindex.ja.md +2 -2
  35. data/doc/pdfmaker.ja.md +43 -1
  36. data/doc/pdfmaker.md +42 -1
  37. data/doc/quickstart.ja.md +55 -25
  38. data/doc/quickstart.md +47 -17
  39. data/lib/review.rb +1 -1
  40. data/lib/review/book.rb +2 -2
  41. data/lib/review/book/base.rb +89 -90
  42. data/lib/review/book/bib.rb +21 -0
  43. data/lib/review/book/book_unit.rb +158 -0
  44. data/lib/review/book/chapter.rb +51 -29
  45. data/lib/review/book/index.rb +42 -248
  46. data/lib/review/book/index/item.rb +46 -0
  47. data/lib/review/book/page_metric.rb +7 -7
  48. data/lib/review/book/part.rb +45 -10
  49. data/lib/review/book/volume.rb +5 -5
  50. data/lib/review/builder.rb +171 -54
  51. data/lib/review/call_hook.rb +20 -0
  52. data/lib/review/catalog.rb +15 -17
  53. data/lib/review/compiler.rb +240 -102
  54. data/lib/review/configure.rb +101 -12
  55. data/lib/review/converter.rb +1 -1
  56. data/lib/review/epub2html.rb +6 -1
  57. data/lib/review/epubmaker.rb +120 -118
  58. data/lib/review/epubmaker/content.rb +113 -0
  59. data/lib/review/epubmaker/epubcommon.rb +372 -0
  60. data/lib/review/epubmaker/epubv2.rb +178 -0
  61. data/lib/review/epubmaker/epubv3.rb +231 -0
  62. data/lib/review/epubmaker/producer.rb +168 -0
  63. data/lib/review/epubmaker/reviewheaderlistener.rb +12 -2
  64. data/lib/review/epubmaker/zip_exporter.rb +84 -0
  65. data/lib/review/exception.rb +6 -0
  66. data/lib/review/extentions/string.rb +0 -4
  67. data/lib/review/htmlbuilder.rb +147 -149
  68. data/lib/review/htmlutils.rb +10 -14
  69. data/lib/review/i18n.rb +4 -3
  70. data/lib/review/idgxmlbuilder.rb +229 -103
  71. data/lib/review/idgxmlmaker.rb +188 -0
  72. data/lib/review/img_math.rb +245 -0
  73. data/lib/review/index_builder.rb +654 -0
  74. data/lib/review/init-web/finish.html +10 -0
  75. data/lib/review/init-web/index.html +190 -0
  76. data/lib/review/init-web/review-layout-design.js +691 -0
  77. data/lib/review/init.rb +124 -41
  78. data/lib/review/latexbox.rb +58 -0
  79. data/lib/review/latexbuilder.rb +249 -97
  80. data/lib/review/latexutils.rb +9 -1
  81. data/lib/review/lineinput.rb +113 -3
  82. data/lib/review/logger.rb +43 -8
  83. data/lib/review/makerhelper.rb +13 -186
  84. data/lib/review/markdownbuilder.rb +75 -39
  85. data/lib/review/md2inaobuilder.rb +3 -5
  86. data/lib/review/pdfmaker.rb +88 -83
  87. data/lib/review/plaintextbuilder.rb +158 -83
  88. data/lib/review/preprocessor.rb +30 -24
  89. data/lib/review/rstbuilder.rb +58 -39
  90. data/lib/review/sec_counter.rb +14 -0
  91. data/lib/review/template.rb +6 -0
  92. data/lib/review/textmaker.rb +29 -17
  93. data/lib/review/textutils.rb +68 -2
  94. data/lib/review/tocprinter.rb +242 -97
  95. data/lib/review/topbuilder.rb +147 -61
  96. data/lib/review/update.rb +27 -28
  97. data/lib/review/version.rb +1 -1
  98. data/lib/review/volumeprinter.rb +97 -0
  99. data/lib/review/webmaker.rb +36 -35
  100. data/lib/review/webtocprinter.rb +39 -35
  101. data/lib/review/yamlloader.rb +4 -0
  102. data/review.gemspec +8 -5
  103. data/samples/sample-book/README.md +7 -2
  104. data/samples/sample-book/src/.gitignore +154 -0
  105. data/samples/sample-book/src/config-ebook.yml +4 -0
  106. data/samples/sample-book/src/config-epub2.yml +1 -1
  107. data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
  108. data/samples/sample-book/src/config-jlreq.yml +6 -0
  109. data/samples/sample-book/src/config.yml +3 -3
  110. data/samples/sample-book/src/lib/tasks/review.rake +45 -14
  111. data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
  112. data/samples/syntax-book/Gemfile +1 -1
  113. data/samples/syntax-book/ch01.re +3 -1
  114. data/samples/syntax-book/ch02.re +28 -21
  115. data/samples/syntax-book/ch03.re +4 -7
  116. data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
  117. data/samples/syntax-book/config-jlreq.yml +5 -0
  118. data/samples/syntax-book/config-print.yml +3 -0
  119. data/samples/syntax-book/config.yml +1 -1
  120. data/samples/syntax-book/images/img3-2.png +0 -0
  121. data/samples/syntax-book/lib/tasks/review.rake +30 -15
  122. data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
  123. data/templates/html/_colophon.html.erb +23 -0
  124. data/templates/html/_colophon_history.html.erb +9 -0
  125. data/templates/html/_cover.html.erb +10 -0
  126. data/templates/html/_part_body.html.erb +6 -0
  127. data/templates/html/_titlepage.html.erb +20 -0
  128. data/templates/html/layout-html5.html.erb +6 -0
  129. data/templates/html/layout-xhtml1.html.erb +6 -0
  130. data/templates/latex/config.erb +45 -27
  131. data/templates/latex/layout.tex.erb +1 -0
  132. data/templates/latex/review-jlreq/README.md +3 -1
  133. data/templates/latex/review-jlreq/review-base.sty +124 -37
  134. data/templates/latex/review-jlreq/review-jlreq.cls +29 -22
  135. data/templates/latex/review-jlreq/review-style.sty +9 -1
  136. data/templates/latex/review-jlreq/review-tcbox.sty +348 -0
  137. data/templates/latex/review-jlreq/reviewmacro.sty +5 -0
  138. data/templates/latex/review-jsbook/README.md +46 -5
  139. data/templates/latex/review-jsbook/review-base.sty +111 -30
  140. data/templates/latex/review-jsbook/review-jsbook.cls +16 -2
  141. data/templates/latex/review-jsbook/review-style.sty +10 -2
  142. data/templates/latex/review-jsbook/review-tcbox.sty +348 -0
  143. data/templates/latex/review-jsbook/reviewmacro.sty +5 -0
  144. data/templates/opf/epubv2.opf.erb +7 -7
  145. data/templates/opf/epubv3.opf.erb +7 -7
  146. data/templates/opf/opf_manifest_epubv2.opf.erb +10 -0
  147. data/templates/opf/opf_manifest_epubv3.opf.erb +10 -0
  148. data/templates/opf/opf_metainfo_epubv2.opf.erb +17 -0
  149. data/templates/opf/opf_metainfo_epubv3.opf.erb +49 -0
  150. data/templates/opf/opf_tocx_epubv2.opf.erb +9 -0
  151. data/templates/opf/opf_tocx_epubv3.opf.erb +17 -0
  152. data/templates/web/html/layout-html5.html.erb +9 -8
  153. data/templates/web/html/layout-xhtml1.html.erb +6 -0
  154. data/test/assets/header_listener.html +35 -0
  155. data/test/assets/img_math/img1.png +0 -0
  156. data/test/assets/img_math/img2.png +0 -0
  157. data/test/assets/img_math/img3.png +0 -0
  158. data/test/assets/syntax_book_index_detail.txt +58 -0
  159. data/test/assets/test_template.tex +20 -9
  160. data/test/assets/test_template_backmatter.tex +20 -9
  161. data/test/book_test_helper.rb +11 -5
  162. data/test/run_test.rb +1 -1
  163. data/test/test_book.rb +123 -78
  164. data/test/test_book_chapter.rb +99 -56
  165. data/test/test_book_part.rb +3 -3
  166. data/test/test_builder.rb +24 -15
  167. data/test/test_catalog.rb +19 -42
  168. data/test/test_catalog_converter_cmd.rb +1 -1
  169. data/test/test_converter.rb +1 -0
  170. data/test/test_epub3maker.rb +170 -126
  171. data/test/test_epubmaker.rb +249 -129
  172. data/test/test_epubmaker_cmd.rb +16 -9
  173. data/test/test_helper.rb +23 -11
  174. data/test/test_htmlbuilder.rb +1083 -114
  175. data/test/test_htmlutils.rb +0 -12
  176. data/test/test_i18n.rb +37 -37
  177. data/test/test_idgxmlbuilder.rb +627 -27
  178. data/test/test_idgxmlmaker_cmd.rb +50 -0
  179. data/test/test_image_finder.rb +52 -70
  180. data/test/test_img_math.rb +111 -0
  181. data/test/test_index.rb +62 -52
  182. data/test/test_indexbuilder.rb +52 -0
  183. data/test/test_latexbuilder.rb +1189 -59
  184. data/test/test_latexbuilder_v2.rb +74 -34
  185. data/test/test_lineinput.rb +20 -93
  186. data/test/test_logger.rb +17 -4
  187. data/test/test_makerhelper.rb +2 -14
  188. data/test/test_markdownbuilder.rb +77 -4
  189. data/test/test_md2inaobuilder.rb +12 -2
  190. data/test/test_pdfmaker.rb +101 -12
  191. data/test/test_pdfmaker_cmd.rb +102 -8
  192. data/test/test_plaintextbuilder.rb +562 -31
  193. data/test/test_review_ext.rb +2 -1
  194. data/test/test_reviewheaderlistener.rb +49 -0
  195. data/test/test_rstbuilder.rb +58 -5
  196. data/test/test_sec_counter.rb +156 -0
  197. data/test/test_template.rb +12 -2
  198. data/test/test_textmaker_cmd.rb +58 -0
  199. data/test/test_textutils.rb +109 -2
  200. data/test/test_tocprinter.rb +46 -0
  201. data/test/test_topbuilder.rb +400 -17
  202. data/test/test_update.rb +53 -44
  203. data/test/test_webtocprinter.rb +75 -43
  204. data/test/test_yamlloader.rb +13 -0
  205. data/test/test_zip_exporter.rb +5 -6
  206. data/vendor/gentombow/LICENSE +1 -1
  207. data/vendor/gentombow/Makefile +0 -1
  208. data/vendor/gentombow/bounddvi-en.pdf +0 -0
  209. data/vendor/gentombow/bounddvi-en.tex +1 -0
  210. data/vendor/gentombow/bounddvi.pdf +0 -0
  211. data/vendor/gentombow/bounddvi.sty +30 -7
  212. data/vendor/gentombow/bounddvi.tex +1 -0
  213. data/vendor/gentombow/create_archive.sh +1 -0
  214. data/vendor/gentombow/gentombow-ja.pdf +0 -0
  215. data/vendor/gentombow/gentombow-ja.tex +9 -0
  216. data/vendor/gentombow/gentombow.pdf +0 -0
  217. data/vendor/gentombow/gentombow.sty +32 -10
  218. data/vendor/gentombow/gentombow.tex +8 -0
  219. data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
  220. data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
  221. data/vendor/jsclasses/LICENSE +1 -1
  222. data/vendor/jsclasses/Makefile +3 -2
  223. data/vendor/jsclasses/create_archive.sh +5 -5
  224. data/vendor/jsclasses/jis/Makefile +3 -2
  225. data/vendor/jsclasses/jis/jsarticle.cls +74 -31
  226. data/vendor/jsclasses/jis/jsbook.cls +74 -31
  227. data/vendor/jsclasses/jis/jsclasses.dtx +176 -36
  228. data/vendor/jsclasses/jis/jsclasses.ins +15 -5
  229. data/vendor/jsclasses/jis/jslogo.dtx +4 -4
  230. data/vendor/jsclasses/jis/jslogo.ins +9 -0
  231. data/vendor/jsclasses/jis/jslogo.sty +4 -16
  232. data/vendor/jsclasses/jis/jspf.cls +73 -30
  233. data/vendor/jsclasses/jis/jsreport.cls +74 -31
  234. data/vendor/jsclasses/jis/jsverb.ins +9 -0
  235. data/vendor/jsclasses/jis/jsverb.sty +1 -13
  236. data/vendor/jsclasses/jis/kiyou.cls +74 -31
  237. data/vendor/jsclasses/jis/minijs.sty +65 -22
  238. data/vendor/jsclasses/jis/okumacro.dtx +4 -5
  239. data/vendor/jsclasses/jis/okumacro.ins +9 -0
  240. data/vendor/jsclasses/jis/okumacro.sty +4 -17
  241. data/vendor/jsclasses/jis/okuverb.ins +9 -0
  242. data/vendor/jsclasses/jis/okuverb.sty +1 -13
  243. data/vendor/jsclasses/jis/winjis.sty +23 -19
  244. data/vendor/jsclasses/jsarticle.cls +74 -31
  245. data/vendor/jsclasses/jsbook.cls +74 -31
  246. data/vendor/jsclasses/jsclasses.dtx +176 -36
  247. data/vendor/jsclasses/jsclasses.ins +15 -5
  248. data/vendor/jsclasses/jsclasses.pdf +0 -0
  249. data/vendor/jsclasses/jslogo.dtx +4 -4
  250. data/vendor/jsclasses/jslogo.ins +9 -0
  251. data/vendor/jsclasses/jslogo.pdf +0 -0
  252. data/vendor/jsclasses/jslogo.sty +4 -16
  253. data/vendor/jsclasses/jspf.cls +73 -30
  254. data/vendor/jsclasses/jsreport.cls +74 -31
  255. data/vendor/jsclasses/jsverb.ins +9 -0
  256. data/vendor/jsclasses/jsverb.pdf +0 -0
  257. data/vendor/jsclasses/jsverb.sty +1 -13
  258. data/vendor/jsclasses/kiyou.cls +74 -31
  259. data/vendor/jsclasses/minijs.sty +68 -22
  260. data/vendor/jsclasses/okumacro.dtx +4 -5
  261. data/vendor/jsclasses/okumacro.ins +9 -0
  262. data/vendor/jsclasses/okumacro.pdf +0 -0
  263. data/vendor/jsclasses/okumacro.sty +4 -17
  264. data/vendor/jsclasses/okuverb.ins +9 -0
  265. data/vendor/jsclasses/okuverb.pdf +0 -0
  266. data/vendor/jsclasses/okuverb.sty +1 -13
  267. data/vendor/jsclasses/tests/relfont.tex +10 -0
  268. data/vendor/jsclasses/winjis.sty +23 -19
  269. metadata +136 -23
  270. data/.rubocop_todo.yml +0 -7
  271. data/lib/epubmaker.rb +0 -23
  272. data/lib/epubmaker/content.rb +0 -110
  273. data/lib/epubmaker/epubcommon.rb +0 -441
  274. data/lib/epubmaker/epubv2.rb +0 -143
  275. data/lib/epubmaker/epubv3.rb +0 -233
  276. data/lib/epubmaker/producer.rb +0 -375
  277. data/lib/epubmaker/zip_exporter.rb +0 -81
  278. data/lib/lineinput.rb +0 -155
  279. data/lib/review/book/compilable.rb +0 -173
  280. data/lib/review/tocparser.rb +0 -271
  281. data/samples/syntax-book/review-ext.rb +0 -14
  282. data/test/test_tocparser.rb +0 -25
data/doc/format.ja.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Re:VIEW フォーマットの文法について解説します。Re:VIEW フォーマットはアスキー社(現カドカワ)の EWB を基本としながら、一部に RD や各種 Wiki の文法を取り入れて簡素化しています。
4
4
 
5
- このドキュメントは、Re:VIEW 3.0 に基づいています。
5
+ このドキュメントは、Re:VIEW 5.1 に基づいています。
6
6
 
7
7
  ## 段落
8
8
 
@@ -255,7 +255,6 @@ puts "hello world!"
255
255
  //}
256
256
  ```
257
257
 
258
-
259
258
  ### ソースコード専用の引用
260
259
 
261
260
  ソースコードを引用するには次のように記述します。
@@ -264,11 +263,23 @@ puts "hello world!"
264
263
 
265
264
  ```review
266
265
  //source[/hello/world.rb]{
267
- puts "hello world!"
266
+ puts "hello world!" # キャプションあり
267
+ //}
268
+
269
+ //source{
270
+ puts "hello world!" # キャプションなし
271
+ //}
272
+
273
+ //source[/hello/world.rb][ruby]{
274
+ puts "hello world!" # キャプションあり、ハイライトあり
275
+ //}
276
+
277
+ //source[][ruby]{
278
+ puts "hello world!" # キャプションなし、ハイライトあり
268
279
  //}
269
280
  ```
270
281
 
271
- ソースコードの引用は、キャプションを付けた `//emlist` とほぼ同じです。HTML の CSS などでは区別した表現ができます。
282
+ ソースコードの引用は、`//emlist` とほぼ同じです。HTML の CSS などでは区別した表現ができます。
272
283
 
273
284
  ## 本文中でのソースコード引用
274
285
 
@@ -312,7 +323,7 @@ V1 --> V6 --|
312
323
  //}
313
324
  ```
314
325
 
315
- 3番目の引数として、画像の倍率・大きさを指定することができます。今のところ「scale=X」で倍率(X 倍)を指定でき、HTML、TeX ともに紙面(画面)幅に対しての倍率となります(0.5 なら半分の幅になります)。
326
+ 3番目の引数として、画像の倍率・大きさを指定することができます。今のところ「scale=X」で倍率(X 倍)を指定でき、HTML、TeX ともに紙面(画面)幅に対しての倍率となります(0.5 なら半分の幅になります)。3番目の引数をたとえば HTML と TeX で分けたい場合は、`html::style="transform: scale(0.5);",latex::scale=0.5` のように `::` でビルダを明示し、`,` でオプションを区切って指定できます。
316
327
 
317
328
  ※TeX において原寸からの倍率にしたいときには、`config.yml` に `image_scale2width: false` を指定してください。
318
329
 
@@ -334,7 +345,7 @@ V1 --> V6 --|
334
345
  ```
335
346
 
336
347
  * `<imgdir>` はデフォルトでは images ディレクトリです。
337
- * `<builder>` は利用しているビルダ名(ターゲット名)で、たとえば `--target=html` としているのであれば、images/html ディレクトリとなります。
348
+ * `<builder>` は利用しているビルダ名(ターゲット名)で、たとえば `--target=html` としているのであれば、images/html ディレクトリとなります。各 Maker におけるビルダ名は epubmaker および webmaker の場合は `html`、pdfmaker の場合は `latex`、textmaker の場合は `top` です。
338
349
  * `<chapid>` は章 ID です。たとえば ch01.re という名前であれば「ch01」です。
339
350
  * `<id>` は //image[〜] の最初に入れた「〜」のことです(つまり、ID に日本語や空白交じりの文字を使ってしまうと、後で画像ファイル名の名前付けに苦労することになります!)。
340
351
  * `<ext>` は Re:VIEW が自動で判別する拡張子です。ビルダによってサポートおよび優先する拡張子は異なります。
@@ -343,7 +354,7 @@ V1 --> V6 --|
343
354
 
344
355
  * HTMLBuilder (EPUBMaker、WEBMaker)、MARKDOWNBuilder: .png、.jpg、.jpeg、.gif、.svg
345
356
  * LATEXBuilder (PDFMaker): .ai、.eps、.pdf、.tif、.tiff、.png、.bmp、.jpg、.jpeg、.gif
346
- * それ以外のビルダ: .ai、.psd、.eps、.pdf、.tif、.tiff、.png、.bmp、.jpg、.jpeg、.gif、.svg
357
+ * それ以外のビルダ・Maker: .ai、.psd、.eps、.pdf、.tif、.tiff、.png、.bmp、.jpg、.jpeg、.gif、.svg
347
358
 
348
359
  ### インラインの画像挿入
349
360
 
@@ -491,6 +502,19 @@ complexmatrixという識別子に基づく画像ファイルが貼り込まれ
491
502
 
492
503
  内容には、空行で区切って複数の段落を記述可能です。
493
504
 
505
+ Re:VIEW 5.0 以降では、囲み記事に箇条書きや図表・リストを含めることもできます。
506
+
507
+ ```
508
+ //note{
509
+
510
+ 箇条書きを含むノートです。
511
+
512
+ 1. 箇条書き1
513
+ 2. 箇条書き2
514
+
515
+ //}
516
+ ```
517
+
494
518
  ## 脚注
495
519
 
496
520
  脚注は「`//footnote`」を使って記述します。
@@ -505,14 +529,13 @@ complexmatrixという識別子に基づく画像ファイルが貼り込まれ
505
529
 
506
530
  本文中のインライン命令「`@<fn>{site}`」は脚注番号に置換され、「本書のサポートサイト……」という文は実際の脚注に変換されます。
507
531
 
508
- 注意: TeX PDF において、コラムや表など平文でないところで「`@<fn>{~}`」を使うには、`footnotetext` オプションを使う必要があります。
532
+ 注意: TeX PDF において、コラムの中で脚注を利用する場合、`//footnote` 行はコラムの終わり(`==[/column]` など)の後ろに記述することをお勧めします。Re:VIEW の標準提供のコラム表現では問題ありませんが、サードパーティのコラムの実装によってはおかしな採番表現になることがあります。
509
533
 
510
534
  ### footnotetext オプション
535
+ TeX PDF において、コラム以外の `//note` などの囲み記事の中で「`@<fn>{~}`」を使うには、`footnotetext` オプションを使う必要があります。
511
536
 
512
537
  `footnotetext` オプションを使うには、`config.yml` ファイルに`footnotetext: true` を追加します。
513
538
 
514
- これで PDF のコラムや表のなかでも脚注が使えるようになります。
515
-
516
539
  ただし、通常の脚注(footnote)ではなく、footnotemark と footnotetext を使うため、本文と脚注が別ページに分かれる可能性があるなど、いろいろな制約があります。また、採番が別々になるため、footnote と footnotemark/footnotetext を両立させることはできません。
517
540
 
518
541
  ## 参考文献の定義
@@ -578,7 +601,7 @@ LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
578
601
  「式1.1」のように連番を付けたいときには、識別子とキャプションを指定します。
579
602
 
580
603
  ```
581
- //texequationl[emc][質量とエネルギーの等価性]{
604
+ //texequation[emc][質量とエネルギーの等価性]{
582
605
  \sum_{i=1}^nf_n(x)
583
606
  //}
584
607
  ```
@@ -589,7 +612,7 @@ LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
589
612
 
590
613
  LaTeX の数式が正常に整形されるかどうかは処理系に依存します。LaTeX を利用する PDFMaker では問題なく利用できます。
591
614
 
592
- EPUBMaker および WEBMaker では、MathML に変換する方法と、画像化する方法のどちらかを選べます。
615
+ EPUBMaker および WEBMaker では、MathML に変換する方法、MathJax に変換する方法、画像化する方法から選べます。
593
616
 
594
617
  ### MathML の場合
595
618
  MathML ライブラリをインストールしておきます(`gem install math_ml`)。
@@ -597,11 +620,20 @@ MathML ライブラリをインストールしておきます(`gem install mat
597
620
  さらに config.yml に以下のように指定します。
598
621
 
599
622
  ```
600
- mathml: true
623
+ math_format: mathml
601
624
  ```
602
625
 
603
626
  なお、MathML で正常に表現されるかどうかは、ビューアやブラウザに依存します。
604
627
 
628
+ ### MathJax の場合
629
+ config.yml に以下のように指定します。
630
+
631
+ ```
632
+ math_format: mathjax
633
+ ```
634
+
635
+ MathJax の JavaScript モジュールはインターネットから読み込まれます。現時点で EPUB の仕様では外部からの読み込みを禁止しているため、MathJax を有効にすると EPUB ファイルの検証を通りません。また、ほぼすべての EPUB リーダーで MathJax は動作しません。CSS 組版との組み合わせでは利用できる可能性があります。
636
+
605
637
  ### 画像化の場合
606
638
 
607
639
  LaTeX を内部で呼び出し、外部ツールを使って画像化する方法です。画像化された数式は、`images/_review_math` フォルダに配置されます。
@@ -616,7 +648,7 @@ TeXLive などの LaTeX 環境が必要です。必要に応じて config.yml
616
648
  config.yml で以下のように設定すると、
617
649
 
618
650
  ```
619
- imgmath: true
651
+ math_format: imgmath
620
652
  ```
621
653
 
622
654
  デフォルト値として以下が使われます。
@@ -638,8 +670,8 @@ imgmath_options:
638
670
  pdfcrop_cmd: "pdfcrop --hires %i %o"
639
671
  # PDFから画像化するコマンドのコマンドライン。プレースホルダは
640
672
  # %i: 入力ファイル、%o: 出力ファイル、%O: 出力ファイルから拡張子を除いたもの
641
- # %p: 対象ページ番号
642
- pdfcrop_pixelize_cmd: "pdftocairo -png -r 90 -f %p -l %p -singlefile %i %O"
673
+ # %p: 対象ページ番号、%t: フォーマット
674
+ pdfcrop_pixelize_cmd: "pdftocairo -%t -r 90 -f %p -l %p -singlefile %i %O"
643
675
  # pdfcrop_pixelize_cmdが複数ページの処理に対応していない場合に単ページ化するか
644
676
  extract_singlepage: null
645
677
  # 単ページ化するコマンドのコマンドライン
@@ -651,7 +683,7 @@ imgmath_options:
651
683
  たとえば SVG を利用するには、次のようにします。
652
684
 
653
685
  ```
654
- imgmath: true
686
+ math_format: imgmath
655
687
  imgmath_options:
656
688
  format: svg
657
689
  pdfcrop_pixelize_cmd: "pdftocairo -svg -r 90 -f %p -l %p -singlefile %i %o"
@@ -662,7 +694,7 @@ imgmath_options:
662
694
  単一のページの処理を前提とする `sips` コマンドや `magick` コマンドを使う場合、入力 PDF から指定のページを抽出するように `extract_singlepage: true` として挙動を変更します。単一ページの抽出はデフォルトで TeXLive の `pdfjam` コマンドが使われます。
663
695
 
664
696
  ```
665
- imgmath: true
697
+ math_format: imgmath
666
698
  imgmath_options:
667
699
  extract_singlepage: true
668
700
  # pdfjamの代わりに外部ツールのpdftkを使う場合(Windowsなど)
@@ -673,10 +705,21 @@ imgmath_options:
673
705
  pdfcrop_pixelize_cmd: "sips -s format png --out %o %i"
674
706
  ```
675
707
 
708
+ textmaker 向けに PDF 形式の数式ファイルを作成したいときには、たとえば以下のように設定します(ページの抽出には pdftk を利用)。
709
+
710
+ ```
711
+ math_format: imgmath
712
+ imgmath_options:
713
+ format: pdf
714
+ extract_singlepage: true
715
+ pdfextract_cmd: "pdftk A=%i cat A%p output %o"
716
+ pdfcrop_pixelize_cmd: "mv %i %o"
717
+ ```
718
+
676
719
  Re:VIEW 2 以前の dvipng の設定に合わせるには、次のようにします。
677
720
 
678
721
  ```
679
- imgmath: true
722
+ math_format: imgmath
680
723
  imgmath_options:
681
724
  converter: dvipng
682
725
  fontsize: 12
@@ -780,7 +823,7 @@ Web ハイパーリンクを記述するには、リンクに `@<href>`、アン
780
823
  "i18n","""i""nternationalizatio""n"""
781
824
  ```
782
825
 
783
- 単語ファイルのファイルパスは、`config.yml` に `words_file: ファイルパス` で指定します。
826
+ 単語ファイルのファイルパスは、`config.yml` に `words_file: ファイルパス` で指定します。`word_file: ["common.csv", "mybook.csv"]` のように複数のファイルも指定可能です(同一のキーがあるときには後に指定したファイルの値が優先されます)。
784
827
 
785
828
  例:
786
829
 
@@ -890,9 +933,76 @@ LaTeXビルダを使用している場合:
890
933
 
891
934
  ```
892
935
 
893
-
894
936
  `//raw`、`//embed`、`@<raw>` および `@<embed>` は、HTML、XML や TeX の文書構造を容易に壊す可能性があります。使用には十分に注意してください。
895
937
 
938
+ ### 入れ子の箇条書き
939
+
940
+ Re:VIEW の箇条書きは `*` 型の箇条書きを除き、基本的に入れ子を表現できません。いずれの箇条書きも、別の箇条書き、あるいは図表・リストを箇条書きの途中に配置することを許容していません。
941
+
942
+ この対策として、Re:VIEW 4.2 では試験的に `//beginchild`、`//endchild` というブロック命令を追加しています。箇条書きの途中に何かを含めたいときには、それを `//beginchild` 〜 `//endchild` で囲んで配置します。多重に入れ子にすることも可能です。
943
+
944
+ ```
945
+ * UL1
946
+
947
+ //beginchild
948
+ #@# ここからUL1の子
949
+
950
+ 1. UL1-OL1
951
+
952
+ //beginchild
953
+ #@# ここからUL1-OL1の子
954
+
955
+ UL1-OL1-PARAGRAPH
956
+
957
+ * UL1-OL1-UL1
958
+ * UL1-OL1-UL2
959
+
960
+ //endchild
961
+ #@# ここまでUL1-OL1の子
962
+
963
+ 2. UL1-OL2
964
+
965
+ : UL1-DL1
966
+ UL1-DD1
967
+ : UL1-DL2
968
+ UL1-DD2
969
+
970
+ //endchild
971
+ #@# ここまでUL1の子
972
+
973
+ * UL2
974
+ ```
975
+
976
+ これをたとえば HTML に変換すると、次のようになります。
977
+
978
+ ```
979
+ <ul>
980
+ <li>UL1
981
+ <ol>
982
+ <li>UL1-OL1
983
+ <p>UL1-OL1-PARAGRAPH</p>
984
+ <ul>
985
+ <li>UL1-OL1-UL1</li>
986
+ <li>UL1-OL1-UL2</li>
987
+ </ul>
988
+ </li>
989
+
990
+ <li>UL1-OL2</li>
991
+ </ol>
992
+ <dl>
993
+ <dt>UL1-DL1</dt>
994
+ <dd>UL1-DD1</dd>
995
+ <dt>UL1-DL2</dt>
996
+ <dd>UL1-DD2</dd>
997
+ </dl>
998
+ </li>
999
+
1000
+ <li>UL2</li>
1001
+ </ul>
1002
+ ```
1003
+
1004
+ (試験実装のため、命令名や挙動は今後のバージョンで変更になる可能性があります。)
1005
+
896
1006
  ## インライン命令
897
1007
  主なインライン命令を次に示します。
898
1008
 
@@ -912,6 +1022,8 @@ LaTeXビルダを使用している場合:
912
1022
  * `@<ttb>{〜}` : 等幅+太字にします。
913
1023
  * `@<code>{〜}` : 等幅にします(コードの引用という性質)。
914
1024
  * `@<tcy>{〜}` : 縦書きの文書において文字を縦中横にします。
1025
+ * `@<ins>{〜}` : 挿入箇所を明示します(デフォルトでは下線が引かれます)。
1026
+ * `@<del>{〜}` : 削除箇所を明示します(デフォルトでは打ち消し線が引かれます)。
915
1027
 
916
1028
  ### 参照
917
1029
  * `@<chap>{章ファイル名}` : 「第17章」のような、章番号を含むテキストに置換されます。
data/doc/format.md CHANGED
@@ -4,8 +4,7 @@ The document is a brief guide for Re:VIEW markup syntax.
4
4
 
5
5
  Re:VIEW is based on EWB of ASCII (now KADOKAWA), influenced RD and other Wiki system's syntax.
6
6
 
7
- This document explains about the format of Re:VIEW 3.0.
8
-
7
+ This document explains about the format of Re:VIEW 5.1.
9
8
 
10
9
  ## Paragraph
11
10
 
@@ -98,11 +97,11 @@ Nested itemize is like ` **`, ` ***`.
98
97
  Usage:
99
98
 
100
99
  ```
101
- * 1st item
102
- ** nested 1st item
103
- * 2nd item
104
- ** nested 2nd item
105
- * 3rd item
100
+ * 1st item
101
+ ** nested 1st item
102
+ * 2nd item
103
+ ** nested 2nd item
104
+ * 3rd item
106
105
  ```
107
106
 
108
107
  In itemize, you must write one more space character at line head.
@@ -118,34 +117,34 @@ They aren't nested.
118
117
  Usage:
119
118
 
120
119
  ```
121
- 1. 1st condition
122
- 2. 2nd condition
123
- 3. 3rd condition
120
+ 1. 1st condition
121
+ 2. 2nd condition
122
+ 3. 3rd condition
124
123
  ```
125
124
 
126
125
  The value of Number is ignored.
127
126
 
128
127
  ```
129
- 1. 1st condition
130
- 1. 2nd condition
131
- 1. 3rd condition
128
+ 1. 1st condition
129
+ 1. 2nd condition
130
+ 1. 3rd condition
132
131
  ```
133
132
 
134
133
  You must write one more space character at line head like itemize.
135
134
 
136
135
  ## Definition List
137
136
 
138
- Definition list (dl in HTML) use `:` and indented lines.
137
+ Definition list (dl in HTML) uses ` : ` and indented lines.
139
138
 
140
139
  Usage:
141
140
 
142
141
  ```review
143
- : Alpha
142
+ : Alpha
144
143
  RISC CPU made by DEC.
145
- : POWER
144
+ : POWER
146
145
  RSIC CPU made by IBM and Motolora.
147
146
  POWER PC is delivered from this.
148
- : SPARC
147
+ : SPARC
149
148
  RISC CPU made by SUN.
150
149
  ```
151
150
 
@@ -284,7 +283,6 @@ puts "hello world!"
284
283
  //}
285
284
  ```
286
285
 
287
-
288
286
  ### Quoting Source Code
289
287
 
290
288
  `//source` is for quoting source code. filename is mandatory.
@@ -339,7 +337,6 @@ You can use `//image{ ... //}` for figures.
339
337
  You can write comments or Ascii art in the block as an alternative description.
340
338
  When publishing, it's simply ignored.
341
339
 
342
-
343
340
  Usage:
344
341
 
345
342
  ```
@@ -355,6 +352,7 @@ V1 --> V6 --|
355
352
  ```
356
353
 
357
354
  The third option is used to define the scale of images. `scale=X` is scaling for page width (`scale=0.5` makes image width to be half of page width).
355
+ If you'd like to use different values for each builders, such as HTML and TeX, you can specify the target builders using `::`. Example: `html::style="transform: scale(0.5);",latex::scale=0.5`
358
356
 
359
357
  When you want to refer images such as "see figure 1.", you can use
360
358
  inline reference markup like `@<img>{unixhistory}`.
@@ -377,7 +375,7 @@ The order of finding image is as follows. The first matched one is used.
377
375
  ```
378
376
 
379
377
  * ``<imgdir>`` is `images` as default.
380
- * ``<builder>`` is a builder (target) name to use. When you use review-comile commmand with ``--target=html``, `<imagedir>/<builder>` is `images/html`.
378
+ * ``<builder>`` is a builder (target) name to use. When you use review-comile commmand with ``--target=html``, `<imagedir>/<builder>` is `images/html`. The builder name for epubmaker and webmaker is `html`, for pdfmaker it is `latex`, and for textmaker it is `top`.
381
379
  * ``<chapid>`` is basename of *.re file. If the filename is `ch01.re`, chapid is `ch01`.
382
380
  * ``<id>`` is the ID of the first argument of `//image`. You should use only printable ASCII characters as ID.
383
381
  * ``<ext>`` is file extensions of Re:VIEW. They are different by the builder you use.
@@ -386,7 +384,7 @@ For each builder, image files are searched in order of the following extensions,
386
384
 
387
385
  * HTMLBuilder (EPUBMaker, WEBMaker), MARKDOWNBuilder: .png, .jpg, .jpeg, .gif, .svg
388
386
  * LATEXBuilder (PDFMaker): .ai, .eps, .pdf, .tif, .tiff, .png, .bmp, .jpg, .jpeg, .gif
389
- * Other builders: .ai, .psd, .eps, .pdf, .tif, .tiff, .png, .bmp, .jpg, .jpeg, .gif, .svg
387
+ * Other builders/makers: .ai, .psd, .eps, .pdf, .tif, .tiff, .png, .bmp, .jpg, .jpeg, .gif, .svg
390
388
 
391
389
  ### Inline Images
392
390
 
@@ -531,6 +529,19 @@ Some block commands are used for short column.
531
529
 
532
530
  The content is like paragraph; separated by empty lines.
533
531
 
532
+ From Re:VIEW 5.0, it is also possible to include itemize, figures and tables in short columns.
533
+
534
+ ```
535
+ //note{
536
+
537
+ With ordered itemize.
538
+
539
+ 1. item1
540
+ 2. item2
541
+
542
+ //}
543
+ ```
544
+
534
545
  ## Footnotes
535
546
 
536
547
  You can use `//footnote` to write footnotes.
@@ -546,9 +557,10 @@ You should get and install it before reading the book.
546
557
  `@<fn>{site}` in source are replaced by footnote marks, and the phrase "support site of .."
547
558
  is in footnotes.
548
559
 
549
- Note that In LATEXBuilder, you should use `footnotetext` option to use `@<fn>{...}` in columns and tables.
560
+ Note that in LATEXBuilder, it is highly recommended to place `//footnote` after the end line of column (`==[/column]`) to avoid problems when using third party's style file.
550
561
 
551
562
  ### `footnotetext` option
563
+ Note that in LATEXBuilder, you should use `footnotetext` option to use `@<fn>{...}` in `//note` or other short column blocks.
552
564
 
553
565
  By adding `footnotetext:true` in config.yml, you can use footnote in tables and short notes.
554
566
 
@@ -622,7 +634,7 @@ Usage:
622
634
  If you'd like to assign a number like 'Equation 1.1`, specify the identifier and caption.
623
635
 
624
636
  ```
625
- //texequationl[emc][The Equivalence of Mass and Energy]{
637
+ //texequation[emc][The Equivalence of Mass and Energy]{
626
638
  \sum_{i=1}^nf_n(x)
627
639
  //}
628
640
  ```
@@ -633,7 +645,7 @@ There is `@<m>{ ... }` for inline (see "Fence notation for inline commands" sect
633
645
 
634
646
  Whether LaTeX formula is correctly displayed or not depends on the processing system. PDFMaker uses LaTeX internally, so there is no problem.
635
647
 
636
- EPUBMaker and WEBMaker use either MathML transformation or imaging.
648
+ In EPUBMaker and WEBMaker, you can choose between MathML conversion, MathJax conversion, and imaging.
637
649
 
638
650
  ### MathML case
639
651
  Install MathML library (`gem install math_ml`).
@@ -641,11 +653,20 @@ Install MathML library (`gem install math_ml`).
641
653
  Specify in config.yml as follows:
642
654
 
643
655
  ```
644
- mathml: true
656
+ math_format: mathml
645
657
  ```
646
658
 
647
659
  Whether it is displayed properly in MathML depends on your viewer or browser.
648
660
 
661
+ ### MathJax case
662
+ Specify in config.yml as follows:
663
+
664
+ ```
665
+ math_format: mathjax
666
+ ```
667
+
668
+ MathJax JavaScript module is loaded from the Internet. Because the EPUB specification prohibits loading files from external, enabling this feature will cause the EPUB file to fail validation. Also MathJax will not work in almost all EPUB readers, but may be available with CSS formatting processor.
669
+
649
670
  ### imaging case
650
671
 
651
672
  This way calls LaTeX internally and images it with an external tool. Image files will be placed in `images/_review_math` folder.
@@ -660,7 +681,7 @@ In addition, external tools for image conversion are also needed. Currently, it
660
681
  By setting in config.yml,
661
682
 
662
683
  ```
663
- imgmath: true
684
+ math_format: imgmath
664
685
  ```
665
686
 
666
687
  it is set as follows:
@@ -682,8 +703,8 @@ imgmath_options:
682
703
  pdfcrop_cmd: "pdfcrop --hires %i %o"
683
704
  # imaging command.
684
705
  # %i: filename for input %o: filename for output %O: filename for output without the extension
685
- # %p: page number
686
- pdfcrop_pixelize_cmd: "pdftocairo -png -r 90 -f %p -l %p -singlefile %i %O"
706
+ # %p: page number, %t: format
707
+ pdfcrop_pixelize_cmd: "pdftocairo -%t -r 90 -f %p -l %p -singlefile %i %O"
687
708
  # whether to generate a single PDF page for pdfcrop_pixelize_cmd.
688
709
  extract_singlepage: null
689
710
  # command line to generate a single PDF page file.
@@ -695,7 +716,7 @@ imgmath_options:
695
716
  For example, to make SVG:
696
717
 
697
718
  ```
698
- imgmath: true
719
+ math_format: imgmath
699
720
  imgmath_options:
700
721
  format: svg
701
722
  pdfcrop_pixelize_cmd: "pdftocairo -svg -r 90 -f %p -l %p -singlefile %i %o"
@@ -706,7 +727,7 @@ By default, the command specified in `pdfcrop_pixelize_cmd` takes the filename o
706
727
  If you want to use the `sips` command or the` magick` command, they can only process a single page, so you need to set `extract_singlepage: true` to extract the specified page from the input PDF. `pdfjam` command (in TeXLive) is used to extract pages.
707
728
 
708
729
  ```
709
- imgmath: true
730
+ math_format: imgmath
710
731
  imgmath_options:
711
732
  extract_singlepage: true
712
733
  # use pdftk instead of default pdfjam (for Windows)
@@ -717,10 +738,21 @@ imgmath_options:
717
738
  pdfcrop_pixelize_cmd: "sips -s format png --out %o %i"
718
739
  ```
719
740
 
741
+ To create PDF math images:
742
+
743
+ ```
744
+ math_format: imgmath
745
+ imgmath_options:
746
+ format: pdf
747
+ extract_singlepage: true
748
+ pdfextract_cmd: "pdftk A=%i cat A%p output %o"
749
+ pdfcrop_pixelize_cmd: "mv %i %o"
750
+ ```
751
+
720
752
  To set the same setting as Re:VIEW 2:
721
753
 
722
754
  ```
723
- imgmath: true
755
+ math_format: imgmath
724
756
  imgmath_options:
725
757
  converter: dvipng
726
758
  fontsize: 12
@@ -838,7 +870,7 @@ This word file is a CSV file with extension .csv. This first columns is the key,
838
870
  "i18n","""i""nternationalizatio""n"""
839
871
  ```
840
872
 
841
- Specify the word file path in `words_file` parameter of `config.yml`.
873
+ Specify the word file path in `words_file` parameter of `config.yml`. You can specify multiple word files as `word_file: ["common.csv", "mybook.csv"]`.
842
874
 
843
875
  Usage:
844
876
 
@@ -943,6 +975,75 @@ this is a special line.
943
975
 
944
976
  (In other formats, it is just ignored.)
945
977
 
978
+ ### Nested itemize block
979
+
980
+ Re:VIEW itemize blocks basically cannot express nested items. Also, none of itemize blocks allow to contain another itemize block or paragraph/image/table/list.
981
+
982
+ As a workaround, Re:VIEW 4.2 provides an experimental `//beginchild` and `//endchild`. If you want to include something in an itemize block, enclose it with `//beginchild` and `//endchild`. It is also possible to create a multiple nest.
983
+
984
+ ```
985
+ * UL1
986
+
987
+ //beginchild
988
+ #@# child of UL1 start
989
+
990
+ 1. UL1-OL1
991
+
992
+ //beginchild
993
+ #@# child of UL1-OL1 start
994
+
995
+ UL1-OL1-PARAGRAPH
996
+
997
+ * UL1-OL1-UL1
998
+ * UL1-OL1-UL2
999
+
1000
+ //endchild
1001
+ #@# child of UL1-OL1 end
1002
+
1003
+ 2. UL1-OL2
1004
+
1005
+ : UL1-DL1
1006
+ UL1-DD1
1007
+ : UL1-DL2
1008
+ UL1-DD2
1009
+
1010
+ //endchild
1011
+ #@# child of UL1 end
1012
+
1013
+ * UL2
1014
+ ```
1015
+
1016
+ Output:
1017
+
1018
+ (In HTML:)
1019
+
1020
+ ```
1021
+ <ul>
1022
+ <li>UL1
1023
+ <ol>
1024
+ <li>UL1-OL1
1025
+ <p>UL1-OL1-PARAGRAPH</p>
1026
+ <ul>
1027
+ <li>UL1-OL1-UL1</li>
1028
+ <li>UL1-OL1-UL2</li>
1029
+ </ul>
1030
+ </li>
1031
+
1032
+ <li>UL1-OL2</li>
1033
+ </ol>
1034
+ <dl>
1035
+ <dt>UL1-DL1</dt>
1036
+ <dd>UL1-DD1</dd>
1037
+ <dt>UL1-DL2</dt>
1038
+ <dd>UL1-DD2</dd>
1039
+ </dl>
1040
+ </li>
1041
+
1042
+ <li>UL2</li>
1043
+ </ul>
1044
+ ```
1045
+
1046
+ (This is an experimental implementation. Names and behaviors may change in future versions.)
946
1047
 
947
1048
  ## Inline Commands
948
1049
 
@@ -962,6 +1063,8 @@ this is a special line.
962
1063
  @<ttb>{BarClass}:: teletype (monospaced font) and bold
963
1064
  @<code>{a.foo(bar)}:: teletype (monospaced font) for fragments of code
964
1065
  @<tcy>{}:: short horizontal text in vertical text
1066
+ @<ins>{sentence}:: inserted part (underline)
1067
+ @<del>{sentence}:: deleted part (strike through)
965
1068
  ```
966
1069
 
967
1070
  ### References
@@ -1093,13 +1196,11 @@ C
1093
1196
  A,B,C
1094
1197
  ```
1095
1198
 
1096
-
1097
1199
  ## HTML/LaTeX Layout
1098
1200
 
1099
1201
  `layouts/layout.html.erb` and `layouts/layout.tex.erb` are used as layout file.
1100
1202
  You can use ERb tags in the layout files.
1101
1203
 
1102
-
1103
1204
  Sample layout file(layout.html.erb):
1104
1205
 
1105
1206
  ```html