summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/gentombow
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-16 21:30:44 +0000
committerKarl Berry <karl@freefriends.org>2018-03-16 21:30:44 +0000
commitad72985f1b2d23650ced8fed8b86c4700b6ecee6 (patch)
treeaf07afe5e5eb7d68753dcbc41add2aad26518a45 /Master/texmf-dist/tex/latex/gentombow
parent9a54c5f23b8512956986fd84dc7253a7aa45c1fa (diff)
gentombow (16mar18)
git-svn-id: svn://tug.org/texlive/trunk@46987 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/gentombow')
-rw-r--r--Master/texmf-dist/tex/latex/gentombow/bounddvi.sty87
-rw-r--r--Master/texmf-dist/tex/latex/gentombow/gentombow.sty159
-rw-r--r--Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty335
3 files changed, 581 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/gentombow/bounddvi.sty b/Master/texmf-dist/tex/latex/gentombow/bounddvi.sty
new file mode 100644
index 00000000000..35432df5f05
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/gentombow/bounddvi.sty
@@ -0,0 +1,87 @@
+%
+% bounddvi.sty
+% 2016/12/28 v7.2-v7.0 h.y.acetaminophen@gmail.com
+% 2004/12/15 v6.0-v1.0 inoue@ma.ns.tcu.ac.jp
+%
+% This package, originally written by Koichi Inoue
+% and modified by Hironobu Yamashita, is distributed
+% as part of the gentombow bundle.
+% https://github.com/aminophen/gentombow
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bounddvi}[2016/12/28 v7.2 bounddvi]
+
+% catcode trick to hide \iftombow ... \else ... \fi
+% since \iftombow is defined only in pLaTeX.
+\ifx\pfmtname\@undefined
+ \catcode`\Q=14\relax
+\else
+ \catcode`\Q=9\relax
+\fi
+
+% Note: graphics/color drivers
+% - dvips.def 2016/07/10 v3.1a or later
+% - dvipdfmx.def 2016/07/10 v4.12 or later
+% emit papersize special _only_ when \Gin@setpagesizetrue
+% and \mag = 1000. When graphicx(s) or color is used with
+% setpagesize option (= default since 2016) and \mag equals
+% to 1000, we can exploit its routine.
+% (they are using \AtBeginDocument{\AtBeginDvi{...}})
+% However, these .def files do _not_ care about tombow by pLaTeX;
+% so, we set \stock{width,height} to invoke stock test in those
+% files (probably meant for memoir.cls).
+Q \iftombow
+Q % if \stockwidth/\stockheight are not available,
+Q % define them now
+Q \ifx\stockwidth\@undefined \newdimen\stockwidth \fi
+Q \ifx\stockheight\@undefined \newdimen\stockheight \fi
+Q % if \stockwidth already has effective value, do nothing;
+Q % otherwise assume pLaTeX-style tombow and set it to
+Q % \paperwidth + 2in (similar for \stockheight)
+Q \ifdim\stockwidth>\z@\else
+Q \stockwidth\paperwidth \advance\stockwidth2in
+Q \fi
+Q \ifdim\stockheight>\z@\else
+Q \stockheight\paperheight \advance\stockheight2in
+Q \fi
+Q \fi
+
+% reset catcode trick
+\catcode`\Q=11\relax
+
+% following code is almost equivalent to
+% \AtBeginDocument{\AtBeginDvi{...}}
+% however, we append the specification to the _beginning_ of
+% \@begindocumenthook; this ensures proper papersize when
+% dvips (TeX Live 2016 or earlier) is used.
+\begingroup
+\def\@prependto@begindocumenthook{\global\setbox\@begindvibox
+ \vbox{\csname yoko\endcsname\unvbox\@begindvibox
+ \begingroup
+ % if \stockwidth/\stockheight are defined & have effective
+ % values, copy them to \paperwidth/\paperheight
+ % for current group
+ \ifx\stockwidth\@undefined\else \ifdim\stockwidth>\z@
+ \paperwidth\stockwidth
+ \fi\fi
+ \ifx\stockheight\@undefined\else \ifdim\stockheight>\z@
+ \paperheight\stockheight
+ \fi\fi
+ % adjust for \mag and emit papersize special
+ \divide\paperwidth\@m\multiply\paperwidth\mag
+ \divide\paperheight\@m\multiply\paperheight\mag
+ \special{papersize=\the\paperwidth,\the\paperheight}%
+ \endgroup}}
+\toks@\expandafter\expandafter\expandafter
+ {\expandafter\@prependto@begindocumenthook\@begindocumenthook}
+\xdef\@begindocumenthook{\the\toks@}
+% append papersize special again to the _end_ of the
+% current \@begindocumenthook; this will be meaningful e.g. when
+% geometry is loaded before bounddvi.
+% (geometry adds \AtBeginDocument{\AtBeginDvi{...}} specification)
+\expandafter\g@addto@macro\expandafter\@begindocumenthook
+ \expandafter{\@prependto@begindocumenthook}
+\endgroup
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/gentombow/gentombow.sty b/Master/texmf-dist/tex/latex/gentombow/gentombow.sty
new file mode 100644
index 00000000000..61bccca4987
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/gentombow/gentombow.sty
@@ -0,0 +1,159 @@
+%
+% gentombow.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is part of the gentombow bundle.
+% https://github.com/aminophen/gentombow
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{gentombow}
+ [2018/03/16 v0.9e Generate crop mark 'tombow']
+\def\pxgtmb@emu@pkgname{gentombow}
+
+%% error status (shared with pxgentombow.sty)
+\ifx\pxgtmb@errlevel\@undefined
+ \chardef\pxgtmb@errlevel=\z@
+\fi
+
+%% supported engines
+\ifx\pfmtversion\@undefined
+ \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\@ne}
+\fi
+\ifnum\pxgtmb@errlevel>\z@\else
+ \PackageInfo{\pxgtmb@emu@pkgname}{%
+ pLaTeX, upLaTeX and LuaTeX-ja are natively\MessageBreak
+ supported by `pxgentombow' package;\MessageBreak
+ there is no need for this package.}
+ \RequirePackageWithOptions{pxgentombow}
+ \expandafter\endinput
+\fi
+
+%%%%% EMULATION BEGIN
+
+% required for patching \@outputpage
+\RequirePackage{etoolbox}
+
+% patch \@outputpage
+\begingroup
+\def\pxgtmb@emu@status{0}
+\let\pxgtmb@emu@outputpage\@outputpage
+\patchcmd\pxgtmb@emu@outputpage % try first patch
+ {\reset@font\normalsize\normalsfcodes}%
+ {%
+ \@@topmargin\topmargin
+ \iftombow
+ \@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax
+ \@@paperheight\paperheight \advance\@@paperheight 16mm\relax
+ \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax
+ \fi
+ \reset@font\normalsize\normalsfcodes}
+ {}{\def\pxgtmb@emu@status{1}}
+\patchcmd\pxgtmb@emu@outputpage % try second patch
+ {\@begindvi \vskip \topmargin}%
+ {\@begindvi \@outputtombow \vskip \@@topmargin}%
+ {}{\def\pxgtmb@emu@status{1}}
+% commit the change only when successful; otherwise
+% tombow feature is never enabled, exit right away
+\if 0\pxgtmb@emu@status\relax
+ \global\let\@outputpage\pxgtmb@emu@outputpage
+\else
+ \PackageError{\pxgtmb@emu@pkgname}{%
+ Failed in patching \string\@outputpage!\MessageBreak
+ Sorry, I can't proceed anymore...}\@ehc
+ \expandafter\expandafter\expandafter\endinput\expandafter
+\fi
+\endgroup
+%
+
+% provides equivalent for plcore.ltx
+\newif\iftombow \tombowfalse
+\newif\iftombowdate \tombowdatetrue
+\newdimen\@tombowwidth
+\setlength{\@tombowwidth}{.1\p@}
+\newbox\@TL\newbox\@Tl
+\newbox\@TC
+\newbox\@TR\newbox\@Tr
+\newbox\@BL\newbox\@Bl
+\newbox\@BC
+\newbox\@BR\newbox\@Br
+\newbox\@CL
+\newbox\@CR
+\font\@bannerfont=cmtt9
+\newtoks\@bannertoken
+\@bannertoken{}
+\def\maketombowbox{% removed \yoko from all boxes
+ \setbox\@TL\hbox to\z@{\hss
+ \vrule width13mm height\@tombowwidth depth\z@
+ \vrule height10mm width\@tombowwidth depth\z@
+ \iftombowdate
+ \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}%
+ \fi}%
+ \setbox\@Tl\hbox to\z@{\hss
+ \vrule width10mm height\@tombowwidth depth\z@
+ \vrule height13mm width\@tombowwidth depth\z@}%
+ \setbox\@TC\hbox{%
+ \vrule width10mm height\@tombowwidth depth\z@
+ \vrule height10mm width\@tombowwidth depth\z@
+ \vrule width10mm height\@tombowwidth depth\z@}%
+ \setbox\@TR\hbox to\z@{%
+ \vrule height10mm width\@tombowwidth depth\z@
+ \vrule width13mm height\@tombowwidth depth\z@\hss}%
+ \setbox\@Tr\hbox to\z@{%
+ \vrule height13mm width\@tombowwidth depth\z@
+ \vrule width10mm height\@tombowwidth depth\z@\hss}%
+ \setbox\@BL\hbox to\z@{\hss
+ \vrule width13mm depth\@tombowwidth height\z@
+ \vrule depth10mm width\@tombowwidth height\z@}%
+ \setbox\@Bl\hbox to\z@{\hss
+ \vrule width10mm depth\@tombowwidth height\z@
+ \vrule depth13mm width\@tombowwidth height\z@}%
+ \setbox\@BC\hbox{%
+ \vrule width10mm depth\@tombowwidth height\z@
+ \vrule depth10mm width\@tombowwidth height\z@
+ \vrule width10mm depth\@tombowwidth height\z@}%
+ \setbox\@BR\hbox to\z@{%
+ \vrule depth10mm width\@tombowwidth height\z@
+ \vrule width13mm depth\@tombowwidth height\z@\hss}%
+ \setbox\@Br\hbox to\z@{%
+ \vrule depth13mm width\@tombowwidth height\z@
+ \vrule width10mm depth\@tombowwidth height\z@\hss}%
+ \setbox\@CL\hbox to\z@{\hss
+ \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
+ \vrule height10mm depth10mm width\@tombowwidth}%
+ \setbox\@CR\hbox to\z@{%
+ \vrule height10mm depth10mm width\@tombowwidth
+ \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}%
+}
+\def\@outputtombow{%
+ \iftombow
+ \vbox to\z@{\kern-13mm\relax
+ \boxmaxdepth\maxdimen
+ \moveleft3mm\vbox to\@@paperheight{%
+ \hbox to\@@paperwidth{\hskip3mm\relax
+ \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip3mm}%
+ \kern-10mm
+ \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}%
+ \vfill
+ \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}%
+ \vfill
+ \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}%
+ \kern-10mm
+ \hbox to\@@paperwidth{\hskip3mm\relax
+ \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip3mm}%
+ }\vss
+ }%
+ \fi
+}
+\newdimen\@@paperheight
+\newdimen\@@paperwidth
+\newdimen\@@topmargin
+\newcount\hour
+\newcount\minute
+
+%%%%% EMULATION END
+
+%% load it
+\RequirePackageWithOptions{pxgentombow}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty b/Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty
new file mode 100644
index 00000000000..7112737aa2d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty
@@ -0,0 +1,335 @@
+%
+% pxgentombow.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is part of the gentombow bundle.
+% https://github.com/aminophen/gentombow
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pxgentombow}
+ [2018/03/16 v0.9e Generate crop mark 'tombow']
+\def\pxgtmb@pkgname{pxgentombow}
+
+%% error status (shared with gentombow.sty)
+\ifx\pxgtmb@errlevel\@undefined
+ \chardef\pxgtmb@errlevel=\z@
+\fi
+
+%% supported engines
+\ifx\pfmtversion\@undefined
+ \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\@ne}
+\fi
+\ifnum\pxgtmb@errlevel>\z@
+ \ifx\pxgtmb@emu@pkgname\@undefined % gentombow.sty not loaded
+ \PackageError{\pxgtmb@pkgname}{%
+ Only pLaTeX, upLaTeX and LuaTeX-ja are supported!\MessageBreak
+ Please use `gentombow' package instead}\@ehc
+ \expandafter\expandafter\expandafter\endinput\expandafter
+ \fi
+\else
+ \@namedef{ver@gentombow.sty}{}% fake
+\fi
+
+%% import from jsclasses
+\hour\time \divide\hour by 60\relax
+\@tempcnta\hour \multiply\@tempcnta 60\relax
+\minute\time \advance\minute-\@tempcnta
+
+\ifnum\mag=\@m\else
+ % if BXjscls is detected and \mag != 1000,
+ % the layout will be definitely broken
+ \ifx\bxjs@param@mag\@undefined\else
+ \PackageError{\pxgtmb@pkgname}{%
+ It seems you are using Japanese `BXjscls'\MessageBreak
+ (bxjsarticle, bxjsbook, bxjsreport, etc.) or\MessageBreak
+ some derived class. Try adding `nomag' or\MessageBreak
+ `nomag*' to the class option list}\@ehc
+ \fi
+\fi
+
+%% this package will use tombo feature in pLaTeX kernel
+% if tombow-related option is not included in class option list,
+% show info and enable it now
+\iftombow\else
+ % if jsclasses is detected and \mag != 1000, it's too late
+ % -- When a size option other than `10pt' is specified,
+ % jsclasses uses \mag and calculates \oddsidemargin and \topmargin
+ % differently, depending on tombow status.
+ % In order to force `jsclasses' to calculate correctly,
+ % `tombow' or `tombo' is required as a class option.
+ % ... or, you may add `nomag' or `nomag*' instead.
+ \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else
+ \PackageError{\pxgtmb@pkgname}{%
+ It seems you are using Japanese `jsclasses'\MessageBreak
+ (jsarticle, jsbook, jsreport, etc.) or some\MessageBreak
+ derived class. Please add `tombow' or `tombo'\MessageBreak
+ to the class option list}\@ehc
+ \fi \fi
+ % BXjscls is already checked above, no check here
+ \PackageInfo\pxgtmb@pkgname{tombow feature enabled by \pxgtmb@pkgname}
+\fi
+\tombowtrue %\tombowdatetrue %% enabled by tombowbanner option
+\setlength{\@tombowwidth}{.1\p@}%
+
+%% import from jsclasses
+\@bannertoken{%
+ \jobname\space(\number\year-\two@digits\month-\two@digits\day
+ \space\two@digits\hour:\two@digits\minute)}
+
+%% prepare dimension
+\ifx\stockheight\@undefined \newdimen\stockheight \fi
+\ifx\stockwidth\@undefined \newdimen\stockwidth \fi
+
+%% prepare flag
+\newif\ifpxgtmb@switch \pxgtmb@switchfalse
+\newif\ifpxgtmb@landscape \pxgtmb@landscapefalse
+
+%% passed from class options
+%% should be declared first inside this package (least priority)
+\DeclareOption{tombow}{\tombowdatetrue}
+\DeclareOption{tombo}{\tombowdatefalse}
+\DeclareOption{mentuke}{\tombowdatefalse \setlength{\@tombowwidth}{\z@}}
+
+%% package options part 1
+\DeclareOption{tombowbanner}{\tombowdatetrue}
+\DeclareOption{notombowbanner}{\tombowdatefalse}
+\DeclareOption{tombowdate}{% obsolete since v0.9c (2018/01/11)
+ \PackageWarning{\pxgtmb@pkgname}{%
+ Option `tombowdate' is renamed;\MessageBreak
+ use `tombowbanner' instead}%
+ \tombowdatetrue}
+\DeclareOption{notombowdate}{% obsolete since v0.9c (2018/01/11)
+ \PackageWarning{\pxgtmb@pkgname}{%
+ Option `notombowdate' is renamed;\MessageBreak
+ use `notombowbanner' instead}%
+ \tombowdatefalse}
+
+%% register a list of candidate papersize
+% * \pxgtmb@addpapersize[<tombowname>]{<papername>}{<shorter edge>}{<longer edge>}
+% used for declaration of papersize.
+% when no option is specified (that is, \ifpxgtmb@switch = \iffalse),
+% also used for automatic stocksize determination.
+% * if <tombowname> = \@empty, the next <papername> is assumed.
+% * if <tombowname> = n, stocksize is set to papersize + 2in.
+\def\pxgtmb@addpapersize{\@ifnextchar[{\pxgtmb@addp@persize}{\pxgtmb@addp@persize[\@empty]}}
+\def\pxgtmb@addp@persize[#1]#2#3#4{%
+ % get current papersize and search through known standard in ascending order
+ \ifx\pxgtmb@guessedtombow\@empty
+ \ifx\pxgtmb@guessedpaper\@empty
+ % shorter edge -> \@tempdima, longer edge -> \@tempdimb
+ \ifdim\paperwidth>\paperheight\relax
+ \pxgtmb@landscapetrue
+ \@tempdima\paperheight \@tempdimb\paperwidth
+ \else
+ \pxgtmb@landscapefalse
+ \@tempdima\paperwidth \@tempdimb\paperheight
+ \fi
+ % \@ovri and \@ovro are used temporarily (safe enough)
+ \@ovri=#3\relax
+ \@ovro=#4\relax
+ % if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment
+ \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else
+ \@ovri=\inv@mag\@ovri\relax
+ \@ovro=\inv@mag\@ovro\relax
+ \fi \fi
+ % compare
+ \ifdim\@tempdima=\@ovri\relax \ifdim\@tempdimb=\@ovro\relax
+ \def\pxgtmb@guessedpaper{#2}%
+ \ifx#1\@empty\else
+ \def\pxgtmb@guessedtombow{#1}%
+ \if n\pxgtmb@guessedtombow\else
+ \ExecuteOptions{tombow-#1}% package defaults to tombowdatetrue
+ \pxgtmb@switchfalse
+ \fi
+ \fi
+ \fi \fi
+ \else
+ \def\pxgtmb@guessedtombow{#2}% save for console message
+ \pxgtmb@setstock{#3}{#4}% set stockwidth/height
+ \fi\fi
+ \DeclareOption{tombow-#2}{%
+ \pxgtmb@switchtrue
+ \tombowdatetrue
+ \pxgtmb@setstock{#3}{#4}%
+ }%
+ \DeclareOption{tombo-#2}{%
+ \pxgtmb@switchtrue
+ \tombowdatefalse
+ \pxgtmb@setstock{#3}{#4}%
+ }%
+ \DeclareOption{mentuke-#2}{%
+ \pxgtmb@switchtrue
+ \tombowdatefalse
+ \setlength{\@tombowwidth}{\z@}%
+ \pxgtmb@setstock{#3}{#4}%
+ }%
+}
+\def\pxgtmb@setstock#1#2{%
+ \ifpxgtmb@landscape
+ \setlength\stockwidth{#2}%
+ \setlength\stockheight{#1}%
+ \else
+ \setlength\stockwidth{#1}%
+ \setlength\stockheight{#2}%
+ \fi
+ % if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment
+ \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else
+ \stockwidth=\inv@mag\stockwidth\relax
+ \stockheight=\inv@mag\stockheight\relax
+ \fi \fi
+}%
+\@onlypreamble\pxgtmb@addpapersize
+\@onlypreamble\pxgtmb@addp@persize
+\@onlypreamble\pxgtmb@setstock
+
+%% initialize before search
+\def\pxgtmb@guessedpaper{}
+\def\pxgtmb@guessedtombow{}
+\@onlypreamble\pxgtmb@guessedpaper
+\@onlypreamble\pxgtmb@guessedtombow
+
+%% package options part 2
+% ISO A series <=> JIS B series in the ascending order
+\pxgtmb@addpapersize{a10}{26mm}{37mm}
+\pxgtmb@addpapersize{b10}{32mm}{45mm}
+\pxgtmb@addpapersize{a9}{37mm}{52mm}
+\pxgtmb@addpapersize{b9}{45mm}{64mm}
+\pxgtmb@addpapersize{a8}{52mm}{74mm}
+\pxgtmb@addpapersize{b8}{64mm}{91mm}
+\pxgtmb@addpapersize{a7}{74mm}{105mm}
+\pxgtmb@addpapersize{b7}{91mm}{128mm}
+\pxgtmb@addpapersize{a6}{105mm}{148mm}
+\pxgtmb@addpapersize{b6}{128mm}{182mm}
+\pxgtmb@addpapersize{a5}{148mm}{210mm}
+\pxgtmb@addpapersize{b5}{182mm}{257mm}
+\pxgtmb@addpapersize{a4}{210mm}{297mm}
+\pxgtmb@addpapersize{b4}{257mm}{364mm}
+\pxgtmb@addpapersize{a3}{297mm}{420mm}
+\pxgtmb@addpapersize{b3}{364mm}{515mm}
+\pxgtmb@addpapersize{a2}{420mm}{594mm}
+\pxgtmb@addpapersize{b2}{515mm}{728mm}
+\pxgtmb@addpapersize{a1}{594mm}{841mm}
+\pxgtmb@addpapersize{b1}{728mm}{1030mm}
+\pxgtmb@addpapersize[n]{a0}{841mm}{1189mm}
+\pxgtmb@addpapersize[n]{b0}{1030mm}{1456mm}
+
+%% package options part 3
+% ISO C series
+\pxgtmb@addpapersize[a9]{c10}{28mm}{40mm}
+\pxgtmb@addpapersize[a8]{c9}{40mm}{57mm}
+\pxgtmb@addpapersize[a7]{c8}{57mm}{81mm}
+\pxgtmb@addpapersize[a6]{c7}{81mm}{114mm}
+\pxgtmb@addpapersize[a5]{c6}{114mm}{162mm}
+\pxgtmb@addpapersize[a4]{c5}{162mm}{229mm}
+\pxgtmb@addpapersize[a3]{c4}{229mm}{354mm}
+\pxgtmb@addpapersize[a2]{c3}{324mm}{458mm}
+\pxgtmb@addpapersize[a1]{c2}{458mm}{648mm}
+\pxgtmb@addpapersize[a0]{c1}{648mm}{917mm}
+\pxgtmb@addpapersize[n]{c0}{917mm}{1297mm}
+% misc
+\pxgtmb@addpapersize[b4]{a4j}{210mm}{297mm}
+\pxgtmb@addpapersize[b5]{a5j}{148mm}{210mm}
+\pxgtmb@addpapersize[a3]{b4j}{257mm}{364mm}
+\pxgtmb@addpapersize[a4]{b5j}{182mm}{257mm}
+\pxgtmb@addpapersize[b4]{a4var}{210mm}{283mm}
+\pxgtmb@addpapersize[a4]{b5var}{182mm}{230mm}
+\pxgtmb@addpapersize[a3]{letter}{8.5in}{11in}
+\pxgtmb@addpapersize[a3]{legal}{8.5in}{14in}
+\pxgtmb@addpapersize[a4]{executive}{7.25in}{10.5in}
+
+%% default options
+\ExecuteOptions{tombowbanner}% package defaults to tombowdatetrue
+\ProcessOptions
+
+%% display search result
+% if any of explicit size option is specified, \ifpxgtmb@switch = \iftrue.
+% otherwise, automatic size detection should be successful.
+\ifpxgtmb@switch\else
+ % check status
+ \@tempcnta=\z@\relax
+ \ifx\pxgtmb@guessedpaper\@empty
+ \advance\@tempcnta\@ne\relax
+ \fi
+ \ifx\pxgtmb@guessedtombow\@empty
+ \advance\@tempcnta\tw@\relax
+ \else\if n\pxgtmb@guessedtombow
+ \advance\@tempcnta\tw@\relax
+ \fi\fi
+ % message
+ \ifodd\@tempcnta
+ %\PackageWarningNoLine\pxgtmb@pkgname{%
+ % No size option specified, and automatic papersize\MessageBreak
+ % detection also failed}
+ \else
+ \typeout{***** Package \pxgtmb@pkgname\space detected \pxgtmb@guessedpaper paper. *****}
+ \fi
+ \ifnum\@tempcnta>\@ne\relax
+ \PackageWarningNoLine\pxgtmb@pkgname{%
+ Output size cannot be determined. Please add size\MessageBreak
+ option (e.g. `tombow-a4') to specify output size.\MessageBreak
+ Falling back to +1in ..}
+ \stockwidth\paperwidth \advance\stockwidth 2in
+ \stockheight\paperheight \advance\stockheight 2in
+ \else
+ \typeout{***** Now the output size is automatically set to \pxgtmb@guessedtombow. *****}
+ \fi
+\fi
+
+%% warnings
+\ifdim\stockwidth<\paperwidth
+ \PackageWarningNoLine\pxgtmb@pkgname{%
+ \string\stockwidth\space is smaller than \string\paperwidth!\MessageBreak
+ Is this really what you want?}
+\fi
+\ifdim\stockheight<\paperheight
+ \PackageWarningNoLine\pxgtmb@pkgname{%
+ \string\stockheight\space is smaller than \string\paperheight!\MessageBreak
+ Is this really what you want?}
+\fi
+
+%% make tombow box according to tombowdate & \@tombowwidth status
+\maketombowbox
+
+%% shift amount
+\hoffset .5\stockwidth
+\advance\hoffset -.5\paperwidth
+\advance\hoffset-1truein\relax
+\voffset .5\stockheight
+\advance\voffset -.5\paperheight
+\advance\voffset-1truein\relax
+
+%% user interface
+\newcommand{\settombowbanner}[1]{%
+ \iftombowdate\else
+ \PackageWarning{\pxgtmb@pkgname}{%
+ Package option `tombowbanner' is not effective.\MessageBreak
+ The banner may be discarded}%
+ \fi
+ \@bannertoken{#1}\maketombowbox}
+\newcommand{\settombowbannerfont}[1]{%
+ \font\@bannerfont=#1\relax \maketombowbox}
+\newcommand{\settombowwidth}[1]{%
+ \setlength{\@tombowwidth}{#1}\maketombowbox}
+
+%% patch internal for pdfpages to work with tombow
+%% (tested on pdfpages 2017/10/31 v0.5l)
+\def\pxgtmb@patch@pdfpages{%
+ \RequirePackage{etoolbox}
+ \patchcmd{\AM@output}{%
+ \setlength{\@tempdima}{\AM@xmargin}%
+ \edef\AM@xmargin{\the\@tempdima}%
+ \setlength{\@tempdima}{\AM@ymargin}%
+ \edef\AM@ymargin{\the\@tempdima}%
+ }{%
+ \setlength{\@tempdima}{\AM@xmargin\iftombow+1in\fi}%
+ \edef\AM@xmargin{\the\@tempdima}%
+ \setlength{\@tempdima}{\AM@ymargin\iftombow-1in\fi}%
+ \edef\AM@ymargin{\the\@tempdima}%
+ }
+ {\PackageInfo{\pxgtmb@pkgname}{Patch for pdfpages applied}}
+ {\PackageWarningNoLine{\pxgtmb@pkgname}{Patch for pdfpages failed}}%
+ }
+\AtBeginDocument{\@ifpackageloaded{pdfpages}{\pxgtmb@patch@pdfpages}{}}
+
+\endinput