diff options
Diffstat (limited to 'macros/latex/contrib/gentombow/gentombow.sty')
-rw-r--r-- | macros/latex/contrib/gentombow/gentombow.sty | 747 |
1 files changed, 0 insertions, 747 deletions
diff --git a/macros/latex/contrib/gentombow/gentombow.sty b/macros/latex/contrib/gentombow/gentombow.sty deleted file mode 100644 index bcd8093f50..0000000000 --- a/macros/latex/contrib/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 |