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
@@ -18,6 +18,7 @@
18
18
 
19
19
  %% coverpage
20
20
  \ifdefined\reviewcoverpagecont
21
+ \covermatter
21
22
  \reviewcoverpagecont
22
23
  \fi
23
24
 
@@ -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,15 +1,31 @@
1
+ \ProvidesClass{review-base}[2020/08/16]
1
2
  % jlreq用基本設定
2
- \newcommand*\PDFDocumentInformation[1]{%
3
- \AtBeginShipoutFirst{\special{pdf:docinfo <<#1>>}}}
4
- \@onlypreamble\PDFDocumentInformation
5
-
6
- \PDFDocumentInformation{
7
- /Title (\review@booktitlename)
8
- /Author (\review@autnames)
9
- % /Subject ()
10
- % /Keywords (,,)
11
- /Creator (Re:VIEW \review@reviewversion, with LaTeX)
12
- }
3
+ \def\recls@tmp{luatex}\ifx\recls@tmp\recls@driver
4
+ \hypersetup{
5
+ pdftitle={\review@booktitlename},
6
+ pdfauthor={\ifdefined\review@autnames\review@autnames\fi},
7
+ pdfcreator={Re:VIEW \review@reviewversion, with LaTeX}
8
+ }
9
+ \else
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
28
+ \fi
13
29
 
14
30
  \RequirePackage{pxrubrica}
15
31
  \@ifpackagelater{pxrubrica}{2017/04/20}{% true
@@ -18,22 +34,27 @@
18
34
 
19
35
  \long\def\review@ifempty#1{\expandafter\ifx\expandafter\relax\detokenize{#1}\relax\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
20
36
 
37
+ %% pass bbox setting to extractbb of graphicx
38
+ \ifdefined\review@bbox
39
+ \def\Gin@pagebox{\review@bbox}
40
+ \fi
41
+
21
42
  % コードリスト装飾のデフォルト
22
43
  \newenvironment{reviewemlist}{%
23
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!10,colframe=black!10,boxrule=0mm,arc=0mm]\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}}%
24
45
  {\end{alltt}\end{tcolorbox}}
25
46
 
26
47
  \newenvironment{reviewlist}{%
27
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\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}}%
28
49
  {\end{alltt}\end{tcolorbox}}
29
50
 
30
51
  \newenvironment{reviewsource}{%
31
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\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}}%
32
53
  {\end{alltt}\end{tcolorbox}}
33
54
 
34
55
  \newenvironment{reviewcmd}{%
35
- \begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!99,colframe=black!99,boxrule=0mm,arc=0mm]\begin{alltt}\begingroup\color{white}\ignorespaces}%
36
- {\endgroup\end{alltt}\end{tcolorbox}}
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}}%
57
+ {\end{alltt}\end{tcolorbox}}
37
58
 
38
59
  % 図
