review 4.0.0 → 5.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (268) 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 +141 -38
  6. data/Dockerfile +21 -5
  7. data/NEWS.ja.md +338 -1
  8. data/NEWS.md +339 -2
  9. data/README.md +11 -7
  10. data/Rakefile +7 -2
  11. data/appveyor.yml +0 -20
  12. data/bin/review +2 -4
  13. data/bin/review-catalog-converter +4 -4
  14. data/bin/review-check +8 -12
  15. data/bin/review-checkdep +2 -5
  16. data/bin/review-compile +11 -20
  17. data/bin/review-epub2html +1 -4
  18. data/bin/review-epubmaker +3 -4
  19. data/bin/review-idgxmlmaker +1 -3
  20. data/bin/review-index +5 -86
  21. data/bin/review-init +1 -4
  22. data/bin/review-pdfmaker +1 -3
  23. data/bin/review-preproc +3 -5
  24. data/bin/review-textmaker +1 -3
  25. data/bin/review-update +1 -4
  26. data/bin/review-validate +5 -5
  27. data/bin/review-vol +5 -82
  28. data/bin/review-webmaker +1 -3
  29. data/doc/config.yml.sample +55 -12
  30. data/doc/config.yml.sample-simple +4 -3
  31. data/doc/format.ja.md +119 -17
  32. data/doc/format.md +106 -17
  33. data/doc/makeindex.ja.md +2 -2
  34. data/doc/pdfmaker.ja.md +42 -0
  35. data/doc/pdfmaker.md +41 -0
  36. data/doc/quickstart.ja.md +55 -25
  37. data/doc/quickstart.md +47 -17
  38. data/lib/review.rb +1 -1
  39. data/lib/review/book.rb +2 -2
  40. data/lib/review/book/base.rb +69 -30
  41. data/lib/review/book/bib.rb +21 -0
  42. data/lib/review/book/book_unit.rb +158 -0
  43. data/lib/review/book/chapter.rb +33 -26
  44. data/lib/review/book/index.rb +39 -206
  45. data/lib/review/book/index/item.rb +8 -2
  46. data/lib/review/book/page_metric.rb +7 -7
  47. data/lib/review/book/part.rb +26 -11
  48. data/lib/review/book/volume.rb +5 -5
  49. data/lib/review/builder.rb +124 -27
  50. data/lib/review/call_hook.rb +20 -0
  51. data/lib/review/catalog.rb +3 -2
  52. data/lib/review/compiler.rb +197 -91
  53. data/lib/review/configure.rb +95 -9
  54. data/lib/review/converter.rb +1 -1
  55. data/lib/review/epub2html.rb +6 -1
  56. data/lib/review/epubmaker.rb +116 -117
  57. data/lib/review/epubmaker/content.rb +113 -0
  58. data/lib/review/epubmaker/epubcommon.rb +372 -0
  59. data/lib/review/epubmaker/epubv2.rb +178 -0
  60. data/lib/review/epubmaker/epubv3.rb +231 -0
  61. data/lib/review/epubmaker/producer.rb +168 -0
  62. data/lib/review/epubmaker/reviewheaderlistener.rb +12 -2
  63. data/lib/review/epubmaker/zip_exporter.rb +84 -0
  64. data/lib/review/exception.rb +6 -0
  65. data/lib/review/extentions/string.rb +0 -4
  66. data/lib/review/htmlbuilder.rb +132 -87
  67. data/lib/review/htmlutils.rb +8 -11
  68. data/lib/review/i18n.rb +2 -1
  69. data/lib/review/idgxmlbuilder.rb +156 -76
  70. data/lib/review/idgxmlmaker.rb +22 -18
  71. data/lib/review/img_math.rb +245 -0
  72. data/lib/review/index_builder.rb +654 -0
  73. data/lib/review/init.rb +17 -18
  74. data/lib/review/latexbox.rb +58 -0
  75. data/lib/review/latexbuilder.rb +173 -43
  76. data/lib/review/latexutils.rb +9 -1
  77. data/lib/review/lineinput.rb +112 -2
  78. data/lib/review/logger.rb +42 -3
  79. data/lib/review/makerhelper.rb +12 -187
  80. data/lib/review/markdownbuilder.rb +51 -2
  81. data/lib/review/pdfmaker.rb +78 -73
  82. data/lib/review/plaintextbuilder.rb +98 -14
  83. data/lib/review/preprocessor.rb +18 -12
  84. data/lib/review/rstbuilder.rb +28 -9
  85. data/lib/review/sec_counter.rb +14 -0
  86. data/lib/review/template.rb +6 -0
  87. data/lib/review/textmaker.rb +21 -19
  88. data/lib/review/textutils.rb +3 -12
  89. data/lib/review/tocprinter.rb +242 -97
  90. data/lib/review/topbuilder.rb +91 -24
  91. data/lib/review/update.rb +12 -13
  92. data/lib/review/version.rb +1 -1
  93. data/lib/review/volumeprinter.rb +97 -0
  94. data/lib/review/webmaker.rb +34 -33
  95. data/lib/review/webtocprinter.rb +39 -35
  96. data/lib/review/yamlloader.rb +2 -1
  97. data/review.gemspec +5 -3
  98. data/samples/sample-book/src/.gitignore +1 -0
  99. data/samples/sample-book/src/config-ebook.yml +4 -0
  100. data/samples/sample-book/src/config-epub2.yml +1 -1
  101. data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
  102. data/samples/sample-book/src/config.yml +3 -3
  103. data/samples/sample-book/src/lib/tasks/review.rake +26 -6
  104. data/samples/syntax-book/Gemfile +1 -1
  105. data/samples/syntax-book/ch01.re +3 -1
  106. data/samples/syntax-book/ch02.re +28 -21
  107. data/samples/syntax-book/ch03.re +1 -1
  108. data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
  109. data/samples/syntax-book/config-print.yml +3 -0
  110. data/samples/syntax-book/config.yml +1 -1
  111. data/samples/syntax-book/images/img3-2.png +0 -0
  112. data/samples/syntax-book/lib/tasks/review.rake +23 -8
  113. data/templates/html/_colophon.html.erb +23 -0
  114. data/templates/html/_colophon_history.html.erb +9 -0
  115. data/templates/html/_cover.html.erb +10 -0
  116. data/templates/html/_part_body.html.erb +6 -0
  117. data/templates/html/_titlepage.html.erb +20 -0
  118. data/templates/html/layout-html5.html.erb +6 -0
  119. data/templates/html/layout-xhtml1.html.erb +6 -0
  120. data/templates/latex/config.erb +41 -29
  121. data/templates/latex/review-jlreq/README.md +3 -1
  122. data/templates/latex/review-jlreq/review-base.sty +47 -22
  123. data/templates/latex/review-jlreq/review-jlreq.cls +25 -24
  124. data/templates/latex/review-jlreq/review-style.sty +6 -1
  125. data/templates/latex/review-jlreq/review-tcbox.sty +348 -0
  126. data/templates/latex/review-jlreq/reviewmacro.sty +5 -0
  127. data/templates/latex/review-jsbook/README.md +7 -5
  128. data/templates/latex/review-jsbook/review-base.sty +47 -21
  129. data/templates/latex/review-jsbook/review-jsbook.cls +12 -2
  130. data/templates/latex/review-jsbook/review-style.sty +6 -1
  131. data/templates/latex/review-jsbook/review-tcbox.sty +348 -0
  132. data/templates/latex/review-jsbook/reviewmacro.sty +5 -0
  133. data/templates/opf/epubv2.opf.erb +7 -7
  134. data/templates/opf/epubv3.opf.erb +7 -7
  135. data/templates/opf/opf_manifest_epubv2.opf.erb +10 -0
  136. data/templates/opf/opf_manifest_epubv3.opf.erb +10 -0
  137. data/templates/opf/opf_metainfo_epubv2.opf.erb +17 -0
  138. data/templates/opf/opf_metainfo_epubv3.opf.erb +49 -0
  139. data/templates/opf/opf_tocx_epubv2.opf.erb +9 -0
  140. data/templates/opf/opf_tocx_epubv3.opf.erb +17 -0
  141. data/templates/web/html/layout-html5.html.erb +9 -8
  142. data/templates/web/html/layout-xhtml1.html.erb +6 -0
  143. data/test/assets/header_listener.html +35 -0
  144. data/test/assets/img_math/img1.png +0 -0
  145. data/test/assets/img_math/img2.png +0 -0
  146. data/test/assets/img_math/img3.png +0 -0
  147. data/test/assets/syntax_book_index_detail.txt +58 -0
  148. data/test/assets/test_template.tex +12 -9
  149. data/test/assets/test_template_backmatter.tex +12 -9
  150. data/test/book_test_helper.rb +11 -5
  151. data/test/run_test.rb +1 -1
  152. data/test/test_book.rb +62 -63
  153. data/test/test_book_chapter.rb +99 -56
  154. data/test/test_book_part.rb +3 -3
  155. data/test/test_builder.rb +24 -15
  156. data/test/test_catalog.rb +1 -0
  157. data/test/test_catalog_converter_cmd.rb +1 -1
  158. data/test/test_converter.rb +1 -0
  159. data/test/test_epub3maker.rb +170 -126
  160. data/test/test_epubmaker.rb +249 -129
  161. data/test/test_epubmaker_cmd.rb +14 -7
  162. data/test/test_helper.rb +23 -11
  163. data/test/test_htmlbuilder.rb +956 -76
  164. data/test/test_htmlutils.rb +0 -12
  165. data/test/test_i18n.rb +33 -33
  166. data/test/test_idgxmlbuilder.rb +568 -10
  167. data/test/test_idgxmlmaker_cmd.rb +50 -0
  168. data/test/test_image_finder.rb +52 -70
  169. data/test/test_img_math.rb +111 -0
  170. data/test/test_index.rb +62 -52
  171. data/test/test_indexbuilder.rb +52 -0
  172. data/test/test_latexbuilder.rb +1056 -30
  173. data/test/test_latexbuilder_v2.rb +52 -12
  174. data/test/test_lineinput.rb +20 -93
  175. data/test/test_logger.rb +7 -7
  176. data/test/test_makerhelper.rb +0 -12
  177. data/test/test_markdownbuilder.rb +32 -0
  178. data/test/test_pdfmaker.rb +100 -11
  179. data/test/test_pdfmaker_cmd.rb +101 -7
  180. data/test/test_plaintextbuilder.rb +531 -25
  181. data/test/test_review_ext.rb +2 -1
  182. data/test/test_reviewheaderlistener.rb +49 -0
  183. data/test/test_rstbuilder.rb +25 -1
  184. data/test/test_sec_counter.rb +156 -0
  185. data/test/test_template.rb +12 -2
  186. data/test/test_textmaker_cmd.rb +58 -0
  187. data/test/test_tocprinter.rb +46 -0
  188. data/test/test_topbuilder.rb +365 -10
  189. data/test/test_update.rb +44 -44
  190. data/test/test_webtocprinter.rb +75 -43
  191. data/test/test_zip_exporter.rb +5 -6
  192. data/vendor/gentombow/LICENSE +1 -1
  193. data/vendor/gentombow/Makefile +0 -1
  194. data/vendor/gentombow/bounddvi-en.pdf +0 -0
  195. data/vendor/gentombow/bounddvi-en.tex +1 -0
  196. data/vendor/gentombow/bounddvi.pdf +0 -0
  197. data/vendor/gentombow/bounddvi.sty +30 -7
  198. data/vendor/gentombow/bounddvi.tex +1 -0
  199. data/vendor/gentombow/create_archive.sh +1 -0
  200. data/vendor/gentombow/gentombow-ja.pdf +0 -0
  201. data/vendor/gentombow/gentombow-ja.tex +9 -0
  202. data/vendor/gentombow/gentombow.pdf +0 -0
  203. data/vendor/gentombow/gentombow.sty +32 -10
  204. data/vendor/gentombow/gentombow.tex +8 -0
  205. data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
  206. data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
  207. data/vendor/jsclasses/LICENSE +1 -1
  208. data/vendor/jsclasses/Makefile +3 -2
  209. data/vendor/jsclasses/create_archive.sh +5 -5
  210. data/vendor/jsclasses/jis/Makefile +3 -2
  211. data/vendor/jsclasses/jis/jsarticle.cls +74 -31
  212. data/vendor/jsclasses/jis/jsbook.cls +74 -31
  213. data/vendor/jsclasses/jis/jsclasses.dtx +176 -36
  214. data/vendor/jsclasses/jis/jsclasses.ins +15 -5
  215. data/vendor/jsclasses/jis/jslogo.dtx +4 -4
  216. data/vendor/jsclasses/jis/jslogo.ins +9 -0
  217. data/vendor/jsclasses/jis/jslogo.sty +4 -16
  218. data/vendor/jsclasses/jis/jspf.cls +73 -30
  219. data/vendor/jsclasses/jis/jsreport.cls +74 -31
  220. data/vendor/jsclasses/jis/jsverb.ins +9 -0
  221. data/vendor/jsclasses/jis/jsverb.sty +1 -13
  222. data/vendor/jsclasses/jis/kiyou.cls +74 -31
  223. data/vendor/jsclasses/jis/minijs.sty +65 -22
  224. data/vendor/jsclasses/jis/okumacro.dtx +4 -5
  225. data/vendor/jsclasses/jis/okumacro.ins +9 -0
  226. data/vendor/jsclasses/jis/okumacro.sty +4 -17
  227. data/vendor/jsclasses/jis/okuverb.ins +9 -0
  228. data/vendor/jsclasses/jis/okuverb.sty +1 -13
  229. data/vendor/jsclasses/jis/winjis.sty +23 -19
  230. data/vendor/jsclasses/jsarticle.cls +74 -31
  231. data/vendor/jsclasses/jsbook.cls +74 -31
  232. data/vendor/jsclasses/jsclasses.dtx +176 -36
  233. data/vendor/jsclasses/jsclasses.ins +15 -5
  234. data/vendor/jsclasses/jsclasses.pdf +0 -0
  235. data/vendor/jsclasses/jslogo.dtx +4 -4
  236. data/vendor/jsclasses/jslogo.ins +9 -0
  237. data/vendor/jsclasses/jslogo.pdf +0 -0
  238. data/vendor/jsclasses/jslogo.sty +4 -16
  239. data/vendor/jsclasses/jspf.cls +73 -30
  240. data/vendor/jsclasses/jsreport.cls +74 -31
  241. data/vendor/jsclasses/jsverb.ins +9 -0
  242. data/vendor/jsclasses/jsverb.pdf +0 -0
  243. data/vendor/jsclasses/jsverb.sty +1 -13
  244. data/vendor/jsclasses/kiyou.cls +74 -31
  245. data/vendor/jsclasses/minijs.sty +68 -22
  246. data/vendor/jsclasses/okumacro.dtx +4 -5
  247. data/vendor/jsclasses/okumacro.ins +9 -0
  248. data/vendor/jsclasses/okumacro.pdf +0 -0
  249. data/vendor/jsclasses/okumacro.sty +4 -17
  250. data/vendor/jsclasses/okuverb.ins +9 -0
  251. data/vendor/jsclasses/okuverb.pdf +0 -0
  252. data/vendor/jsclasses/okuverb.sty +1 -13
  253. data/vendor/jsclasses/tests/relfont.tex +10 -0
  254. data/vendor/jsclasses/winjis.sty +23 -19
  255. metadata +109 -20
  256. data/.rubocop_todo.yml +0 -7
  257. data/lib/epubmaker.rb +0 -23
  258. data/lib/epubmaker/content.rb +0 -110
  259. data/lib/epubmaker/epubcommon.rb +0 -441
  260. data/lib/epubmaker/epubv2.rb +0 -143
  261. data/lib/epubmaker/epubv3.rb +0 -233
  262. data/lib/epubmaker/producer.rb +0 -375
  263. data/lib/epubmaker/zip_exporter.rb +0 -81
  264. data/lib/lineinput.rb +0 -155
  265. data/lib/review/book/compilable.rb +0 -178
  266. data/lib/review/tocparser.rb +0 -271
  267. data/samples/syntax-book/review-ext.rb +0 -14
  268. data/test/test_tocparser.rb +0 -25
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2006-2018 Minero Aoki, Kenshi Muto, Masayoshi Takahashi, Masanori Kado.
1
+ # Copyright (c) 2006-2020 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
@@ -21,7 +21,7 @@
21
21
  require 'fileutils'
