review 4.2.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-win.yml +11 -5
  3. data/.rubocop.yml +113 -24
  4. data/NEWS.ja.md +94 -0
  5. data/NEWS.md +94 -0
  6. data/bin/review-catalog-converter +1 -1
  7. data/bin/review-check +2 -4
  8. data/bin/review-checkdep +1 -1
  9. data/bin/review-compile +8 -14
  10. data/bin/review-validate +1 -1
  11. data/doc/config.yml.sample +4 -1
  12. data/doc/config.yml.sample-simple +1 -1
  13. data/doc/format.ja.md +83 -4
  14. data/doc/format.md +84 -7
  15. data/doc/makeindex.ja.md +2 -2
  16. data/doc/quickstart.ja.md +3 -3
  17. data/doc/quickstart.md +2 -2
  18. data/lib/epubmaker/content.rb +3 -2
  19. data/lib/epubmaker/epubcommon.rb +33 -25
  20. data/lib/epubmaker/epubv2.rb +5 -6
  21. data/lib/epubmaker/epubv3.rb +20 -18
  22. data/lib/review/book.rb +2 -2
  23. data/lib/review/book/base.rb +61 -25
  24. data/lib/review/book/bib.rb +21 -0
  25. data/lib/review/book/book_unit.rb +155 -0
  26. data/lib/review/book/chapter.rb +30 -26
  27. data/lib/review/book/index.rb +23 -185
  28. data/lib/review/book/index/item.rb +7 -1
  29. data/lib/review/book/part.rb +21 -9
  30. data/lib/review/book/volume.rb +1 -1
  31. data/lib/review/builder.rb +68 -13
  32. data/lib/review/catalog.rb +2 -2
  33. data/lib/review/compiler.rb +159 -73
  34. data/lib/review/configure.rb +22 -1
  35. data/lib/review/converter.rb +1 -1
  36. data/lib/review/epub2html.rb +6 -1
  37. data/lib/review/epubmaker.rb +12 -23
  38. data/lib/review/htmlbuilder.rb +36 -7
  39. data/lib/review/htmlutils.rb +7 -10
  40. data/lib/review/i18n.rb +1 -1
  41. data/lib/review/idgxmlbuilder.rb +51 -6
  42. data/lib/review/idgxmlmaker.rb +9 -14
  43. data/lib/review/index_builder.rb +653 -0
  44. data/lib/review/init.rb +5 -13
  45. data/lib/review/latexbuilder.rb +65 -4
  46. data/lib/review/logger.rb +2 -2
  47. data/lib/review/makerhelper.rb +11 -0
  48. data/lib/review/markdownbuilder.rb +19 -1
  49. data/lib/review/pdfmaker.rb +17 -36
  50. data/lib/review/plaintextbuilder.rb +48 -2
  51. data/lib/review/preprocessor.rb +5 -5
  52. data/lib/review/rstbuilder.rb +25 -6
  53. data/lib/review/sec_counter.rb +13 -0
  54. data/lib/review/textmaker.rb +4 -12
  55. data/lib/review/tocprinter.rb +2 -3
  56. data/lib/review/topbuilder.rb +26 -0
  57. data/lib/review/update.rb +7 -7
  58. data/lib/review/version.rb +1 -1
  59. data/lib/review/volumeprinter.rb +2 -3
  60. data/lib/review/webmaker.rb +9 -20
  61. data/review.gemspec +2 -2
  62. data/samples/sample-book/src/config.yml +1 -1
  63. data/samples/syntax-book/Gemfile +1 -1
  64. data/samples/syntax-book/config.yml +1 -1
  65. data/templates/latex/config.erb +27 -23
  66. data/templates/latex/review-jlreq/README.md +3 -1
  67. data/templates/latex/review-jlreq/review-base.sty +31 -15
  68. data/templates/latex/review-jlreq/review-jlreq.cls +8 -24
  69. data/templates/latex/review-jsbook/README.md +7 -5
  70. data/templates/latex/review-jsbook/review-base.sty +34 -16
  71. data/templates/latex/review-jsbook/review-jsbook.cls +4 -2
  72. data/templates/web/html/layout-html5.html.erb +1 -1
  73. data/test/assets/test_template.tex +3 -3
  74. data/test/assets/test_template_backmatter.tex +3 -3
  75. data/test/book_test_helper.rb +11 -5
  76. data/test/test_book.rb +54 -63
  77. data/test/test_book_chapter.rb +93 -52
  78. data/test/test_builder.rb +24 -15
  79. data/test/test_converter.rb +1 -0
  80. data/test/test_epub3maker.rb +2 -2
  81. data/test/test_epubmaker.rb +8 -0
  82. data/test/test_helper.rb +4 -1
  83. data/test/test_htmlbuilder.rb +627 -56
  84. data/test/test_htmlutils.rb +0 -12
  85. data/test/test_i18n.rb +33 -33
  86. data/test/test_idgxmlbuilder.rb +358 -11
  87. data/test/test_idgxmlmaker_cmd.rb +1 -1
  88. data/test/test_index.rb +62 -52
  89. data/test/test_indexbuilder.rb +52 -0
  90. data/test/test_latexbuilder.rb +547 -10
  91. data/test/test_latexbuilder_v2.rb +43 -5
  92. data/test/test_logger.rb +7 -7
  93. data/test/test_makerhelper.rb +0 -12
  94. data/test/test_markdownbuilder.rb +3 -0
  95. data/test/test_pdfmaker.rb +13 -12
  96. data/test/test_pdfmaker_cmd.rb +1 -1
  97. data/test/test_plaintextbuilder.rb +422 -7
  98. data/test/test_review_ext.rb +2 -1
  99. data/test/test_rstbuilder.rb +25 -1
  100. data/test/test_sec_counter.rb +156 -0
  101. data/test/test_textmaker_cmd.rb +1 -1
  102. data/test/test_topbuilder.rb +187 -10
  103. data/test/test_update.rb +10 -10
  104. data/test/test_webtocprinter.rb +12 -12
  105. data/vendor/gentombow/LICENSE +1 -1
  106. data/vendor/gentombow/Makefile +0 -1
  107. data/vendor/gentombow/bounddvi-en.pdf +0 -0
  108. data/vendor/gentombow/bounddvi-en.tex +1 -0
  109. data/vendor/gentombow/bounddvi.pdf +0 -0
  110. data/vendor/gentombow/bounddvi.sty +30 -7
  111. data/vendor/gentombow/bounddvi.tex +1 -0
  112. data/vendor/gentombow/create_archive.sh +1 -0
  113. data/vendor/gentombow/gentombow-ja.pdf +0 -0
  114. data/vendor/gentombow/gentombow-ja.tex +9 -0
  115. data/vendor/gentombow/gentombow.pdf +0 -0
  116. data/vendor/gentombow/gentombow.sty +32 -10
  117. data/vendor/gentombow/gentombow.tex +8 -0
  118. data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
  119. data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
  120. data/vendor/jsclasses/Makefile +3 -2
  121. data/vendor/jsclasses/create_archive.sh +5 -5
  122. data/vendor/jsclasses/jis/Makefile +3 -2
  123. data/vendor/jsclasses/jis/jsarticle.cls +22 -18
  124. data/vendor/jsclasses/jis/jsbook.cls +22 -18
  125. data/vendor/jsclasses/jis/jsclasses.dtx +94 -13
  126. data/vendor/jsclasses/jis/jsclasses.ins +15 -5
  127. data/vendor/jsclasses/jis/jslogo.ins +9 -0
  128. data/vendor/jsclasses/jis/jslogo.sty +1 -13
  129. data/vendor/jsclasses/jis/jspf.cls +22 -18
  130. data/vendor/jsclasses/jis/jsreport.cls +22 -18
  131. data/vendor/jsclasses/jis/jsverb.ins +9 -0
  132. data/vendor/jsclasses/jis/jsverb.sty +1 -13
  133. data/vendor/jsclasses/jis/kiyou.cls +22 -18
  134. data/vendor/jsclasses/jis/minijs.sty +65 -22
  135. data/vendor/jsclasses/jis/okumacro.ins +9 -0
  136. data/vendor/jsclasses/jis/okumacro.sty +1 -13
  137. data/vendor/jsclasses/jis/okuverb.ins +9 -0
  138. data/vendor/jsclasses/jis/okuverb.sty +1 -13
  139. data/vendor/jsclasses/jis/winjis.sty +23 -19
  140. data/vendor/jsclasses/jsarticle.cls +22 -18
  141. data/vendor/jsclasses/jsbook.cls +22 -18
  142. data/vendor/jsclasses/jsclasses.dtx +94 -13
  143. data/vendor/jsclasses/jsclasses.ins +15 -5
  144. data/vendor/jsclasses/jsclasses.pdf +0 -0
  145. data/vendor/jsclasses/jslogo.ins +9 -0
  146. data/vendor/jsclasses/jslogo.pdf +0 -0
  147. data/vendor/jsclasses/jslogo.sty +1 -13
  148. data/vendor/jsclasses/jspf.cls +22 -18
  149. data/vendor/jsclasses/jsreport.cls +22 -18
  150. data/vendor/jsclasses/jsverb.ins +9 -0
  151. data/vendor/jsclasses/jsverb.pdf +0 -0
  152. data/vendor/jsclasses/jsverb.sty +1 -13
  153. data/vendor/jsclasses/kiyou.cls +22 -18
  154. data/vendor/jsclasses/minijs.sty +68 -22
  155. data/vendor/jsclasses/okumacro.ins +9 -0
  156. data/vendor/jsclasses/okumacro.pdf +0 -0
  157. data/vendor/jsclasses/okumacro.sty +1 -13
  158. data/vendor/jsclasses/okuverb.ins +9 -0
  159. data/vendor/jsclasses/okuverb.pdf +0 -0
  160. data/vendor/jsclasses/okuverb.sty +1 -13
  161. data/vendor/jsclasses/tests/relfont.tex +10 -0
  162. data/vendor/jsclasses/winjis.sty +23 -19
  163. metadata +14 -6
  164. data/.rubocop_todo.yml +0 -7
  165. data/lib/review/book/compilable.rb +0 -174
