review 3.1.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-win.yml +45 -0
  3. data/.github/workflows/ruby.yml +27 -0
  4. data/.rubocop.yml +161 -34
  5. data/.travis.yml +16 -15
  6. data/Dockerfile +21 -5
  7. data/NEWS.ja.md +394 -0
  8. data/NEWS.md +395 -1
  9. data/README.md +10 -7
  10. data/appveyor.yml +1 -3
  11. data/bin/review-catalog-converter +5 -5
  12. data/bin/review-check +10 -12
  13. data/bin/review-checkdep +2 -2
  14. data/bin/review-compile +17 -23
  15. data/bin/review-epubmaker +3 -35
  16. data/bin/review-idgxmlmaker +16 -0
  17. data/bin/review-index +2 -89
  18. data/bin/review-preproc +13 -13
  19. data/bin/review-validate +4 -4
  20. data/bin/review-vol +4 -78
  21. data/doc/config.yml.sample +47 -12
  22. data/doc/config.yml.sample-simple +3 -2
  23. data/doc/format.ja.md +120 -17
  24. data/doc/format.md +119 -27
  25. data/doc/makeindex.ja.md +2 -2
  26. data/doc/pdfmaker.ja.md +43 -1
  27. data/doc/pdfmaker.md +42 -1
  28. data/doc/quickstart.ja.md +45 -25
  29. data/doc/quickstart.md +37 -16
  30. data/lib/epubmaker/content.rb +3 -2
  31. data/lib/epubmaker/epubcommon.rb +34 -27
  32. data/lib/epubmaker/epubv2.rb +5 -6
  33. data/lib/epubmaker/epubv3.rb +21 -18
  34. data/lib/epubmaker/producer.rb +2 -1
  35. data/lib/review/book.rb +2 -2
  36. data/lib/review/book/base.rb +91 -96
  37. data/lib/review/book/bib.rb +21 -0
  38. data/lib/review/book/book_unit.rb +155 -0
  39. data/lib/review/book/chapter.rb +48 -29
  40. data/lib/review/book/index.rb +46 -240
  41. data/lib/review/book/index/item.rb +46 -0
  42. data/lib/review/book/page_metric.rb +7 -7
  43. data/lib/review/book/part.rb +45 -10
  44. data/lib/review/book/volume.rb +4 -5
  45. data/lib/review/builder.rb +172 -56
  46. data/lib/review/catalog.rb +14 -17
  47. data/lib/review/compiler.rb +219 -121
  48. data/lib/review/configure.rb +39 -7
  49. data/lib/review/converter.rb +1 -1
  50. data/lib/review/epub2html.rb +43 -5
  51. data/lib/review/epubmaker.rb +69 -27
  52. data/lib/review/extentions/string.rb +0 -4
  53. data/lib/review/htmlbuilder.rb +112 -101
  54. data/lib/review/htmlutils.rb +9 -13
  55. data/lib/review/i18n.rb +3 -3
  56. data/lib/review/idgxmlbuilder.rb +202 -78
  57. data/lib/review/idgxmlmaker.rb +186 -0
  58. data/lib/review/index_builder.rb +653 -0
  59. data/lib/review/init-web/finish.html +10 -0
  60. data/lib/review/init-web/index.html +190 -0
  61. data/lib/review/init-web/review-layout-design.js +691 -0
  62. data/lib/review/init.rb +129 -46
  63. data/lib/review/latexbuilder.rb +255 -92
  64. data/lib/review/lineinput.rb +1 -1
  65. data/lib/review/location.rb +32 -0
  66. data/lib/review/logger.rb +4 -8
  67. data/lib/review/makerhelper.rb +35 -5
  68. data/lib/review/markdownbuilder.rb +50 -38
  69. data/lib/review/md2inaobuilder.rb +3 -5
  70. data/lib/review/pdfmaker.rb +60 -57
  71. data/lib/review/plaintextbuilder.rb +154 -87
  72. data/lib/review/preprocessor.rb +20 -42
  73. data/lib/review/rstbuilder.rb +57 -38
  74. data/lib/review/sec_counter.rb +13 -0
  75. data/lib/review/textmaker.rb +23 -15
  76. data/lib/review/textutils.rb +76 -2
  77. data/lib/review/tocprinter.rb +230 -102
  78. data/lib/review/topbuilder.rb +139 -60
  79. data/lib/review/update.rb +24 -24
  80. data/lib/review/version.rb +1 -1
  81. data/lib/review/volumeprinter.rb +98 -0
  82. data/lib/review/webmaker.rb +20 -24
  83. data/lib/review/webtocprinter.rb +38 -35
  84. data/lib/review/yamlloader.rb +26 -16
  85. data/review.gemspec +6 -4
  86. data/samples/sample-book/README.md +7 -2
  87. data/samples/sample-book/src/.gitignore +154 -0
  88. data/samples/sample-book/src/config-ebook.yml +4 -0
  89. data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
  90. data/samples/sample-book/src/config-jlreq.yml +6 -0
  91. data/samples/sample-book/src/config.yml +2 -2
  92. data/samples/sample-book/src/lib/tasks/review.rake +29 -14
  93. data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
  94. data/samples/syntax-book/Gemfile +1 -1
  95. data/samples/syntax-book/ch01.re +4 -2
  96. data/samples/syntax-book/ch02.re +8 -16
  97. data/samples/syntax-book/ch03.re +3 -6
  98. data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
  99. data/samples/syntax-book/config-jlreq.yml +5 -0
  100. data/samples/syntax-book/config-print.yml +3 -0
  101. data/samples/syntax-book/config.yml +1 -1
  102. data/samples/syntax-book/lib/tasks/review.rake +30 -15
  103. data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
  104. data/templates/latex/config.erb +39 -25
  105. data/templates/latex/layout.tex.erb +1 -0
  106. data/templates/latex/review-jlreq/README.md +3 -1
  107. data/templates/latex/review-jlreq/review-base.sty +161 -50
  108. data/templates/latex/review-jlreq/review-jlreq.cls +21 -22
  109. data/templates/latex/review-jlreq/review-style.sty +4 -1
  110. data/templates/latex/review-jsbook/README.md +46 -5
  111. data/templates/latex/review-jsbook/review-base.sty +123 -35
  112. data/templates/latex/review-jsbook/review-jsbook.cls +10 -4
  113. data/templates/latex/review-jsbook/review-style.sty +5 -2
  114. data/templates/opf/epubv3.opf.erb +1 -0
  115. data/templates/web/html/layout-html5.html.erb +3 -3
  116. data/test/assets/test_template.tex +19 -7
  117. data/test/assets/test_template_backmatter.tex +19 -7
  118. data/test/book_test_helper.rb +11 -5
  119. data/test/test_book.rb +124 -79
  120. data/test/test_book_chapter.rb +97 -54
  121. data/test/test_book_part.rb +3 -3
  122. data/test/test_builder.rb +38 -13
  123. data/test/test_catalog.rb +24 -42
  124. data/test/test_catalog_converter_cmd.rb +1 -1
  125. data/test/test_converter.rb +1 -0
  126. data/test/test_epub3maker.rb +2 -2
  127. data/test/test_epubmaker.rb +8 -0
  128. data/test/test_epubmaker_cmd.rb +14 -7
  129. data/test/test_helper.rb +18 -7
  130. data/test/test_htmlbuilder.rb +1491 -205
  131. data/test/test_htmlutils.rb +0 -12
  132. data/test/test_i18n.rb +37 -37
  133. data/test/test_idgxmlbuilder.rb +744 -42
  134. data/test/test_idgxmlmaker_cmd.rb +46 -0
  135. data/test/test_image_finder.rb +52 -70
  136. data/test/test_index.rb +94 -44
  137. data/test/test_indexbuilder.rb +52 -0
  138. data/test/test_latexbuilder.rb +1784 -161
  139. data/test/test_latexbuilder_v2.rb +671 -102
  140. data/test/test_logger.rb +17 -4
  141. data/test/test_makerhelper.rb +2 -14
  142. data/test/test_markdownbuilder.rb +137 -16
  143. data/test/test_md2inaobuilder.rb +32 -9
  144. data/test/test_pdfmaker.rb +30 -12
  145. data/test/test_pdfmaker_cmd.rb +100 -6
  146. data/test/test_plaintextbuilder.rb +791 -30
  147. data/test/test_preprocessor.rb +2 -16
  148. data/test/test_review_ext.rb +2 -1
  149. data/test/test_rstbuilder.rb +274 -27
  150. data/test/test_sec_counter.rb +156 -0
  151. data/test/test_textmaker_cmd.rb +54 -0
  152. data/test/test_textutils.rb +109 -2
  153. data/test/test_topbuilder.rb +724 -34
  154. data/test/test_update.rb +20 -11
  155. data/test/test_webtocprinter.rb +75 -43
  156. data/test/test_yamlloader.rb +13 -0
  157. data/vendor/gentombow/LICENSE +1 -1
  158. data/vendor/gentombow/Makefile +0 -1
  159. data/vendor/gentombow/bounddvi-en.pdf +0 -0
  160. data/vendor/gentombow/bounddvi-en.tex +1 -0
  161. data/vendor/gentombow/bounddvi.pdf +0 -0
  162. data/vendor/gentombow/bounddvi.sty +30 -7
  163. data/vendor/gentombow/bounddvi.tex +1 -0
  164. data/vendor/gentombow/create_archive.sh +1 -0
  165. data/vendor/gentombow/gentombow-ja.pdf +0 -0
  166. data/vendor/gentombow/gentombow-ja.tex +9 -0
  167. data/vendor/gentombow/gentombow.pdf +0 -0
  168. data/vendor/gentombow/gentombow.sty +32 -10
  169. data/vendor/gentombow/gentombow.tex +8 -0
  170. data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
  171. data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
  172. data/vendor/jsclasses/LICENSE +1 -1
  173. data/vendor/jsclasses/Makefile +3 -2
  174. data/vendor/jsclasses/create_archive.sh +5 -5
  175. data/vendor/jsclasses/jis/Makefile +3 -2
  176. data/vendor/jsclasses/jis/jsarticle.cls +74 -31
  177. data/vendor/jsclasses/jis/jsbook.cls +74 -31
  178. data/vendor/jsclasses/jis/jsclasses.dtx +176 -36
  179. data/vendor/jsclasses/jis/jsclasses.ins +15 -5
  180. data/vendor/jsclasses/jis/jslogo.dtx +4 -4
  181. data/vendor/jsclasses/jis/jslogo.ins +9 -0
  182. data/vendor/jsclasses/jis/jslogo.sty +4 -16
  183. data/vendor/jsclasses/jis/jspf.cls +73 -30
  184. data/vendor/jsclasses/jis/jsreport.cls +74 -31
  185. data/vendor/jsclasses/jis/jsverb.ins +9 -0
  186. data/vendor/jsclasses/jis/jsverb.sty +1 -13
  187. data/vendor/jsclasses/jis/kiyou.cls +74 -31
  188. data/vendor/jsclasses/jis/minijs.sty +65 -22
  189. data/vendor/jsclasses/jis/okumacro.dtx +4 -5
  190. data/vendor/jsclasses/jis/okumacro.ins +9 -0
  191. data/vendor/jsclasses/jis/okumacro.sty +4 -17
  192. data/vendor/jsclasses/jis/okuverb.ins +9 -0
  193. data/vendor/jsclasses/jis/okuverb.sty +1 -13
  194. data/vendor/jsclasses/jis/winjis.sty +23 -19
  195. data/vendor/jsclasses/jsarticle.cls +74 -31
  196. data/vendor/jsclasses/jsbook.cls +74 -31
  197. data/vendor/jsclasses/jsclasses.dtx +176 -36
  198. data/vendor/jsclasses/jsclasses.ins +15 -5
  199. data/vendor/jsclasses/jsclasses.pdf +0 -0
  200. data/vendor/jsclasses/jslogo.dtx +4 -4
  201. data/vendor/jsclasses/jslogo.ins +9 -0
  202. data/vendor/jsclasses/jslogo.pdf +0 -0
  203. data/vendor/jsclasses/jslogo.sty +4 -16
  204. data/vendor/jsclasses/jspf.cls +73 -30
  205. data/vendor/jsclasses/jsreport.cls +74 -31
  206. data/vendor/jsclasses/jsverb.ins +9 -0
  207. data/vendor/jsclasses/jsverb.pdf +0 -0
  208. data/vendor/jsclasses/jsverb.sty +1 -13
  209. data/vendor/jsclasses/kiyou.cls +74 -31
  210. data/vendor/jsclasses/minijs.sty +68 -22
  211. data/vendor/jsclasses/okumacro.dtx +4 -5
  212. data/vendor/jsclasses/okumacro.ins +9 -0
  213. data/vendor/jsclasses/okumacro.pdf +0 -0
  214. data/vendor/jsclasses/okumacro.sty +4 -17
  215. data/vendor/jsclasses/okuverb.ins +9 -0
  216. data/vendor/jsclasses/okuverb.pdf +0 -0
  217. data/vendor/jsclasses/okuverb.sty +1 -13
  218. data/vendor/jsclasses/tests/relfont.tex +10 -0
  219. data/vendor/jsclasses/winjis.sty +23 -19
  220. metadata +65 -12
  221. data/.rubocop_todo.yml +0 -7
  222. data/lib/review/book/compilable.rb +0 -173
  223. data/lib/review/tocparser.rb +0 -271
  224. data/samples/syntax-book/review-ext.rb +0 -14
  225. data/test/test_tocparser.rb +0 -25
