From ad72985f1b2d23650ced8fed8b86c4700b6ecee6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 16 Mar 2018 21:30:44 +0000 Subject: gentombow (16mar18) git-svn-id: svn://tug.org/texlive/trunk@46987 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/gentombow/bounddvi.sty | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/gentombow/bounddvi.sty (limited to 'Master/texmf-dist/tex/latex/gentombow/bounddvi.sty') 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 -- cgit v1.2.3