review 3.0.0.preview2 → 3.0.0.preview3
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +7 -1
- data/NEWS.ja.md +49 -0
- data/NEWS.md +49 -0
- data/README.md +8 -2
- data/doc/LICENSE +20 -0
- data/doc/config.yml.sample +9 -2
- data/doc/customize_epub.ja.md +23 -0
- data/doc/customize_epub.md +23 -0
- data/doc/format.ja.md +98 -4
- data/doc/format.md +98 -1
- data/doc/makeindex.ja.md +2 -2
- data/doc/pdfmaker.ja.md +12 -3
- data/doc/pdfmaker.md +2 -2
- data/doc/preproc.ja.md +2 -2
- data/doc/quickstart.ja.md +1 -1
- data/doc/quickstart.md +1 -1
- data/lib/review/compiler.rb +1 -1
- data/lib/review/configure.rb +13 -1
- data/lib/review/epubmaker.rb +10 -4
- data/lib/review/htmlbuilder.rb +31 -9
- data/lib/review/init.rb +72 -3
- data/lib/review/makerhelper.rb +180 -1
- data/lib/review/pdfmaker.rb +23 -4
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +14 -4
- data/review.gemspec +1 -1
- data/samples/sample-book/src/Rakefile +20 -0
- data/samples/sample-book/src/config.yml +3 -2
- data/samples/sample-book/src/images/cover-a5.ai +5836 -16
- data/samples/sample-book/src/images/cover-b5.ai +5735 -15
- data/samples/syntax-book/config.yml +1 -1
- data/templates/LICENSE +1 -1
- data/templates/latex/config.erb +24 -11
- data/templates/latex/layout.tex.erb +15 -5
- data/templates/latex/review-jlreq/README.md +2 -1
- data/templates/latex/review-jlreq/review-base.sty +165 -22
- data/templates/latex/review-jlreq/review-jlreq.cls +180 -110
- data/templates/latex/review-jlreq/review-style.sty +13 -125
- data/templates/latex/review-jlreq/reviewmacro.sty +7 -0
- data/templates/latex/review-jsbook/README.md +129 -0
- data/templates/latex/review-jsbook/review-base.sty +33 -20
- data/templates/latex/review-jsbook/review-jsbook.cls +545 -0
- data/templates/latex/review-jsbook/reviewmacro.sty +7 -0
- data/test/assets/test_template.tex +27 -8
- data/test/assets/test_template_backmatter.tex +27 -8
- data/test/test_helper.rb +3 -0
- data/test/test_htmlbuilder.rb +3 -1
- data/test/test_pdfmaker.rb +2 -0
- data/vendor/gentombow/.gitignore +163 -0
- data/vendor/gentombow/LICENSE +27 -0
- data/vendor/gentombow/Makefile +36 -0
- data/vendor/gentombow/README.md +49 -0
- data/vendor/gentombow/bounddvi-en.pdf +0 -0
- data/vendor/gentombow/bounddvi-en.tex +135 -0
- data/vendor/gentombow/bounddvi.pdf +0 -0
- data/vendor/gentombow/bounddvi.sty +87 -0
- data/vendor/gentombow/bounddvi.tex +148 -0
- data/vendor/gentombow/create_archive.sh +24 -0
- data/vendor/gentombow/gentombow-ja.pdf +0 -0
- data/vendor/gentombow/gentombow-ja.tex +449 -0
- data/vendor/gentombow/gentombow.pdf +0 -0
- data/vendor/gentombow/gentombow.sty +747 -0
- data/vendor/gentombow/gentombow.tex +298 -0
- data/vendor/gentombow/pxgentombow.pdf +0 -0
- data/vendor/gentombow/pxgentombow.sty +16 -0
- data/vendor/gentombow/pxgentombow.tex +25 -0
- data/vendor/gentombow/tests/bounddvi-01-usage.tex +7 -0
- data/vendor/gentombow/tests/bounddvi-02-jstombow.tex +7 -0
- data/vendor/gentombow/tests/bounddvi-03-grfdvips.tex +9 -0
- data/vendor/gentombow/tests/bounddvi-04-grfdvipdfmx.tex +9 -0
- data/vendor/gentombow/tests/bounddvi-05-geodvips.tex +8 -0
- data/vendor/gentombow/tests/bounddvi-05a-geodvips.tex +9 -0
- data/vendor/gentombow/tests/bounddvi-06-geodvipdfmx.tex +8 -0
- data/vendor/gentombow/tests/bounddvi-06a-geodvipdfmx.tex +9 -0
- data/vendor/gentombow/tests/pxgentombow-01-usage.tex +6 -0
- data/vendor/gentombow/tests/pxgentombow-02-js.tex +6 -0
- data/vendor/gentombow/tests/pxgentombow-02a-js-error.tex +6 -0
- data/vendor/gentombow/tests/pxgentombow-03-notombowdate.tex +8 -0
- data/vendor/gentombow/tests/pxgentombow-04-pkgoption.tex +8 -0
- data/vendor/gentombow/tests/pxgentombow-05-tatecls.tex +6 -0
- metadata +40 -3
Binary file
|
@@ -0,0 +1,747 @@
|
|
1
|
+
%
|
2
|
+
% gentombow.sty
|
3
|
+
% written by Hironobu Yamashita (@aminophen)
|
4
|
+
%
|
5
|
+
% This package is part of the gentombow bundle.
|
6
|
+
% https://github.com/aminophen/gentombow
|
7
|
+
%
|
8
|
+
|
9
|
+
\NeedsTeXFormat{LaTeX2e}
|
10
|
+
\ProvidesPackage{gentombow}
|
11
|
+
[2018/08/30 v0.9j Generate crop mark 'tombow']
|
12
|
+
\def\pxgtmb@pkgname{gentombow}
|
13
|
+
\@namedef{ver@pxgentombow.sty}{}% fake
|
14
|
+
|
15
|
+
%% error status
|
16
|
+
\chardef\pxgtmb@errlevel=\z@
|
17
|
+
|
18
|
+
%% supported engines
|
19
|
+
% case 2: pdfLaTeX etc.
|
20
|
+
% case 1: pLaTeX2e <2018-04-01>+2 or older
|
21
|
+
% case 0: pLaTeX2e <2018-05-20> or newer
|
22
|
+
\ifx\pfmtversion\@undefined
|
23
|
+
\@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\tw@}
|
24
|
+
\fi
|
25
|
+
\ifnum\pxgtmb@errlevel<\tw@
|
26
|
+
\ifx\@tombowreset@@paper\@undefined
|
27
|
+
\chardef\pxgtmb@errlevel=\@ne
|
28
|
+
\fi
|
29
|
+
\fi
|
30
|
+
\ifcase\pxgtmb@errlevel
|
31
|
+
\let\pxgtmb@sel@twoone\@gobble
|
32
|
+
\let\pxgtmb@sel@two@one\@gobbletwo
|
33
|
+
\let\pxgtmb@sel@two\@gobble
|
34
|
+
\or
|
35
|
+
\let\pxgtmb@sel@twoone\@firstofone
|
36
|
+
\let\pxgtmb@sel@two@one\@secondoftwo
|
37
|
+
\let\pxgtmb@sel@two\@gobble
|
38
|
+
\or
|
39
|
+
\let\pxgtmb@sel@twoone\@firstofone
|
40
|
+
\let\pxgtmb@sel@two@one\@firstoftwo
|
41
|
+
\let\pxgtmb@sel@two\@firstofone
|
42
|
+
\else
|
43
|
+
\PackageError{\pxgtmb@pkgname}{%
|
44
|
+
This cannot happen!
|
45
|
+
Please report to package author}\@ehc
|
46
|
+
\expandafter\endinput
|
47
|
+
\fi
|
48
|
+
\@onlypreamble\pxgtmb@sel@twoone
|
49
|
+
\@onlypreamble\pxgtmb@sel@two@one
|
50
|
+
\@onlypreamble\pxgtmb@sel@two
|
51
|
+
|
52
|
+
%%%%% EMULATION BEGIN
|
53
|
+
|
54
|
+
% required for patching \@outputpage
|
55
|
+
\pxgtmb@sel@twoone{\RequirePackage{etoolbox}}
|
56
|
+
|
57
|
+
% patch \@outputpage
|
58
|
+
\begingroup
|
59
|
+
\def\pxgtmb@emu@status{0}
|
60
|
+
\let\pxgtmb@emu@outputpage\@outputpage
|
61
|
+
\pxgtmb@sel@two@one
|
62
|
+
{%% case 2 begin
|
63
|
+
\patchcmd\pxgtmb@emu@outputpage % try first patch
|
64
|
+
{\reset@font\normalsize\normalsfcodes}%
|
65
|
+
{\@tombowreset@@paper
|
66
|
+
\reset@font\normalsize\normalsfcodes}%
|
67
|
+
{}{\def\pxgtmb@emu@status{1}}
|
68
|
+
\patchcmd\pxgtmb@emu@outputpage % try second patch
|
69
|
+
{\@begindvi \vskip \topmargin}%
|
70
|
+
{\@begindvi \@outputtombow \vskip \@@topmargin}%
|
71
|
+
{}{\def\pxgtmb@emu@status{1}}
|
72
|
+
}%% case 2 end
|
73
|
+
{%% case 1 begin
|
74
|
+
\patchcmd\pxgtmb@emu@outputpage % try patch
|
75
|
+
{%
|
76
|
+
\@@topmargin\topmargin
|
77
|
+
\iftombow
|
78
|
+
\@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax
|
79
|
+
\@@paperheight\paperheight \advance\@@paperheight 16mm\relax
|
80
|
+
\advance\@@topmargin 1in\relax \advance\@themargin 1in\relax
|
81
|
+
\fi
|
82
|
+
\reset@font\normalsize\normalsfcodes}
|
83
|
+
{\@tombowreset@@paper
|
84
|
+
\reset@font\normalsize\normalsfcodes}%
|
85
|
+
{}{\def\pxgtmb@emu@status{1}}
|
86
|
+
}%% case 1 end
|
87
|
+
% commit the change only when successful; otherwise
|
88
|
+
% tombow feature is never enabled, exit right away
|
89
|
+
\pxgtmb@sel@twoone
|
90
|
+
{%% case 2 and 1 begin
|
91
|
+
\if 0\pxgtmb@emu@status\relax
|
92
|
+
\global\let\@outputpage\pxgtmb@emu@outputpage
|
93
|
+
\else
|
94
|
+
\PackageError{\pxgtmb@pkgname}{%
|
95
|
+
Failed in patching \string\@outputpage!\MessageBreak
|
96
|
+
Sorry, I can't proceed anymore...}\@ehc
|
97
|
+
\expandafter\expandafter\expandafter\endinput\expandafter
|
98
|
+
\fi
|
99
|
+
}%% case 2 and 1 end
|
100
|
+
\endgroup
|
101
|
+
%
|
102
|
+
|
103
|
+
% provides equivalent for plcore.ltx
|
104
|
+
\pxgtmb@sel@two
|
105
|
+
{%% case 2 begin
|
106
|
+
\newif\iftombow \tombowfalse
|
107
|
+
\newif\iftombowdate \tombowdatetrue
|
108
|
+
\newdimen\@tombowwidth
|
109
|
+
\setlength{\@tombowwidth}{.1\p@}
|
110
|
+
}%% case 2 end
|
111
|
+
\pxgtmb@sel@twoone
|
112
|
+
{%% case 2 and 1 begin
|
113
|
+
\setlength{\@tombowwidth}{.1\p@}
|
114
|
+
\def\@tombowbleed{3mm}
|
115
|
+
\def\@tombowcolor{\normalcolor}
|
116
|
+
}%% case 2 and 1 end
|
117
|
+
\pxgtmb@sel@two
|
118
|
+
{%% case 2 begin
|
119
|
+
\newbox\@TL\newbox\@Tl
|
120
|
+
\newbox\@TC
|
121
|
+
\newbox\@TR\newbox\@Tr
|
122
|
+
\newbox\@BL\newbox\@Bl
|
123
|
+
\newbox\@BC
|
124
|
+
\newbox\@BR\newbox\@Br
|
125
|
+
\newbox\@CL
|
126
|
+
\newbox\@CR
|
127
|
+
\font\@bannerfont=cmtt9
|
128
|
+
\newtoks\@bannertoken
|
129
|
+
\@bannertoken{}
|
130
|
+
}%% case 2 end
|
131
|
+
\pxgtmb@sel@twoone
|
132
|
+
{%% case 2 and 1 begin
|
133
|
+
\def\maketombowbox{% hide \yoko from all boxes
|
134
|
+
\setbox\@TL\hbox to\z@{\csname yoko\endcsname\hss
|
135
|
+
\vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@
|
136
|
+
\vrule height10mm width\@tombowwidth depth\z@
|
137
|
+
\iftombowdate
|
138
|
+
\raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}%
|
139
|
+
\fi}%
|
140
|
+
\setbox\@Tl\hbox to\z@{\csname yoko\endcsname\hss
|
141
|
+
\vrule width10mm height\@tombowwidth depth\z@
|
142
|
+
\vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@}%
|
143
|
+
\setbox\@TC\hbox{\csname yoko\endcsname
|
144
|
+
\vrule width10mm height\@tombowwidth depth\z@
|
145
|
+
\vrule height10mm width\@tombowwidth depth\z@
|
146
|
+
\vrule width10mm height\@tombowwidth depth\z@}%
|
147
|
+
\setbox\@TR\hbox to\z@{\csname yoko\endcsname
|
148
|
+
\vrule height10mm width\@tombowwidth depth\z@
|
149
|
+
\vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@\hss}%
|
150
|
+
\setbox\@Tr\hbox to\z@{\csname yoko\endcsname
|
151
|
+
\vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@
|
152
|
+
\vrule width10mm height\@tombowwidth depth\z@\hss}%
|
153
|
+
\setbox\@BL\hbox to\z@{\csname yoko\endcsname\hss
|
154
|
+
\vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@
|
155
|
+
\vrule depth10mm width\@tombowwidth height\z@}%
|
156
|
+
\setbox\@Bl\hbox to\z@{\csname yoko\endcsname\hss
|
157
|
+
\vrule width10mm depth\@tombowwidth height\z@
|
158
|
+
\vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@}%
|
159
|
+
\setbox\@BC\hbox{\csname yoko\endcsname
|
160
|
+
\vrule width10mm depth\@tombowwidth height\z@
|
161
|
+
\vrule depth10mm width\@tombowwidth height\z@
|
162
|
+
\vrule width10mm depth\@tombowwidth height\z@}%
|
163
|
+
\setbox\@BR\hbox to\z@{\csname yoko\endcsname
|
164
|
+
\vrule depth10mm width\@tombowwidth height\z@
|
165
|
+
\vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@\hss}%
|
166
|
+
\setbox\@Br\hbox to\z@{\csname yoko\endcsname
|
167
|
+
\vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@
|
168
|
+
\vrule width10mm depth\@tombowwidth height\z@\hss}%
|
169
|
+
\setbox\@CL\hbox to\z@{\csname yoko\endcsname\hss
|
170
|
+
\vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
|
171
|
+
\vrule height10mm depth10mm width\@tombowwidth}%
|
172
|
+
\setbox\@CR\hbox to\z@{\csname yoko\endcsname
|
173
|
+
\vrule height10mm depth10mm width\@tombowwidth
|
174
|
+
\vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}%
|
175
|
+
}
|
176
|
+
\def\@outputtombow{%
|
177
|
+
\iftombow
|
178
|
+
\vbox to\z@{\kern-\dimexpr 10mm+\@tombowbleed\relax\relax
|
179
|
+
\boxmaxdepth\maxdimen
|
180
|
+
\moveleft\@tombowbleed \vbox to\@@paperheight{%
|
181
|
+
\color@begingroup
|
182
|
+
\@tombowcolor
|
183
|
+
\hbox to\@@paperwidth{\hskip\@tombowbleed\relax
|
184
|
+
\copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}%
|
185
|
+
\kern-10mm
|
186
|
+
\hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}%
|
187
|
+
\vfill
|
188
|
+
\hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}%
|
189
|
+
\vfill
|
190
|
+
\hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}%
|
191
|
+
\kern-10mm
|
192
|
+
\hbox to\@@paperwidth{\hskip\@tombowbleed\relax
|
193
|
+
\copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}%
|
194
|
+
\color@endgroup
|
195
|
+
}\vss
|
196
|
+
}%
|
197
|
+
\fi
|
198
|
+
}
|
199
|
+
}%% case 2 and 1 end
|
200
|
+
\pxgtmb@sel@two
|
201
|
+
{%% case 2 begin
|
202
|
+
\newdimen\@@paperheight
|
203
|
+
\newdimen\@@paperwidth
|
204
|
+
\newdimen\@@topmargin
|
205
|
+
}%% case 2 end
|
206
|
+
\pxgtmb@sel@twoone
|
207
|
+
{%% case 2 and 1 begin
|
208
|
+
\def\@tombowreset@@paper{%
|
209
|
+
\@@topmargin\topmargin
|
210
|
+
\iftombow
|
211
|
+
\@@paperwidth\paperwidth
|
212
|
+
\advance\@@paperwidth 2\dimexpr\@tombowbleed\relax
|
213
|
+
\@@paperheight\paperheight \advance\@@paperheight 10mm\relax
|
214
|
+
\advance\@@paperheight 2\dimexpr\@tombowbleed\relax
|
215
|
+
\advance\@@topmargin 1in\relax \advance\@themargin 1in\relax
|
216
|
+
\fi
|
217
|
+
}
|
218
|
+
}%% case 2 and 1 end
|
219
|
+
\pxgtmb@sel@two
|
220
|
+
{%% case 2 begin
|
221
|
+
\newcount\hour
|
222
|
+
\newcount\minute
|
223
|
+
}%% case 2 end
|
224
|
+
|
225
|
+
%%%%% EMULATION END
|
226
|
+
|
227
|
+
%% import from jsclasses
|
228
|
+
\hour\time \divide\hour by 60\relax
|
229
|
+
\@tempcnta\hour \multiply\@tempcnta 60\relax
|
230
|
+
\minute\time \advance\minute-\@tempcnta
|
231
|
+
|
232
|
+
\ifnum\mag=\@m\else
|
233
|
+
% if BXjscls is detected and \mag != 1000,
|
234
|
+
% the layout will be definitely broken
|
235
|
+
\ifx\bxjs@param@mag\@undefined\else
|
236
|
+
\PackageError{\pxgtmb@pkgname}{%
|
237
|
+
It seems you are using Japanese `BXjscls'\MessageBreak
|
238
|
+
(bxjsarticle, bxjsbook, bxjsreport, etc.) or\MessageBreak
|
239
|
+
some derived class. Try adding `nomag' or\MessageBreak
|
240
|
+
`nomag*' to the class option list}\@ehc
|
241
|
+
\fi
|
242
|
+
% if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment
|
243
|
+
\ifx\inv@mag\@undefined\else
|
244
|
+
% \pxgtmb@magscale is almost equivalent to \jsc@magscale (introduced around 2016)
|
245
|
+
% but defined only when \mag is actually employed
|
246
|
+
\begingroup
|
247
|
+
% calculation code borrowed from BXjscls
|
248
|
+
\@tempcnta=\mag
|
249
|
+
\advance\@tempcnta100000\relax
|
250
|
+
\def\pxgtmb@tempa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@}
|
251
|
+
\expandafter\pxgtmb@tempa\the\@tempcnta\@nil
|
252
|
+
\xdef\pxgtmb@magscale{\strip@pt\@tempdima}
|
253
|
+
\endgroup
|
254
|
+
\fi
|
255
|
+
\fi
|
256
|
+
|
257
|
+
%% this package will use tombo feature in pLaTeX kernel
|
258
|
+
% if tombow-related option is not included in class option list,
|
259
|
+
% show info and enable it now
|
260
|
+
\iftombow\else
|
261
|
+
% if jsclasses is detected and \mag != 1000, it's too late
|
262
|
+
% -- When a size option other than `10pt' is specified,
|
263
|
+
% jsclasses uses \mag and calculates \oddsidemargin and \topmargin
|
264
|
+
% differently, depending on tombow status.
|
265
|
+
% In order to force `jsclasses' to calculate correctly,
|
266
|
+
% `tombow' or `tombo' is required as a class option.
|
267
|
+
% ... or, you may add `nomag' or `nomag*' instead.
|
268
|
+
\ifx\pxgtmb@magscale\@undefined\else
|
269
|
+
\PackageError{\pxgtmb@pkgname}{%
|
270
|
+
It seems you are using Japanese `jsclasses'\MessageBreak
|
271
|
+
(jsarticle, jsbook, jsreport, etc.) or some\MessageBreak
|
272
|
+
derived class. Please add `tombow' or `tombo'\MessageBreak
|
273
|
+
to the class option list}\@ehc
|
274
|
+
\fi
|
275
|
+
% BXjscls is already checked above, no check here
|
276
|
+
\PackageInfo\pxgtmb@pkgname{tombow feature enabled by \pxgtmb@pkgname}
|
277
|
+
\fi
|
278
|
+
\tombowtrue %\tombowdatetrue %% enabled by tombowbanner option
|
279
|
+
\setlength{\@tombowwidth}{.1\p@}%
|
280
|
+
|
281
|
+
%% import from jsclasses
|
282
|
+
\@bannertoken{%
|
283
|
+
\jobname\space(\number\year-\two@digits\month-\two@digits\day
|
284
|
+
\space\two@digits\hour:\two@digits\minute)}
|
285
|
+
|
286
|
+
%% prepare dimension
|
287
|
+
\ifx\stockwidth\@undefined \newdimen\stockwidth \fi
|
288
|
+
\ifx\stockheight\@undefined \newdimen\stockheight \fi
|
289
|
+
|
290
|
+
%% prepare flag
|
291
|
+
\newif\ifpxgtmb@switch \pxgtmb@switchfalse
|
292
|
+
\newif\ifpxgtmb@landscape \pxgtmb@landscapefalse
|
293
|
+
|
294
|
+
%% passed from class options
|
295
|
+
%% should be declared first inside this package (least priority)
|
296
|
+
\DeclareOption{tombow}{\tombowdatetrue}
|
297
|
+
\DeclareOption{tombo}{\tombowdatefalse}
|
298
|
+
\DeclareOption{mentuke}{\tombowdatefalse \setlength{\@tombowwidth}{\z@}}
|
299
|
+
|
300
|
+
%% package options part 1
|
301
|
+
\DeclareOption{tombowbanner}{\tombowdatetrue}
|
302
|
+
\DeclareOption{notombowbanner}{\tombowdatefalse}
|
303
|
+
\DeclareOption{tombowdate}{% obsolete since v0.9c (2018/01/11)
|
304
|
+
\PackageWarning{\pxgtmb@pkgname}{%
|
305
|
+
Option `tombowdate' is renamed;\MessageBreak
|
306
|
+
use `tombowbanner' instead}%
|
307
|
+
\tombowdatetrue}
|
308
|
+
\DeclareOption{notombowdate}{% obsolete since v0.9c (2018/01/11)
|
309
|
+
\PackageWarning{\pxgtmb@pkgname}{%
|
310
|
+
Option `notombowdate' is renamed;\MessageBreak
|
311
|
+
use `notombowbanner' instead}%
|
312
|
+
\tombowdatefalse}
|
313
|
+
|
314
|
+
%% register a list of candidate papersize
|
315
|
+
% * \pxgtmb@addpapersize[<tombowname>]{<papername>}{<shorter edge>}{<longer edge>}
|
316
|
+
% used for declaration of papersize.
|
317
|
+
% when no option is specified (that is, \ifpxgtmb@switch = \iffalse),
|
318
|
+
% also used for automatic stocksize determination.
|
319
|
+
% * if <tombowname> = \@empty, the next <papername> is assumed.
|
320
|
+
% * if <tombowname> = n, stocksize is set to papersize + 2in.
|
321
|
+
\def\pxgtmb@addpapersize{\@ifnextchar[{\pxgtmb@addp@persize}{\pxgtmb@addp@persize[\@empty]}}
|
322
|
+
\def\pxgtmb@addp@persize[#1]#2#3#4{%
|
323
|
+
% get current papersize and search through known standard in ascending order
|
324
|
+
\ifx\pxgtmb@guessedtombow\@empty
|
325
|
+
\ifx\pxgtmb@guessedpaper\@empty
|
326
|
+
% shorter edge -> \@tempdima, longer edge -> \@tempdimb
|
327
|
+
\ifdim\paperwidth>\paperheight\relax
|
328
|
+
\pxgtmb@landscapetrue
|
329
|
+
\@tempdima\paperheight \@tempdimb\paperwidth
|
330
|
+
\else
|
331
|
+
\pxgtmb@landscapefalse
|
332
|
+
\@tempdima\paperwidth \@tempdimb\paperheight
|
333
|
+
\fi
|
334
|
+
% \@ovri and \@ovro are used temporarily (safe enough)
|
335
|
+
\@ovri=#3\relax
|
336
|
+
\@ovro=#4\relax
|
337
|
+
% when jsclasses-style \mag employment is assumed ...
|
338
|
+
\ifx\pxgtmb@magscale\@undefined\else
|
339
|
+
\@ovri=\inv@mag\@ovri\relax
|
340
|
+
\@ovro=\inv@mag\@ovro\relax
|
341
|
+
\fi
|
342
|
+
% compare
|
343
|
+
\ifdim\@tempdima=\@ovri\relax \ifdim\@tempdimb=\@ovro\relax
|
344
|
+
\def\pxgtmb@guessedpaper{#2}%
|
345
|
+
\ifx#1\@empty\else
|
346
|
+
\def\pxgtmb@guessedtombow{#1}%
|
347
|
+
\if n\pxgtmb@guessedtombow\else
|
348
|
+
\ExecuteOptions{tombow-#1}% package defaults to tombowdatetrue
|
349
|
+
\pxgtmb@switchfalse
|
350
|
+
\fi
|
351
|
+
\fi
|
352
|
+
\fi \fi
|
353
|
+
\else
|
354
|
+
\def\pxgtmb@guessedtombow{#2}% save for console message
|
355
|
+
\pxgtmb@setstock{#3}{#4}% set stockwidth/height
|
356
|
+
\fi\fi
|
357
|
+
\DeclareOption{tombow-#2}{%
|
358
|
+
\pxgtmb@switchtrue
|
359
|
+
\tombowdatetrue
|
360
|
+
\pxgtmb@setstock{#3}{#4}%
|
361
|
+
}%
|
362
|
+
\DeclareOption{tombo-#2}{%
|
363
|
+
\pxgtmb@switchtrue
|
364
|
+
\tombowdatefalse
|
365
|
+
\pxgtmb@setstock{#3}{#4}%
|
366
|
+
}%
|
367
|
+
\DeclareOption{mentuke-#2}{%
|
368
|
+
\pxgtmb@switchtrue
|
369
|
+
\tombowdatefalse
|
370
|
+
\setlength{\@tombowwidth}{\z@}%
|
371
|
+
\pxgtmb@setstock{#3}{#4}%
|
372
|
+
}%
|
373
|
+
}
|
374
|
+
\def\pxgtmb@setstock#1#2{%
|
375
|
+
\ifpxgtmb@landscape
|
376
|
+
\setlength\stockwidth{#2}%
|
377
|
+
\setlength\stockheight{#1}%
|
378
|
+
\else
|
379
|
+
\setlength\stockwidth{#1}%
|
380
|
+
\setlength\stockheight{#2}%
|
381
|
+
\fi
|
382
|
+
% when jsclasses-style \mag employment is assumed ...
|
383
|
+
\ifx\pxgtmb@magscale\@undefined\else
|
384
|
+
\stockwidth=\inv@mag\stockwidth\relax
|
385
|
+
\stockheight=\inv@mag\stockheight\relax
|
386
|
+
\fi
|
387
|
+
}%
|
388
|
+
\@onlypreamble\pxgtmb@addpapersize
|
389
|
+
\@onlypreamble\pxgtmb@addp@persize
|
390
|
+
\@onlypreamble\pxgtmb@setstock
|
391
|
+
|
392
|
+
%% initialize before search
|
393
|
+
\def\pxgtmb@guessedpaper{}
|
394
|
+
\def\pxgtmb@guessedtombow{}
|
395
|
+
\@onlypreamble\pxgtmb@guessedpaper
|
396
|
+
\@onlypreamble\pxgtmb@guessedtombow
|
397
|
+
|
398
|
+
%% package options part 2
|
399
|
+
% ISO A series <=> JIS B series in the ascending order
|
400
|
+
\pxgtmb@addpapersize{a10}{26mm}{37mm}
|
401
|
+
\pxgtmb@addpapersize{b10}{32mm}{45mm}
|
402
|
+
\pxgtmb@addpapersize{a9}{37mm}{52mm}
|
403
|
+
\pxgtmb@addpapersize{b9}{45mm}{64mm}
|
404
|
+
\pxgtmb@addpapersize{a8}{52mm}{74mm}
|
405
|
+
\pxgtmb@addpapersize{b8}{64mm}{91mm}
|
406
|
+
\pxgtmb@addpapersize{a7}{74mm}{105mm}
|
407
|
+
\pxgtmb@addpapersize{b7}{91mm}{128mm}
|
408
|
+
\pxgtmb@addpapersize{a6}{105mm}{148mm}
|
409
|
+
\pxgtmb@addpapersize{b6}{128mm}{182mm}
|
410
|
+
\pxgtmb@addpapersize{a5}{148mm}{210mm}
|
411
|
+
\pxgtmb@addpapersize{b5}{182mm}{257mm}
|
412
|
+
\pxgtmb@addpapersize{a4}{210mm}{297mm}
|
413
|
+
\pxgtmb@addpapersize{b4}{257mm}{364mm}
|
414
|
+
\pxgtmb@addpapersize{a3}{297mm}{420mm}
|
415
|
+
\pxgtmb@addpapersize{b3}{364mm}{515mm}
|
416
|
+
\pxgtmb@addpapersize{a2}{420mm}{594mm}
|
417
|
+
\pxgtmb@addpapersize{b2}{515mm}{728mm}
|
418
|
+
\pxgtmb@addpapersize{a1}{594mm}{841mm}
|
419
|
+
\pxgtmb@addpapersize{b1}{728mm}{1030mm}
|
420
|
+
\pxgtmb@addpapersize[n]{a0}{841mm}{1189mm}
|
421
|
+
\pxgtmb@addpapersize[n]{b0}{1030mm}{1456mm}
|
422
|
+
|
423
|
+
%% package options part 3
|
424
|
+
% ISO C series
|
425
|
+
\pxgtmb@addpapersize[a9]{c10}{28mm}{40mm}
|
426
|
+
\pxgtmb@addpapersize[a8]{c9}{40mm}{57mm}
|
427
|
+
\pxgtmb@addpapersize[a7]{c8}{57mm}{81mm}
|
428
|
+
\pxgtmb@addpapersize[a6]{c7}{81mm}{114mm}
|
429
|
+
\pxgtmb@addpapersize[a5]{c6}{114mm}{162mm}
|
430
|
+
\pxgtmb@addpapersize[a4]{c5}{162mm}{229mm}
|
431
|
+
\pxgtmb@addpapersize[a3]{c4}{229mm}{354mm}
|
432
|
+
\pxgtmb@addpapersize[a2]{c3}{324mm}{458mm}
|
433
|
+
\pxgtmb@addpapersize[a1]{c2}{458mm}{648mm}
|
434
|
+
\pxgtmb@addpapersize[a0]{c1}{648mm}{917mm}
|
435
|
+
\pxgtmb@addpapersize[n]{c0}{917mm}{1297mm}
|
436
|
+
% misc
|
437
|
+
\pxgtmb@addpapersize[b4]{a4j}{210mm}{297mm}
|
438
|
+
\pxgtmb@addpapersize[b5]{a5j}{148mm}{210mm}
|
439
|
+
\pxgtmb@addpapersize[a3]{b4j}{257mm}{364mm}
|
440
|
+
\pxgtmb@addpapersize[a4]{b5j}{182mm}{257mm}
|
441
|
+
\pxgtmb@addpapersize[b4]{a4var}{210mm}{283mm}
|
442
|
+
\pxgtmb@addpapersize[a4]{b5var}{182mm}{230mm}
|
443
|
+
\pxgtmb@addpapersize[a3]{letter}{8.5in}{11in}
|
444
|
+
\pxgtmb@addpapersize[a3]{legal}{8.5in}{14in}
|
445
|
+
\pxgtmb@addpapersize[a4]{executive}{7.25in}{10.5in}
|
446
|
+
\pxgtmb@addpapersize[a5]{hagaki}{100mm}{148mm}
|
447
|
+
|
448
|
+
%% package options part 4
|
449
|
+
\def\pxgtmb@pdfbox@status{0}
|
450
|
+
\DeclareOption{pdfbox}{\def\pxgtmb@pdfbox@status{1}}
|
451
|
+
\DeclareOption{dvips}{\def\pxgtmb@driver{s}}
|
452
|
+
\DeclareOption{dvipdfmx}{\def\pxgtmb@driver{m}}
|
453
|
+
\DeclareOption{xetex}{\def\pxgtmb@driver{x}}
|
454
|
+
\DeclareOption{pdftex}{\def\pxgtmb@driver{p}}
|
455
|
+
\DeclareOption{luatex}{\def\pxgtmb@driver{l}}
|
456
|
+
|
457
|
+
%% default options
|
458
|
+
\ExecuteOptions{tombowbanner}% package defaults to tombowdatetrue
|
459
|
+
\ProcessOptions
|
460
|
+
|
461
|
+
%% display search result
|
462
|
+
% if any of explicit size option is specified, \ifpxgtmb@switch = \iftrue.
|
463
|
+
% otherwise, automatic size detection should be successful.
|
464
|
+
\ifpxgtmb@switch\else
|
465
|
+
% check status
|
466
|
+
\@tempcnta=\z@\relax
|
467
|
+
\ifx\pxgtmb@guessedpaper\@empty
|
468
|
+
\advance\@tempcnta\@ne\relax
|
469
|
+
\fi
|
470
|
+
\ifx\pxgtmb@guessedtombow\@empty
|
471
|
+
\advance\@tempcnta\tw@\relax
|
472
|
+
\else\if n\pxgtmb@guessedtombow
|
473
|
+
\advance\@tempcnta\tw@\relax
|
474
|
+
\fi\fi
|
475
|
+
% message
|
476
|
+
\ifodd\@tempcnta
|
477
|
+
%\PackageWarningNoLine\pxgtmb@pkgname{%
|
478
|
+
% No size option specified, and automatic papersize\MessageBreak
|
479
|
+
% detection also failed}
|
480
|
+
\else
|
481
|
+
\typeout{***** Package \pxgtmb@pkgname\space detected \pxgtmb@guessedpaper paper. *****}
|
482
|
+
\fi
|
483
|
+
\ifnum\@tempcnta>\@ne\relax
|
484
|
+
\PackageWarningNoLine\pxgtmb@pkgname{%
|
485
|
+
Output size cannot be determined. Please add size\MessageBreak
|
486
|
+
option (e.g. `tombow-a4') to specify output size.\MessageBreak
|
487
|
+
Falling back to +1in ..}
|
488
|
+
\stockwidth\paperwidth \advance\stockwidth 2in
|
489
|
+
\stockheight\paperheight \advance\stockheight 2in
|
490
|
+
\else
|
491
|
+
\typeout{***** Now the output size is automatically set to \pxgtmb@guessedtombow. *****}
|
492
|
+
\fi
|
493
|
+
\fi
|
494
|
+
|
495
|
+
%% warnings
|
496
|
+
\ifdim\stockwidth<\paperwidth
|
497
|
+
\PackageWarningNoLine\pxgtmb@pkgname{%
|
498
|
+
\string\stockwidth\space is smaller than \string\paperwidth!\MessageBreak
|
499
|
+
Is this really what you want?}
|
500
|
+
\fi
|
501
|
+
\ifdim\stockheight<\paperheight
|
502
|
+
\PackageWarningNoLine\pxgtmb@pkgname{%
|
503
|
+
\string\stockheight\space is smaller than \string\paperheight!\MessageBreak
|
504
|
+
Is this really what you want?}
|
505
|
+
\fi
|
506
|
+
|
507
|
+
%% pdf "digital tombo" (driver-dependent)
|
508
|
+
% the box size calculation is delayed until \AtBeginDocument
|
509
|
+
% to allow users to change \@tombowbleed in the preamble
|
510
|
+
\if 1\pxgtmb@pdfbox@status
|
511
|
+
% convert pt -> bp
|
512
|
+
\def\pxgtmb@PDF@setbp#1#2{%
|
513
|
+
\@tempdima=.996264#2\relax % 0.996264 = 72/72.27 (cf. 1in = 72.27pt = 72bp)
|
514
|
+
\@tempdima=\pxgtmb@magscale\@tempdima % adjustment for jsclasses-style \mag employment
|
515
|
+
\edef#1{\strip@pt\@tempdima}}
|
516
|
+
% calculate and create pdf boxes
|
517
|
+
\def\pxgtmb@PDF@calcbox{%
|
518
|
+
\begingroup
|
519
|
+
% provide fallback definition inside this group
|
520
|
+
\ifx\pxgtmb@magscale\@undefined
|
521
|
+
\def\pxgtmb@magscale{1}%
|
522
|
+
\fi
|
523
|
+
% 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
|
526
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@x{\dimexpr(\stockwidth-\paperwidth)/2}%
|
527
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@y{\dimexpr(\stockheight-\paperheight)/2}%
|
528
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@x{\dimexpr(\stockwidth+\paperwidth)/2}%
|
529
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@y{\dimexpr(\stockheight+\paperheight)/2}%
|
530
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ll@x{\dimexpr(\stockwidth-\paperwidth)/2-\@tombowbleed}%
|
531
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ll@y{\dimexpr(\stockheight-\paperheight)/2-\@tombowbleed}%
|
532
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@x{\dimexpr(\stockwidth+\paperwidth)/2+\@tombowbleed}%
|
533
|
+
\pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@y{\dimexpr(\stockheight+\paperheight)/2+\@tombowbleed}%
|
534
|
+
\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]
|
537
|
+
%% BleedBox: explicit (final paper size + surrounding \@tombowbleed)
|
538
|
+
\noexpand\pxgtmb@PDF@begin
|
539
|
+
/BleedBox [\pxgtmb@PDF@bleed@ll@x\space
|
540
|
+
\pxgtmb@PDF@bleed@ll@y\space
|
541
|
+
\pxgtmb@PDF@bleed@ur@x\space
|
542
|
+
\pxgtmb@PDF@bleed@ur@y] \noexpand\pxgtmb@PDF@end
|
543
|
+
%% TrimBox: explicit (final paper size)
|
544
|
+
\noexpand\pxgtmb@PDF@begin
|
545
|
+
/TrimBox [\pxgtmb@PDF@trim@ll@x\space
|
546
|
+
\pxgtmb@PDF@trim@ll@y\space
|
547
|
+
\pxgtmb@PDF@trim@ur@x\space
|
548
|
+
\pxgtmb@PDF@trim@ur@y] \noexpand\pxgtmb@PDF@end
|
549
|
+
%% ArtBox: implicit
|
550
|
+
}%
|
551
|
+
\endgroup
|
552
|
+
}
|
553
|
+
%% supported drivers: dvips, dvipdfmx, XeTeX, pdfTeX, LuaTeX
|
554
|
+
\ifnum0\ifx\pdfvariable\@undefined\else\the\outputmode\fi=0\relax
|
555
|
+
\ifnum0\ifx\pdfpageattr\@undefined\else\the\pdfoutput\fi=0\relax
|
556
|
+
%% for DVI output or XeTeX
|
557
|
+
\ifx\XeTeXversion\@undefined
|
558
|
+
\chardef\pxgtmb@errlevel=\z@
|
559
|
+
% check graphics/graphicx/color status
|
560
|
+
\ifx\Gin@driver\@undefined
|
561
|
+
\ifx\pxgtmb@driver\@undefined % driver option unavailable
|
562
|
+
\PackageError{\pxgtmb@pkgname}{%
|
563
|
+
Option `pdfbox' is driver-dependent!\MessageBreak
|
564
|
+
Please add a driver option}\@ehc
|
565
|
+
\def\pxgtmb@driver{s}% fallback
|
566
|
+
\fi
|
567
|
+
\else
|
568
|
+
% check consistency
|
569
|
+
\def\pxgtmb@tempa{dvips.def}\ifx\Gin@driver\pxgtmb@tempa
|
570
|
+
\ifx\pxgtmb@driver\@undefined
|
571
|
+
\def\pxgtmb@driver{s}% pass
|
572
|
+
\else
|
573
|
+
\if s\pxgtmb@driver\else \chardef\pxgtmb@errlevel=\@ne \fi
|
574
|
+
\fi
|
575
|
+
\else\def\pxgtmb@tempa{dvipdfmx.def}\ifx\Gin@driver\pxgtmb@tempa
|
576
|
+
\ifx\pxgtmb@driver\@undefined
|
577
|
+
\def\pxgtmb@driver{m}% pass
|
578
|
+
\else
|
579
|
+
\if m\pxgtmb@driver\else \chardef\pxgtmb@errlevel=\@ne \fi
|
580
|
+
\fi
|
581
|
+
\else
|
582
|
+
\ifx\pxgtmb@driver\@undefined
|
583
|
+
\PackageError{\pxgtmb@pkgname}{%
|
584
|
+
Option `pdfbox' is driver-dependent!\MessageBreak
|
585
|
+
Please add a driver option}\@ehc
|
586
|
+
\def\pxgtmb@driver{s}% fallback
|
587
|
+
\fi
|
588
|
+
\fi\fi
|
589
|
+
\ifnum\pxgtmb@errlevel>\z@
|
590
|
+
\PackageWarningNoLine{\pxgtmb@pkgname}{%
|
591
|
+
Inconsistent driver option detected!\MessageBreak
|
592
|
+
Package `graphics' or `color' already\MessageBreak
|
593
|
+
loaded with different driver option}\@ehc
|
594
|
+
\fi
|
595
|
+
\fi
|
596
|
+
\else
|
597
|
+
\def\pxgtmb@driver{x}
|
598
|
+
\fi
|
599
|
+
% required for putting \special to every page
|
600
|
+
\ifx\pfmtname\@undefined
|
601
|
+
\RequirePackage{atbegshi}
|
602
|
+
\else
|
603
|
+
\IfFileExists{pxatbegshi.sty}
|
604
|
+
{\RequirePackage{pxatbegshi}}
|
605
|
+
{\RequirePackage{atbegshi}}
|
606
|
+
\fi
|
607
|
+
% do it
|
608
|
+
\if x\pxgtmb@driver
|
609
|
+
%% for XeTeX (similar to dvipdfmx, except for paper size)
|
610
|
+
\AtBeginDocument{%
|
611
|
+
\pxgtmb@PDF@calcbox
|
612
|
+
\def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
|
613
|
+
\edef\pxgtmb@PDF@CTM{{pdf:put @thispage << \pxgtmb@PDF@CTM >>}}}
|
614
|
+
% force paper size
|
615
|
+
\pdfpagewidth\stockwidth \pdfpageheight\stockheight
|
616
|
+
% emit pdf boxes
|
617
|
+
\AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{%
|
618
|
+
\baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@
|
619
|
+
\expandafter\special\pxgtmb@PDF@CTM % here!
|
620
|
+
\copy\AtBeginShipoutBox}}
|
621
|
+
\else
|
622
|
+
\if s\pxgtmb@driver
|
623
|
+
%% for dvips
|
624
|
+
\AtBeginDocument{%
|
625
|
+
\pxgtmb@PDF@calcbox
|
626
|
+
\def\pxgtmb@PDF@begin{[ }\def\pxgtmb@PDF@end{/PAGE pdfmark }%
|
627
|
+
\edef\pxgtmb@PDF@CTM{{ps:SDict begin \pxgtmb@PDF@CTM end}}}
|
628
|
+
\else\if m\pxgtmb@driver
|
629
|
+
%% for dvipdfmx
|
630
|
+
\AtBeginDocument{%
|
631
|
+
\pxgtmb@PDF@calcbox
|
632
|
+
\def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
|
633
|
+
\edef\pxgtmb@PDF@CTM{{pdf:put @thispage << \pxgtmb@PDF@CTM >>}}}
|
634
|
+
\else
|
635
|
+
%% for others (in case graphics option wrong)
|
636
|
+
\PackageError{\pxgtmb@pkgname}{Sorry, driver unsupported}\@ehc
|
637
|
+
\def\pxgtmb@PDF@CTM{{}}% dummy
|
638
|
+
\fi\fi
|
639
|
+
%% common
|
640
|
+
\begingroup
|
641
|
+
% when jsclasses-style \mag employment is assumed ...
|
642
|
+
% [Note] \special{papersize=<width>,<height>} accepts only non-true units
|
643
|
+
% and evaluates them as if they were true units!
|
644
|
+
\ifx\pxgtmb@magscale\@undefined\else
|
645
|
+
\stockwidth \pxgtmb@magscale\stockwidth
|
646
|
+
\stockheight\pxgtmb@magscale\stockheight
|
647
|
+
\fi
|
648
|
+
\xdef\pxgtmb@PDF@size{{papersize=\the\stockwidth,\the\stockheight}}
|
649
|
+
\endgroup
|
650
|
+
\AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{%
|
651
|
+
\baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@
|
652
|
+
% force paper size
|
653
|
+
\expandafter\special\pxgtmb@PDF@size
|
654
|
+
% emit pdf boxes
|
655
|
+
\expandafter\special\pxgtmb@PDF@CTM % here!
|
656
|
+
\copy\AtBeginShipoutBox}}
|
657
|
+
\fi
|
658
|
+
\else
|
659
|
+
%% for pdfTeX
|
660
|
+
\def\pxgtmb@driver{p}
|
661
|
+
% force paper size
|
662
|
+
\pdfpagewidth\stockwidth \pdfpageheight\stockheight
|
663
|
+
% emit pdf boxes
|
664
|
+
\AtBeginDocument{%
|
665
|
+
\pxgtmb@PDF@calcbox
|
666
|
+
\def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
|
667
|
+
\edef\pxgtmb@PDF@CTM{{\pxgtmb@PDF@CTM}}%
|
668
|
+
\expandafter\pdfpageattr\pxgtmb@PDF@CTM}
|
669
|
+
\fi
|
670
|
+
\else
|
671
|
+
%% for LuaTeX
|
672
|
+
\def\pxgtmb@driver{l}
|
673
|
+
% force paper size
|
674
|
+
\pagewidth\stockwidth \pageheight\stockheight
|
675
|
+
% emit pdf boxes
|
676
|
+
\AtBeginDocument{%
|
677
|
+
\pxgtmb@PDF@calcbox
|
678
|
+
\def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
|
679
|
+
\edef\pxgtmb@PDF@CTM{pageattr{\pxgtmb@PDF@CTM}}%
|
680
|
+
\expandafter\pdfvariable\pxgtmb@PDF@CTM}
|
681
|
+
\fi
|
682
|
+
\fi
|
683
|
+
|
684
|
+
%% make visible tombow box according to the current status of
|
685
|
+
%% \@bannerfont, \@bannertoken, \@tombowwidth & \@tombowbleed
|
686
|
+
\maketombowbox
|
687
|
+
|
688
|
+
%% shift amount
|
689
|
+
\hoffset .5\stockwidth
|
690
|
+
\advance\hoffset -.5\paperwidth
|
691
|
+
\advance\hoffset-1truein\relax
|
692
|
+
\voffset .5\stockheight
|
693
|
+
\advance\voffset -.5\paperheight
|
694
|
+
\advance\voffset-1truein\relax
|
695
|
+
|
696
|
+
%% user interface
|
697
|
+
\newcommand{\settombowbanner}[1]{%
|
698
|
+
\iftombowdate\else
|
699
|
+
\PackageWarning{\pxgtmb@pkgname}{%
|
700
|
+
Package option `tombowbanner' is not effective.\MessageBreak
|
701
|
+
The banner may be discarded}%
|
702
|
+
\fi
|
703
|
+
\@bannertoken{#1}\maketombowbox}
|
704
|
+
\newcommand{\settombowbannerfont}[1]{%
|
705
|
+
\font\@bannerfont=#1\relax \maketombowbox}
|
706
|
+
\newcommand{\settombowwidth}[1]{%
|
707
|
+
\setlength{\@tombowwidth}{#1}\maketombowbox}
|
708
|
+
\newcommand{\settombowbleed}[1]{%
|
709
|
+
\def\@tombowbleed{#1}\maketombowbox}
|
710
|
+
\newcommand{\settombowcolor}[1]{%
|
711
|
+
\def\@tombowcolor{#1}}
|
712
|
+
% forbid changing \@tombowbleed after \begin{document}
|
713
|
+
% because pdf boxes are calculated only inside \AtBeginDocument
|
714
|
+
\@onlypreamble\settombowbleed
|
715
|
+
|
716
|
+
%% patch internal for pdfpages to work with tombow
|
717
|
+
%% (tested on pdfpages 2017/10/31 v0.5l)
|
718
|
+
%% Note the code is the same as that of pxpdfpages.sty,
|
719
|
+
%% but reserved here since gentombow.sty can be used on
|
720
|
+
%% any LaTeX format
|
721
|
+
%% (cf. pxpdfpages.sty is restricted to (u)pLaTeX)
|
722
|
+
\def\pxgtmb@patch@pdfpages{%
|
723
|
+
\RequirePackage{etoolbox}
|
724
|
+
\patchcmd{\AM@output}{%
|
725
|
+
\setlength{\@tempdima}{\AM@xmargin}%
|
726
|
+
\edef\AM@xmargin{\the\@tempdima}%
|
727
|
+
\setlength{\@tempdima}{\AM@ymargin}%
|
728
|
+
\edef\AM@ymargin{\the\@tempdima}%
|
729
|
+
}{%
|
730
|
+
\setlength{\@tempdima}{\AM@xmargin\iftombow+1in\fi}%
|
731
|
+
\edef\AM@xmargin{\the\@tempdima}%
|
732
|
+
\setlength{\@tempdima}{\AM@ymargin\iftombow-1in\fi}%
|
733
|
+
\edef\AM@ymargin{\the\@tempdima}%
|
734
|
+
}
|
735
|
+
{\PackageInfo{\pxgtmb@pkgname}{Patch for pdfpages applied}}
|
736
|
+
{\PackageWarningNoLine{\pxgtmb@pkgname}{Patch for pdfpages failed}}%
|
737
|
+
}
|
738
|
+
%% however, if running (u)pLaTeX, use pxpdfpages.sty if available
|
739
|
+
\ifx\pfmtname\@undefined\else
|
740
|
+
\IfFileExists{pxpdfpages.sty}{%
|
741
|
+
\def\pxgtmb@patch@pdfpages{\RequirePackage{pxpdfpages}}%
|
742
|
+
}{}
|
743
|
+
\fi
|
744
|
+
%% do it
|
745
|
+
\AtBeginDocument{\@ifpackageloaded{pdfpages}{\pxgtmb@patch@pdfpages}{}}
|
746
|
+
|
747
|
+
\endinput
|