review 5.0.0 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-tex.yml +35 -0
  3. data/.github/workflows/ruby-win.yml +8 -4
  4. data/.github/workflows/ruby.yml +6 -2
  5. data/.rubocop.yml +24 -9
  6. data/NEWS.ja.md +215 -0
  7. data/NEWS.md +215 -1
  8. data/README.md +7 -6
  9. data/Rakefile +7 -2
  10. data/bin/review +2 -4
  11. data/bin/review-catalog-converter +3 -3
  12. data/bin/review-check +6 -8
  13. data/bin/review-checkdep +1 -4
  14. data/bin/review-compile +10 -20
  15. data/bin/review-epub2html +1 -4
  16. data/bin/review-epubmaker +3 -4
  17. data/bin/review-idgxmlmaker +1 -3
  18. data/bin/review-index +11 -5
  19. data/bin/review-init +1 -4
  20. data/bin/review-pdfmaker +1 -3
  21. data/bin/review-preproc +30 -38
  22. data/bin/review-textmaker +1 -3
  23. data/bin/review-update +1 -4
  24. data/bin/review-validate +3 -3
  25. data/bin/review-vol +1 -4
  26. data/bin/review-webmaker +1 -3
  27. data/doc/config.yml.sample +23 -5
  28. data/doc/config.yml.sample-simple +1 -1
  29. data/doc/format.ja.md +49 -12
  30. data/doc/format.md +52 -12
  31. data/doc/quickstart.ja.md +11 -1
  32. data/doc/quickstart.md +11 -2
  33. data/doc/writing_vertical.ja.md +6 -0
  34. data/lib/review/book/base.rb +4 -0
  35. data/lib/review/book/book_unit.rb +15 -2
  36. data/lib/review/book/chapter.rb +3 -0
  37. data/lib/review/book/index.rb +5 -1
  38. data/lib/review/book/volume.rb +1 -0
  39. data/lib/review/builder.rb +90 -54
  40. data/lib/review/call_hook.rb +20 -0
  41. data/lib/review/catalog.rb +2 -0
  42. data/lib/review/compiler.rb +88 -52
  43. data/lib/review/configure.rb +64 -7
  44. data/lib/review/epubmaker/content.rb +113 -0
  45. data/lib/review/epubmaker/epubcommon.rb +372 -0
  46. data/lib/review/epubmaker/epubv2.rb +178 -0
  47. data/lib/review/epubmaker/epubv3.rb +231 -0
  48. data/lib/review/epubmaker/producer.rb +167 -0
  49. data/lib/review/epubmaker/reviewheaderlistener.rb +12 -2
  50. data/lib/review/epubmaker/zip_exporter.rb +84 -0
  51. data/lib/review/epubmaker.rb +114 -129
  52. data/lib/review/exception.rb +13 -0
  53. data/lib/review/htmlbuilder.rb +109 -67
  54. data/lib/review/htmlutils.rb +1 -1
  55. data/lib/review/i18n.rb +1 -0
  56. data/lib/review/i18n.yml +6 -0
  57. data/lib/review/idgxmlbuilder.rb +72 -48
  58. data/lib/review/idgxmlmaker.rb +15 -14
  59. data/lib/review/img_math.rb +239 -0
  60. data/lib/review/index_builder.rb +90 -32
  61. data/lib/review/init.rb +4 -4
  62. data/lib/review/latexbox.rb +58 -0
  63. data/lib/review/latexbuilder.rb +79 -58
  64. data/lib/review/latexutils.rb +9 -1
  65. data/lib/review/lineinput.rb +112 -2
  66. data/lib/review/loggable.rb +27 -0
  67. data/lib/review/logger.rb +89 -2
  68. data/lib/review/makerhelper.rb +7 -206
  69. data/lib/review/markdownbuilder.rb +44 -4
  70. data/lib/review/pdfmaker.rb +70 -51
  71. data/lib/review/plaintextbuilder.rb +20 -11
  72. data/lib/review/preprocessor/directive.rb +35 -0
  73. data/lib/review/preprocessor/line.rb +34 -0
  74. data/lib/review/preprocessor/repository.rb +177 -0
  75. data/lib/review/preprocessor.rb +105 -301
  76. data/lib/review/rstbuilder.rb +13 -4
  77. data/lib/review/sec_counter.rb +1 -0
  78. data/lib/review/template.rb +11 -1
  79. data/lib/review/textmaker.rb +23 -20
  80. data/lib/review/textutils.rb +10 -17
  81. data/lib/review/tocprinter.rb +93 -71
  82. data/lib/review/topbuilder.rb +44 -19
  83. data/lib/review/update.rb +5 -6
  84. data/lib/review/version.rb +1 -1
  85. data/lib/review/volumeprinter.rb +11 -12
  86. data/lib/review/webmaker.rb +31 -27
  87. data/lib/review/webtocprinter.rb +10 -9
  88. data/lib/review/yamlloader.rb +2 -1
  89. data/lib/review.rb +1 -1
  90. data/review.gemspec +5 -3
  91. data/samples/sample-book/src/config-epub2.yml +1 -1
  92. data/samples/sample-book/src/config.yml +1 -1
  93. data/samples/sample-book/src/lib/tasks/review.rake +19 -1
  94. data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +2 -1
  95. data/samples/syntax-book/ch01.re +1 -1
  96. data/samples/syntax-book/ch02.re +30 -6
  97. data/samples/syntax-book/ch03.re +1 -1
  98. data/samples/syntax-book/images/img3-2.png +0 -0
  99. data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +2 -1
  100. data/templates/html/_colophon.html.erb +23 -0
  101. data/templates/html/_colophon_history.html.erb +9 -0
  102. data/templates/html/_cover.html.erb +10 -0
  103. data/templates/html/_part_body.html.erb +6 -0
  104. data/templates/html/_titlepage.html.erb +20 -0
  105. data/templates/html/layout-html5.html.erb +6 -0
  106. data/templates/html/layout-xhtml1.html.erb +6 -0
  107. data/templates/latex/config.erb +11 -0
  108. data/templates/latex/review-jlreq/review-base.sty +7 -9
  109. data/templates/latex/review-jlreq/review-jlreq.cls +48 -6
  110. data/templates/latex/review-jlreq/review-style.sty +6 -1
  111. data/templates/latex/review-jlreq/review-tcbox.sty +348 -0
  112. data/templates/latex/review-jlreq/reviewmacro.sty +5 -0
  113. data/templates/latex/review-jsbook/review-base.sty +13 -9
  114. data/templates/latex/review-jsbook/review-jsbook.cls +41 -6
  115. data/templates/latex/review-jsbook/review-style.sty +6 -1
  116. data/templates/latex/review-jsbook/review-tcbox.sty +348 -0
  117. data/templates/latex/review-jsbook/reviewmacro.sty +5 -0
  118. data/templates/opf/epubv2.opf.erb +7 -7
  119. data/templates/opf/epubv3.opf.erb +7 -7
  120. data/templates/opf/opf_manifest_epubv2.opf.erb +10 -0
  121. data/templates/opf/opf_manifest_epubv3.opf.erb +10 -0
  122. data/templates/opf/opf_metainfo_epubv2.opf.erb +17 -0
  123. data/templates/opf/opf_metainfo_epubv3.opf.erb +49 -0
  124. data/templates/opf/opf_tocx_epubv2.opf.erb +9 -0
  125. data/templates/opf/opf_tocx_epubv3.opf.erb +17 -0
  126. data/templates/web/html/layout-html5.html.erb +6 -5
  127. data/templates/web/html/layout-xhtml1.html.erb +6 -0
  128. data/test/assets/header_listener.html +35 -0
  129. data/test/assets/img_math/img1.png +0 -0
  130. data/test/assets/img_math/img2.png +0 -0
  131. data/test/assets/img_math/img3.png +0 -0
  132. data/test/assets/syntax_book_index_detail.txt +60 -0
  133. data/test/assets/test_template.tex +7 -1
  134. data/test/assets/test_template_backmatter.tex +7 -1
  135. data/test/run_test.rb +1 -1
  136. data/test/test_book_chapter.rb +27 -4
  137. data/test/test_builder.rb +10 -8
  138. data/test/test_catalog_converter_cmd.rb +1 -1
  139. data/test/test_epub3maker.rb +168 -124
  140. data/test/test_epubmaker.rb +248 -131
  141. data/test/test_epubmaker_cmd.rb +15 -4
  142. data/test/test_helper.rb +5 -4
  143. data/test/test_htmlbuilder.rb +170 -31
  144. data/test/test_idgxmlbuilder.rb +44 -23
  145. data/test/test_idgxmlmaker_cmd.rb +7 -3
  146. data/test/test_img_math.rb +111 -0
  147. data/test/test_index.rb +30 -4
  148. data/test/test_indexbuilder.rb +5 -5
  149. data/test/test_latexbuilder.rb +151 -26
  150. data/test/test_latexbuilder_v2.rb +18 -10
  151. data/test/test_lineinput.rb +20 -93
  152. data/test/test_markdownbuilder.rb +42 -0
  153. data/test/test_pdfmaker.rb +90 -0
  154. data/test/test_pdfmaker_cmd.rb +2 -2
  155. data/test/test_plaintextbuilder.rb +56 -40
  156. data/test/test_preprocessor.rb +188 -1
  157. data/test/test_reviewheaderlistener.rb +49 -0
  158. data/test/test_rstbuilder.rb +13 -0
  159. data/test/test_template.rb +12 -2
  160. data/test/test_textmaker_cmd.rb +5 -1
  161. data/test/test_tocprinter.rb +46 -0
  162. data/test/test_topbuilder.rb +50 -19
  163. data/test/test_update.rb +34 -34
  164. data/test/test_zip_exporter.rb +5 -6
  165. metadata +95 -17
  166. data/lib/epubmaker/content.rb +0 -111
  167. data/lib/epubmaker/epubcommon.rb +0 -449
  168. data/lib/epubmaker/epubv2.rb +0 -142
  169. data/lib/epubmaker/epubv3.rb +0 -235
  170. data/lib/epubmaker/producer.rb +0 -375
  171. data/lib/epubmaker/zip_exporter.rb +0 -81
  172. data/lib/epubmaker.rb +0 -23
  173. data/lib/lineinput.rb +0 -155
