summaryrefslogtreecommitdiff
path: root/macros/jptex/latex/gentombow/gentombow.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/jptex/latex/gentombow/gentombow.sty')
-rw-r--r--macros/jptex/latex/gentombow/gentombow.sty747
1 files changed, 0 insertions, 747 deletions
diff --git a/macros/jptex/latex/gentombow/gentombow.sty b/macros/jptex/latex/gentombow/gentombow.sty
deleted file mode 100644
index bcd8093f50..0000000000
--- a/macros/jptex/latex/gentombow/gentombow.sty
+++ /dev/null
@@ -1,747 +0,0 @@
-%
-% gentombow.sty
-% written by Hironobu Yamashita (@aminophen)
-%
-% This package is part of the gentombow bundle.
-% https://github.com/aminophen/gentombow
-%
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{gentombow}
- [2020/10/14 v0.9l Generate crop mark 'tombow']
-\def\pxgtmb@pkgname{gentombow}
-\@namedef{ver@pxgentombow.sty}{}% fake
-
-%% error status
-\chardef\pxgtmb@errlevel=\z@
-
-%% supported engines
-% case 2: pdfLaTeX etc.
-% case 1: pLaTeX2e <2018-04-01>+2 or older
-% case 0: pLaTeX2e <2018-05-20> or newer
-% --- checked plcore.ltx in platex 2020/09/28 v1.3g
-\ifx\pfmtname\@undefined
- \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\tw@}
-\fi
-\ifnum\pxgtmb@errlevel<\tw@
- \ifx\@tombowreset@@paper\@undefined
- \chardef\pxgtmb@errlevel=\@ne
- \fi
-\fi
-\ifcase\pxgtmb@errlevel
- \let\pxgtmb@sel@twoone\@gobble
- \let\pxgtmb@sel@two@one\@gobbletwo
- \let\pxgtmb@sel@two\@gobble
-\or
- \let\pxgtmb@sel@twoone\@firstofone
- \let\pxgtmb@sel@two@one\@secondoftwo
- \let\pxgtmb@sel@two\@gobble
-\or
- \let\pxgtmb@sel@twoone\@firstofone
- \let\pxgtmb@sel@two@one\@firstoftwo
- \let\pxgtmb@sel@two\@firstofone
-\else
- \PackageError{\pxgtmb@pkgname}{%
- This cannot happen!
- Please report to package author}\@ehc
- \expandafter\endinput
-\fi
-\@onlypreamble\pxgtmb@sel@twoone
-\@onlypreamble\pxgtmb@sel@two@one
-\@onlypreamble\pxgtmb@sel@two
-
-%%%%% EMULATION BEGIN
-
-% required for patching \@outputpage
-\pxgtmb@sel@twoone{\RequirePackage{etoolbox}}
-
-% patch \@outputpage
-\begingroup
-\def\pxgtmb@emu@status{0}
-\let\pxgtmb@emu@outputpage\@outputpage
-\pxgtmb@sel@two@one
-{%% case 2 begin
- \patchcmd\pxgtmb@emu@outputpage % try first patch
- {\reset@font\normalsize\normalsfcodes}%
- {\@tombowreset@@paper
- \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}}
-}%% case 2 end
-{%% case 1 begin
- \patchcmd\pxgtmb@emu@outputpage % try patch
- {%
- \@@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}
- {\@tombowreset@@paper
- \reset@font\normalsize\normalsfcodes}%
- {}{\def\pxgtmb@emu@status{1}}
-}%% case 1 end
-% commit the change only when successful; otherwise
-% tombow feature is never enabled, exit right away
-\pxgtmb@sel@twoone
-{%% case 2 and 1 begin
- \if 0\pxgtmb@emu@status\relax
- \global\let\@outputpage\pxgtmb@emu@outputpage
- \else
- \PackageError{\pxgtmb@pkgname}{%
- Failed in patching \string\@outputpage!\MessageBreak
- Sorry, I can't proceed anymore...}\@ehc
- \expandafter\expandafter\expandafter\endinput\expandafter
- \fi
-}%% case 2 and 1 end
-\endgroup
-%
-
-% provides equivalent for plcore.ltx
-\pxgtmb@sel@two
-{%% case 2 begin
-\newif\iftombow \tombowfalse
-\newif\iftombowdate \tombowdatetrue
-\newdimen\@tombowwidth
-\setlength{\@tombowwidth}{.1\p@}
-}%% case 2 end
-\pxgtmb@sel@twoone
-{%% case 2 and 1 begin
-\setlength{\@tombowwidth}{.1\p@}
-\def\@tombowbleed{3mm}
-\def\@tombowcolor{\normalcolor}
-}%% case 2 and 1 end
-\pxgtmb@sel@two
-{%% case 2 begin
-\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{}
-}%% case 2 end
-\pxgtmb@sel@twoone
-{%% case 2 and 1 begin
-\def\maketombowbox{% hide \yoko from all boxes
- \setbox\@TL\hbox to\z@{\csname yoko\endcsname\hss
- \vrule width\dimexpr 10mm+\@tombowbleed\relax 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@{\csname yoko\endcsname\hss
- \vrule width10mm height\@tombowwidth depth\z@
- \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@}%
- \setbox\@TC\hbox{\csname yoko\endcsname
- \vrule width10mm height\@tombowwidth depth\z@
- \vrule height10mm width\@tombowwidth depth\z@
- \vrule width10mm height\@tombowwidth depth\z@}%
- \setbox\@TR\hbox to\z@{\csname yoko\endcsname
- \vrule height10mm width\@tombowwidth depth\z@
- \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@\hss}%
- \setbox\@Tr\hbox to\z@{\csname yoko\endcsname
- \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@
- \vrule width10mm height\@tombowwidth depth\z@\hss}%
- \setbox\@BL\hbox to\z@{\csname yoko\endcsname\hss
- \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@
- \vrule depth10mm width\@tombowwidth height\z@}%
- \setbox\@Bl\hbox to\z@{\csname yoko\endcsname\hss
- \vrule width10mm depth\@tombowwidth height\z@
- \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@}%
- \setbox\@BC\hbox{\csname yoko\endcsname
- \vrule width10mm depth\@tombowwidth height\z@
- \vrule depth10mm width\@tombowwidth height\z@
- \vrule width10mm depth\@tombowwidth height\z@}%
- \setbox\@BR\hbox to\z@{\csname yoko\endcsname
- \vrule depth10mm width\@tombowwidth height\z@
- \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@\hss}%
- \setbox\@Br\hbox to\z@{\csname yoko\endcsname
- \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@
- \vrule width10mm depth\@tombowwidth height\z@\hss}%
- \setbox\@CL\hbox to\z@{\csname yoko\endcsname\hss
- \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
- \vrule height10mm depth10mm width\@tombowwidth}%
- \setbox\@CR\hbox to\z@{\csname yoko\endcsname
- \vrule height10mm depth10mm width\@tombowwidth
- \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}%
-}
-\def\@outputtombow{%
- \iftombow
- \vbox to\z@{\kern-\dimexpr 10mm+\@tombowbleed\relax\relax
- \boxmaxdepth\maxdimen
- \moveleft\@tombowbleed \vbox to\@@paperheight{%
- \color@begingroup
- \@tombowcolor
- \hbox to\@@paperwidth{\hskip\@tombowbleed\relax
- \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}%
- \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{\hskip\@tombowbleed\relax
- \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}%
- \color@endgroup
- }\vss
- }%
- \fi
-}
-}%% case 2 and 1 end
-\pxgtmb@sel@two
-{%% case 2 begin
-\newdimen\@@paperheight
-\newdimen\@@paperwidth
-\newdimen\@@topmargin
-}%% case 2 end
-\pxgtmb@sel@twoone
-{%% case 2 and 1 begin
-\def\@tombowreset@@paper{%
- \@@topmargin\topmargin
- \iftombow
- \@@paperwidth\paperwidth
- \advance\@@paperwidth 2\dimexpr\@tombowbleed\relax
- \@@paperheight\paperheight \advance\@@paperheight 10mm\relax
- \advance\@@paperheight 2\dimexpr\@tombowbleed\relax
- \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax
- \fi
-}
-}%% case 2 and 1 end
-\pxgtmb@sel@two
-{%% case 2 begin
-\newcount\hour
-\newcount\minute
-}%% case 2 end
-
-%%%%% EMULATION END
-
-%% 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
- % if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment
- \ifx\inv@mag\@undefined\else
- % \pxgtmb@magscale is almost equivalent to \jsc@magscale (introduced around 2016)
- % but defined only when \mag is actually employed
- \begingroup
- % calculation code borrowed from BXjscls
- \@tempcnta=\mag
- \advance\@tempcnta100000\relax
- \def\pxgtmb@tempa#1#2#3#4\@nil{\@tempdima=#2#3.#4\p@}
- \expandafter\pxgtmb@tempa\the\@tempcnta\@nil
- \xdef\pxgtmb@magscale{\strip@pt\@tempdima}
- \endgroup
- \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.
- \ifx\pxgtmb@magscale\@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
- % 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\stockwidth\@undefined \newdimen\stockwidth \fi
-\ifx\stockheight\@undefined \newdimen\stockheight \fi
-
-%% prepare flag
-\newif\ifpxgtmb@switch \pxgtmb@switchfalse
-\newif\ifpxgtmb@landscape \pxgtmb@landscapefalse
-\newif\ifpxgtmb@pdfx@x \pxgtmb@pdfx@xfalse
-
-%% 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
- % when jsclasses-style \mag employment is assumed ...
- \ifx\pxgtmb@magscale\@undefined\else
- \@ovri=\inv@mag\@ovri\relax
- \@ovro=\inv@mag\@ovro\relax
- \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
- % when jsclasses-style \mag employment is assumed ...
- \ifx\pxgtmb@magscale\@undefined\else
- \stockwidth=\inv@mag\stockwidth\relax
- \stockheight=\inv@mag\stockheight\relax
- \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}
-\pxgtmb@addpapersize[a5]{hagaki}{100mm}{148mm}
-
-%% package options part 4
-\def\pxgtmb@pdfbox@status{0}
-\DeclareOption{pdfbox}{\def\pxgtmb@pdfbox@status{1}}
-\DeclareOption{dvips}{\def\pxgtmb@driver{s}}
-\DeclareOption{dvipdfmx}{\def\pxgtmb@driver{m}}
-\DeclareOption{xetex}{\def\pxgtmb@driver{x}}
-\DeclareOption{pdftex}{\def\pxgtmb@driver{p}}
-\DeclareOption{luatex}{\def\pxgtmb@driver{l}}
-
-%% 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
-
-%% pdf "digital tombo" (driver-dependent)
-% the box size calculation is delayed until \AtBeginDocument
-% to allow users to change \@tombowbleed in the preamble
-
-% convert pt -> bp
-\def\pxgtmb@PDF@setbp#1#2{%
- \@tempdima=.996264#2\relax % 0.996264 = 72/72.27 (cf. 1in = 72.27pt = 72bp)
- \@tempdima=\pxgtmb@magscale\@tempdima % adjustment for jsclasses-style \mag employment
- \edef#1{\strip@pt\@tempdima}}
-% calculate and create pdf boxes
-\def\pxgtmb@PDF@calcbox{%
- \begingroup
- % provide fallback definition inside this group
- \ifx\pxgtmb@magscale\@undefined
- \def\pxgtmb@magscale{1}%
- \fi
- % set pdf boxes in bp unit
- \pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@x\stockwidth
- \pxgtmb@PDF@setbp\pxgtmb@PDF@crop@ur@y\stockheight
- \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@x{\dimexpr(\stockwidth-\paperwidth)/2}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ll@y{\dimexpr(\stockheight-\paperheight)/2}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@x{\dimexpr(\stockwidth+\paperwidth)/2}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@trim@ur@y{\dimexpr(\stockheight+\paperheight)/2}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ll@x{\dimexpr(\stockwidth-\paperwidth)/2-\@tombowbleed}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ll@y{\dimexpr(\stockheight-\paperheight)/2-\@tombowbleed}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@x{\dimexpr(\stockwidth+\paperwidth)/2+\@tombowbleed}%
- \pxgtmb@PDF@setbp\pxgtmb@PDF@bleed@ur@y{\dimexpr(\stockheight+\paperheight)/2+\@tombowbleed}%
- \xdef\pxgtmb@PDF@CTM{%
- %% CropBox: normally implicit (same as MediaBox, large paper size)
- %% however, pdfx.sty in PDF/X mode sets /CropBox explicitly, so I need to override it!
- \ifpxgtmb@pdfx@x
- \noexpand\pxgtmb@PDF@begin
- /CropBox [0 0
- \pxgtmb@PDF@crop@ur@x\space
- \pxgtmb@PDF@crop@ur@y] \noexpand\pxgtmb@PDF@end
- \fi
- %% BleedBox: explicit (final paper size + surrounding \@tombowbleed)
- \noexpand\pxgtmb@PDF@begin
- /BleedBox [\pxgtmb@PDF@bleed@ll@x\space
- \pxgtmb@PDF@bleed@ll@y\space
- \pxgtmb@PDF@bleed@ur@x\space
- \pxgtmb@PDF@bleed@ur@y] \noexpand\pxgtmb@PDF@end
- %% TrimBox: explicit (final paper size)
- \noexpand\pxgtmb@PDF@begin
- /TrimBox [\pxgtmb@PDF@trim@ll@x\space
- \pxgtmb@PDF@trim@ll@y\space
- \pxgtmb@PDF@trim@ur@x\space
- \pxgtmb@PDF@trim@ur@y] \noexpand\pxgtmb@PDF@end
- %% ArtBox: implicit
- %% [Note] PDF/X requires /TrimBox or /ArtBox but not both!
- }%
- \endgroup
-}
-
-% do it
-\AtBeginDocument{\pxgtmb@PDF@emit}
-\def\pxgtmb@PDF@emit{%
- % handle compatibility with pdfx.sty here;
- % if pdfx.sty with PDF/X mode detected, force [pdfbox] option!
- \pxgtmb@handle@pdfx
- \ifpxgtmb@pdfx@x\def\pxgtmb@pdfbox@status{1}\fi
- % start actual procedure for [pdfbox] option
- \if 1\pxgtmb@pdfbox@status
-%% supported drivers: dvips, dvipdfmx, XeTeX, pdfTeX, LuaTeX
-\ifnum0\ifx\pdfvariable\@undefined\else\the\outputmode\fi=0\relax
-\ifnum0\ifx\pdfpageattr\@undefined\else\the\pdfoutput\fi=0\relax
- %% for DVI output or XeTeX
- \ifx\XeTeXversion\@undefined
- \chardef\pxgtmb@errlevel=\z@
- % check graphics/graphicx/color status
- \ifx\Gin@driver\@undefined
- \ifx\pxgtmb@driver\@undefined % driver option unavailable
- \PackageError{\pxgtmb@pkgname}{%
- Option `pdfbox' is driver-dependent!\MessageBreak
- Please add a driver option}\@ehc
- \def\pxgtmb@driver{s}% fallback
- \fi
- \else
- % check consistency
- \def\pxgtmb@tempa{dvips.def}\ifx\Gin@driver\pxgtmb@tempa
- \ifx\pxgtmb@driver\@undefined
- \def\pxgtmb@driver{s}% pass
- \else
- \if s\pxgtmb@driver\else \chardef\pxgtmb@errlevel=\@ne \fi
- \fi
- \else\def\pxgtmb@tempa{dvipdfmx.def}\ifx\Gin@driver\pxgtmb@tempa
- \ifx\pxgtmb@driver\@undefined
- \def\pxgtmb@driver{m}% pass
- \else
- \if m\pxgtmb@driver\else \chardef\pxgtmb@errlevel=\@ne \fi
- \fi
- \else
- \ifx\pxgtmb@driver\@undefined
- \PackageError{\pxgtmb@pkgname}{%
- Option `pdfbox' is driver-dependent!\MessageBreak
- Please add a driver option}\@ehc
- \def\pxgtmb@driver{s}% fallback
- \fi
- \fi\fi
- \ifnum\pxgtmb@errlevel>\z@
- \PackageWarningNoLine{\pxgtmb@pkgname}{%
- Inconsistent driver option detected!\MessageBreak
- Package `graphics' or `color' already\MessageBreak
- loaded with different driver option}\@ehc
- \fi
- \fi
- \else
- \def\pxgtmb@driver{x}
- \fi
- % required for putting \special to every page
- \RequirePackage{atbegshi}
- \ifx\pfmtname\@undefined\else
- \ifx\AtBegShi@Output\@undefined
- % LaTeX2e 2020-10-01: an emulation by ``atbegshi-ltx.sty''
- % => pLaTeX2e 2020-10-01 natively supports it
- \else
- % older: the real ``atbegshi.sty'' is loaded
- \IfFileExists{pxatbegshi.sty}{\RequirePackage{pxatbegshi}}{}
- \fi
- \fi
- % do it
- \if x\pxgtmb@driver
- %% for XeTeX (similar to dvipdfmx, except for paper size)
- \AtBeginDocument{%
- \pxgtmb@PDF@calcbox
- \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
- \edef\pxgtmb@PDF@CTM{{pdf:put @thispage << \pxgtmb@PDF@CTM >>}}}
- % force paper size
- \pdfpagewidth\stockwidth \pdfpageheight\stockheight
- % emit pdf boxes
- \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{%
- \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@
- \expandafter\special\pxgtmb@PDF@CTM % here!
- \copy\AtBeginShipoutBox}}
- \else
- \if s\pxgtmb@driver
- %% for dvips
- \AtBeginDocument{%
- \pxgtmb@PDF@calcbox
- \def\pxgtmb@PDF@begin{[ }\def\pxgtmb@PDF@end{/PAGE pdfmark }%
- \edef\pxgtmb@PDF@CTM{{ps:SDict begin \pxgtmb@PDF@CTM end}}}
- \else\if m\pxgtmb@driver
- %% for dvipdfmx
- \AtBeginDocument{%
- \pxgtmb@PDF@calcbox
- \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
- \edef\pxgtmb@PDF@CTM{{pdf:put @thispage << \pxgtmb@PDF@CTM >>}}}
- \else
- %% for others (in case graphics option wrong)
- \PackageError{\pxgtmb@pkgname}{Sorry, driver unsupported}\@ehc
- \def\pxgtmb@PDF@CTM{{}}% dummy
- \fi\fi
- %% common
- \begingroup
- % when jsclasses-style \mag employment is assumed ...
- % [Note] \special{papersize=<width>,<height>} accepts only non-true units
- % and evaluates them as if they were true units!
- \ifx\pxgtmb@magscale\@undefined\else
- \stockwidth \pxgtmb@magscale\stockwidth
- \stockheight\pxgtmb@magscale\stockheight
- \fi
- \xdef\pxgtmb@PDF@size{{papersize=\the\stockwidth,\the\stockheight}}
- \endgroup
- \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{%
- \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@
- % force paper size
- \expandafter\special\pxgtmb@PDF@size
- % emit pdf boxes
- \expandafter\special\pxgtmb@PDF@CTM % here!
- \copy\AtBeginShipoutBox}}
- \fi
-\else
- %% for pdfTeX
- \def\pxgtmb@driver{p}
- % force paper size
- \pdfpagewidth\stockwidth \pdfpageheight\stockheight
- % emit pdf boxes
- \AtBeginDocument{%
- \pxgtmb@PDF@calcbox
- \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
- \edef\pxgtmb@PDF@CTM{{\pxgtmb@PDF@CTM}}%
- \expandafter\pdfpageattr\pxgtmb@PDF@CTM}
-\fi\else
- %% for LuaTeX
- \def\pxgtmb@driver{l}
- % force paper size
- \pagewidth\stockwidth \pageheight\stockheight
- % emit pdf boxes
- \AtBeginDocument{%
- \pxgtmb@PDF@calcbox
- \def\pxgtmb@PDF@begin{}\def\pxgtmb@PDF@end{}%
- \edef\pxgtmb@PDF@CTM{pageattr{\pxgtmb@PDF@CTM}}%
- \expandafter\pdfvariable\pxgtmb@PDF@CTM}
-\fi
- \fi
-}
-
-%% make visible tombow box according to the current status of
-%% \@bannerfont, \@bannertoken, \@tombowwidth & \@tombowbleed
-\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}
-\newcommand{\settombowbleed}[1]{%
- \def\@tombowbleed{#1}\maketombowbox}
-\newcommand{\settombowcolor}[1]{%
- \def\@tombowcolor{#1}}
-% forbid changing \@tombowbleed after \begin{document}
-% because pdf boxes are calculated only inside \AtBeginDocument
-\@onlypreamble\settombowbleed
-
-%% patch internal of pdfpages.sty to work with tombow
-\def\pxgtmb@patch@pdfpages{%
- \IfFileExists{pxpdfpages.sty}{\RequirePackage{pxpdfpages}}{}}
-\AtBeginDocument{\@ifpackageloaded{pdfpages}{\pxgtmb@patch@pdfpages}{}}
-
-%% patch pdfx.sty
-%% (tested on pdfx 2019/02/27 v1.6.3)
-\def\pxgtmb@handle@pdfx{\@ifpackageloaded{pdfx}{\let\ifpxgtmb@pdfx@x\ifpdfx@x}{}}
-
-\endinput