From 3808f9582452443de2e1a2a2b857a00ae7eb79aa Mon Sep 17 00:00:00 2001 From: Manuel Pégourié-Gonnard Date: Fri, 4 Jul 2008 10:22:30 +0000 Subject: new blowup package git-svn-id: svn://tug.org/texlive/trunk@9224 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/blowup/blowup.sty | 235 ++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/blowup/blowup.sty (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/blowup/blowup.sty b/Master/texmf-dist/tex/latex/blowup/blowup.sty new file mode 100644 index 00000000000..f6da948b43d --- /dev/null +++ b/Master/texmf-dist/tex/latex/blowup/blowup.sty @@ -0,0 +1,235 @@ +%% +%% This is file `blowup.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% blowup.dtx (with options: `package') +%% +%% Copyright (C) 2007 +%% Rolf Niepraschk, Rolf.Niepraschk@gmx.de +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{blowup} + [2008/06/06 v0.1i Document Scaling (RN)] +\RequirePackage{everyshi,graphics,keyval} +\@ifpackageloaded{typearea}{}{% + \newcommand*\BL@save@dimen[1]{% + \@ifundefined{BL@#1}{% + \expandafter\newlength\csname BL@#1\endcsname}{}% + \csname BL@#1\endcsname\csname #1\endcsname + \g@addto@macro\BL@restore@dimens{% + \csname #1\endcsname\csname BL@#1\endcsname}% + }% + \newcommand*\BL@restore@dimens{}% + \BL@save@dimen{textwidth}% + \BL@save@dimen{textheight}% + \BL@save@dimen{evensidemargin}% + \BL@save@dimen{oddsidemargin}% + \BL@save@dimen{topmargin}% + \BL@save@dimen{headheight}% + \BL@save@dimen{headsep}% + \BL@save@dimen{topskip}% + \BL@save@dimen{footskip}% + \BL@save@dimen{baselineskip}% + \RequirePackage{typearea}% + \BL@restore@dimens + \let\BL@save@dimen=\relax + \let\BL@restore@dimens=\relax +} +\providecommand*\vb@xt@{\vbox to} +\newlength\sPaperWidth \sPaperWidth=\paperwidth +\newlength\sPaperHeight \sPaperHeight=\paperheight +\newcommand*\BL@@resize{} +\newcommand*\BL@scalePage{% + \setbox\@cclv=\vbox{\vskip1in\unvbox\@cclv}% + \setbox\@cclv=\vbox{\moveright1in\box\@cclv}% + \setbox\@cclv=\hb@xt@\paperwidth{\box\@cclv\hss}% + \setbox\@cclv=\vb@xt@\paperheight{\box\@cclv\vss}% + \let\BL@@resize=\@firstofone + \ifBL@noscale\else + \def\BL@@resize##1{\resizebox{\sPaperWidth}{!}{##1}}% + \setbox\@tempboxa=\hbox{\set@typeset@protect + \BL@@resize{\copy\@cclv}}% + \ifdim\ht\@tempboxa>\sPaperHeight + \def\BL@@resize##1{\resizebox{!}{\sPaperHeight}{##1}}% + \fi + \fi + \setbox\@tempboxa=\vb@xt@\sPaperHeight{\set@typeset@protect + \kern\z@\BL@t + \hb@xt@\sPaperWidth{\BL@l\BL@@resize{\box\@cclv}\BL@r}% + \BL@b\kern\z@ + }% + \setbox\@cclv=\vbox{\box\@tempboxa}% + \setbox\@cclv=\vbox{\vskip-1in\unvbox\@cclv}% + \setbox\@cclv=\vbox{\moveright-1in\box\@cclv}% +} +\newcommand\BL@tempa{} +\newcommand\BL@tempb{} +\newcommand*\BL@strip@comma{} +\def\BL@strip@comma#1,{#1} +\newcommand*\BL@if@dimen@pair[1]{% + \expandafter\BL@@if@dimen@pair#1,\@nil +} +\newcommand*\BL@@if@dimen@pair{} +\def\BL@@if@dimen@pair#1,#2\@nil{% + \edef\BL@tempa{#1}\edef\BL@tempb{#2}% + \@tempswafalse + \ifx\BL@tempb\@empty\else + \edef\BL@tempb{\expandafter\BL@strip@comma\BL@tempb}% + \ifdimen{\BL@tempa}{\@tempswatrue}{}% + \if@tempswa + \ifdimen{\BL@tempb}{}{\@tempswafalse}% + \fi + \fi + \if@tempswa + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +\newcommand*\BL@strip@x{} +\def\BL@strip@x#1x{#1} +\newcommand*\BL@if@factor[1]{% + \expandafter\BL@@if@factor#1x\@nil +} +\newcommand*\BL@@if@factor{} +\def\BL@@if@factor#1x#2\@nil{% + \edef\BL@tempa{#2}% + \ifx\BL@tempa\@empty + \expandafter\@secondoftwo + \else + \edef\BL@tempa{\expandafter\BL@strip@x\BL@tempa}% + \expandafter\@firstoftwo + \fi +} +\define@key{BL@}{paper}{% + \BL@if@dimen@pair{#1}{% + \global\sPaperWidth=\BL@tempa\relax + \global\sPaperHeight=\BL@tempb\relax + }{% + \BL@if@factor{#1}{% + \global\sPaperWidth=\BL@tempa\paperwidth + \global\sPaperHeight=\BL@tempa\paperheight + }{% + \begingroup + \KOMAoptions{paper=portrait,paper=#1}% + \global\sPaperWidth=\paperwidth + \global\sPaperHeight=\paperheight + \endgroup + }% + }% +}% +\newif\ifBL@noscale \BL@noscalefalse +\define@key{BL@}{noscale}[true]{% + \csname BL@noscale#1\endcsname +} +\newcommand*\BL@l{\hss} +\newcommand*\BL@r{\hss} +\newcommand*\BL@i{} +\newcommand*\BL@o{} +\newcommand*\BL@t{\vss} +\newcommand*\BL@b{\vss} +\newcommand\BL@setPos[1]{% + \def\BL@l{\hss}\def\BL@r{\hss}% + \def\BL@t{\vss}\def\BL@b{\vss}% + \def\BL@i{}\def\BL@o{}% + \BL@if@dimen@pair{#1}{% + \edef\BL@b{\vskip\BL@tempb}% + \if@twoside + \edef\BL@l{\noexpand\ifodd\value{page}% + \hskip\BL@tempa\noexpand\else\hss\noexpand\fi}% + \edef\BL@r{\noexpand\ifodd\value{page}% + \hss\noexpand\else\hskip\BL@tempa\noexpand\fi}% + \else + \edef\BL@l{\hskip\BL@tempa}% + \if + }{% + \@for\BL@tempa:=#1\do{% + \edef\BL@tempb{\expandafter\@car\BL@tempa\@nil}% + \expandafter\let\csname BL@\BL@tempb \endcsname\relax + \if@twoside + \ifx\BL@i\relax + \def\BL@r{\ifodd\value{page}\hss\else\relax\fi}% + \def\BL@l{\ifodd\value{page}\relax\else\hss\fi}% + \fi + \ifx\BL@o\relax + \def\BL@l{\ifodd\value{page}\hss\else\relax\fi}% + \def\BL@r{\ifodd\value{page}\relax\else\hss\fi}% + \fi + \fi + }% + }% +} +\define@key{BL@}{pos}{% + \BL@setPos{#1}% +} +\newif\ifBL@landscape \BL@landscapefalse +\define@key{BL@}{landscape}[true]{% + \csname BL@landscape#1\endcsname +} +\newcommand*\BL@pageInit{} +\define@key{BL@}{onepage}[true]{% + \csname if#1\endcsname + \def\BL@pageInit{\gdef\shipout{\setbox\@tempboxa=}}% + \fi +} +\newcommand*\blowUp[1]{% + \setkeys{BL@}{#1}% + \ifBL@landscape + \@tempdima=\sPaperWidth + \global\sPaperWidth=\sPaperHeight + \global\sPaperHeight=\@tempdima + \fi + \EveryShipout{\BL@scalePage}% + \gdef\blowUp##1{% + \PackageWarning{blowup}{% + Only the first call of `\string\blowUp' \MessageBreak is effective}}% +} +\EveryShipout{\BL@pageInit} +\@onlypreamble\blowUp +\AtBeginDocument{% + \let\Gm@checkdrivers=\relax + \BL@pagesize@specials{\sPaperWidth}{\sPaperHeight}% +} +\newcommand*\BL@pagesize@specials[2]{} +\@ifundefined{Gin@driver}{}{% + \ifx\Gin@driver\@empty\else + \filename@parse{\Gin@driver}\@tempswafalse + \def\reserved@a{dvips}% + \ifx\filename@base\reserved@a\@tempswatrue\fi + \def\reserved@a{dvipdfm}% + \ifx\filename@base\reserved@a\@tempswatrue\fi + \if@tempswa + \PackageInfo{blowup}{Generating code for dvips}% + \def\BL@pagesize@specials#1#2{% + \@tempdima=#1\@tempdimb=#2% + \AtBeginDvi{\special{papersize=\the\@tempdima,\the\@tempdimb}}}% + \fi + \def\reserved@a{pdftex}% + \ifx\filename@base\reserved@a + \PackageInfo{blowup}{Generating code for pdfTeX}% + \def\BL@pagesize@specials#1#2{% + \pdfpagewidth=#1\relax\pdfpageheight=#2\relax}% + \fi + \def\reserved@a{vtex}% + \ifx\filename@base\reserved@a + \PackageInfo{blowup}{Generating code for VTeX}% + \def\BL@pagesize@specials#1#2{% + \mediawidth=#1\relax\mediaheight=#2\relax}% + \fi + \fi +} +\endinput +%% +%% End of file `blowup.sty'. -- cgit v1.2.3