@@ -1,5 +1,5 @@
1
1
  %#!ptex2pdf -l -u -ot '-synctex=1' test-rejsbk
2
- % Copyright (c) 2018-2020 Munehiro Yamamoto, Kenshi Muto.
2
+ % Copyright (c) 2018-2021 Munehiro Yamamoto, 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,10 @@
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{pLaTeX2e}
23
24
  \ProvidesClass{review-jsbook}
24
- [2020/08/16 v5.0 Re:VIEW pLaTeX class modified for jsbook.cls]
25
+ [2021/08/23 v5.3 Re:VIEW pLaTeX class modified for jsbook.cls]
25
26
 
26
27
  \def\recls@error{\ClassError{review-jsbook}}
27
28
  \def\recls@warning{\ClassWarning{review-jsbook}}
@@ -38,12 +39,18 @@
38
39
  \RequirePackage{fix-cm}%%\RequirePackage{fix-cm,exscale}
39
40
  \IfFileExists{latexrelease.sty}{}{\RequirePackage{fixltx2e}}
40
41
 
42
+ %% amsmath: override \@ifstar with \new@ifnextchar in amsgen.sty
43
+ \let\ltx@ifstar\@ifstar%%as \@ifstar of LaTeX kernel
44
+
41
45
  %% graphicx: added nosetpagesize
