review 4.2.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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}