@@ -64,7 +64,7 @@ EOT
64
64
  io = StringIO.new
65
65
  @u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
66
66
  assert_raise(ApplicationError) { @u.check_old_catalogs(@tmpdir) }
67
- assert_match(/review\-catalog\-converter/, io.string)
67
+ assert_match(/review-catalog-converter/, io.string)
68
68
 
69
69
  File.unlink(File.join(@tmpdir, fname))
70
70
  end
@@ -86,7 +86,7 @@ EOT
86
86
  io = StringIO.new
87
87
  @u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
88
88
  @u.check_own_files(@tmpdir)
89
- assert_match(/There is review\-ext\.rb file/, io.string)
89
+ assert_match(/There is review-ext\.rb file/, io.string)
90
90
  end
91
91
 
92
92
  def test_update_version_older
@@ -96,8 +96,8 @@ EOT
96
96
  @u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
97
97
  @u.parse_ymls(@tmpdir)
98
98
  @u.update_version
99
- assert_match(/Update 'review_version' to '4.0'/, io.string)
100
- assert_equal 'review_version: 4.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
99
+ assert_match(/Update 'review_version' to '5.0'/, io.string)
100
+ assert_equal 'review_version: 5.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
101
101
 
102
102
  File.write(File.join(@tmpdir, 'config.yml'), "review_version: 3.0\n")