42
46
  \IfFileExists{platexrelease.sty}{%% is bundled in TL16 or higher release version
43
47
  \PassOptionsToPackage{nosetpagesize}{graphicx}%%for TL16 or higher version
44
48
  }{}
45
49
 
46
- \RequirePackage{xkeyval,everypage}%%,etoolbox
50
+ \RequirePackage{xkeyval}%%,etoolbox
51
+ \IfFileExists{everypage-1x.sty}{% is bundled in TL20 or higher
52
+ \RequirePackage{everypage-1x}
53
+ }{\RequirePackage{everypage}}
47
54
 
48
55
  %% useful helpers
49
56
  \newcommand\recls@get@p@[2]{%
@@ -148,7 +155,7 @@
148
155
  \xdef#1{\ifx\recls@hiddenfolio\@empty tombo,\fi#1}}
149
156
 
150
157
  %% \recls@set@hiddenfolio{<preset>}
151
- %% <preset>: default, marusho-ink (丸正インキ), nikko-pc (日光企画),
158
+ %% <preset>: default, marusho-ink (丸正インキ), nikko-pc (日光企画),
152
159
  %% shippo (ねこのしっぽ)
153
160
  \def\recls@set@hiddenfolio#1{\ifx#1\@empty\else
154
161
  \@ifundefined{@makehiddenfolio@#1}{%
@@ -283,6 +290,9 @@
283
290
  % \typeout{!!! magscale: \jsc@magscale}
284
291
  % \typeout{!!! mag: \the\mag}%%=> 1000 -> OK
285
292
 
293
+ %% compatibility for jlreq.cls
294
+ \let\if@tate\iftdir
295
+
286
296
  %% override papersize with custom papersize
287
297
  \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
288
298
  \setlength{\paperwidth}{\recls@paperwidth}
@@ -388,7 +398,7 @@
388
398
  hidelinks,
389
399
  setpagesize=false,
390
400
  ]{hyperref}
391
- \RequirePackage[dvipdfmx]{pxjahyper}
401
+ \RequirePackage{pxjahyper}
392
402
 
393
403
  %% more useful macros
394
404
  %% ----------
@@ -397,12 +407,29 @@
397
407
  \let\grnchry@gutter\recls@gutter
398
408
  \newcommand*\includefullpagegraphics{%
399
409
  \clearpage
400
- \@ifstar
410
+ \ltx@ifstar
401
411
  {\@includefullpagegraphics}%
402
412
  {\thispagestyle{empty}\@includefullpagegraphics}
403
413
  }
404
414
 
405
415
  \newcommand*\@includefullpagegraphics[2][]{%
416
+ \if@tate
417
+ \vbox to \textheight{%
418
+ \ifodd\c@page
419
+ \vskip-\dimexpr\evensidemargin - \topskip + 1in\relax
420
+ \else
421
+ \vskip-\dimexpr\oddsidemargin - \topskip + 1in\relax
422
+ \fi
423
+ \vbox to \paperwidth{\vss
424
+ \hbox to \textwidth{%
425
+ \hskip-\grnchry@head\relax
426
+ \hbox to \paperheight{\hss
427
+ \rotatebox{90}{\includegraphics[#1]{#2}}%
428
+ \hss}%
429
+ \hss}%
430
+ \vss}%
431
+ \vss}%
432
+ \else
406
433
  \vbox to \textheight{%
407
434
  \vskip-\grnchry@head
408
435
  \vbox to \paperheight{\vss
@@ -418,6 +445,7 @@
418
445
  \hss}%
419
446
  \vss}%
420
447
  \vss}%
448
+ \fi
421
449
  \clearpage
422
450
  }
423
451
 
@@ -492,5 +520,12 @@
492
520
  \def\coverpagezero#1{\expandafter\@coverpagezero\csname c@#1\endcsname}
493
521
  \def\@coverpagezero#1{cover}
494
522
 
523
+ %% 脚注がページをまたいで泣き別れさせない
524
+ \interfootnotelinepenalty\@M
525
+
526
+ %% 代替定義
527
+ \def\reviewleftcurlybrace{\{}
528
+ \def\reviewrightcurlybrace{\}}
529
+
495
530
  \listfiles
496
531
  \endinput
@@ -1,5 +1,5 @@
1
1
  \NeedsTeXFormat{LaTeX2e}
2
- \ProvidesPackage{review-style}[2019/09/16]
2
+ \ProvidesPackage{review-style}[2021/01/06]
3
3
 
4
4
  \RequirePackage{fancyhdr}
5
5
  \pagestyle{fancy}
@@ -47,3 +47,8 @@
47
47
 
48
48
  % space between English/Japanese characters in list environments (\z@ means 0, no space. You can comment out below line for backward compatibility.)
49
49
  \def\reviewlistxkanjiskip{\z@}
50
+
51
+ % boxsetting
52
+ \ifdefined\reviewboxsetting
53
+ \reviewboxsetting
54
+ \fi
@@ -0,0 +1,348 @@
1
+ \NeedsTeXFormat{LaTeX2e}
2
+ \ProvidesPackage{review-tcbox}[2021/1/28, Version 0.1.0]
3
+ \RequirePackage{tikz,tcolorbox,varwidth,multicol,ifthen,ifptex,ifluatex,ifuptex,ifxetex}
4
+
5
+ \usetikzlibrary{calc}
6
+ \tcbuselibrary{xparse,hooks,skins,breakable}
7
+
8
+ \ifthenelse{\boolean{luatex}}{% LuaLaTeX
9
+ \RequirePackage{luatexja}
10
+ \def\reviewtcb@textgt#1{\textgt{#1}}
11
+ \def\reviewtcb@gtfamily{\gtfamily}
12
+ \def\reviewtcb@zw#1#2{#1\zw}
13
+ }{
14
+ \ifthenelse{\boolean{xetex}}{% XeLaTeX
15
+ \RequirePackage{zxjatype}
16
+ \def\reviewtcb@textgt#1{\textbf{#1}}
17
+ \def\reviewtcb@gtfamily{\bfseries}
18
+ \def\reviewtcb@zw#1#2{#2}
19
+ }{
20
+ \ifthenelse{\boolean{ptex}}{% pLaTeX
21
+ \def\reviewtcb@textgt#1{\textgt{#1}}
22
+ \def\reviewtcb@gtfamily{\gtfamily}
23
+ \def\reviewtcb@zw#1#2{#1zw}
24
+ }{
25
+ \ifthenelse{\boolean{uptex}}{% upLaTeX
26
+ \def\reviewtcb@textgt#1{\textgt{#1}}
27
+ \def\reviewtcb@gtfamily{\gtfamily}
28
+ \def\reviewtcb@zw#1#2{#1zw}
29
+ }{% pdfLaTeX
30
+ \RequirePackage[whole]{bxcjkjatype}
31
+ \def\reviewtcb@textgt#1{\textbf{#1}}
32
+ \def\reviewtcb@gtfamily{\gtfamily}
33
+ \def\reviewtcb@zw#1#2{#2}
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ % markerスタイルのデフォルト設定
40
+ \def\tcb@rv@marker@markcolback{gray!80}
41
+ \def\tcb@rv@marker@markcoltext{white}
42
+ \def\tcb@rv@marker@markchar{!}
43
+
44
+ % 古いtcolorboxだとcolframe、colbackがない
45
+ \tcbset{%
46
+ colframe/.code={\colorlet{tcbcolframe}{#1}\colorlet{tcbcol@frame}{#1}},
47
+ colback/.code={\colorlet{tcbcolback}{#1}\colorlet{tcbcol@back}{#1}},
48
+ rv marker markcolback/.store in=\tcb@rv@marker@markcolback,
49
+ rv marker markcoltext/.store in=\tcb@rv@marker@markcoltext,
50
+ rv marker markchar/.store in=\tcb@rv@marker@markchar,
51
+ }
52
+
53
+ % squarebox
54
+ % - ごくシンプルな矩形
55
+ \DeclareTColorBox{rv@squarebox@nocaption}{ O{} }{%
56
+ empty, % スキン
57
+ left=3mm,right=3mm,top=3mm,bottom=3mm, % 内部パディング。デフォルトは4mm
58
+ arc=0mm, % コーナーの半径。デフォルトは1mm
59
+ % カラーは 色A!色Aの含み具合!色B。色Bを省略したときにはwhite
60
+ colback=white, %white, % 背景。デフォルトはblack!5!white
61
+ breakable, % ページ分断の許容
62
+ enhanced jigsaw, % 分断時に上下罫線を切り取り
63
+ pad at break=0mm, % 分断されたときの上下アキ。デフォルトは3.5mm
64
+ boxrule=.25mm, % 線幅。toprule,bottomrule,leftrule,rightruleで個別指定も可
65
+ before upper={\parindent\reviewtcb@zw{1}}, % 内容の1行目を字下げ
66
+ #1} % オプション値で追加・上書き可能
67
+
68
+ \DeclareTColorBox{rv@squarebox@caption}{ m O{} }{%
69
+ empty,
70
+ left=3mm,right=3mm,top=3mm,bottom=3mm,
71
+ arc=0mm,
72
+ colback=white,
73
+ breakable,
74
+ enhanced jigsaw,
75
+ pad at break=0mm,
76
+ boxrule=.25mm,
77
+ before upper={\parindent\reviewtcb@zw{1}},
78
+ coltitle=black, % キャプション文字色
79
+ colbacktitle=white, % キャプション背景
80
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
81
+ title={#1},
82
+ #2}
83
+
84
+ % squaresepcaptionbox
85
+ % - ごくシンプルな矩形・キャプション位置は分離
86
+ % - キャプション位置をオプションで指定する (キャプションなしの場合は意味がない)。
87
+ % attach boxed title to top left など
88
+ \DeclareTColorBox{rv@squaresepcaptionbox@nocaption}{ O{} }{%
89
+ empty,
90
+ left=3mm,right=3mm,top=3mm,bottom=3mm,
91
+ arc=0mm,
92
+ colback=white,
93
+ breakable,
94
+ enhanced jigsaw,
95
+ pad at break=0mm,
96
+ boxrule=.25mm,
97
+ before upper={\parindent\reviewtcb@zw{1}},
98
+ #1}
99
+
100
+ \DeclareTColorBox{rv@squaresepcaptionbox@caption}{ m O{} }{%
101
+ empty,
102
+ left=3mm,right=3mm,top=3mm,bottom=3mm,
103
+ arc=0mm,
104
+ colback=white,
105
+ breakable,
106
+ enhanced jigsaw,
107
+ pad at break=0mm,
108
+ boxrule=.25mm,
109
+ before upper={\parindent\reviewtcb@zw{1}},
110
+ boxed title style={arc=0mm,boxrule=0mm},
111
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
112
+ colbacktitle=black,
113
+ title={#1},
114
+ attach boxed title to top left,% パラメータでtoの値を指定できないかとやってみたのだが無理そう。attach boxed title自体のパラメータもなし。
115
+ #2}
116
+
117
+ % folderbox
118
+ % - tcolorboxサンプルの改変。キャプションなしの場合は単なる角丸囲み
119
+ \DeclareTColorBox{rv@folderbox@nocaption}{ O{} }{%
120
+ enhanced jigsaw,breakable,
121
+ pad at break=2mm,
122
+ arc=1mm,
123
+ boxrule=.25mm,
124
+ before upper={\parindent\reviewtcb@zw{1}},
125
+ colback=black!5!white,
126
+ coltitle=black,
127
+ #1}
128
+
129
+ \DeclareTColorBox{rv@folderbox@caption}{ m O{} }{%
130
+ enhanced jigsaw,breakable,
131
+ pad at break=2mm,
132
+ arc=1mm,
133
+ boxrule=.25mm,
134
+ before upper={\parindent\reviewtcb@zw{1}},
135
+ colback=black!5!white,
136
+ coltitle=black,
137
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
138
+ attach boxed title to top left={xshift=3.2mm,yshift=-0.25mm},
139
+ boxed title style={skin=enhancedfirst jigsaw, % キャプション部の飾り付け
140
+ size=small,arc=1mm,bottom=-1mm,
141
+ interior style={fill=none, top color=black!30!white, bottom color=black!5!white}}, % キャプション部網掛け
142
+ title={#1}
143
+ #2}
144
+
145
+ % clipbox
146
+ % - tcolorboxサンプルの改変。キャプションなしの場合は単なる角丸囲み
147
+ \DeclareTColorBox{rv@clipbox@nocaption}{ O{} }{%
148
+ enhanced jigsaw,breakable,
149
+ pad at break=2mm,
150
+ before skip=2mm,after skip=2mm,
151
+ colback=black!5,colframe=black!50,boxrule=0.2mm,
152
+ before upper={\parindent\reviewtcb@zw{1}},
153
+ #1}
154
+
155
+ \DeclareTColorBox{rv@clipbox@caption}{ m O{} }{%
156
+ enhanced jigsaw,breakable,
157
+ pad at break=2mm,
158
+ before skip=2mm,after skip=2mm,
159
+ colback=black!5,colframe=black!50,boxrule=0.2mm,
160
+ before upper={\parindent\reviewtcb@zw{1}},
161
+ attach boxed title to top left={xshift=6mm,yshift*=1mm-\tcboxedtitleheight},
162
+ varwidth boxed title*=-3cm,
163
+ boxed title style={
164
+ frame code={
165
+ \path[fill=tcbcol@back!30!black]
166
+ ([yshift=-1mm,xshift=-1mm]frame.north west)
167
+ arc[start angle=0,end angle=180,radius=1mm]
168
+ ([yshift=-1mm,xshift=1mm]frame.north east)
169
+ arc[start angle=180,end angle=0,radius=1mm];
170
+ \path[left color=tcbcol@back!60!black,right color=tcbcol@back!60!black,
171
+ middle color=tcbcol@back!80!black]
172
+ ([xshift=-2mm]frame.north west) -- ([xshift=2mm]frame.north east)
173
+ [rounded corners=1mm]-- ([xshift=1mm,yshift=-1mm]frame.north east)
174
+ -- (frame.south east) -- (frame.south west)
175
+ -- ([xshift=-1mm,yshift=-1mm]frame.north west)
176
+ [sharp corners]-- cycle;
177
+ },interior engine=empty,
178
+ },
179
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
180
+ title={#1},
181
+ #2}
182
+
183
+ % dottedbox
184
+ % - ドット囲み。キャプションは内容に接続させている
185
+ \DeclareTColorBox{rv@dottedbox@nocaption}{ O{} }{%
186
+ enhanced,breakable,arc=1mm,
187
+ frame hidden,colback=white,
188
+ borderline={0.25mm}{0mm}{black,dotted},
189
+ fontupper={\gtfamily\sffamily},
190
+ % before upper={\parindent\reviewtcb@zw{1}},
191
+ #1}
192
+
193
+ \DeclareTColorBox{rv@dottedbox@caption}{ m O{} }{%
194
+ enhanced,breakable,arc=1mm,
195
+ frame hidden,colback=white,
196
+ borderline={0.25mm}{0mm}{black,dotted},
197
+ fontupper={\gtfamily\sffamily},
198
+ % before upper={\parindent\reviewtcb@zw{1}},
199
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
200
+ coltitle=black,
201
+ attach title to upper, after title={\quad},
202
+ title={#1},
203
+ #2}
204
+
205
+ % bothsidelinebox
206
+ % - 左右線
207
+ \DeclareTColorBox{rv@bothsidelinebox@nocaption}{ O{} }{%
208
+ enhanced,breakable,skin=enhancedmiddle,
209
+ frame hidden,interior hidden,top=0mm,bottom=0mm,boxsep=0mm,
210
+ borderline={0.4mm}{0mm}{black},
211
+ borderline={0.4mm}{0.4mm}{black!50},
212
+ borderline={0.4mm}{0.8mm}{black!10},
213
+ before upper={\parindent\reviewtcb@zw{1}},
214
+ #1}
215
+
216
+ \DeclareTColorBox{rv@bothsidelinebox@caption}{ m O{} }{%
217
+ enhanced,breakable,skin=enhancedmiddle,
218
+ frame hidden,interior hidden,top=0mm,bottom=0mm,boxsep=0mm,
219
+ borderline={0.4mm}{0mm}{black},
220
+ borderline={0.4mm}{0.4mm}{black!50},
221
+ borderline={0.4mm}{0.8mm}{black!10},
222
+ before upper={\parindent\reviewtcb@zw{1}},
223
+ coltitle=black,
224
+ bottomtitle=2mm,
225
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
226
+ title={#1},
227
+ #2}
228
+
229
+ % leftsidelinebox
230
+ % - 左線
231
+ \DeclareTColorBox{rv@leftsidelinebox@nocaption}{ O{} }{%
232
+ enhanced,breakable,skin=enhancedmiddle,
233
+ frame hidden,interior hidden,top=0mm,bottom=0mm,right=0mm,boxsep=0mm,
234
+ borderline west={0.4mm}{0mm}{black}, % westを付けて左のみにする
235
+ borderline west={0.4mm}{0.4mm}{black!50},
236
+ borderline west={0.4mm}{0.8mm}{black!10},
237
+ before upper={\parindent\reviewtcb@zw{1}},
238
+ #1}
239
+
240
+ \DeclareTColorBox{rv@leftsidelinebox@caption}{ m O{} }{%
241
+ enhanced,breakable,skin=enhancedmiddle,
242
+ frame hidden,interior hidden,top=0mm,bottom=0mm,right=0mm,boxsep=0mm,
243
+ borderline west={0.4mm}{0mm}{black},
244
+ borderline west={0.4mm}{0.4mm}{black!50},
245
+ borderline west={0.4mm}{0.8mm}{black!10},
246
+ before upper={\parindent\reviewtcb@zw{1}},
247
+ coltitle=black,
248
+ bottomtitle=2mm,
249
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
250
+ title={#1},
251
+ #2}
252
+
253
+ % outerarcbox
254
+ % - 内側にさらに角丸が入るデザイン
255
+ \DeclareTColorBox{rv@outerarcbox@nocaption}{ O{} }{%
256
+ empty, % スキン
257
+ arc=3mm, % コーナーの半径
258
+ outer arc=1mm,
259
+ colback=white,
260
+ breakable,
261
+ enhanced jigsaw,
262
+ pad at break=0mm,
263
+ boxrule=.25mm,
264
+ before upper={\parindent\reviewtcb@zw{1}},
265
+ #1}
266
+
267
+ \DeclareTColorBox{rv@outerarcbox@caption}{ m O{} }{%
268
+ empty,
269
+ arc=3mm,
270
+ outer arc=1mm,
271
+ colback=white,
272
+ breakable,
273
+ enhanced jigsaw,
274
+ pad at break=0mm,
275
+ boxrule=.25mm,
276
+ before upper={\parindent\reviewtcb@zw{1}},
277
+ coltitle=black,
278
+ colbacktitle=white,
279
+ titlerule=0.25mm,
280
+ % titlerule style={}, % ダッシュかドットにしたいが変なことになる
281
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
282
+ title={#1},
283
+ #2}
284
+
285
+ % marker
286
+ % - tcolorboxマニュアルのTipsを改変。白黒をデフォルトとし、分割に対応
287
+ % 固有オプション:
288
+ % - rv marker markchar=文字: 左列に表示するマークの文字。デフォルト:!
289
+ % - rv marker markcolback=色: 左列の背景色。デフォルト:gray!80
290
+ % - rv marker markcoltext=色: 左列の文字色。デフォルト:white
291
+ \DeclareTColorBox{rv@marker@nocaption}{ O{} }{%
292
+ enhanced,breakable,
293
+ before skip=2mm,after skip=3mm,
294
+ boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,
295
+ before upper={\parindent\reviewtcb@zw{1}},
296
+ colback=gray!5,
297
+ colframe=black,
298
+ sharp corners,rounded corners=southeast,arc is angular,arc=3mm,
299
+ underlay first={%
300
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
301
+ },
302
+ underlay middle={%
303
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
304
+ },
305
+ underlay last={%
306
+ \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
307
+ \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
308
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
309
+ },
310
+ underlay unbroken={%
311
+ \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
312
+ \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
313
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
314
+ },
315
+ drop fuzzy shadow,#1}
316
+
317
+ \DeclareTColorBox{rv@marker@caption}{ m O{} }{%
318
+ enhanced,breakable,
319
+ before skip=2mm,after skip=3mm,
320
+ boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,
321
+ colback=gray!5,
322
+ colframe=black,
323
+ sharp corners,rounded corners=southeast,arc is angular,arc=3mm,
324
+ underlay first={%
325
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
326
+ },
327
+ underlay middle={%
328
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
329
+ },
330
+ underlay last={%
331
+ \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
332
+ \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
333
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
334
+ },
335
+ underlay unbroken={%
336
+ \path[fill=tcbcolback!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
337
+ \path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
338
+ \path[fill=\tcb@rv@marker@markcolback,draw=none] (interior.south west) rectangle node[\tcb@rv@marker@markcoltext]{\Huge\bfseries\tcb@rv@marker@markchar} ([xshift=4mm]interior.north west);
339
+ },
340
+ detach title,
341
+ title={#1},
342
+ coltitle=black,
343
+ fonttitle={\reviewtcb@gtfamily\sffamily\bfseries},
344
+ before upper={\tcbtitle\par\parindent\reviewtcb@zw{1}},
345
+ % before upper={\parindent\reviewtcb@zw{1}},
346
+ drop fuzzy shadow,#2}
347
+
348
+ \endinput
@@ -4,6 +4,11 @@
4
4
  % Re:VIEW 2互換のreviewmacro.sty(装飾カスタマイズ)内容
5
5
  \RequirePackage{review-style}
6
6
 
7
+ % 囲み飾りの設定
8
+ \ifdefined\reviewboxsetting%
9
+ \RequirePackage{review-tcbox}
10
+ \fi
11
+
7
12
  % ユーザー固有の定義
8
13
  \RequirePackage{review-custom}
9
14
 
@@ -7,15 +7,15 @@
7
7
  <%= @opf_manifest %>
8
8
  <%= @opf_toc %>
9
9
  <guide>
10
- <reference type="cover" title="<%= @producer.res.v('covertitle') %>" href="<%= @producer.config['cover'] %>"/>
11
- <% if @producer.config['titlepage'].present? %>
12
- <reference type="title-page" title="<%= @producer.res.v('titlepagetitle') %>" href="titlepage.<%= @producer.config['htmlext'] %>"/>
10
+ <reference type="cover" title="<%= ReVIEW::I18n.t('covertitle') %>" href="<%= @config['cover'] %>"/>
11
+ <% if @config['titlepage'].present? %>
12
+ <reference type="title-page" title="<%= ReVIEW::I18n.t('titlepagetitle') %>" href="titlepage.<%= @config['htmlext'] %>"/>
13
13
  <% end %>
14
- <% if @producer.config['mytoc'].present? %>
15
- <reference type="toc" title="<%= @producer.res.v('toctitle') %>" href="<%= @producer.config['bookname'] %>-toc.<%= @producer.config['htmlext'] %>"/>
14
+ <% if @config['mytoc'].present? %>
15
+ <reference type="toc" title="<%= ReVIEW::I18n.t('toctitle') %>" href="<%= @config['bookname'] %>-toc.<%= @config['htmlext'] %>"/>
16
16
  <% end %>
17
- <% if @producer.config['colophon'].present? %>
18
- <reference type="colophon" title="<%= @producer.res.v('colophontitle') %>" href="colophon.<%= @producer.config['htmlext'] %>"/>
17
+ <% if @config['colophon'].present? %>
18
+ <reference type="colophon" title="<%= ReVIEW::I18n.t('colophontitle') %>" href="colophon.<%= @config['htmlext'] %>"/>
19
19
  <% end %>
20
20
  </guide>
21
21
  </package>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <package version="3.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId" xml:lang="<%= @producer.config['language'] %>"<%= @package_attrs %>>
2
+ <package version="3.0" xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookId" xml:lang="<%= @config['language'] %>"<%= @package_attrs %>>
3
3
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
4
4
  <%= @opf_metainfo %>
5
5
  <%= @opf_coverimage %>
@@ -7,13 +7,13 @@
7
7
  <%= @opf_manifest %>
8
8
  <%= @opf_toc %>
9
9
  <guide>
10
- <reference type="cover" title="<%= @producer.res.v('covertitle') %>" href="<%= @producer.config['cover'] %>"/>
11
- <% if @producer.config["titlepage"].present? %>
12
- <reference type="title-page" title="<%= @producer.res.v('titlepagetitle') %>" href="titlepage.<%= @producer.config['htmlext'] %>"/>
10
+ <reference type="cover" title="<%= ReVIEW::I18n.t('covertitle') %>" href="<%= @config['cover'] %>"/>
11
+ <% if @config["titlepage"].present? %>
12
+ <reference type="title-page" title="<%= ReVIEW::I18n.t('titlepagetitle') %>" href="titlepage.<%= @config['htmlext'] %>"/>
13
13
  <% end %>
14
- <reference type="toc" title="<%= @producer.res.v('toctitle') %>" href="<%= @producer.config['bookname'] %>-toc.<%= @producer.config['htmlext'] %>"/>
15
- <% if @producer.config['colophon'].present? %>
16
- <reference type="colophon" title="<%= @producer.res.v('colophontitle') %>" href="colophon.<%= @producer.config['htmlext'] %>"/>
14
+ <reference type="toc" title="<%= ReVIEW::I18n.t('toctitle') %>" href="<%= @config['bookname'] %>-toc.<%= @config['htmlext'] %>"/>
15
+ <% if @config['colophon'].present? %>
16
+ <reference type="colophon" title="<%= ReVIEW::I18n.t('colophontitle') %>" href="colophon.<%= @config['htmlext'] %>"/>
17
17
  <% end %>
18
18
  </guide>
19
19
  </package>
@@ -0,0 +1,10 @@
1
+ <manifest>
2
+ <item id="ncx" href="<%= @config['bookname'] %>.ncx" media-type="application/x-dtbncx+xml"/>
3
+ <item id="<%= @config['bookname'] %>" href="<%= @config['cover'] %>" media-type="application/xhtml+xml"/>
4
+ <% if @config['toc'] && @config['mytoc'] %>
5
+ <item id="toc" href="<%= @config['bookname'] %>-toc.<%= @config['htmlext'] %>" media-type="application/xhtml+xml"/>
6
+ <% end %>
7
+ <% @items.each do |item| %>
8
+ <item id="<%= item.id %>" href="<%= item.file %>" media-type="<%= item.media %>"/>
9
+ <% end %>
10
+ </manifest>
@@ -0,0 +1,10 @@
1
+ <manifest>
2
+ <item properties="nav" id="<%= @config['bookname'] %>-toc.<%= @config['htmlext'] %>" href="<%= @config['bookname'] %>-toc.<%= @config['htmlext'] %>" media-type="application/xhtml+xml"/>
3
+ <item id="<%= @config['bookname'] %>" href="<%= @config['cover'] %>" media-type="application/xhtml+xml"/>
4
+ <% if @coverimage %>
5
+ <item properties="cover-image" id="cover-<%= @coverimage.id %>" href="<%= @coverimage.file %>" media-type="<%= @coverimage.media %>"/>
6
+ <% end %>
7
+ <% @items.each do |item| %>
8
+ <item id="<%= item.id %>" href="<%= item.file %>" media-type="<%= item.media %>"<%= item.properties_attribute %>/>
9
+ <% end %>
10
+ </manifest>
@@ -0,0 +1,17 @@
1
+ <% @dc_items.each do |item| %>
2
+ <<%= item[:tag] %>><%= h(item[:val]) %></<%= item[:tag] %>>
3
+ <% end %>
4
+ <% if @config['isbn'] %>
5
+ <dc:identifier id="BookId" opf:scheme="ISBN"><%= @config['isbn'] %></dc:identifier>
6
+ <% else %>
7
+ <dc:identifier id="BookId"><%= @config['urnid'] %></dc:identifier>
8
+ <% end %>
9
+ <% @creators.each do |creator| %>
10
+ <dc:creator opf:role="<%= creator[:role] %>"><%= h(creator[:val]) %></dc:creator>
11
+ <% end %>
12
+ <% @contributers.each do |contributer| %>
13
+ <dc:contributor opf:role="<%= contributer[:role] %>"><%= h(contributer[:val]) %></dc:contributor>
14
+ <% if contributer[:role] == 'prt' %>
15
+ <dc:publisher><%= h(contributer[:val]) %></dc:publisher>
16
+ <% end %>
17
+ <% end %>
@@ -0,0 +1,49 @@
1
+ <%# --- DC items --- %>
2
+ <% @dc_items.each do |item| %>
3
+ <<%= item[:tag] %> id="<%= item[:id] %>"><%= item[:val] %></<%= item[:tag] %>>
4
+ <% item[:refines].each do | refine | %>
5
+ <meta refines="#<%= item[:id] %>" property="<%= refine[:name] %>"><%= h(refine[:val]) %></meta>
6
+ <% end %>
7
+ <% end %>
8
+ <meta property="dcterms:modified"><%= @config['modified'] %></meta>
9
+ <% if @config['isbn'] %>
10
+ <dc:identifier id="BookId"><%= @config['isbn'] %></dc:identifier>
11
+ <% else %>
12
+ <dc:identifier id="BookId"><%= @config['urnid'] %></dc:identifier>
13
+ <% end %>
14
+ <%# --- creator --- %>
15
+ <% @creators.each do |creator| %>
16
+ <dc:creator id="<%= creator[:id] %>"><%= creator[:val] %></dc:creator>
17
+ <% creator[:refines].each do |refine| %>
18
+ <% if refine[:scheme] %>
19
+ <meta refines="#<%= refine[:id] %>" property="<%= refine[:property]%>" scheme="<%= refine[:scheme] %>"><%= refine[:val] %></meta>
20
+ <% else %>
21
+ <meta refines="#<%= refine[:id] %>" property="<%= refine[:property]%>"><%= refine[:val] %></meta>
22
+ <% end %>
23
+ <% end %>
24
+ <% end %>
25
+ <%# --- contributer --- %>
26
+ <% @contributers.each do |contributer| %>
27
+ <dc:contributor id="<%= contributer[:id] %>"><%= h(contributer[:val]) %></dc:contributor>
28
+ <% contributer[:refines].each do |refine| %>
29
+ <% if refine[:scheme] %>
30
+ <meta refines="#<%= refine[:id] %>" property="<%= refine[:property]%>" scheme="<%= refine[:scheme] %>"><%= refine[:val] %></meta>
31
+ <% else %>
32
+ <meta refines="#<%= refine[:id] %>" property="<%= refine[:property]%>"><%= refine[:val] %></meta>
33
+ <% end %>
34
+ <% end %>
35
+ <% if contributer[:pub_id] %>
36
+ <dc:publisher id="<%= contributer[:pub_id] %>"><%= h(contributer[:pub_val]) %></dc:publisher>
37
+ <% contributer[:pub_refines].each do |refine| %>
38
+ <% if refine[:scheme] %>
39
+ <meta refines="#<%= refine[:id] %>" property="<%= refine[:property]%>" scheme="<%= refine[:scheme] %>"><%= refine[:val] %></meta>
40
+ <% else %>
41
+ <meta refines="#<%= refine[:id] %>" property="<%= refine[:property]%>"><%= refine[:val] %></meta>
42
+ <% end %>
43
+ <% end %>
44
+ <% end %>
45
+ <% end %>
46
+ <%# --- other --- %>
47
+ <% (@config['opf_meta'] || [] ).each do |k, v| %>
48
+ <meta property="<%= h(k) %>"><%= h(v) %></meta>
49
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <spine toc="ncx">
2
+ <itemref idref="<%= @config['bookname'] %>" linear="<%= @cover_linear %>"/>
3
+ <% if @config['mytoc'] %>
4
+ <itemref idref="toc" />
5
+ <% end %>
6
+ <% @ncx_contents.each do |item| %>
7
+ <itemref idref="<%= item.id %>"/>
8
+ <% end %>
9
+ </spine>
@@ -0,0 +1,17 @@
1
+ <% if @config['direction'] %>
2
+ <spine page-progression-direction="<%= @config['direction'] %>">
3
+ <% else %>
4
+ <spine>
5
+ <% end %>
6
+ <itemref idref="<%= @config['bookname'] %>" linear="<%= @cover_linear %>"/>
7
+ <% toc = nil %>
8
+ <% @tocx_contents.each do |item| %>
9
+ <% if toc.nil? && item.chaptype != 'pre' %>
10
+ <% if @config['toc'] %>
11
+ <itemref idref="<%= @config['bookname'] %>-toc.<%= @config['htmlext'] %>" />
12
+ <% end %>
13
+ <% toc = true %>
14
+ <% end %>
15
+ <itemref idref="<%= item.id %>"/>
16
+ <% end %>
17
+ </spine>