22
22
  require 'rake/clean'
23
23
 
24
- BOOK = ENV['REVIEW_BOOK'] || 'book'
24
+ BOOK = ENV['REVIEW_BOOK'] || 'syntax-book'
25
25
  BOOK_PDF = BOOK + '.pdf'
26
26
  BOOK_EPUB = BOOK + '.epub'
27
27
  CONFIG_FILE = ENV['REVIEW_CONFIG_FILE'] || 'config.yml'
@@ -29,6 +29,12 @@ 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'] || ''
32
38
 
33
39
  def build(mode, chapter)
34
40
  sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp")
@@ -74,12 +80,17 @@ task web: WEBROOT
74
80
 
75
81
  desc 'generate text file (without decoration)'
76
82
  task plaintext: TEXTROOT do
77
- sh "review-textmaker -n #{CONFIG_FILE}"
83
+ sh "review-textmaker #{TEXT_OPTIONS} -n #{CONFIG_FILE}"
78
84
  end
79
85
 
80
86
  desc 'generate (decorated) text file'
81
87
  task text: TOPROOT do
82
- sh "review-textmaker #{CONFIG_FILE}"
88
+ sh "review-textmaker #{TEXT_OPTIONS} #{CONFIG_FILE}"
89
+ end
90
+
91
+ desc 'generate IDGXML file'
92
+ task idgxml: IDGXMLROOT do
93
+ sh "review-idgxmlmaker #{IDGXML_OPTIONS} #{CONFIG_FILE}"
83
94
  end