@@ -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.0.
9
8
 
10
9
  ## Paragraph
11
10
 
@@ -24,7 +23,7 @@ Two empty lines or more are same as one empty line.
24
23
 
25
24
  ## Chapter, Section, Subsection (headings)
26
25
 
27
- Chapters, sections, subsections, subsubsections use `=`, `==`, `===`, `====`, `=====`.
26
+ Chapters, sections, subsections, subsubsections use `=`, `==`, `===`, `====`, `=====`, and `======`.
28
27
  You should add one or more spaces after `=`.
29
28
 
30
29
  Usage:
@@ -39,6 +38,8 @@ Usage:
39
38
  ==== 4th level
40
39
 
41
40
  ===== 5th level
41
+
42
+ ====== 6th level
42
43
  ```
43
44
 
44
45
  Headings should not have any spaces before title; if line head has space, it is as paragraph.
@@ -96,11 +97,11 @@ Nested itemize is like ` **`, ` ***`.
96
97
  Usage:
97
98
 
98
99
  ```
99
- * 1st item
100
- ** nested 1st item
101
- * 2nd item
102
- ** nested 2nd item
103
- * 3rd item
100
+ * 1st item
101
+ ** nested 1st item
102
+ * 2nd item
103
+ ** nested 2nd item
104
+ * 3rd item
104
105
  ```
105
106
 
106
107
  In itemize, you must write one more space character at line head.
@@ -116,34 +117,34 @@ They aren't nested.
116
117
  Usage:
117
118
 
118
119
  ```