103
103
 
@@ -105,19 +105,19 @@ EOT
105
105
  @u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
106
106
  @u.parse_ymls(@tmpdir)
107
107
  @u.update_version
108
- assert_match(/Update 'review_version' to '4.0'/, io.string)
109
- assert_equal 'review_version: 4.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
108
+ assert_match(/Update 'review_version' to '5.0'/, io.string)
109
+ assert_equal 'review_version: 5.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
110
110
  end
111
111
 
112
112
  def test_update_version_current
113
- File.write(File.join(@tmpdir, 'config.yml'), "review_version: 4.0\n")
113
+ File.write(File.join(@tmpdir, 'config.yml'), "review_version: 5.0\n")
114
114
 
115
115
  io = StringIO.new
116
116
  @u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
117
117
  @u.parse_ymls(@tmpdir)
118
118
  @u.update_version
119
119
  assert_equal '', io.string
120
- assert_equal 'review_version: 4.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
120
+ assert_equal 'review_version: 5.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
121
121
  end
122
122
 
123
123
  def test_update_version_newer
@@ -127,7 +127,7 @@ EOT
127
127
  @u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
128
128
  @u.parse_ymls(@tmpdir)
129
129
  @u.update_version
130
- assert_match(/Update 'review_version' to '4.0'/, io.string)
130
+ assert_match(/Update 'review_version' to '5.0'/, io.string)
131
131
  assert_equal 'review_version: 99.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
132
132
  end
133
133
 
@@ -385,7 +385,7 @@ EOT
385
385
 