84
95
 
85
96
  desc 'generate EPUB file'
@@ -93,21 +104,25 @@ SRC_PDF = FileList['layouts/*.erb', 'sty/**/*.sty']
93
104
 
94
105
  file BOOK_PDF => SRC + SRC_PDF do
95
106
  FileUtils.rm_rf([BOOK_PDF, BOOK, BOOK + '-pdf'])
96
- sh "review-pdfmaker #{CONFIG_FILE}"
107
+ sh "review-pdfmaker #{PDF_OPTIONS} #{CONFIG_FILE}"
97
108
  end
98
109
 
99
110
  file BOOK_EPUB => SRC + SRC_EPUB do
100
111
  FileUtils.rm_rf([BOOK_EPUB, BOOK, BOOK + '-epub'])
101
- sh "review-epubmaker #{CONFIG_FILE}"
112
+ sh "review-epubmaker #{EPUB_OPTIONS} #{CONFIG_FILE}"
102
113
  end
103
114
 
104
115
  file WEBROOT => SRC do
105
116
  FileUtils.rm_rf([WEBROOT])
106
- sh "review-webmaker #{CONFIG_FILE}"
117
+ sh "review-webmaker #{WEB_OPTIONS} #{CONFIG_FILE}"
107
118
  end
108
119
 
