From ad72985f1b2d23650ced8fed8b86c4700b6ecee6 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
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