119
- 1. 1st condition
120
- 2. 2nd condition
121
- 3. 3rd condition
120
+ 1. 1st condition
121
+ 2. 2nd condition
122
+ 3. 3rd condition
122
123
  ```
123
124
 
124
125
  The value of Number is ignored.
125
126
 
126
127
  ```
127
- 1. 1st condition
128
- 1. 2nd condition
129
- 1. 3rd condition
128
+ 1. 1st condition
129
+ 1. 2nd condition
130
+ 1. 3rd condition
130
131
  ```
131
132
 
132
133
  You must write one more space character at line head like itemize.
133
134
 
134
135
  ## Definition List
135
136
 
136
- Definition list (dl in HTML) use `:` and indented lines.
137
+ Definition list (dl in HTML) uses ` : ` and indented lines.
137
138
 
138
139
  Usage:
139
140
 
140
141
  ```review
141
- : Alpha
142
+ : Alpha
142
143
  RISC CPU made by DEC.
143
- : POWER
144
+ : POWER
144
145
  RSIC CPU made by IBM and Motolora.
145
146
  POWER PC is delivered from this.
146
- : SPARC
147
+ : SPARC
147
148
  RISC CPU made by SUN.
148
149
  ```
149
150
 
@@ -282,7 +283,6 @@ puts "hello world!"
282
283
  //}
283
284
  ```