109
120
  file TEXTROOT => SRC do
110
121
  FileUtils.rm_rf([TEXTROOT])
111
122
  end
112
123
 
113
- CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', TEXTROOT])
124
+ file IDGXMLROOT => SRC do
125
+ FileUtils.rm_rf([IDGXMLROOT])
126
+ end
127
+
128
+ CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', 'images/_review_math_text', TEXTROOT, IDGXMLROOT])
@@ -0,0 +1,23 @@
1
+ <div class="colophon">
2
+ <% if @config['subtitle'].nil? %>
3
+ <p class="title"><%= h(@config.name_of('title')) %></p>
4
+ <% else %>
5
+ <p class="title"><%= h(@config.name_of('title')) %><br /><span class="subtitle"><%= h(@config.name_of('subtitle')) %></span></p>
6
+ <% end %>
7
+ <% if @config['date'] || @config['history'] %>
8
+ <%= colophon_history %>
9
+ <% end %>
10
+ <table class="colophon">
11
+ <% @config['colophon_order'].each do |role| %>
12
+ <% if @config[role] %>
13
+ <tr><th><%= h(ReVIEW::I18n.t(role)) %></th><td><%= h(join_with_separator(config.names_of(role), ReVIEW::I18n.t('names_splitter'))) %></td></tr>
14
+ <% end %>
15
+ <% end %>
16
+ <% if @isbn_hyphen %>
17
+ <tr><th>ISBN</th><td><%= @isbn_hyphen %></td></tr>
18
+ <% end %>
19
+ </table>
20
+ <% if @config['rights'] && !@config['rights'].empty? %>
21
+ <p class="copyright"><%= join_with_separator(config.names_of('rights').map { |m| h(m) }, '<br />') %></p>
22
+ <% end %>
23
+ </div>
@@ -0,0 +1,9 @@
1
+ <div class="pubhistory">
2
+ <% if @config['history'] %>
3
+ <% @col_history.each do |item| %>
4
+ <p><%= item %></p>
5
+ <% end %>
6
+ <% else %>
7
+ <p><%= ReVIEW::I18n.t('published_by2', date_to_s(@config['date'])) %></p>
8
+ <% end %>
9
+ </div>
@@ -0,0 +1,10 @@
1
+ <% if @coverimage_src %>
2
+ <div id="cover-image" class="cover-image">
3
+ <img src="<%= @coverimage_src %>" alt="<%= h(@config.name_of('title')) %>" class="max"/>
4
+ </div>
5
+ <% else %>
6
+ <h1 class="cover-title"><%= h(@config.name_of('title')) %></h1>
7
+ <% if @config['subtitle'] %>
8
+ <h2 class="cover-subtitle"><%= h(@config.name_of('subtitle')) %></h2>
9
+ <% end %>
10
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <div class="part">
2
+ <h1 class="part-number"><%= h(ReVIEW::I18n.t('part', @part_number)) %></h1>
3
+ <% if @part_title.present? %>
4
+ <h2 class="part-title"><%= h(@part_title) %></h2>
5
+ <% end %>
6
+ </div>
@@ -0,0 +1,20 @@
1
+ <h1 class="tp-title"><%= @title_str %></h1>
2
+ <% if @subtitle_str %>
3
+ <h2 class="tp-subtitle"><%= h(@subtitle_str) %></h2>
4
+ <% end %>
5
+ <% if @author_str %>
6
+ <p>
7
+ <br />
8
+ <br />
9
+ </p>
10
+ <h2 class="tp-author"><%= h(@author_str) %></h2>
11
+ <% end %>
12
+ <% if @publisher_str %>
13
+ <p>
14
+ <br />
15
+ <br />
16
+ <br />
17
+ <br />
18
+ </p>
19
+ <h3 class="tp-publisher"><%= h(@publisher_str) %></h3>
20
+ <% end %>
@@ -3,6 +3,12 @@
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:ops="http://www.idpf.org/2007/ops" xml:lang="<%= @language %>">
4
4
  <head>
