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
@@ -2,6 +2,11 @@
2
2
 
3
3
  Re:VIEW ( http://github.com/kmuto/review )で書籍データを作るためのサンプルファイルです。
4
4
 
5
- 必要なファイルはsrc/ディレクトリ内にあります。srcディレクトリで「review-epubmaker config.yml」と実行すればEPUBが、「review-pdfmaker config.yml」とすればPDFが生成されます(PDFの生成にはupLaTeXとdvipdfmxが必要です)。
5
+ 必要なファイルはsrcディレクトリ内にあります。srcディレクトリで以下のようにして各形式のファイルを生成できます。
6
6
 
7
- Ruby製のビルドツールであるrakeがインストールされている環境の場合、「rake pdf」を実行すればPDFが、「rake epub」を実行すればEPUBが生成されます。また、「rake html_all」を実行すればHTMLが生成されます。
7
+ - rake pdf: PDF (upLaTeXとdvipdfmxが必要です)
8
+ - rake epub: EPUB
9
+ - rake web: HTML Webページ
10
+ - rake text: テキストファイル
11
+ - rake plaintext: テキストファイル (装飾なし)
12
+ - rake idgxml: InDesign用XMLファイル
@@ -0,0 +1,154 @@
1
+ /*.pdf
2
+ /*.epub
3
+ /*.html
4
+ /webroot
5
+ /*-pdf
6
+ /*-epub
7
+ /*-text
8
+ /*-idgxml
9
+
10
+ /vendor
11
+ /.bundle
12
+
13
+ # Created by https://www.gitignore.io/api/vim,linux,macos,emacs,windows
14
+ # Edit at https://www.gitignore.io/?templates=vim,linux,macos,emacs,windows
15
+
16
+ ### Emacs ###
17
+ # -*- mode: gitignore; -*-
18
+ *~
19
+ \#*\#
20
+ /.emacs.desktop
21
+ /.emacs.desktop.lock
22
+ *.elc
23
+ auto-save-list
24
+ tramp
25
+ .\#*
26
+
27
+ # Org-mode
28
+ .org-id-locations
29
+ *_archive
30
+
31
+ # flymake-mode
32
+ *_flymake.*
33
+
34
+ # eshell files
35
+ /eshell/history
36
+ /eshell/lastdir
37
+
38
+ # elpa packages
39
+ /elpa/
40
+
41
+ # reftex files
42
+ *.rel
43
+
44
+ # AUCTeX auto folder
45
+ /auto/
46
+
47
+ # cask packages
48
+ .cask/
49
+ dist/
50
+
51
+ # Flycheck
52
+ flycheck_*.el
53
+
54
+ # server auth directory
55
+ /server/
56
+
57
+ # projectiles files
58
+ .projectile
59
+
60
+ # directory configuration
61
+ .dir-locals.el
62
+
63
+ # network security
64
+ /network-security.data
65
+
66
+
67
+ ### Linux ###
68
+
69
+ # temporary files which can be created if a process still has a handle open of a deleted file
70
+ .fuse_hidden*
71
+
72
+ # KDE directory preferences
73
+ .directory
74
+
75
+ # Linux trash folder which might appear on any partition or disk
76
+ .Trash-*
77
+
78
+ # .nfs files are created when an open file is removed but is still being accessed
79
+ .nfs*
80
+
81
+ ### macOS ###
82
+ # General
83
+ .DS_Store
84
+ .AppleDouble
85
+ .LSOverride
86
+
87
+ # Icon must end with two \r
88
+ Icon
89
+
90
+ # Thumbnails
91
+ ._*
92
+
93
+ # Files that might appear in the root of a volume
94
+ .DocumentRevisions-V100
95
+ .fseventsd
96
+ .Spotlight-V100
97
+ .TemporaryItems
98
+ .Trashes
99
+ .VolumeIcon.icns
100
+ .com.apple.timemachine.donotpresent
101
+
102
+ # Directories potentially created on remote AFP share
103
+ .AppleDB
104
+ .AppleDesktop
105
+ Network Trash Folder
106
+ Temporary Items
107
+ .apdisk
108
+
109
+ ### Vim ###
110
+ # Swap
111
+ [._]*.s[a-v][a-z]
112
+ [._]*.sw[a-p]
113
+ [._]s[a-rt-v][a-z]
114
+ [._]ss[a-gi-z]
115
+ [._]sw[a-p]
116
+
117
+ # Session
118
+ Session.vim
119
+ Sessionx.vim
120
+
121
+ # Temporary
122
+ .netrwhist
123
+ # Auto-generated tag files
124
+ tags
125
+ # Persistent undo
126
+ [._]*.un~
127
+
128
+ ### Windows ###
129
+ # Windows thumbnail cache files
130
+ Thumbs.db
131
+ Thumbs.db:encryptable
132
+ ehthumbs.db
133
+ ehthumbs_vista.db
134
+
135
+ # Dump file
136
+ *.stackdump
137
+
138
+ # Folder config file
139
+ [Dd]esktop.ini
140
+
141
+ # Recycle Bin used on file shares
142
+ $RECYCLE.BIN/
143
+
144
+ # Windows Installer files
145
+ *.cab
146
+ *.msi
147
+ *.msix
148
+ *.msm
149
+ *.msp
150
+
151
+ # Windows shortcuts
152
+ *.lnk
153
+
154
+ # End of https://www.gitignore.io/api/vim,linux,macos,emacs,windows
@@ -0,0 +1,4 @@
1
+ # call me by 'REVIEW_CONFIG_FILE=config-ebook.yml rake pdf'
2
+ inherit: ["config.yml"]
3
+ pdfmaker:
4
+ texdocumentclass: ["review-jsbook", "media=ebook,paper=a5"]
@@ -11,7 +11,7 @@ language: ja
11
11
  # 書名
12
12
  booktitle: Re:VIEWサンプル書籍
13
13
  # 固有IDに使用するドメイン。省略した場合は時刻に基づくランダムUUIDが入る
14
- urnid: urn:uid:http://tatsu-zine.com/books/review-sample-book/1.0.0/
14
+ urnid: urn:uuid:http://tatsu-zine.com/books/review-sample-book/1.0.0/
15
15
  # ISBN。省略した場合はurnidが入る
16
16
  # isbn: null
17
17
  # 著者名。["高橋征義", "John Doe"] のように配列を使うことで複数指定可
@@ -0,0 +1,4 @@
1
+ # call me by 'REVIEW_TEMPLATE=review-jlreq REVIEW_CONFIG_FILE=config-jlreq-ebook.yml rake pdf'
2
+ inherit: ["config.yml"]
3
+ pdfmaker:
4
+ texdocumentclass: ["review-jlreq", "media=ebook,paper=a5"]
@@ -0,0 +1,6 @@
1
+ # call me by 'REVIEW_TEMPLATE=review-jlreq REVIEW_CONFIG_FILE=config-jlreq.yml rake pdf'
2
+ inherit: ["config.yml"]
3
+ pdfmaker:
4
+ texdocumentclass: ["review-jlreq", "media=print,paper=a5"]
5
+ # texdocumentclass: ["review-jlreq", "media=ebook,paper=a5"]
6
+ # texdocumentclass: ["review-jlreq", "media=print,paper=a5,tombopaper=a4,bleed_margin=3mm,cover=true,Q=14,startpage=3,serial_pagination=true,hiddenfolio=nikko-pc"]
@@ -1,9 +1,9 @@
1
1
  ## config.yml for sample book
2
- review_version: 3.0
2
+ review_version: 5.0
3
3
  bookname: book
4
4
  language: ja
5
5
  booktitle: Re:VIEWサンプル書籍
6
- urnid: urn:uid:http://reviewml.com/books/review-sample-book/
6
+ urnid: urn:uuid:http://reviewml.com/books/review-sample-book/
7
7
  # isbn: null
8
8
  aut: Re:VIEW Writers
9
9
  pbl: Re:VIEW Publishers
@@ -35,7 +35,7 @@ colophon: true
35
35
  # font_ext: ["ttf", "woff", "otf"]
36
36
  # catalogfile: catalog.yml
37
37
  # page_metric: A5
38
- # page_metric: [40,80,40,80,2]
38
+ # page_metric: [40,34,29,34]
39
39
  # direction: "ltr"
40
40
 
41
41
  epubmaker:
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2006-2018 Minero Aoki, Kenshi Muto, Masayoshi Takahashi, Masanori Kado.
1
+ # Copyright (c) 2006-2021 Minero Aoki, Kenshi Muto, Masayoshi Takahashi, Masanori Kado.
2
2
  #
3
3
  # Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  # of this software and associated documentation files (the "Software"), to deal
@@ -29,15 +29,26 @@ CATALOG_FILE = ENV['REVIEW_CATALOG_FILE'] || 'catalog.yml'
29
29
  WEBROOT = ENV['REVIEW_WEBROOT'] || 'webroot'
30
30
  TEXTROOT = BOOK + '-text'
31
31
  TOPROOT = BOOK + '-text'
32
+ IDGXMLROOT = BOOK + '-idgxml'
33
+ PDF_OPTIONS = ENV['REVIEW_PDF_OPTIONS'] || ''
34
+ EPUB_OPTIONS = ENV['REVIEW_EPUB_OPTIONS'] || ''
35
+ WEB_OPTIONS = ENV['REVIEW_WEB_OPTIONS'] || ''
36
+ IDGXML_OPTIONS = ENV['REVIEW_IDGXML_OPTIONS'] || ''
37
+ TEXT_OPTIONS = ENV['REVIEW_TEXT_OPTIONS'] || ''
38
+
39
+ REVIEW_VSCLI = ENV['REVIEW_VSCLI'] || 'vivliostyle'
40
+ REVIEW_VSCLI_USESANDBOX = ENV['REVIEW_VSCLI_USESANDBOX'] ? '' : '--no-sandbox'
41
+ REVIEW_VSCLI_PDF = ENV['REVIEW_VSCLI_PDF'] || BOOK_PDF
42
+ REVIEW_VSCLI_OPTIONS = ENV['REVIEW_VSCLI_OPTIONS'] || ''
32
43
 
33
44
  def build(mode, chapter)
34
- sh "review-compile --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp"
45
+ sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp")
35
46
  mode_ext = { 'html' => 'html', 'latex' => 'tex', 'idgxml' => 'xml', 'top' => 'txt', 'plaintext' => 'txt' }
36
- FileUtils.mv 'tmp', chapter.gsub(/re\z/, mode_ext[mode])
47
+ FileUtils.mv('tmp', chapter.gsub(/re\z/, mode_ext[mode]))
37
48
  end
38
49
 
39
50
  def build_all(mode)
40
- sh "review-compile --target=#{mode} --footnotetext --stylesheet=style.css"
51
+ sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css")
41
52
  end
42
53
 
43
54
  task default: :html_all
@@ -74,12 +85,17 @@ task web: WEBROOT
74
85
 
75
86
  desc 'generate text file (without decoration)'
76
87
  task plaintext: TEXTROOT do
77
- sh "review-textmaker -n #{CONFIG_FILE}"
88
+ sh "review-textmaker #{TEXT_OPTIONS} -n #{CONFIG_FILE}"
78
89
  end
79
90
 
80
91
  desc 'generate (decorated) text file'
81
92
  task text: TOPROOT do
82
- sh "review-textmaker #{CONFIG_FILE}"
93
+ sh "review-textmaker #{TEXT_OPTIONS} #{CONFIG_FILE}"
94
+ end
95
+
96
+ desc 'generate IDGXML file'
97
+ task idgxml: IDGXMLROOT do
98
+ sh "review-idgxmlmaker #{IDGXML_OPTIONS} #{CONFIG_FILE}"
83
99
  end
84
100
 
85
101
  desc 'generate EPUB file'
@@ -92,22 +108,37 @@ SRC_EPUB = FileList['*.css']
92
108
  SRC_PDF = FileList['layouts/*.erb', 'sty/**/*.sty']
93
109
 
94
110
  file BOOK_PDF => SRC + SRC_PDF do
95
- FileUtils.rm_rf [BOOK_PDF, BOOK, BOOK + '-pdf']
96
- sh "review-pdfmaker #{CONFIG_FILE}"
111
+ FileUtils.rm_rf([BOOK_PDF, BOOK, BOOK + '-pdf'])
112
+ sh "review-pdfmaker #{PDF_OPTIONS} #{CONFIG_FILE}"
97
113
  end
98
114
 
99
115
  file BOOK_EPUB => SRC + SRC_EPUB do
100
- FileUtils.rm_rf [BOOK_EPUB, BOOK, BOOK + '-epub']
101
- sh "review-epubmaker #{CONFIG_FILE}"
116
+ FileUtils.rm_rf([BOOK_EPUB, BOOK, BOOK + '-epub'])
117
+ sh "review-epubmaker #{EPUB_OPTIONS} #{CONFIG_FILE}"
102
118
  end
103
119
 
104
120
  file WEBROOT => SRC do
105
- FileUtils.rm_rf [WEBROOT]
106
- sh "review-webmaker #{CONFIG_FILE}"
121
+ FileUtils.rm_rf([WEBROOT])
122
+ sh "review-webmaker #{WEB_OPTIONS} #{CONFIG_FILE}"
107
123
  end
108
124
 
109
125
  file TEXTROOT => SRC do
110
- FileUtils.rm_rf [TEXTROOT]
126
+ FileUtils.rm_rf([TEXTROOT])
111
127
  end
112
128
 
113
- CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', TEXTROOT])
129
+ file IDGXMLROOT => SRC do
130
+ FileUtils.rm_rf([IDGXMLROOT])
131
+ end
132
+
133
+ desc 'run vivliostyle'
134
+ task 'vivliostyle:preview': BOOK_EPUB do
135
+ sh "#{REVIEW_VSCLI} preview #{REVIEW_VSCLI_USESANDBOX} #{REVIEW_VSCLI_OPTIONS} #{BOOK_EPUB}"
136
+ end
137
+
138
+ task 'vivliostyle:build': BOOK_EPUB do
139
+ sh "#{REVIEW_VSCLI} build #{REVIEW_VSCLI_USESANDBOX} #{REVIEW_VSCLI_OPTIONS} -o #{REVIEW_VSCLI_PDF} #{BOOK_EPUB}"
140
+ end
141
+
142
+ task vivliostyle: 'vivliostyle:build'
143
+
144
+ CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', 'images/_review_math_text', TEXTROOT, IDGXMLROOT])
@@ -1,17 +1,23 @@
1
1
  desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
2
+ REVIEW_TEMPLATE = ENV['REVIEW_TEMPLATE'] || 'review-jsbook'
2
3
  task :copy_sty do
3
4
  review_rootdir = '../../..'
4
- jsbook_dir = File.join(review_rootdir, 'templates/latex/review-jsbook')
5
- gentombow_dir = File.join(review_rootdir, 'vendor/gentombow')
6
- Dir.glob(File.join(jsbook_dir, '*.cls')) do |file|
7
- FileUtils.cp file, 'sty'
5
+ template_dir = File.join(review_rootdir, "templates/latex/#{REVIEW_TEMPLATE}")
6
+ Dir.glob(File.join(template_dir, '*.cls')) do |file|
7
+ FileUtils.cp(file, 'sty')
8
8
  end
9
- Dir.glob(File.join(jsbook_dir, 'review-*.sty')) do |file|
10
- FileUtils.cp file, 'sty'
9
+ Dir.glob(File.join(template_dir, 'review-*.sty')) do |file|
10
+ FileUtils.cp(file, 'sty')
11
+ end
12
+
13
+ if REVIEW_TEMPLATE == 'review-jsbook'
14
+ jsbook_dir = File.join(review_rootdir, 'vendor/jsclasses')
15
+ FileUtils.cp(File.join(jsbook_dir, 'jsbook.cls'), 'sty/jsbook.cls')
16
+ gentombow_dir = File.join(review_rootdir, 'vendor/gentombow')
17
+ FileUtils.cp(File.join(gentombow_dir, 'gentombow.sty'), 'sty/gentombow.sty')
11
18
  end
12
- FileUtils.cp File.join(gentombow_dir, 'gentombow.sty'), 'sty/gentombow.sty'
13
19
  end
14
20
 
15
- CLEAN.include([Dir.glob('sty/review-*.sty'), 'sty/review-jsbook.cls', 'sty/gentombow.sty'])
21
+ CLEAN.include([Dir.glob('sty/review-*.sty'), 'sty/*.cls', 'sty/gentombow.sty'])
16
22
 
17
23
  Rake::Task[BOOK_PDF].enhance([:copy_sty])
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'rake'
4
- gem 'review', '2.3.0'
4
+ gem 'review', '4.2.0'
@@ -104,7 +104,7 @@ olnumで一応番号が変更可能なことを期待していますが、Webブ
104
104
  === 用語リスト
105
105
  用語リスト(HTMLの@<i>{dl}、TeXの@<i>{description})は@<i>{スペース}+@<tt>{:}+@<i>{スペース}で見出しを、説明は行頭にタブかスペースを入れて表現します。
106
106
 
107
- : Alpha@<b>{bold太字}@<i>{italicイタ}@<tt>{等幅code}
107
+ : Alpha@<b>{bold太字}@<i>{italicイタ}@<tt>{等幅code}@<fn>{foot1}
108
108
  @<i>{DEC}の作っていた@<b>{RISC CPU}。@<i>{italicイタ}@<tt>{等幅code}
109
109
  浮動小数点数演算が速い。
110
110
  : POWER
@@ -114,6 +114,8 @@ olnumで一応番号が変更可能なことを期待していますが、Webブ
114
114
  Sunが作っているRISC CPU。
115
115
  CPU数を増やすのが得意。
116
116
 
117
+ //footnote[foot1][箇条書き見出しへの脚注。]
118
+
117
119
  //emlist{
118
120
  @<b>{bold太字}@<i>{italicイタ}
119
121
 
@@ -49,9 +49,9 @@ print('hello');
49
49
  puts 'Hello'
50
50
  //}
51
51
 
52
- #@# //source{
53
- #@# //}
54
- #@# FIXME:キャプションなしはLaTeXだとエラーになることがわかった。Re:VIEW側修正予定
52
+ //source{
53
+ puts 'Hello'
54
+ //}
55
55
 
56
56
  実行例を示すとき用にはcmdを用意しています。いずれにせよ、商業書籍レベルでは必要なので用意しているものの、原稿レベルで書き手が使うコードブロックはほどほどの数に留めておいたほうがいいのではないかと思います。TeX版の紙面ではデフォルトは黒アミ。印刷によってはベタ黒塗りはちょっと怖いかもなので、あまり長々したものには使わないほうがいいですね。
57
57
 
@@ -62,12 +62,7 @@ $ @<b>{ls /}
62
62
  === 図
63
63
  採番・キャプション付きの図の貼り付けはimageを使用します(@<img>{ball})。図版ファイルは識別子とビルダが対応しているフォーマットから先着順に探索されます。詳細については@<href>{https://github.com/kmuto/review/wiki/ImagePath, ImagePath}のドキュメントを参照してください。
64
64
 
65
- @<fn>{madebygimp}
66
- 本当はimageのキャプションにfootnoteを付けたいのですが、TeXではエラーになりますね。厳しい……。
67
- #@# FIXME:TeXのキャプションfootnote問題
68
-
69
- #@# //image[ball][ボール@<fn>{madebygimp}]{
70
- //image[ball][ボール]{
65
+ //image[ball][ボール@<fn>{madebygimp}]{
71
66
  //}
72
67
 
73
68
  //footnote[madebygimp][GIMPのフィルタで作成。@<br>{}footnote内改行]
@@ -86,11 +81,8 @@ $ @<b>{ls /}
86
81
  === 表
87
82
  表はtableを使います。@<table>{tab2-1}
88
83
 
89
- tableもキャプション・セル内含めてTeXでは脚注できないですね…
90
- 本当は→@<fn>{tabalign}はキャプション内。TeXだとセル内の脚注は脚注文書が消えています。
91
-
92
- #@# //table[tab2-1][表の@<b>{例}@<fn>{tabalign}]{
93
- //table[tab2-1][表の@<b>{例}]{
84
+ //table[tab2-1][表の@<b>{例}@<fn>{tabalign}]{
85
+ #@#//table[tab2-1][表の@<b>{}]{
94
86
  A B C
95
87
  ----------------------------------
96
88
  D E@<b>{太字bold}@<i>{italicイタ}@<tt>{等幅code} F@<br>{}G
@@ -111,7 +103,7 @@ D E@<b>{太字bold}@<i>{italicイタ}@<tt>{等幅code} F@<br>{}G
111
103
  H I 長いセルの折り返し■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
112
104
  //}
113
105
 
114
- TeXの普通のクラスファイルだと、列指定はl,c,r,p(幅指定+左均等)しかないので、幅指定+左寄せ(均等なし)、幅指定+中寄せ、幅指定+右寄せの指定ができると嬉しそうです。
106
+ TeXの普通のクラスファイルだと、列指定はl,c,r,p(幅指定+左均等)しかないのですが、Re:VIEWのスタイルファイルでL(幅指定+左寄せ,均等なし)、C(幅指定+中寄せ)、R(幅指定+右寄せ)を指定可能です。
115
107
 
116
108
  あとは縦に長い表がTeXだとそのままはみ出してしまうのでlongtableがあるけれどもそれはまた問題がいろいろあり……。
117
109
 
@@ -263,7 +255,7 @@ Tips。@<b>{太字bold}@<i>{italicイタ}@<tt>{等幅code}
263
255
  #@# doorquote、bpo、talk、graph、address、box、linebreak、pagebreak、hr、comment、abbr、acronym、dfn、kbd、q、samp、var、big、small、del、ins、recipe、dtp、raw、embed、include
264
256
 
265
257
  == LaTeX式
266
- LaTeX式はTeX紙面以外は保証されません。EPUBではMathML(@<tt>{mathml: true})を使えますが、表現や互換性が不足しており、LaTeXをバックエンドとして画像化する@<tt>{imgmath: true}のほうがよさそうです。
258
+ LaTeX式はTeX紙面以外は保証されません。EPUBではMathML(@<tt>{math_format: mathml})を使えますが、表現や互換性が不足しており、LaTeXをバックエンドとして画像化する@<tt>{math_format: imgmath}のほうがよさそうです。
267
259
 
268
260
  //texequation{
269
261
  \sum_{i=1}^nf_n(x)
@@ -293,7 +285,7 @@ a_{m1} & \cdots & a_{mn}
293
285
  #@# 場所ラベル定義
294
286
 
295
287
  === 書体
296
- 本文での……キーワード@<kw>{キーワード, keyword}@<fn>{kw}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
288
+ 本文での……キーワード@<kw>{キーワード, keyword}@<fn>{kw}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
297
289
 
298
290
  傍点@<embed>{@}<bou>{bou傍点}、ルビ@<embed>{@}<ruby>{愕然, がくぜん}、縦中横@<embed>{@}<tcy>{90}、はTeXでは現状、別パッケージが必要です。
299
291
  #@# FIXME:TEXでの文字スタイル。外部パッケージが必要
@@ -307,23 +299,25 @@ a_{m1} & \cdots & a_{mn}
307
299
 
308
300
  //footnote[kw][キーワードのカッコは太字にしないほうがいいのかなと思いつつあります(手元の案件では太字にしないよう挙動を変えてしまっているほうが多い)。]
309
301
 
310
- * 箇条書き内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
302
+ * 箇条書き内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
311
303
 
312
304
  //tsize[|latex|p{120mm}]
313
305
  //table{
314
- 表内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
306
+ 表内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
315
307
  //}
316
308
 
317
309
  コードブロック内では対応装飾は減らしてよいと考えます。代わりにballoonが追加されます。
318
310
 
319
- //emlist[キャプション内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}]{
311
+ //emlist[キャプション内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}]{
320
312
  コードブロック内での……
321
313
  太字@<b>{b太字}
322
314
  イタリック@<i>{iイタリック}
323
315
  下線@<u>{u下線}
324
316
  網カケ@<ami>{amiアミ} @<balloon>{ふきだし説明}
317
+ 挿入@<ins>{ins挿入}、削除@<del>{del削除}
325
318
  //}
326
319
 
320
+ === 見出し内 @<b>{BOLD},@<i>{ITALIC},@<tt>{TT},@<strong>{STRONG},@<em>{EM},@<code>{CODE},@<ttb>{TTB},@<tti>{TTI},@<ami>{AMI},@<bou>{BOU},@<kw>{KW},@<u>{UNDERLINE},@<ins>{INS}、@<del>{DEL}
327
321
 
328
322
  ==={crossref} 参照
329
323
  #@# FIXME:任意ラベルを使うと、EPUBチェックエラーになることがある?
@@ -331,7 +325,6 @@ a_{m1} & \cdots & a_{mn}
331
325
  * 章番号:@<chap>{ch01}、@<chap>{appA}、@<chap>{part2}、@<chap>{bib}
332
326
  * 章題:@<title>{ch01}、@<title>{part2}、@<title>{appA}、@<title>{bib}
333
327
  * 章番号+題:@<chapref>{ch02}、@<chapref>{part2}、@<chapref>{appA}、@<chapref>{bib}
334
- #@# FIXME:TeXで、部が実際のページではIIなのに参照では2になっているのはおかしい→i18n.ymlがおかしいせいか
335
328
 
336
329
  節や項への参照はhdを使います。
337
330
 
@@ -347,10 +340,24 @@ labelで定義したラベルへの参照の例です。EPUBだと@<href>{#inlin
347
340
  #@# FIXME:EPUB側にTeXのほうを寄せるようにRe:VIEWコードを直す
348
341
  #@# FIXME:TeXではpagerefがほしい、ということがありそう。EPUBとの整合性を検討
349
342
 
343
+ 説明箇条書きはTeXで特殊な扱いをしているため、参照の確認を以下でしておきます。
344
+
345
+ : @<chap>{ch01}
346
+ 章番号
347
+ : @<title>{ch01}
348
+ 章題
349
+ : @<chapref>{ch01}
350
+ 章番号+題
351
+ : @<hd>{ch02|crossref}
352
+
353
+ : @<column>{ch03|column2}
354
+ コラム参照
355
+
350
356
  === 参考文献
351
357
  参考文献@<tt>{bib.re}ファイルへの文献参照は、@<bib>{lins}とします。
352
358
 
353
359
  === 索引
354
360
  @<hidx>{索引}@<hidx>{index}索引はTeXとIDGXML以外では妥当な動作を定義していません。idx@<hidx>{索引<<>>idx}は文中にも表示し、hidx@<hidx>{索引<<>>hidx}は文中からは隠した形の索引にします。読みは@<idx>{Mecab}があればそちらを使いますが、@<idx>{辞書ファイル}を直接定義することもできます。@<hidx>{!<>"$&()~=|,./\{\}?_[]*:;+%#()'`^}
361
+ @<hidx>{|}@<hidx>{{}@<hidx>$}$
355
362
 
356
363
  idx, hidxいずれも=見出しの中には入れないようにし、後続の段落先頭にhidxで入れるように注意します(入れてしまうと目次などがおかしくなります)。