284
285
 
285
-
286
286
  ### Quoting Source Code
287
287
 
288
288
  `//source` is for quoting source code. filename is mandatory.
@@ -337,7 +337,6 @@ You can use `//image{ ... //}` for figures.
337
337
  You can write comments or Ascii art in the block as an alternative description.
338
338
  When publishing, it's simply ignored.
339
339
 
340
-
341
340
  Usage:
342
341
 
343
342
  ```
@@ -353,6 +352,7 @@ V1 --> V6 --|
353
352
  ```
354
353
 
355
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`
356
356
 
357
357
  When you want to refer images such as "see figure 1.", you can use
358
358
  inline reference markup like `@<img>{unixhistory}`.
@@ -529,6 +529,19 @@ Some block commands are used for short column.
529
529
 
530
530
  The content is like paragraph; separated by empty lines.
531
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
+
532
545
  ## Footnotes
533
546
 
534
547
  You can use `//footnote` to write footnotes.
@@ -544,9 +557,10 @@ You should get and install it before reading the book.
544
557
  `@<fn>{site}` in source are replaced by footnote marks, and the phrase "support site of .."
545
558
  is in footnotes.
546
559
 
547
- 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.
548
561
 
549
562
  ### `footnotetext` option
563
+ Note that in LATEXBuilder, you should use `footnotetext` option to use `@<fn>{...}` in `//note` or other short column blocks.
550
564
 
551
565
  By adding `footnotetext:true` in config.yml, you can use footnote in tables and short notes.
552
566
 
@@ -620,7 +634,7 @@ Usage:
620
634
  If you'd like to assign a number like 'Equation 1.1`, specify the identifier and caption.
621
635
 
622
636
  ```
623
- //texequationl[emc][The Equivalence of Mass and Energy]{
637
+ //texequation[emc][The Equivalence of Mass and Energy]{
624
638
  \sum_{i=1}^nf_n(x)
625
639
  //}
626
640
  ```
@@ -680,8 +694,8 @@ imgmath_options:
680
694
  pdfcrop_cmd: "pdfcrop --hires %i %o"
681
695
  # imaging command.
682
696
  # %i: filename for input %o: filename for output %O: filename for output without the extension
683
- # %p: page number
684
- pdfcrop_pixelize_cmd: "pdftocairo -png -r 90 -f %p -l %p -singlefile %i %O"
697
+ # %p: page number, %t: format
698
+ pdfcrop_pixelize_cmd: "pdftocairo -%t -r 90 -f %p -l %p -singlefile %i %O"
685
699
  # whether to generate a single PDF page for pdfcrop_pixelize_cmd.
686
700
  extract_singlepage: null
687
701
  # command line to generate a single PDF page file.
@@ -715,6 +729,17 @@ imgmath_options:
715
729
  pdfcrop_pixelize_cmd: "sips -s format png --out %o %i"
716
730
  ```
717
731
 
732
+ To create PDF math images:
733
+
734
+ ```
735
+ imgmath: true
736
+ imgmath_options:
737
+ format: pdf
738
+ extract_singlepage: true
739
+ pdfextract_cmd: "pdftk A=%i cat A%p output %o"
740
+ pdfcrop_pixelize_cmd: "mv %i %o"
741
+ ```
742
+
718
743
  To set the same setting as Re:VIEW 2:
719
744
 
720
745
  ```
@@ -836,7 +861,7 @@ This word file is a CSV file with extension .csv. This first columns is the key,
836
861
  "i18n","""i""nternationalizatio""n"""
837
862
  ```
838
863
 
839
- Specify the word file path in `words_file` parameter of `config.yml`.
864
+ 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"]`.
840
865
 