5
5
  <meta charset="UTF-8" />
6
+ <% if @javascripts.present? %>
7
+ <% @javascripts.each do |js| %>
8
+ <%= js %>
9
+
10
+ <% end %>
11
+ <% end %>
6
12
  <% if @stylesheets.present? %>
7
13
  <% @stylesheets.each do |style| %>
8
14
  <link rel="stylesheet" type="text/css" href="<%= style %>" />
@@ -4,6 +4,12 @@
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
6
6
  <meta http-equiv="Content-Style-Type" content="text/css"/>
7
+ <% if @javascripts.present? %>
8
+ <% @javascripts.each do |js| %>
9
+ <%= js %>
10
+
11
+ <% end %>
12
+ <% end %>
7
13
  <% if @stylesheets.present? %>
8
14
  <% @stylesheets.each do |style| %>
9
15
  <link rel="stylesheet" type="text/css" href="<%= style %>" />
@@ -1,50 +1,51 @@
1
+ <%- initialize_metachars(@config['texcommand']) -%>
1
2
  \makeatletter
2
3
  \def\review@reviewversion{<%= ReVIEW::VERSION %>}
3
4
  \def\review@texcompiler{<%= @texcompiler %>}
4
5
  \def\review@documentclass{<%= @documentclass %>}
5
6
 
6
7
  <%- %w(booktitle subtitle).each do |item| -%>
7
- <%- if @config[item] -%>\def\review@<%= item %>name{<%= escape_latex(@config.name_of(item)) %>}
8
+ <%- if @config[item] -%>\def\review@<%= item %>name{<%= escape(@config.name_of(item)) %>}
8
9
  <%- end -%>
9
10
  <%- end -%>
10
11
 
11
- <%- %w(aut adp ann arr art asn aqt aft aui ant bkp clb cmm csl dsr edt ill lyr mdc mus nrt oth pht pbl prt red rev spn ths trc trl).each do |item| %><%- if @config[item] -%>\def\review@<%= item %>names{<%= escape_latex(@config.names_of(item).join(I18n.t('names_splitter'))) %>}
12
+ <%- %w(aut adp ann arr art asn aqt aft aui ant bkp clb cmm csl dsr edt ill lyr mdc mus nrt oth pht pbl prt red rev spn ths trc trl).each do |item| %><%- if @config[item] -%>\def\review@<%= item %>names{<%= escape(@config.names_of(item).join(I18n.t('names_splitter'))) %>}
12
13
  <%- end -%>
13
14
  <%- end -%>
14
15
 
15
16
  \def\review@titlepageauthors{<%= @authors %>}
16
- \def\review@date{<%= escape_latex(@config['date'].to_s) %>}
17
+ \def\review@date{<%= escape(@config['date'].to_s) %>}
17
18
 
18
- <%- %w(bookname language urnid isbn).each do |item| -%><%- if @config[item] -%>\def\review@<%= item %>{<%= escape_latex(@config[item]) %>}
19
+ <%- %w(bookname language urnid isbn).each do |item| -%><%- if @config[item] -%>\def\review@<%= item %>{<%= escape(@config[item]) %>}
19
20
  <%- end -%>
20
21
  <%- end -%>
21
22
  <%- %w(rights description subject type format source relation coverage).each do |item| -%>
22
23
  <%- if @config[item] -%>
23
- <%- a = [@config[item]].flatten -%>\def\review@<%= item %>{<%= a.map{|s| escape_latex(s)}.join('\\' + '\\') %>}
24
+ <%- a = [@config[item]].flatten -%>\def\review@<%= item %>{<%= a.map{|s| escape(s)}.join('\\' + '\\') %>}
24
25
  <%- end -%>
25
26
  <%- end -%>
26
27
 
27
28
  <%- if @config['highlight'] && @config['highlight']['latex'] -%>\def\review@highlightlatex{<%= @config['highlight']['latex'] %>}
28
29
  <%- end -%>
29
30
 
