review 3.0.0.preview2 → 3.0.0.preview3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|