841
866
  Usage:
842
867
 
@@ -941,6 +966,75 @@ this is a special line.
941
966
 
942
967
  (In other formats, it is just ignored.)
943
968
 
969
+ ### Nested itemize block
970
+
971
+ 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.
972
+
973
+ 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.
974
+
975
+ ```
976
+ * UL1
977
+
978
+ //beginchild
979
+ #@# child of UL1 start
980
+
981
+ 1. UL1-OL1
982
+
983
+ //beginchild
984
+ #@# child of UL1-OL1 start
985
+
986
+ UL1-OL1-PARAGRAPH
987
+
988
+ * UL1-OL1-UL1
989
+ * UL1-OL1-UL2
990
+
991
+ //endchild
992
+ #@# child of UL1-OL1 end
993
+
994
+ 2. UL1-OL2
995
+
996
+ : UL1-DL1
997
+ UL1-DD1
998
+ : UL1-DL2
999
+ UL1-DD2
1000
+
1001
+ //endchild
1002
+ #@# child of UL1 end
1003
+
1004
+ * UL2
1005
+ ```
1006
+
1007
+ Output:
1008
+
1009
+ (In HTML:)
1010
+
1011
+ ```
1012
+ <ul>
1013
+ <li>UL1
1014
+ <ol>
1015
+ <li>UL1-OL1
1016
+ <p>UL1-OL1-PARAGRAPH</p>
1017
+ <ul>
1018
+ <li>UL1-OL1-UL1</li>
1019
+ <li>UL1-OL1-UL2</li>
1020
+ </ul>
1021
+ </li>
1022
+
1023
+ <li>UL1-OL2</li>
1024
+ </ol>
1025
+ <dl>
1026
+ <dt>UL1-DL1</dt>
1027
+ <dd>UL1-DD1</dd>
1028
+ <dt>UL1-DL2</dt>
1029
+ <dd>UL1-DD2</dd>
1030
+ </dl>
1031
+ </li>
1032
+
1033
+ <li>UL2</li>
1034
+ </ul>
1035
+ ```
1036
+
1037
+ (This is an experimental implementation. Names and behaviors may change in future versions.)
944
1038
 
945
1039
  ## Inline Commands
946
1040
 
@@ -1091,13 +1185,11 @@ C
1091
1185
  A,B,C
1092
1186
  ```
1093
1187
 
1094
-
1095
1188
  ## HTML/LaTeX Layout
1096
1189
 
1097
1190
  `layouts/layout.html.erb` and `layouts/layout.tex.erb` are used as layout file.
1098
1191
  You can use ERb tags in the layout files.
1099
1192
 
1100
-
1101
1193
  Sample layout file(layout.html.erb):
1102
1194
 
1103
1195
  ```html
@@ -35,7 +35,7 @@ re ファイル内に、`@<idx>` または `@<hidx>` インラインタグを使
35
35
 
36
36
  [索引]
37
37
 
38
- 表示もする索引です....1
38
+ 表示もする索引....1
39
39
  ```
40
40
 
41
41
  ```
@@ -50,7 +50,7 @@ re ファイル内に、`@<idx>` または `@<hidx>` インラインタグを使
50
50
 
51
51
 
52
52
 