386
386
  File.write(File.join(@tmpdir, 'sty/review-base.sty'), "% MODIFIED\n")
387
387
  @u.update_tex_stys('review-jsbook', @tmpdir)
388
- assert_match(/review\-base\.sty will be overridden/, io.string)
388
+ assert_match(/review-base\.sty will be overridden/, io.string)
389
389
  assert_equal cont, File.read(File.join(@tmpdir, 'sty/review-base.sty'))
390
390
  end
391
391
 
@@ -11,7 +11,7 @@ class WEBTOCPrinterTest < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  def test_webtocprinter_null
14
- dummy_book = ReVIEW::Book::Base.load
14
+ dummy_book = ReVIEW::Book::Base.new
15
15
  # chap = ReVIEW::Book::Chapter.new(dummy_book, 1, '-', nil, StringIO.new)
16
16
  str = WEBTOCPrinter.book_to_string(dummy_book)
17
17
  expect = <<-EOB
@@ -28,9 +28,9 @@ CHAPS:
28
28
  - ch1.re
29
29
  - ch2.re
30
30
  EOB
31
- mktmpbookdir 'catalog.yml' => catalog_yml,
31
+ mktmpbookdir('catalog.yml' => catalog_yml,
32
32
  'ch1.re' => "= ch. 1\n\n111\n",
33
- 'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
33
+ 'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
34
34
  str = WEBTOCPrinter.book_to_string(book)
35
35
  expect = <<-EOB
36
36
  <ul class="book-toc">
@@ -51,9 +51,9 @@ CHAPS:
51
51
  - part2:
52
52
  - ch2.re
53
53
  EOB
54
- mktmpbookdir 'catalog.yml' => catalog_yml,
54
+ mktmpbookdir('catalog.yml' => catalog_yml,
55
55
  'ch1.re' => "= ch. 1\n\n111\n",
56
- 'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
56
+ 'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
57
57
  str = WEBTOCPrinter.book_to_string(book)
58
58
  expect = <<-EOB
59
59
  <ul class="book-toc">
@@ -78,11 +78,11 @@ CHAPS:
78
78
  - p2.re:
79
79
  - ch2.re
80
80
  EOB
81
- mktmpbookdir 'catalog.yml' => catalog_yml,
81
+ mktmpbookdir('catalog.yml' => catalog_yml,
82
82
  'p1.re' => "= This is PART1\n\np111\n",
83
83
  'p2.re' => "= This is PART2\n\np111\n",
84
84
  'ch1.re' => "= ch. 1\n\n111\n",
85
- 'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
85
+ 'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
86
86
  str = WEBTOCPrinter.book_to_string(book)
87
87
  expect = <<-EOB
88
88
  <ul class="book-toc">
@@ -116,7 +116,7 @@ POSTDEF:
116
116
  - post1.re
117
117
  - post2.re
118
118
  EOB
119
- mktmpbookdir 'catalog.yml' => catalog_yml,
119
+ mktmpbookdir('catalog.yml' => catalog_yml,
120
120
  'pre1.re' => "= PRE1\n\npre111\n",
121
121
  'pre2.re' => "= PRE2\n\npre222\n",
122
122
  'app1.re' => "= APP1\n\napp111\n",
@@ -126,7 +126,7 @@ EOB
126
126
  'post1.re' => "= POST1\n\npo111\n",
127
127
  'post2.re' => "= POST2\n\npo222\n",
128
128
  'ch1.re' => "= ch. 1\n\n111\n",
129
- 'ch2.re' => "= ch. 2\n\n222\n" do |_dir, book, _files|
129
+ 'ch2.re' => "= ch. 2\n\n222\n") do |_dir, book, _files|
130
130
  str = WEBTOCPrinter.book_to_string(book)
131
131
  expect = <<-EOB
132
132
  <ul class="book-toc">
@@ -153,7 +153,7 @@ EOB
153
153
  catalog_yml = <<-EOB
154
154
  CHAPS:
155
155
  EOB
156
- mktmpbookdir 'catalog.yml' => catalog_yml do |_dir, book, _files|
156
+ mktmpbookdir('catalog.yml' => catalog_yml) do |_dir, book, _files|
157
157
  str = WEBTOCPrinter.book_to_string(book)
158
158
  expect = <<-EOB
159
159
  <ul class="book-toc">
@@ -172,11 +172,11 @@ CHAPS:
172
172
  - ch3.re
173
173
  - ch4.re
174
174
  EOB
175
- mktmpbookdir 'catalog.yml' => catalog_yml,
175
+ mktmpbookdir('catalog.yml' => catalog_yml,
176
176
  'ch1.re' => "A\n",
177
177
  'ch2.re' => "B\n\n= C\n== D\n",
178
178
  'ch3.re' => "//emlist{\nLIST\n//}\n",
179
- 'ch4.re' => "==[column] E\n\n= F" do |_dir, book, _files|
179
+ 'ch4.re' => "==[column] E\n\n= F") do |_dir, book, _files|
180
180
  str = WEBTOCPrinter.book_to_string(book)
181
181
  expect = <<-EOB
182
182
  <ul class="book-toc">
@@ -1,4 +1,4 @@
1
- Copyright (c) 2016-2018 Hironobu Yamashita
1
+ Copyright (c) 2016-2020 Hironobu Yamashita
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,6 @@ gentombow.pdf: gentombow.tex
25
25
  .PHONY: install clean
26
26
  install:
27
27
  mkdir -p ${TEXMF}/doc/latex/gentombow
28
- cp ./Makefile ${TEXMF}/doc/latex/gentombow/
29
28
  cp ./LICENSE ${TEXMF}/doc/latex/gentombow/
30
29
  cp ./README.md ${TEXMF}/doc/latex/gentombow/
31
30
  cp ./*.pdf ${TEXMF}/doc/latex/gentombow/
@@ -130,6 +130,7 @@ using \textsf{bounddvi} package.
130
130
  \item 2016/10/25 v7.1 (HY) Support for p\LaTeXe\ tombow option,
131
131
  compatibility with \textsf{graphics}/\textsf{color} packages
132
132
  \item 2016/12/28 v7.2 (HY) Documentation for the new \texttt{dvips} behavior
133
+ \item 2020/09/25 v8.0 (HY) Support for \LaTeXe/p\LaTeXe~2020-10-01
133
134
  \end{itemize}
134
135
 
135
136
  \end{document}
@@ -1,7 +1,7 @@
1
1
  %
2
2
  % bounddvi.sty
3
- % 2016/12/28 v7.2-v7.0 h.y.acetaminophen@gmail.com
4
- % 2004/12/15 v6.0-v1.0 inoue@ma.ns.tcu.ac.jp
3
+ % 2020/09/25 v8.0-v7.0 h.y.acetaminophen [at] gmail.com
4
+ % 2004/12/15 v6.0-v1.0 inoue [at] ma.ns.tcu.ac.jp
5
5
  %
6
6
  % This package, originally written by Koichi Inoue
7
7
  % and modified by Hironobu Yamashita, is distributed
@@ -10,7 +10,7 @@
10
10
  %
11
11
 
12
12
  \NeedsTeXFormat{LaTeX2e}
13
- \ProvidesPackage{bounddvi}[2016/12/28 v7.2 bounddvi]
13
+ \ProvidesPackage{bounddvi}[2020/09/25 v8.0 bounddvi]
14
14
 
15
15
  % catcode trick to hide \iftombow ... \else ... \fi
16
16
  % since \iftombow is defined only in pLaTeX.
@@ -50,6 +50,33 @@ Q \fi
50
50
  % reset catcode trick
51
51
  \catcode`\Q=11\relax
52
52
 
53
+ %% Since LaTeX2e 2020-10-01, \@begindocumenthook is deprecated
54
+ %% and \UseHook{begindocument} etc. are used.
55
+ %% This code appends papersize special to the _end_ of the hook.
56
+ %% (Note: support for old dvips is removed.)
57
+ \ifx\AddToHook\@undefined\else
58
+ \AtBeginDocument{\AtBeginDvi{%
59
+ \begingroup
60
+ % if \stockwidth/\stockheight are defined & have effective
61
+ % values, copy them to \paperwidth/\paperheight
62
+ % for current group
63
+ \ifx\stockwidth\@undefined\else \ifdim\stockwidth>\z@
64
+ \paperwidth\stockwidth
65
+ \fi\fi
66
+ \ifx\stockheight\@undefined\else \ifdim\stockheight>\z@
67
+ \paperheight\stockheight
68
+ \fi\fi
69
+ % adjust for \mag and emit papersize special
70
+ \divide\paperwidth\@m\multiply\paperwidth\mag
71
+ \divide\paperheight\@m\multiply\paperheight\mag
72
+ \special{papersize=\the\paperwidth,\the\paperheight}%
73
+ \endgroup}}
74
+ \expandafter\endinput
75
+ \fi
76
+
77
+ %% The rest of this package is meant for
78
+ %% LaTeX2e 2020-02-02 PL5 or older.
79
+
53
80
  % following code is almost equivalent to
54
81
  % \AtBeginDocument{\AtBeginDvi{...}}
55
82
  % however, we append the specification to the _beginning_ of
@@ -59,16 +86,12 @@ Q \fi
59
86
  \def\@prependto@begindocumenthook{\global\setbox\@begindvibox
60
87
  \vbox{\csname yoko\endcsname\unvbox\@begindvibox
61
88
  \begingroup
62
- % if \stockwidth/\stockheight are defined & have effective
63
- % values, copy them to \paperwidth/\paperheight
64
- % for current group
65
89
  \ifx\stockwidth\@undefined\else \ifdim\stockwidth>\z@
66
90
  \paperwidth\stockwidth
67
91
  \fi\fi
68
92
  \ifx\stockheight\@undefined\else \ifdim\stockheight>\z@
69
93
  \paperheight\stockheight
70
94
  \fi\fi
71
- % adjust for \mag and emit papersize special
72
95
  \divide\paperwidth\@m\multiply\paperwidth\mag
73
96
  \divide\paperheight\@m\multiply\paperheight\mag
74
97
  \special{papersize=\the\paperwidth,\the\paperheight}%
@@ -143,6 +143,7 @@ DVIファイルは用紙サイズ情報を含みませんが、PostScriptやPDF
143
143
  \item 2016/10/25 v7.1 (HY) p\LaTeXe{}のトンボサポート、
144
144
  2016年の新しい\textsf{graphics}/\textsf{color}に対応
145
145
  \item 2016/12/28 v7.2 (HY) 新仕様の\texttt{dvips}をドキュメント化
146
+ \item 2020/09/25 v8.0 (HY) \LaTeXe/p\LaTeXe~2020-10-01(予定)への対応
146
147
  \end{itemize}
147
148
 
148
149
  \end{document}
@@ -14,6 +14,7 @@ echo " * Create $PROJECT.zip ($RELEASEDATE)"
14
14
  git archive --format=tar --prefix=$PROJECT/ HEAD | (cd $TMP && tar xf -)
15
15
  rm $TMP/$PROJECT/.gitignore
16
16
  rm $TMP/$PROJECT/create_archive.sh
17
+ rm $TMP/$PROJECT/Makefile
17
18
  rm -rf $TMP/$PROJECT/tests
18
19
  perl -pi.bak -e "s/\\\$RELEASEDATE/$RELEASEDATE/g" $TMP/$PROJECT/README.md
19
20
  rm -f $TMP/$PROJECT/README.md.bak
@@ -291,6 +291,9 @@ CMYKの版ごとにトンボを作成する場合や、特色のトンボが必
291
291
  \item \verb+/BleedBox+: 裁ち落とし領域を含んだサイズ。
292
292
  \item \verb+/CropBox+, \verb+/ArtBox+: 明示しない。
293
293
  \end{itemize}
294
+ 注意:\textsf{pdfx}パッケージがPDF/Xモードで読み込まれていれば、
295
+ このオプション機能は自動的に有効化されます。
296
+ また、\verb+/CropBox+も明示します。
294
297
 
295
298
  \section{その他の注意点}
296
299
 
@@ -390,6 +393,11 @@ $30\,\mathrm{mm}$にしたいとき\footnote{ここでは「本文の領域以
390
393
  \end{verbatim}
391
394
  \end{dangerous}
392
395
 
396
+ なお、\textsf{geometry}パッケージは用紙サイズ
397
+ (\verb+\paperwidth+, \verb+\paperheight+)を変更する場合もあります。
398
+ こうした場合に備え、\textsf{gentombow}パッケージは
399
+ \textsf{geometry}パッケージよりも後に読み込むようにしてください。
400
+
393
401
  \section*{雑記}
394
402
 
395
403
  発端はこの話です。
@@ -444,6 +452,7 @@ $30\,\mathrm{mm}$にしたいとき\footnote{ここでは「本文の領域以
444
452
  \verb+pdfbox+オプションが正常動作するように改良、
445
453
  \verb+\settombowbleed+が\verb+/TrimBox+に反映されな
446
454
  かったバグの修正
455
+ \item 2019/07/21 v0.9k \textsf{pdfx}パッケージとの整合性をとる改良
447
456
  \end{itemize}
448
457
 
449
458
  \end{document}
@@ -8,7 +8,7 @@
8
8
 
9
9
  \NeedsTeXFormat{LaTeX2e}
10
10
  \ProvidesPackage{gentombow}
11
- [2018/08/30 v0.9j Generate crop mark 'tombow']
11
+ [2019/07/21 v0.9k Generate crop mark 'tombow']
12
12
  \def\pxgtmb@pkgname{gentombow}
13
13
  \@namedef{ver@pxgentombow.sty}{}% fake
14
14
 
@@ -290,6 +290,7 @@
290
290
  %% prepare flag
291
291
  \newif\ifpxgtmb@switch \pxgtmb@switchfalse
292
292
  \newif\ifpxgtmb@landscape \pxgtmb@landscapefalse
293
+ \newif\ifpxgtmb@pdfx@x \pxgtmb@pdfx@xfalse
293
294
 
294
295
  %% passed from class options
295
296
  %% should be declared first inside this package (least priority)
@@ -507,7 +508,7 @@
507
508
  %% pdf "digital tombo" (driver-dependent)
508
509
  % the box size calculation is delayed until \AtBeginDocument
509
510
  % to allow users to change \@tombowbleed in the preamble
510
- \if 1\pxgtmb@pdfbox@status
511
+
511
512
  % convert pt -> bp
512
513
  \def\pxgtmb@PDF@setbp#1#2{%
513
514
  \@tempdima=.996264#2\relax % 0.996264 = 72/72.27 (cf. 1in = 72.27pt = 72bp)
@@ -521,8 +522,8 @@
521
522
  \def\pxgtmb@magscale{1}%
522
523
  \fi
523
524
  % set pdf boxes in bp unit
524
- %\pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@x\stockwidth
525
- %\pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@y\stockheight
525
+ \pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@x\stockwidth
526
+ \pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@y\stockheight
526
527
  \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@x{\dimexpr(\stockwidth-\paperwidth)/2}%
527
528
  \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@y{\dimexpr(\stockheight-\paperheight)/2}%
528
529
  \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@x{\dimexpr(\stockwidth+\paperwidth)/2}%
@@ -532,8 +533,14 @@
532
533
  \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@x{\dimexpr(\stockwidth+\paperwidth)/2+\@tombowbleed}%
533
534
  \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@y{\dimexpr(\stockheight+\paperheight)/2+\@tombowbleed}%
534
535
  \xdef\pxgtmb@PDF@CTM{%
535
- %% CropBox: implicit (same as MediaBox, large paper size)
536
- %/CropBox [0 0 \pxgtmb@PDF@crop@ur@x\space \pxgtmb@PDF@crop@ur@y]
536
+ %% CropBox: normally implicit (same as MediaBox, large paper size)
537
+ %% however, pdfx.sty in PDF/X mode sets /CropBox explicitly, so I need to override it!
538
+ \ifpxgtmb@pdfx@x
539
+ \noexpand\pxgtmb@PDF@begin
540
+ /CropBox [0 0
541
+ \pxgtmb@PDF@crop@ur@x\space
542
+ \pxgtmb@PDF@crop@ur@y] \noexpand\pxgtmb@PDF@end
543
+ \fi
537
544
  %% BleedBox: explicit (final paper size + surrounding \@tombowbleed)
538
545
  \noexpand\pxgtmb@PDF@begin
539
546
  /BleedBox [\pxgtmb@PDF@bleed@ll@x\space
@@ -547,9 +554,20 @@
547
554
  \pxgtmb@PDF@trim@ur@x\space
548
555
  \pxgtmb@PDF@trim@ur@y] \noexpand\pxgtmb@PDF@end
549
556
  %% ArtBox: implicit
557
+ %% [Note] PDF/X requires /TrimBox or /ArtBox but not both!
550
558
  }%
551
559
  \endgroup
552
560
  }
561
+
562
+ % do it
563
+ \AtBeginDocument{\pxgtmb@PDF@emit}
564
+ \def\pxgtmb@PDF@emit{%
565
+ % handle compatibility with pdfx.sty here;
566
+ % if pdfx.sty with PDF/X mode detected, force [pdfbox] option!
567
+ \pxgtmb@handle@pdfx
568
+ \ifpxgtmb@pdfx@x\def\pxgtmb@pdfbox@status{1}\fi
569
+ % start actual procedure for [pdfbox] option
570
+ \if 1\pxgtmb@pdfbox@status
553
571
  %% supported drivers: dvips, dvipdfmx, XeTeX, pdfTeX, LuaTeX
554
572
  \ifnum0\ifx\pdfvariable\@undefined\else\the\outputmode\fi=0\relax
555
573
  \ifnum0\ifx\pdfpageattr\@undefined\else\the\pdfoutput\fi=0\relax
@@ -666,8 +684,7 @@
666
684
  \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
667
685
  \edef\pxgtmb@PDF@CTM{{\pxgtmb@PDF@CTM}}%
668
686
  \expandafter\pdfpageattr\pxgtmb@PDF@CTM}
669
- \fi
670
- \else
687
+ \fi\else
671
688
  %% for LuaTeX
672
689
  \def\pxgtmb@driver{l}
673
690
  % force paper size
@@ -679,7 +696,8 @@
679
696
  \edef\pxgtmb@PDF@CTM{pageattr{\pxgtmb@PDF@CTM}}%
680
697
  \expandafter\pdfvariable\pxgtmb@PDF@CTM}
681
698
  \fi
682
- \fi
699
+ \fi
700
+ }
683
701
 
684
702
  %% make visible tombow box according to the current status of
685
703
  %% \@bannerfont, \@bannertoken, \@tombowwidth & \@tombowbleed
@@ -713,7 +731,7 @@
713
731
  % because pdf boxes are calculated only inside \AtBeginDocument
714
732
  \@onlypreamble\settombowbleed
715
733
 
716
- %% patch internal for pdfpages to work with tombow
734
+ %% patch internal of pdfpages.sty to work with tombow
717
735
  %% (tested on pdfpages 2017/10/31 v0.5l)
718
736
  %% Note the code is the same as that of pxpdfpages.sty,
719
737
  %% but reserved here since gentombow.sty can be used on
@@ -744,4 +762,8 @@
744
762
  %% do it
745
763
  \AtBeginDocument{\@ifpackageloaded{pdfpages}{\pxgtmb@patch@pdfpages}{}}
746
764
 
765
+ %% patch pdfx.sty
766
+ %% (tested on pdfx 2019/02/27 v1.6.3)
767
+ \def\pxgtmb@handle@pdfx{\@ifpackageloaded{pdfx}{\let\ifpxgtmb@pdfx@x\ifpdfx@x}{}}
768
+
747
769
  \endinput
@@ -252,6 +252,9 @@ The paper size (\verb+/MediaBox+) is also corrected.
252
252
  \item \verb+/BleedBox+: paper size plus bleed margin.
253
253
  \item \verb+/CropBox+ and \verb+/ArtBox+ are not set.
254
254
  \end{itemize}
255
+ Note: if the package \textsf{pdfx} is loaded with PDF/X mode,
256
+ this optional feature is automatically enabled.
257
+ Also, \verb+/CropBox+ is set explicitly.
255
258
 
256
259
  \section{Additional Notes}
257
260
 
@@ -277,6 +280,10 @@ conflict with the feature of \textsf{gentombow} package.
277
280
  To set page layout correctly, you should adjust \verb+\oddsidemargin+
278
281
  or \verb+\topmargin+, or leave it to \textsf{geometry} package.
279
282
 
283
+ Note: since the package \textsf{geometry} also has a feature to
284
+ change the paper size (\verb+\paperwidth+, \verb+\paperheight+),
285
+ please load \textsf{gentombow} after \textsf{geometry}.
286
+
280
287
  \section*{Change History}
281
288
 
282
289
  \begin{itemize}
@@ -293,6 +300,7 @@ or \verb+\topmargin+, or leave it to \textsf{geometry} package.
293
300
  also with \verb+pdfbox+ option.
294
301
  Fix a bug that \verb+\settombowbleed+ is not
295
302
  considered by \verb+/TrimBox+.
303
+ \item 2019/07/21 v0.9k Support \textsf{pdfx} package.
296
304
  \end{itemize}
297
305
 
298
306
  \end{document}
@@ -0,0 +1,8 @@
1
+ %#!pdflatex
2
+ \documentclass[a4paper]{article}
3
+ \usepackage{gentombow}
4
+ \usepackage[x-1a]{pdfx}
5
+ \begin{document}
6
+ \noindent A\hfill B\clearpage
7
+ \noindent C\hfill D
8
+ \end{document}