30
- \def\review@intn@list{<%= escape_latex(I18n.t('list')) %>}
31
- \def\review@intn@columnhead{<%= escape_latex(I18n.t('column_head')) %>}
32
- \def\review@intn@image{<%= escape_latex(I18n.t('image')) %>}
33
- \def\review@intn@table{<%= escape_latex(I18n.t('table')) %>}
34
- \def\review@intn@equation{<%= escape_latex(I18n.t('equation')) %>}
35
- \def\review@intn@columnname{<%= escape_latex(I18n.t('columnname')) %>}
36
- \def\review@intn@memohead{<%= escape_latex(I18n.t('memo_head')) %>}
37
- \def\review@intn@edition{<%= escape_latex(I18n.t('edition')) %>}
38
- \def\review@intn@publishedby{<%= escape_latex(I18n.t('published_by', @config.names_of('pbl').join(I18n.t('names_splitter'))))%>}
39
- \def\review@intn@captionprefix{<%= escape_latex(I18n.t('caption_prefix')) %>}
40
- \def\review@toctitle{<%= escape_latex(@config['toctitle'].present? ? @config['toctitle'] : I18n.t('toctitle')) %>}
41
- \def\review@prepartname{<%= escape_latex(@locale_latex['prepartname']) %>}
42
- \def\review@postpartname{<%= escape_latex(@locale_latex['postpartname']) %>}
43
- \def\review@prechaptername{<%= escape_latex(@locale_latex['prechaptername']) %>}
44
- \def\review@postchaptername{<%= escape_latex(@locale_latex['postchaptername']) %>}
45
- \def\review@figurename{<%= escape_latex(I18n.t('image')) %>}
46
- \def\review@tablename{<%= escape_latex(I18n.t('table')) %>}
47
- \def\review@appendixname{<%= escape_latex(@locale_latex['preappendixname']) %>}
31
+ \def\review@intn@list{<%= escape(I18n.t('list')) %>}
32
+ \def\review@intn@columnhead{<%= escape(I18n.t('column_head')) %>}
33
+ \def\review@intn@image{<%= escape(I18n.t('image')) %>}
34
+ \def\review@intn@table{<%= escape(I18n.t('table')) %>}
35
+ \def\review@intn@equation{<%= escape(I18n.t('equation')) %>}
36
+ \def\review@intn@columnname{<%= escape(I18n.t('columnname')) %>}
37
+ \def\review@intn@memohead{<%= escape(I18n.t('memo_head')) %>}
38
+ \def\review@intn@edition{<%= escape(I18n.t('edition')) %>}
39
+ \def\review@intn@publishedby{<%= escape(I18n.t('published_by', @config.names_of('pbl').join(I18n.t('names_splitter'))))%>}
40
+ \def\review@intn@captionprefix{<%= escape(I18n.t('caption_prefix')) %>}
41
+ \def\review@toctitle{<%= escape(@config['toctitle'].present? ? @config['toctitle'] : I18n.t('toctitle')) %>}
42
+ \def\review@prepartname{<%= escape(@locale_latex['prepartname']) %>}
43
+ \def\review@postpartname{<%= escape(@locale_latex['postpartname']) %>}
44
+ \def\review@prechaptername{<%= escape(@locale_latex['prechaptername']) %>}
45
+ \def\review@postchaptername{<%= escape(@locale_latex['postchaptername']) %>}
46
+ \def\review@figurename{<%= escape(I18n.t('image')) %>}
47
+ \def\review@tablename{<%= escape(I18n.t('table')) %>}
48
+ \def\review@appendixname{<%= escape(@locale_latex['preappendixname']) %>}
48
49
 
49
50
  <%- if @config['toc'] -%>
50
51
  \def\review@toc{true}
@@ -100,18 +101,29 @@
100
101
  <%- if @config['use_part'] -%>
101
102
  \def\reviewusepart{true}
102
103
  <%- end -%>
104
+ <%- if @config['pdfmaker']['bbox'] -%>
105
+ \def\review@bbox{<%= @config['pdfmaker']['bbox'] %>}
106
+ <%- end -%>
107
+ <%- if @boxsetting -%>
108
+ \newcommand{\reviewboxsetting}{%
109
+ <%= @boxsetting %>%
110
+ }
111
+ <%- end -%>
103
112
 