39
60
  \newenvironment{reviewimage}{%
@@ -47,6 +68,9 @@
47
68
 
48
69
  \newcommand{\reviewindepimagecaption[2]}{\@makecaption{}{#2}}
49
70
 
71
+ \DeclareRobustCommand{\reviewincludegraphics}[2][]{%
72
+ \includegraphics[#1]{#2}}
73
+
50
74
  % 表
51
75
  \newenvironment{reviewtablesetup}{%
52
76
  }{}
@@ -69,16 +93,26 @@
69
93
 
70
94
  \newcommand{\reviewbackslash}[0]{\textbackslash{}}
71
95
 
96
+ % 古いjlreq.clsへの互換(当面のad-hoc対応)
97
+ \ifdefined\jlreq@@makecaption@font@setting
98
+ \else
99
+ \let\jlreq@@makecaption@font@setting\jlreq@@makecaption@font
100
+ \fi
101
+ \ifdefined\jlreq@@makecaption@label@font@setting
102
+ \else
103
+ \let\jlreq@@makecaption@label@font@setting\jlreq@@makecaption@label@font
104
+ \fi
105
+
72
106
  \renewcommand{\@makecaption}[2]{{% %本当はl,c,rを[]で指定したい
73
107
  \reset@font\small
74
108
  \vskip\abovecaptionskip
75
109
  \jlreq@ifempty{#1}{%
76
- \sbox\@tempboxa{{\jlreq@@makecaption@font #2}}}{%
77
- \sbox\@tempboxa{{\jlreq@@makecaption@label@font #1}\review@intn@captionprefix{\jlreq@@makecaption@font #2}}}
110
+ \sbox\@tempboxa{{\jlreq@@makecaption@font@setting #2}}}{%
111
+ \sbox\@tempboxa{{\jlreq@@makecaption@label@font@setting #1}\review@intn@captionprefix{\jlreq@@makecaption@font@setting #2}}}
78
112
  \ifdim \wd\@tempboxa >\hsize
79
113
  \jlreq@ifempty{#1}{%
80
- {\jlreq@@makecaption@font #2}}{%
81
- {\jlreq@@makecaption@label@font #1}\review@intn@captionprefix{\jlreq@@makecaption@font #2}}\relax\par
114
+ {\jlreq@@makecaption@font@setting #2}}{%
115
+ {\jlreq@@makecaption@label@font@setting #1}\review@intn@captionprefix{\jlreq@@makecaption@font@setting #2}}\relax\par
82
116
  \else
83
117
  \global\@minipagefalse
84
118
  \hbox to\hsize{\box\@tempboxa\hfil}% キャプションLeft
@@ -92,18 +126,18 @@
92
126
  \newcommand{\reviewemlistcaption}[1]{\review@commoncaption{}{#1}}
93
127
  \newcommand{\reviewsourcecaption}[1]{\review@commoncaption{}{#1}}
94
128
  \newcommand{\reviewcmdcaption}[1]{\review@commoncaption{}{#1}}
95
- \newenvironment{reviewlistblock}{\list{}{\topsep.5\baselineskip \leftmargin\z@ \itemindent\z@}\item\relax}{\endlist}% 上下アキ0.5
129
+ \newenvironment{reviewlistblock}{\list{}{\topsep.5\baselineskip \leftmargin\z@ \itemindent\z@}\item\needspace{4\Cvs}\relax}{\endlist}% 上下アキ0.5
96
130
 
97
131
  \newcommand{\reviewequationcaption}[1]{\review@commoncaption{}{#1}}
98
- \newenvironment{reviewequationblock}{}{}
132
+ \newenvironment{reviewequationblock}{\needspace{2\Cvs}}{}
99
133
 
100
134
  \newcommand{\reviewimageref}[2]{\review@intn@image #1}
101
135
  \newcommand{\reviewtableref}[2]{\review@intn@table #1}
102
136
  \newcommand{\reviewlistref}[1]{\review@intn@list #1}
103
137
  \newcommand{\reviewequationref}[1]{\review@intn@equation #1}
104
- \newcommand{\reviewbibref}[2]{#1}
105
- \newcommand{\reviewcolumnref}[2]{\review@intn@columnname #1}
106
- \newcommand{\reviewsecref}[2]{#1}
138
+ \newcommand{\reviewbibref}[2]{\hyperref[#2]{#1}}
139
+ \newcommand{\reviewcolumnref}[2]{#1}% XXX:ハイパーリンクにはreviewcolumn側の調整が必要
140
+ \newcommand{\reviewsecref}[2]{\hyperref[#2]{#1}}
107
141
 
108
142
  \renewcommand{\contentsname}{\review@toctitle}
109
143
 
@@ -146,27 +180,84 @@
146
180
  {\end{tcolorbox}}
147
181
 
148
182
  % 書体
149
- \newcommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
150
- \newcommand{\reviewami}[1]{#1}% FIXME
151
- \newcommand{\reviewballoon}[1]{←{#1}}
152
- \newcommand{\reviewem}[1]{\textbf{#1}}
153
- \newcommand{\reviewstrong}[1]{\textbf{#1}}
154
- \newcommand{\reviewunderline}[1]{\underline{#1}}% ulemかjumolineで上書き。デフォルトはulemにしている
155
- \newcommand{\reviewit}[1]{\textit{#1}}
156
- \newcommand{\reviewbold}[1]{\textbf{#1}}
157
- \newcommand{\reviewcode}[1]{\texttt{#1}}
158
- \newcommand{\reviewtt}[1]{\texttt{#1}}
159
- \newcommand{\reviewtti}[1]{\texttt{\textit{#1}}}
160
- \newcommand{\reviewttb}[1]{\texttt{\textbf{#1}}}
183
+ \DeclareRobustCommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
184
+ \DeclareRobustCommand{\reviewami}[1]{#1}% FIXME
185
+ \DeclareRobustCommand{\reviewballoon}[1]{←{#1}}
186
+ \DeclareRobustCommand{\reviewem}[1]{\textbf{#1}}
187
+ \DeclareRobustCommand{\reviewstrong}[1]{\textbf{#1}}
188
+ \DeclareRobustCommand{\reviewunderline}[1]{\underline{#1}}% ulemかjumolineで上書き。デフォルトはulemにしている
189
+ \DeclareRobustCommand{\reviewit}[1]{\textit{#1}}
190
+ \DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}}
191
+
192
+ % allow break line in tt
193
+ % contributed by @zr_tex8r
194
+ \g@addto@macro\pdfstringdefPreHook{% for PDF bookmarks
195
+ \def\reviewami#1{#1}
196
+ \def\reviewbreakall#1{#1}
197
+ \def\reviewballoon#1{#1}
198
+ \def\reviewbou#1{#1}
199
+ \def\reviewkw#1{#1}
200
+ \def\reviewstrike#1{#1}
201
+ \def\reviewunderline#1{#1}
202
+ }
203
+ \newif\ifreview@ba@break
204
+ \def\review@ba@end{\review@ba@end@}
205
+ \DeclareRobustCommand{\reviewbreakall}[1]{%
206
+ \begingroup
207
+ \review@ba@breakfalse
208
+ \review@break@all@a#1\review@ba@end
209
+ \endgroup
210
+ }
211
+ \def\review@break@all@a{%
212
+ \futurelet\review@ba@tok\review@break@all@b
213
+ }
214
+ \def\review@break@all@b{%
215
+ \ifx\review@ba@tok\review@ba@end
216
+ \let\next\@gobble
217
+ \else\ifx\review@ba@tok\@sptoken
218
+ \let\next\review@break@all@c
219
+ \else\ifx\review@ba@tok~%
220
+ \let\next\review@break@all@d
221
+ \else\ifx\review@ba@tok\bgroup
222
+ \let\next\review@break@all@e
223
+ \else
224
+ \let\next\review@break@all@f
225
+ \fi\fi\fi\fi
226
+ \next
227
+ }
228
+ \expandafter\def\expandafter\review@break@all@c\space{%
229
+ \space
230
+ \review@ba@breakfalse
231
+ \review@break@all@a
232
+ }
233
+ \def\review@break@all@d#1{%
234
+ \review@break@all@f{\mbox{\space}}%
235
+ }
236
+ \def\review@break@all@e#1{%
237
+ \review@break@all@f{{#1}}%
238
+ }
239
+ \def\review@break@all@f#1{%
240
+ \ifreview@ba@break
241
+ \hskip0pt plus 0.02em\relax
242
+ \fi
243
+ #1%
244
+ \review@ba@breaktrue
245
+ \review@break@all@a
246
+ }
247
+ \DeclareRobustCommand{\reviewtt}[1]{{\ttfamily\reviewbreakall{#1}}}
248
+ \DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}}
249
+ \DeclareRobustCommand{\reviewtti}[1]{{\ttfamily\itshape\reviewbreakall{#1}}}
250
+ \DeclareRobustCommand{\reviewttb}[1]{{\ttfamily\bfseries\reviewbreakall{#1}}}
161
251
 
162
- %% @<del> is ignored in LaTeX with default style
163
- \newcommand{\reviewstrike}[1]{#1}
252
+ \DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
164
253
 
254
+ %% @<del> is ignored in LaTeX with default style
255
+ %% \DeclareRobustCommand{\reviewstrike}[1]{#1}
165
256
  %%%% for ulem.sty:
166
- \renewcommand{\reviewstrike}[1]{\sout{#1}}
257
+ \DeclareRobustCommand{\reviewstrike}[1]{\sout{#1}}
167
258
  %%
168
259
  %%%% for jumoline.sty:
169
- %%\renewcommand{\reviewstrike}[1]{\Middleline{#1}}
260
+ %%\DeclareRobustCommand{\reviewstrike}[1]{\Middleline{#1}}
170
261
 
171
262
  \newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily}
172
263
  \newcommand{\reviewmainfont}[0]{}
@@ -203,6 +294,16 @@
203
294
  \renewcommand{\appendixname}{\reviewappendixname}
204
295
  \fi
205
296
 
297
+ % maxwidth is the original width if it is less than linewidth
298
+ %% otherwise use linewidth (to make sure the graphics do not exceed the margin)
299
+ \def\maxwidth{%
300
+ \ifdim\Gin@nat@width>\linewidth
301
+ \linewidth
302
+ \else
303
+ \Gin@nat@width
304
+ \fi
305
+ }
306
+
206
307
  % hooks
207
308
  \def\reviewbegindocumenthook{}
208
309
 
@@ -228,16 +329,26 @@
228
329
  }
229
330
 
230
331
  % cover
332
+ \newcommand*\covermatter{%
333
+ \ifdefined\review@usecovernombre%
334
+ \pagenumbering{coverpagezero}
335
+ \setcounter{page}{0}% force to even page, to avoid empty page
336
+ \fi
337
+ }
338
+
231
339
  \if@reclscover
232
- \ifdefined\review@coverimage
233
- \def\reviewcoverpagecont{%
234
- \expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage}
235
- \cleardoublepage
236
- }
237
- \fi
238
- \ifdefined\review@coverfile
239
- \def\reviewcoverpagecont{\review@coverfile}
240
- \fi
340
+ \ifdefined\review@coverimage
341
+ \ifrecls@coverfitpage
342
+ \def\review@coverimageoption{width=\paperwidth,height=\paperheight}
343
+ \fi
344
+ \def\reviewcoverpagecont{%
345
+ \expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage}
346
+ \cleardoublepage
347
+ }
348
+ \fi
349
+ \ifdefined\review@coverfile
350
+ \def\reviewcoverpagecont{\review@coverfile}
351
+ \fi
241
352
  \fi
242
353
 
243
354
  % titlepage
@@ -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-2020 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
@@ -20,8 +20,7 @@
20
20
  % THE SOFTWARE.
21
21
 
22
22
  \NeedsTeXFormat{LaTeX2e}
23
- \ProvidesClass{review-jlreq}[2019/01/01 Re:VIEW pLaTeX class modified for jlreq.
24
- cls]
23
+ \ProvidesClass{review-jlreq}[2020/08/16 Re:VIEW 5.0 upLaTeX/LuaLaTeX class modified for jlreq.cls]
25
24
 
26
25
  %% hook at end of reviewmacro
27
26
  \let\@endofreviewmacrohook\@empty
@@ -65,9 +64,7 @@ cls]
65
64
  \recls@error{Not define such hiddenfolio: #1}}\relax
66
65
  %% set hiddenfolio preset
67
66
  \expandafter\let\expandafter\@makehiddenfolio\csname @makehiddenfolio@#1\endcsname
68
- %% redefine to output \@makehiddenfolio for every page
69
- \@bannertoken{\hskip-5mm\smash{\hiddenfolio@font\@makehiddenfolio}}%
70
- \AddEverypageHook{\maketombowbox}%
67
+ \@makehiddenfolio
71
68
  \fi}
72
69
 
73
70
  \def\hiddenfolio@font{\reset@font
@@ -75,29 +72,16 @@ cls]
75
72
 
76
73
  %% hiddenfolio=default
77
74
  \@namedef{@makehiddenfolio@default}{%
78
- \ifodd\c@page
79
- \llap{\thepage\hspace{\dimexpr\recls@tombobleed}}%
80
- \else
81
- \rlap{\hspace{\dimexpr\paperwidth+\recls@tombobleed}\thepage}%
82
- \fi}
75
+ \jlreqtrimmarkssetup{banner = { top-gutter = { \hiddenfolio@font\selectfont \thepage} } } }
83
76
 
84
77
  %% hiddenfolio=marusho-ink
85
78
  \@namedef{@makehiddenfolio@marusho-ink}{%
86
- \gdef\recls@tombobleed{5mm}%
79
+ \gdef\recls@tombobleed{5mm}% XXX: won't work. should set via bleed_margin
87
80
  \@nameuse{@makehiddenfolio@nikko-pc}}
88
81
 
89
82
  %% hiddenfolio=nikko-pc
90
83
  \@namedef{@makehiddenfolio@nikko-pc}{%
91
- \def\recls@hiddfolio{%
92
- \edef\recls@tmp{\thepage}%
93
- \lower\dimexpr4pt+\recls@tombobleed+.5\paperheight+5\p@\hbox{%
94
- \vbox{\expandafter\@tfor\expandafter\recls@x\expandafter:\expandafter=\recls@tmp\do{%
95
- \hbox to 1\zw{\hss\recls@x\hss}}}}}%
96
- \ifodd\c@page
97
- \rlap{\recls@hiddfolio}%
98
- \else
99
- \llap{\recls@hiddfolio\hspace{-\paperwidth}}%
100
- \fi}
84
+ \jlreqtrimmarkssetup{banner = { center-gutter = { in = {\hiddenfolio@font\selectfont \thepage} } } } }
101
85
 
102
86
  %% hiddenfolio=shippo
103
87
  \@namedef{@makehiddenfolio@shippo}{%
@@ -108,12 +92,14 @@ cls]
108
92
  \newif\if@pdfhyperlink \@pdfhyperlinkfalse
109
93
  \newif\if@pdftombo \@pdftombofalse
110
94
  \newif\if@reclscover \@reclscovertrue
95
+ \newif\ifrecls@coverfitpage \recls@coverfitpagefalse
111
96
  \newif\ifrecls@serialpage \recls@serialpagefalse
112
97
  \DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}}
113
98
  \DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}}
114
99
  \DeclareOptionX{tombopaper}[a4]{\gdef\recls@tombopaper{#1}}
115
100
  \DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}}
116
101
  \DeclareOptionX{cover}[\@empty]{\gdef\recls@forcecover{#1}}
102
+ \DeclareOptionX{cover_fit_page}[false]{\csname recls@coverfitpage#1\endcsname}
117
103
  \DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr #1\relax}}
118
104
  \DeclareOptionX{serial_pagination}[false]{\csname recls@serialpage#1\endcsname}
119
105
 
@@ -334,5 +320,18 @@ cls]
334
320
  \AtBeginDocument{\@ifpackageloaded{pdfpages}{\recls@patch@pdfpages}{}}
335
321
  \fi
336
322
 
323
+ %% 表紙のノンブル
324
+ \def\coverpagezero#1{\expandafter\@coverpagezero\csname c@#1\endcsname}
325
+ \def\@coverpagezero#1{cover}
326
+
327
+ %% xkanjiskip抽象化
328
+ \newcommand*\setxkanjiskip[1]{%
329
+ \def\recls@tmp{lualatex}\ifx\recls@tmp\recls@engine
330
+ \ltjsetparameter{xkanjiskip={#1}}
331
+ \else
332
+ \xkanjiskip=#1\relax
333
+ \fi
334
+ }
335
+
337
336
  \listfiles
338
337
  \endinput
@@ -1,5 +1,5 @@
1
1
  \NeedsTeXFormat{LaTeX2e}
2
- \ProvidesPackage{review-style}[2018/10/05]
2
+ \ProvidesPackage{review-style}[2019/09/16]
3
3
 
4
4
  %% using Helvetica as sans-serif
5
5
  \renewcommand{\sfdefault}{phv}
@@ -33,3 +33,6 @@
33
33
  % 図表フロートの配置
34
34
  \floatplacement{figure}{H}
35
35
  \floatplacement{table}{H}
36
+
37
+ % リスト内和欧空き幅 (\z@は0で、空きなしを意味する。互換性で空きを入れたいときは以下の行をコメントアウトする)
38
+ \def\reviewlistxkanjiskip{\z@}
@@ -40,19 +40,21 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
40
40
 
41
41
  `media` の値によって表紙(config.yml の coverimage に指定した画像)の配置の有無は自動で切り替わりますが、`cover=true` とすれば必ず表紙を入れるようになります。
42
42
 
43
- なお、config.yml coverimage で指定する画像ファイルは、原寸を想定しています。
43
+ ### 表紙画像のサイズの仕上がり紙面合わせ `cover_fit_page=<trueまたはfalse>`
44
+
45
+ 上記の coverimage で指定する画像ファイルは、原寸を想定しているため、サイズが異なる場合にははみ出たり、小さすぎたりすることになります。できるだけ原寸で用意することを推奨しますが、`cover_fit_page=true` とすれば表紙画像を紙面の仕上がりサイズに合わせて拡縮します。
44
46
 
45
47
  ### 特定の用紙サイズ `paper=<用紙サイズ>`
46
48
 
47
49
  利用可能な特定の用紙サイズを指定できます。
48
50
 
49
- * `a3`
51
+ * `a3`
50
52
  * `a4` [デフォルト]
51
53
  * `a5`
52
- * `a6`
53
- * `b4`:JIS B4
54
+ * `a6`
55
+ * `b4`:JIS B4
54
56
  * `b5`:JIS B5
55
- * `b6`:JIS B6
57
+ * `b6`:JIS B6
56
58
  * `a4var`:210mm x 283mm
57
59
  * `b5var`:182mm x 230mm
58
60
  * `letter`
@@ -125,3 +127,42 @@ texdocumentclass: ["review-jsbook", "クラスオプションたち(省略可
125
127
  * jsbook.cls のクラスオプション `uplatex`:これまで texdocumentclass に指定が必要だった `uplatex` オプションは不要となっています。
126
128
  * jsbook.cls のクラスオプション `nomag`:用紙サイズや版面設計は、review-jsbook.cls 側で行います。
127
129
  * hyperref パッケージ:あらかじめ hyperref パッケージを組み込んでおり、`media` オプションにより用途別で挙動を制御します。
130
+
131
+ ### 既存の jsbook.cls のオプションの扱い
132
+
133
+ review-jsbook.cls は jsbook.cls を包んでおり、一部の jsbook.cls のクラスオプションはそのまま指定可能です。
134
+
135
+ * `oneside`: 奇数ページ・偶数ページで柱やページ番号などを同じ体裁にします。review-jsbook.cls にも有効ですが、review-style.sty でこれを打ち消し奇数・偶数で別の見た目にするデザイン (fancyhdr) が定義されているので、review-style.sty も調整する必要があります。
136
+ * `twoside`: 奇数ページ・偶数ページで柱やページ番号などを別の体裁にします (デフォルト)。
137
+ * `vartwoside`: twoside とおおむね同じですが、傍注が小口ではなく常に右側になります。Re:VIEW のデフォルトでは傍注は使用していないので、効果は通常表れません。
138
+ * `onecolumn`: 1段組の体裁にします (デフォルト)。
139
+ * `twocolumn`: 2段組の体裁にします。
140
+ * `openright`: 章の始まりを右ページ (奇数ページ) にします (デフォルト)。前の章が右ページで終わった場合には、白紙のページが1ページ挿入されます。
141
+ * `openleft`: 章の始まりを左ページ (偶数ページ) にします。前の章が左ページで終わった場合には、白紙のページが1ページ挿入されます。
142
+ * `openany`: 章の始まりを左右どちらのページからでも始めます。
143
+ * `draft`: 確認作業のために、overfull box が起きた箇所の行末に罫線を引き、画像は実際に貼り付けずにボックスとファイル名だけを表記するようにします。
144
+ * `final`: 上記の draft の処理を行いません (デフォルト)。
145
+ * `leqno`: 数式の番号を右ではなく左側に置きます。ただし Re:VIEW では LaTeX のやり方での採番付き数式を作っていないので、効果は通常表れません。
146
+ * `fleqn`: 数式をデフォルトの左右中央ではなく、左側に配置します。
147
+ * `english`: 英語ドキュメント向けに、字下げをなくしたり、「章」や「目次」などの定型の文字列を英語化します。しかし、Re:VIEW では定型文字列はロケールファイルで処理しており、ほとんどは無視されます。
148
+ * `jslogo`: 「LaTeX」等のロゴを置き換えます (デフォルト)。
149
+ * `nojslogo`: ロゴを置き換えません。
150
+ * `report`: oneside と openany の両方と同じ効果を持ちます。
151
+ * `landscape`: 用紙を横長で使います。review-jsbook.cls のクラスオプションで基本版面設計をやり直す必要があることに注意してください。
152
+
153
+ jsbook.cls の以下のクラスオプションは挙動が異なります。代わりに review-jsbook.cls のクラスオプションを利用してください。
154
+
155
+ * `8pt`・`9pt`・`10pt`・`11pt`・`12pt`・`14pt`・`17pt`・`20pt`・`21pt`・`25pt`・`30pt`・`36pt`・`43pt`・`12Q`・`14Q`・`10ptj`・`10.5ptj`・`11ptj`・`12ptj`: 基本文字のサイズを指定します。そのまま review-jsbook.cls の fontsize に渡されますが、上記の fontsize クラスオプションの説明にあるとおり丸められます。
156
+ * `tombow`・`tombo`・`mentuke`: トンボや塗り足しを作成しますが、これらは PDF 入稿に求められる正しいデジタルトンボ情報を入れないので使用してはなりません。review-jsbook.cls の `media=print` を使ってください。
157
+ * `a4paper`・`a5paper`・`b5paper`・`b4paper`・`letterpaper`: 紙サイズを指定します。誤りではありませんが、review-jsbook.cls の paper クラスオプションを使うほうが妥当です。
158
+
159
+ jsbook.cls の以下のクラスオプションは無視またはエラーになります。
160
+
161
+ * `uplatex`: 暗黙に指定されるので無視されます。
162
+ * `autodetect-engine`: pLaTeX/upLaTeX を自動判別するオプションですが、Re:VIEW では review-jsbook 利用時に upLaTeX を暗黙に前提としているので無視されます。
163
+ * `papersize`: dvips などに紙サイズ情報を与えるオプションですが、Re:VIEW ではこれを利用しないので、結果的に無視されます。
164
+ * `titlepage`・`notitlepage`: 表題の独立ページ化の有無ですが、Re:VIEW では表題を利用していないため、結果的に無視されます。
165
+ * `usemag`・`nomag`・`nomag*`: 用紙サイズと版面設計は review-jsbook.cls のクラスオプションを使うため、無視されます。
166
+ * `a4j`・`a5j`・`b4j`・`b5j`・`winjis`・`mingoth`: これらは無効としており、エラーになります。review-jsbook.cls のクラスオプションを利用してください。
167
+ * `jis`: jis フォントメトリックスを使う指定ですが、通常の環境ではコンパイルエラーになります。
168
+ * `disablejfam`: 数式内の利用フォント数を増やすために、数式内の日本語文字を使わないようにする指定ですが、Re:VIEW を利用する上では単にエラーを誘発するだけでしょう。