53
- 表示もする索引です....1
53
+ 表示しない索引....1
54
54
  ```
55
55
 
56
56
  ## 読み辞書
@@ -109,6 +109,48 @@ Re:VIEW 3.0 から review-jlreq.cls という別のクラスファイルも用
109
109
 
110
110
  その他の詳細な設定については、sty フォルダにある README.md を参照してください。
111
111
 
112
+ ### カスタムパラメータの引き渡し
113
+
114
+ 技術的な都合で、config.yml の YAML 設定から TeX のマクロへの変換はすべての設定について行われるわけではなく、ごく限られた値のみに制限しています。これは Re:VIEW 内部の `config.erb` ( https://github.com/kmuto/review/blob/master/templates/latex/config.erb ) の ERB スクリプトによって処理されており、この挙動を変更することは許容していません。
115
+
116
+ 任意の YAML 設定を TeX に引き渡すには、`config.erb` と同様に YAML から TeX への変換を行う固有の ERB スクリプトを作成して配置します。このためには、プロジェクトフォルダに `layouts` フォルダを作成し、そこに固有の ERB スクリプトを `config-local.tex.erb` という名前で置きます。
117
+
118
+ `config-local.tex.erb` は `config.erb` の評価・埋め込みの後、評価・埋め込みされます。
119
+
120
+ config.yml を次のようにして、これを TeX に渡したいとします。
121
+
122
+ ```
123
+ mycustom:
124
+ mystring: HELLO_#1
125
+ mybool: true
126
+ ```
127
+
128
+ `layouts/config-local.tex.erb` はたとえば次のようになります。
129
+
130
+ ```
131
+ \def\mystring{<%= escape(@config['mycustom']['mystring']) %>}
132
+ <%- if @config['mycustom']['mybool'] -%>
133
+ \def\mybool{true}
134
+ <%- end -%>
135
+ ```
136
+
137
+ 次のように展開されます。
138
+ ```
139
+
140
+ \makeatother
141
+ %% BEGIN: config-local.tex.erb
142
+ \def\mystring{HELLO\textunderscore{}\#1}
143
+ \def\mybool{true}
144
+ %% END: config-local.tex.erb
145
+
146
+ \usepackage{reviewmacro}
147
+
148
+ ```
149
+
150
+ こうして定義されたマクロを sty ファイルなどで参照します。
151
+
152
+ なお、ERB での YAML 解析、および TeX マクロの記述において誤りがあると、極めてわかりにくいエラーになることがあります。`--debug` オプション付きで実行して展開された `__REVIEW_BOOK__.tex` を確認して原因を調査するのがよいでしょう。
153
+
112
154
  ## Re:VIEW 2.0 以前の情報
113
155
 
114
156
  ### upLaTeX について
@@ -121,7 +163,7 @@ LaTeX コンパイラコマンドおよびオプションについて、Re:VIEW
121
163
 
122
164
  ```yaml
123
165
  texcommand: uplatex
124
- texoptions: "-interaction=nonstopmode -file-line-error"
166
+ texoptions: "-interaction=nonstopmode -file-line-error -halt-on-error"
125
167
  texdocumentclass: ["jsbook", "uplatex,oneside"]
126
168
  dvicommand: dvipdfmx
127
169
  dvioptions: "-d 5"
@@ -84,6 +84,47 @@ Since Re:VIEW 3.0, review-jlreq.cls is also provided. This class file extends jl
84
84
 
85
85
  `review-init --latex-template=review-jlreq` command copies the review-jlreq.cls set to `sty` folder.
86
86
 
87
+ ### Handing over custom parameters
88
+
89
+ For technical reasons, only a small part of the YAML parameters in config.yml is converted to TeX macros. Re:VIEW's internal `config.erb` ( https://github.com/ kmuto/review/blob/master/templates/latex/ config.erb ) ERB script manages this. You cannot change this script.
90
+
91
+ If you want to give YAML parameters to TeX, you can use your own ERB script that do the YAML to TeX conversion. This is done by creating `layouts/config-local.tex.erb` in the project folder.
92
+
93
+ After evaluation and embedding of `config.erb`, `config-local.tex. erb` will be evaluated and embedded as well. For example,
94
+
95
+ `config.yml`:
96
+
97
+ ```
98
+ mycustom:
99
+ mystring: HELLO_#1
100
+ mybool: true
101
+ ```
102
+
103
+ `layouts/config-local.tex.erb`:
104
+
105
+ ```
106
+ \def\mystring{<%= escape(@config['mycustom']['mystring']) %>}
107
+ <%- if @config['mycustom']['mybool'] -%>
108
+ \def\mybool{true}
109
+ <%- end -%>
110
+ ```
111
+
112
+ will be parsed:
113
+
114
+ ```
115
+
116
+ \makeatother
117
+ %% BEGIN: config-local.tex.erb
118
+ \def\mystring{HELLO\textunderscore{}\#1}
119
+ \def\mybool{true}
120
+ %% END: config-local.tex.erb
121
+
122
+ \usepackage{reviewmacro}
123
+
124
+ ```
125
+
126
+ Refer to these macros in your sty file.
127
+
87
128
  ## Important Changes about LaTeX in Re:VIEW 2.0
88
129
 
89
130
  * Default LaTeX compiler is upLaTeX, not pLaTeX.
@@ -100,7 +141,7 @@ Default settings of Re:VIEW is below:
100
141
 
101
142
  ```yaml
102
143
  texcommand: uplatex
103
- texoptions: "-interaction=nonstopmode -file-line-error"
144
+ texoptions: "-interaction=nonstopmode -file-line-error -halt-on-error"
104
145
  texdocumentclass: ["review-jsbook", "uplatex,twoside"]
105
146
  dvicommand: dvipdfmx
106
147
  dvioptions: "-d 5"
@@ -8,11 +8,11 @@ Re:VIEW は GNU Lesser General Public License Version 2.1 に基づいて配布
8
8
 
9
9
  このドキュメントでは、Re:VIEW のセットアップから変換の例までを簡単に説明します。
10
10
 
11
- このドキュメントは、Re:VIEW 3.0 に基づいています。
11
+ このドキュメントは、Re:VIEW 4.2 に基づいています。
12
12
 
13
13
  ## セットアップ
14
14
 
15
- Re:VIEW は Ruby 言語で記述されており、Linux/Unix 互換システムで動作します。macOS および Windows Cygwin でも動作可能です。Ruby gem あるいは Git のいずれかを使ってダウンロード・展開します。
15
+ Re:VIEW は Ruby 言語で記述されており、Linux/Unix 互換システムで動作します。macOS および Windows でも動作可能です。Ruby gem あるいは Git のいずれかを使ってダウンロード・展開します。
16
16
 
17
17
  なお、Re:VIEW フォーマット自体は文字で表現されたタグが付いている以外は単なるテキストファイルなので、エディタ、OS については UTF-8 文字エンコーディングさえ使用できれば制限はありません。
18
18
 
@@ -34,7 +34,7 @@ Ruby gem の bin ディレクトリにパスを通すようにしておいてく
34
34
  $ gem update review
35
35
  ```
36
36
 
37
- Gemfile を使っている場合は、以下の行を Gemfile に追加して、`bundle`コマンドを実行します。
37
+ Gemfile を使っている場合は、以下の行を Gemfile に追加して、`bundle` コマンドを実行します。
38
38
 
39
39
  ```Gemfile
40
40
  gem 'review'
@@ -58,29 +58,37 @@ review というディレクトリに展開されるので、review/bin にパ
58
58
  $ git pull
59
59
  ```
60
60
 
61
- ## Re:VIEW ドキュメントの作成
61
+ ## Re:VIEW プロジェクトの作成
62
62
 
63
63
  ### 雛型の作成
64
- review-init コマンドを使って、雛型となる作業フォルダを作成できます。
64
+ review-init コマンドを使って、雛型となるプロジェクトフォルダを作成できます。
65
65
 
66
66
  ```
67
- $ review-init ドキュメント名
67
+ $ review-init プロジェクト名
68
68
  ```
69
69
 
70
- これで指定のドキュメント名のフォルダが用意され、中に次のようなファイルが置かれます。
70
+ TeX を利用した PDF 作成を目的としているならば、雛型の作成時に、Web ブラウザによるウィザードモードで基本版面設計を行うことができます。これには `-w` オプションを付けます。
71
71
 
72
- * ドキュメント名を冠した「.re」拡張子を持つファイル(Re:VIEW フォーマットテキストファイル)
72
+ ```
73
+ $ review-init -w プロジェクト名
74
+ ```
75
+
76
+ 「http://localhost:18000」に Web ブラウザでアクセスし、文字数×行数および余白を調整できます。
77
+
78
+ これで指定のプロジェクト名のフォルダが用意され、中に次のようなファイルが置かれます。
79
+
80
+ * プロジェクト名を冠した「.re」拡張子を持つファイル(Re:VIEW フォーマットテキストファイル)
73
81
  * config.yml : 設定ファイル
82
+ * config-ebook.yml : 電子ブック用設定ファイル(ウィザードモード使用時)
74
83
  * catalog.yml : カタログファイル(目次構成)
75
84
  * Rakefile : rake コマンドのルールファイル
76
85
  * images : 画像の配置フォルダ
77
- * layouts : レイアウトファイルの配置フォルダ
78
86
  * style.css : サンプルスタイルシート
79
87
  * sty : スタイルファイル配置フォルダ(TeX 用)
80
88
  * doc : 本ドキュメントを含む使い方のドキュメント
81
89
  * lib : 主に rake コマンドの詳細ルールファイル
82
90
 
83
- review-init コマンドによらず、独自に作業フォルダを作成してもかまいません。
91
+ review-init コマンドによらず、独自にプロジェクトフォルダを作成してもかまいません。
84
92
 
85
93
  ### Re:VIEW テキストの作成と変換
86
94
 
@@ -115,28 +123,37 @@ review-init コマンドによらず、独自に作業フォルダを作成し
115
123
 
116
124
  テキストファイルの文字エンコーディングには、UTF-8 を使用してください。
117
125
 
118
- ### PDF 化と EPUB 化、プレインテキスト化
126
+ ### PDF 化と EPUB 化、プレインテキスト化、XML 化
127
+
128
+ review-*maker コマンドで一括して変換作成ができます。
119
129
 
120
- review-pdfmaker コマンドで PDF ブックの作成、review-epubmaker コマンドで EPUB ファイルの作成、review-textmaker コマンドでプレインテキストの作成ができます。
130
+ - review-pdfmaker コマンド:PDF ブックの作成
131
+ - review-epubmaker コマンド:EPUB ファイルの作成
132
+ - review-textmaker コマンド:プレインテキストの作成
133
+ - review-idgxmlmaker コマンド:InDesign XML の作成
121
134
 
122
135
  PDF を作成するには、TeXLive2012 以上の環境が必要です。EPUB を作成するには、rubyzip gem あるいは zip コマンドが必要です(MathML も使いたいときには、 [MathML ライブラリ](http://www.hinet.mydns.jp/?mathml.rb)も必要です)。
123
136
 
124
137
  いずれのコマンドも、必要な設定情報を記した YAML 形式ファイルを引数に指定して実行します。review-init コマンドで作成した環境には、デフォルトで config.yml として用意されているので、これを利用します。
125
138
 
126
139
  ```bash
127
- $ review-pdfmaker config.yml ←PDFの作成
128
- $ review-epubmaker config.yml ←EPUBの作成
129
- $ review-textmaker config.yml ←テキストの作成(装飾情報あり)
130
- $ review-textmaker -n config.yml ←テキストの作成(装飾情報なし)
140
+ $ review-pdfmaker config.yml ←PDFの作成
141
+ $ review-pdfmaker config-ebook.yml ←電子ブック設定でのPDFの作成
142
+ $ review-epubmaker config.yml ←EPUBの作成
143
+ $ review-textmaker config.yml ←テキストの作成(装飾情報あり)
144
+ $ review-textmaker -n config.yml ←テキストの作成(装飾情報なし)
145
+ $ review-idgxmlmaker config.yml ←InDesign XMLの作成
131
146
  ```
132
147
 
133
148
  rake コマンドを利用できるなら、次のように実行することもできます。
134
149
 
135
150
  ```bash
136
151
  $ rake pdf ←PDFの作成
152
+ $ REVIEW_CONFIG_FILE=config-ebook.yml rake pdf ←電子ブック設定でのPDFの作成
137
153
  $ rake epub ←EPUBの作成
138
154
  $ rake text ←テキストの作成(装飾情報あり)
139
155
  $ rake plaintext ←テキストの作成(装飾情報なし)
156
+ $ rake idgxml ←InDesign XMLの作成
140
157
  ```
141
158
 
142
159
  config.yml のサンプルについては以下を参照してください。
@@ -177,7 +194,7 @@ Re:VIEW の使用実例については、https://github.com/reviewml/review-samp
177
194
  $ review-compile --target text sample.re > sample.txt ←テキストにする
178
195
  $ review-compile --target html sample.re > sample.html ←HTMLにする
179
196
  $ review-compile --target latex sample.re > sample.tex ←LaTeXにする
180
- $ review-compile --target idgxml sample.re > sample.xml ←XMLにする
197
+ $ review-compile --target idgxml sample.re > sample.xml ←InDesign XMLにする
181
198
  $ review-compile --target markdown sample.re > sample.md ←Markdownにする
182
199
  ```
183
200
 
@@ -200,20 +217,23 @@ $ review-preproc --replace ファイル ←ファイルを更新したもので
200
217
  $ review-vol
201
218
  ```
202
219
 
203
- より細かな見出し一覧などを出したいときには、review-index コマンドを使うのもよいでしょう。
220
+ より細かな見出し一覧などを出したいときには、review-index コマンドを使うとよいでしょう。
204
221
 
205
222
  ```bash
206
- $ review-index --level 掘り下げる見出しレベル数 -a
223
+ $ review-index -l 掘り下げる見出しレベル数
224
+ $ review-index -l 掘り下げる見出しレベル数 -d ←分量の詳細を表示
207
225
  ```
208
226
 
209
- ## ドキュメントフォルダを新しい Re:VIEW バージョンに追従する方法
227
+ review-vol review-index では、文字数や行数、見込みページなど各値に大きな差が出ることがあります。これは、review-vol がごく簡単にファイルから概算しているのに対し、review-index は実際に内部でコンパイルして比較的精密に計量しているからです。
228
+
229
+ ## プロジェクトフォルダを新しい Re:VIEW バージョンに追従する方法
210
230
 
211
- Re:VIEW は定期的に更新されています。おおむね後方互換性を保持していますが、新しいバージョン固有の機能を利用したいときには、ドキュメントフォルダを新しいバージョンに更新する review-update コマンドを利用します。
231
+ Re:VIEW は定期的に更新されています。おおむね後方互換性を保持していますが、新しいバージョン固有の機能を利用したいときには、プロジェクトフォルダを新しいバージョンに更新する review-update コマンドを利用します。
212
232
 
213
233
  ```bash
214
234
  $ review-update
215
- ** review-update はプロジェクトを 3.0.0 に更新します **
216
- config.yml: 'review_version' を '3.0' に更新しますか? [y]/n ←Enterで実行
235
+ ** review-update はプロジェクトを 5.0.0 に更新します **
236
+ config.yml: 'review_version' を '5.0' に更新しますか? [y]/n ←Enterで実行
217
237
  Rakefile は Re:VIEW バージョンのもの (/.../review/samples/sample-book/src/Rakefile) で置き換えられます。本当に進めますか? [y]/n
218
238
  lib/tasks/review.rake は Re:VIEW バージョンのもの (/.../review/samples/sample-book/src/lib/tasks/review.rake) で置き換えられます。本当に進めますか? [y]/n
219
239
  INFO: 新しいファイル /.../sty/plistings.sty が作成されました。
@@ -229,9 +249,9 @@ INFO: 新しいファイル /.../sty/gentombow.sty が作成されました。
229
249
 
230
250
  ## クレジット
231
251
 
232
- Re:VIEW は、青木峰郎によって最初に作成されました。武藤健志がこの開発・保守を引き継ぎ、20192月時点では、武藤健志、高橋征義、角征典が開発・保守を継続しています。
252
+ Re:VIEW は、青木峰郎によって最初に作成されました。武藤健志がこの開発・保守を引き継ぎ、202010月時点では、武藤健志、高橋征義、角征典が開発・保守を継続しています。
233
253
 
234
- バグ・パッチの報告、開発者用メーリングリストなどについての情報は、
254
+ バグ・パッチの報告、その他の情報は、
235
255
 
236
256
  * http://reviewml.org/
237
257
  * https://github.com/kmuto/review/wiki