104
113
  \def\reviewbackcompatibilityhook{
105
- \@ifundefined{reviewimagecaption}{% for 3.0.0 compatibility
114
+ \ifdefined\reviewimagecaption\else% for 3.0.0 compatibility
106
115
  \newcommand{\reviewimagecaption}[1]{\caption{##1}}
107
- }
108
- \@ifundefined{reviewincludegraphics}{% for 3.2.0 compatibility
116
+ \fi
117
+ \ifdefined\reviewincludegraphics\else% for 3.2.0 compatibility
109
118
  \DeclareRobustCommand{\reviewincludegraphics}[2][]{%
110
119
  \includegraphics[##1]{##2}}
111
- }
112
- \@ifundefined{covermatter}{% for 4.0.0 compatibility
120
+ \fi
121
+ \ifdefined\covermatter\else% for 4.0.0 compatibility
113
122
  \def\covermatter{}
114
- }
123
+ \fi
124
+ \ifdefined\reviewchapref\else% for 5.1.0 compatibility
125
+ \newcommand{\reviewchapref}[2]{\hyperref[##2]{##1}}
126
+ \fi
115
127
  }
116
128
 
117
129
  \makeatother
@@ -38,7 +38,9 @@ texdocumentclass: ["review-jlreq", "クラスオプションたち(省略可
38
38
 
39
39
  `media` の値によって表紙(config.yml の coverimage に指定した画像)の配置の有無は自動で切り替わりますが、`cover=true` とすれば必ず表紙を入れるようになります。
40
40
 
41
- なお、config.yml coverimage で指定する画像ファイルは、原寸を想定しています。
41
+ ### 表紙画像のサイズの仕上がり紙面合わせ `cover_fit_page=<trueまたはfalse>`
42
+
43
+ 上記の coverimage で指定する画像ファイルは、原寸を想定しているため、サイズが異なる場合にははみ出たり、小さすぎたりすることになります。できるだけ原寸で用意することを推奨しますが、`cover_fit_page=true` とすれば表紙画像を紙面の仕上がりサイズに合わせて拡縮します。
42
44
 
43
45
  ### 特定の用紙サイズ `paper=<用紙サイズ>`
44
46
 
@@ -1,21 +1,30 @@
1
+ \ProvidesClass{review-base}[2020/12/31]
1
2
  % jlreq用基本設定
2
3
  \def\recls@tmp{luatex}\ifx\recls@tmp\recls@driver
3
4
  \hypersetup{
4
5
  pdftitle={\review@booktitlename},
5
- pdfauthor={\review@autnames},
6
+ pdfauthor={\ifdefined\review@autnames\review@autnames\fi},
6
7
  pdfcreator={Re:VIEW \review@reviewversion, with LaTeX}
7
8
  }
8
9
  \else
9
- \newcommand*\PDFDocumentInformation[1]{%
10
- \AtBeginShipoutFirst{\special{pdf:docinfo <<#1>>}}}
11
- \@onlypreamble\PDFDocumentInformation
12
- \PDFDocumentInformation{
13
- /Title (\review@booktitlename)
14
- /Author (\review@autnames)
15
- % /Subject ()
16
- % /Keywords (,,)
17
- /Creator (Re:VIEW \review@reviewversion, with LaTeX)
18
- }
10
+ \def\recls@tmp{ebook}\ifx\recls@cameraready\recls@tmp
11
+ \hypersetup{
12
+ pdftitle={\review@booktitlename},
13
+ pdfauthor={\ifdefined\review@autnames\review@autnames\fi},
14
+ pdfcreator={Re:VIEW \review@reviewversion, with LaTeX}
15
+ }
16
+ \else
17
+ \newcommand*\PDFDocumentInformation[1]{%
18
+ \AtBeginShipoutFirst{\special{pdf:docinfo <<#1>>}}}
19
+ \@onlypreamble\PDFDocumentInformation
20
+ \PDFDocumentInformation{
21
+ /Title (\review@booktitlename)
22
+ \ifdefined\review@autnames /Author (\review@autnames)\fi
23
+ % /Subject ()
24
+ % /Keywords (,,)
25
+ /Creator (Re:VIEW \review@reviewversion, with LaTeX)
26
+ }
27
+ \fi
19
28
  \fi
20
29
 
21
30
  \RequirePackage{pxrubrica}
@@ -25,21 +34,26 @@
25
34
 
26
35
  \long\def\review@ifempty#1{\expandafter\ifx\expandafter\relax\detokenize{#1}\relax\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
27
36
 
37
+ %% pass bbox setting to extractbb of graphicx
38
+ \ifdefined\review@bbox
39
+ \def\Gin@pagebox{\review@bbox}
40
+ \fi
41
+
28
42
  % コードリスト装飾のデフォルト
29
43
  \newenvironment{reviewemlist}{%
30
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!10,colframe=black!10,boxrule=0mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\begin{alltt}}%
44
+ \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!10,colframe=black!10,boxrule=0mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
31
45
  {\end{alltt}\end{tcolorbox}}
32
46
 
33
47
  \newenvironment{reviewlist}{%
34
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\begin{alltt}}%
48
+ \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
35
49
  {\end{alltt}\end{tcolorbox}}
36
50
 
37
51
  \newenvironment{reviewsource}{%
38
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\begin{alltt}}%
52
+ \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
39
53
  {\end{alltt}\end{tcolorbox}}
40
54
 
41
55
  \newenvironment{reviewcmd}{%
42
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!99,coltext=white,colframe=black!99,boxrule=0mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\xkanjiskip=\reviewlistxkanjiskip\fi\begin{alltt}}%
56
+ \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!99,coltext=white,colframe=black!99,boxrule=0mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
43
57
  {\end{alltt}\end{tcolorbox}}
44
58
 
45
59
  % 図
@@ -121,9 +135,10 @@
121
135
  \newcommand{\reviewtableref}[2]{\review@intn@table #1}
122
136
  \newcommand{\reviewlistref}[1]{\review@intn@list #1}
123
137
  \newcommand{\reviewequationref}[1]{\review@intn@equation #1}
124
- \newcommand{\reviewbibref}[2]{#1}
125
- \newcommand{\reviewcolumnref}[2]{#1}
126
- \newcommand{\reviewsecref}[2]{#1}
138
+ \newcommand{\reviewbibref}[2]{\hyperref[#2]{#1}}
139
+ \newcommand{\reviewcolumnref}[2]{#1}% XXX:ハイパーリンクにはreviewcolumn側の調整が必要
140
+ \newcommand{\reviewchapref}[2]{\hyperref[#2]{#1}}
141
+ \newcommand{\reviewsecref}[2]{\hyperref[#2]{#1}}
127
142
 
128
143
  \renewcommand{\contentsname}{\review@toctitle}
129
144
 
@@ -177,6 +192,16 @@
177
192
 
178
193
  % allow break line in tt
179
194
  % contributed by @zr_tex8r
195
+ \g@addto@macro\pdfstringdefPreHook{% for PDF bookmarks
196
+ \def\reviewami#1{#1}
197
+ \def\reviewbreakall#1{#1}
198
+ \def\reviewballoon#1{#1}
199
+ \def\reviewbou#1{#1}
200
+ \def\reviewkw#1{#1}
201
+ \def\reviewinsert#1{#1}
202
+ \def\reviewstrike#1{#1}
203
+ \def\reviewunderline#1{#1}
204
+ }
180
205
  \newif\ifreview@ba@break
181
206
  \def\review@ba@end{\review@ba@end@}
182
207
  \DeclareRobustCommand{\reviewbreakall}[1]{%
@@ -228,11 +253,8 @@
228
253
 
229
254
  \DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
230
255
 
231
- %% @<del> is ignored in LaTeX with default style
232
- %% \DeclareRobustCommand{\reviewstrike}[1]{#1}
233
- %%%% for ulem.sty:
256
+ \DeclareRobustCommand{\reviewinsert}[1]{\uuline{#1}}
234
257
  \DeclareRobustCommand{\reviewstrike}[1]{\sout{#1}}
235
- %%
236
258
  %%%% for jumoline.sty:
237
259
  %%\DeclareRobustCommand{\reviewstrike}[1]{\Middleline{#1}}
238
260
 
@@ -315,6 +337,9 @@
315
337
 
316
338
  \if@reclscover
317
339
  \ifdefined\review@coverimage
340
+ \ifrecls@coverfitpage
341
+ \def\review@coverimageoption{width=\paperwidth,height=\paperheight}
342
+ \fi
318
343
  \def\reviewcoverpagecont{%
319
344
  \expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage}
320
345
  \cleardoublepage
@@ -1,5 +1,5 @@
1
1
  %#!ptex2pdf -l -u -ot '-synctex=1' test-rejlreqbk
2
- % Copyright (c) 2018-2019 Kenshi Muto.
2
+ % Copyright (c) 2018-2021 Kenshi Muto.
3
3
  %
4
4
  % Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  % of this software and associated documentation files (the "Software"), to deal
@@ -19,9 +19,9 @@
19
19
  % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
20
  % THE SOFTWARE.
21
21
 
22
+ \IfFileExists{plautopatch.sty}{\RequirePackage{plautopatch}}{}
22
23
  \NeedsTeXFormat{LaTeX2e}
23
- \ProvidesClass{review-jlreq}[2019/01/01 Re:VIEW pLaTeX class modified for jlreq.
24
- cls]
24
+ \ProvidesClass{review-jlreq}[2021/01/12 Re:VIEW 5.1 upLaTeX/LuaLaTeX class modified for jlreq.cls]
25
25
 
26
26
  %% hook at end of reviewmacro
27
27
  \let\@endofreviewmacrohook\@empty
@@ -65,11 +65,7 @@ cls]
65
65
  \recls@error{Not define such hiddenfolio: #1}}\relax
66
66
  %% set hiddenfolio preset
67
67
  \expandafter\let\expandafter\@makehiddenfolio\csname @makehiddenfolio@#1\endcsname
68
- %% redefine to output \@makehiddenfolio for every page
69
- %% TODO: would better to use \jlreqtrimmarkssetup
70
- \@bannertoken{\hskip-5mm\smash{\hiddenfolio@font\@makehiddenfolio}}%
71
- \def\jlreq@trimmarks@banner@even@yoko@top@left{\hskip-5mm\smash{\hiddenfolio@font\@makehiddenfolio}}%
72
- \AddEverypageHook{\maketombowbox}%
68
+ \@makehiddenfolio
73
69
  \fi}
74
70
 
75
71
  \def\hiddenfolio@font{\reset@font
@@ -77,29 +73,16 @@ cls]
77
73
 
78
74
  %% hiddenfolio=default
79
75
  \@namedef{@makehiddenfolio@default}{%
80
- \ifodd\c@page
81
- \llap{\thepage\hspace{\dimexpr\recls@tombobleed}}%
82
- \else
83
- \rlap{\hspace{\dimexpr\paperwidth+\recls@tombobleed}\thepage}%
84
- \fi}
76
+ \jlreqtrimmarkssetup{banner = { top-gutter = { \hiddenfolio@font\selectfont \thepage} } } }
85
77
 
86
78
  %% hiddenfolio=marusho-ink
87
79
  \@namedef{@makehiddenfolio@marusho-ink}{%
88
- \gdef\recls@tombobleed{5mm}%
80
+ \gdef\recls@tombobleed{5mm}% XXX: won't work. should set via bleed_margin
89
81
  \@nameuse{@makehiddenfolio@nikko-pc}}
90
82
 
91
83
  %% hiddenfolio=nikko-pc
92
84
  \@namedef{@makehiddenfolio@nikko-pc}{%
93
- \def\recls@hiddfolio{%
94
- \edef\recls@tmp{\thepage}%
95
- \lower\dimexpr4pt+\recls@tombobleed+.5\paperheight+5\p@\hbox{%
96
- \vbox{\expandafter\@tfor\expandafter\recls@x\expandafter:\expandafter=\recls@tmp\do{%
97
- \hbox to 1\zw{\hss\recls@x\hss}}}}}%
98
- \ifodd\c@page
99
- \rlap{\recls@hiddfolio}%
100
- \else
101
- \llap{\recls@hiddfolio\hspace{-\paperwidth}}%
102
- \fi}
85
+ \jlreqtrimmarkssetup{banner = { center-gutter = { in = {\hiddenfolio@font\selectfont \thepage} } } } }
103
86
 
104
87
  %% hiddenfolio=shippo
105
88
  \@namedef{@makehiddenfolio@shippo}{%
@@ -110,12 +93,14 @@ cls]
110
93
  \newif\if@pdfhyperlink \@pdfhyperlinkfalse
111
94
  \newif\if@pdftombo \@pdftombofalse
112
95
  \newif\if@reclscover \@reclscovertrue
96
+ \newif\ifrecls@coverfitpage \recls@coverfitpagefalse
113
97
  \newif\ifrecls@serialpage \recls@serialpagefalse
114
98
  \DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}}
115
99
  \DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}}
116
100
  \DeclareOptionX{tombopaper}[a4]{\gdef\recls@tombopaper{#1}}
117
101
  \DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}}
118
102
  \DeclareOptionX{cover}[\@empty]{\gdef\recls@forcecover{#1}}
103
+ \DeclareOptionX{cover_fit_page}[false]{\csname recls@coverfitpage#1\endcsname}
119
104
  \DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr #1\relax}}
120
105
  \DeclareOptionX{serial_pagination}[false]{\csname recls@serialpage#1\endcsname}
121
106
 
@@ -340,5 +325,21 @@ cls]
340
325
  \def\coverpagezero#1{\expandafter\@coverpagezero\csname c@#1\endcsname}
341
326
  \def\@coverpagezero#1{cover}
342
327
 
328
+ %% xkanjiskip抽象化
329
+ \newcommand*\setxkanjiskip[1]{%
330
+ \def\recls@tmp{lualatex}\ifx\recls@tmp\recls@engine
331
+ \ltjsetparameter{xkanjiskip={#1}}
332
+ \else
333
+ \xkanjiskip=#1\relax
334
+ \fi
335
+ }
336
+
337
+ %% 脚注がページをまたいで泣き別れさせない
338
+ \interfootnotelinepenalty\@M
339
+
340
+ %% 代替定義
341
+ \def\reviewleftcurlybrace{\{}
342
+ \def\reviewrightcurlybrace{\}}
343
+
343
344
  \listfiles
344
345
  \endinput