diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:02:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:02:28 +0000 |
commit | 1d53bc2f5dacbab72e8d152bb066911affff6b91 (patch) | |
tree | 390b41aa9023e6b1e4e7b78c0fd9c5e3dc1923ae /Master/texmf-dist/tex/latex/pgf/utilities | |
parent | 048e080abeec202eff94a248440707c29174dc2f (diff) |
pgf
git-svn-id: svn://tug.org/texlive/trunk@1191 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pgf/utilities')
-rw-r--r-- | Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty | 1043 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty | 8 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty | 105 |
4 files changed, 1166 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty b/Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty new file mode 100644 index 00000000000..b2f27b78ae7 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty @@ -0,0 +1,10 @@ +% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + +\RequirePackage{pgfrcs} + +\input{pgffor.code.tex} + +\endinput diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty b/Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty new file mode 100644 index 00000000000..19023c2efd0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty @@ -0,0 +1,1043 @@ +\ProvidesPackage{pgfpages}[2004/11/05 ver 0.01] + +% Copyright 2003 by Till Tantau <tantau@users.sourceforge.net>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + +\RequirePackage{pgfcore,calc} + +\newcount\pgf@logicalpages +\newcount\pgf@firstshipout +\newcount\pgf@lastshipout +\newcount\pgf@currentshipout +\newcount\pgf@cpn +\newcount\pgf@shipoutnextto +\newdimen\pgfphysicalheight +\newdimen\pgfphysicalwidth + +\pgf@shipoutnextto=0\relax +\pgf@logicalpages=0\relax +\pgf@firstshipout=1\relax +\pgf@lastshipout=1\relax +\pgf@currentshipout=1\relax +\pgfphysicalheight=\paperheight +\pgfphysicalwidth=\paperwidth + +\newif\ifpgfphysicalpageempty +\newif\ifpgf@holdingphysicalpage + +\pgfphysicalpageemptytrue +\pgf@holdingphysicalpagefalse + + +% Define a layout +% +% #1 = layout name +% #2 = code before options have been set +% #2 = code after options have been set +% +% Example: +% +% \pgfpagesdeclarelayout{resize to}{ +% \pgfpagesphysicalpageoptions{logical pages=1,physical height=\pgfpageoptionheight,physical width=\pgfpageoptionwidth} +% \pgfpageslogicalpageoptions{1}{resized width=\pgfphysicalwidth,% +% resized height=\pgfphysicalheight,center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}}} + +\newcommand\pgfpagesdeclarelayout[3]{ + \expandafter\newcommand\csname pgfpages@layoutbefore@#1\endcsname{#2} + \expandafter\newcommand\csname pgfpages@layout@#1\endcsname{#3}} + + +% Use a layout +% +% #1 = layout name +% #2 = options +% +% Example: +% +% \pgfpagesuselayout{resize to}[a4paper] + +\def\pgfpagesuselayout#1{\@ifnextchar[{\pgf@pagelayout{#1}}{\pgf@pagelayout{#1}[]}} +\def\pgf@pagelayout#1[#2]{ + \csname pgfpages@layoutbefore@#1\endcsname + \setkeys{pgfpagesuselayoutoption}{#2} + \@ifundefined{pgfpages@layout@#1}{ + \PackageError{pgfpages}{Page layout `#1' undefined.}{} + } + { + \csname pgfpages@layout@#1\endcsname + } +} + + +% Predefined options + +\define@key{pgfpagesuselayoutoption}{physical paper width}% +{\def\pgfpageoptionwidth{#1}} + +\define@key{pgfpagesuselayoutoption}{physical paper height}% +{\def\pgfpageoptionheight{#1}} + +\define@key{pgfpagesuselayoutoption}{a0paper}[]% +{\def\pgfpageoptionheight{1189mm} \def\pgfpageoptionwidth{841mm}} + +\define@key{pgfpagesuselayoutoption}{a1paper}[]% +{\def\pgfpageoptionheight{841mm} \def\pgfpageoptionwidth{594mm}} + +\define@key{pgfpagesuselayoutoption}{a2paper}[]% +{\def\pgfpageoptionheight{594mm} \def\pgfpageoptionwidth{420mm}} + +\define@key{pgfpagesuselayoutoption}{a3paper}[]% +{\def\pgfpageoptionheight{420mm} \def\pgfpageoptionwidth{297mm}} + +\define@key{pgfpagesuselayoutoption}{a4paper}[]% +{\def\pgfpageoptionheight{297mm} \def\pgfpageoptionwidth{210mm}} + +\define@key{pgfpagesuselayoutoption}{a5paper}[]% +{\def\pgfpageoptionheight{210mm} \def\pgfpageoptionwidth{148mm}} + +\define@key{pgfpagesuselayoutoption}{a6paper}[]% +{\def\pgfpageoptionheight{148mm} \def\pgfpageoptionwidth{105mm}} + +\define@key{pgfpagesuselayoutoption}{letterpaper}[]% +{\def\pgfpageoptionheight{11in} \def\pgfpageoptionwidth{8.5in}} + +\define@key{pgfpagesuselayoutoption}{legalpaper}[]% +{\def\pgfpageoptionheight{14in} \def\pgfpageoptionwidth{8.5in}} + +\define@key{pgfpagesuselayoutoption}{executivepaper}[]% +{\def\pgfpageoptionheight{10.5in}\def\pgfpageoptionwidth{7.25in}} + +\define@key{pgfpagesuselayoutoption}{landscape}[]% +{ + \let\pgf@temp=\pgfpageoptionwidth + \let\pgfpageoptionwidth=\pgfpageoptionheight + \let\pgfpageoptionheight=\pgf@temp +} + +\define@key{pgfpagesuselayoutoption}{border shrink}% +{\def\pgfpageoptionborder{#1}} + +\define@key{pgfpagesuselayoutoption}{corner width}% +{\def\pgfpageoptioncornerwidth{#1}} + +\define@key{pgfpagesuselayoutoption}{odd numbered pages right}[]% +{\def\pgfpageoptionfirstshipout{2}} + +\define@key{pgfpagesuselayoutoption}{second right}[]% +{% + \def\pgfpageoptionfirstcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}% + \def\pgfpageoptionsecondcenter{\pgfpoint{1.5\paperwidth}{.5\paperheight}}% + \def\pgfpageoptiontwoheight{\paperheight}% + \def\pgfpageoptiontwowidth{2\paperwidth}% +} + +\define@key{pgfpagesuselayoutoption}{second left}[]% +{% + \def\pgfpageoptionfirstcenter{\pgfpoint{1.5\paperwidth}{.5\paperheight}}% + \def\pgfpageoptionsecondcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}% + \def\pgfpageoptiontwoheight{\paperheight}% + \def\pgfpageoptiontwowidth{2\paperwidth}% +} + +\define@key{pgfpagesuselayoutoption}{second top}[]% +{% + \def\pgfpageoptionfirstcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}% + \def\pgfpageoptionsecondcenter{\pgfpoint{.5\paperwidth}{1.5\paperheight}}% + \def\pgfpageoptiontwoheight{2\paperheight}% + \def\pgfpageoptiontwowidth{\paperwidth}% +} + +\define@key{pgfpagesuselayoutoption}{second bottom}[]% +{% + \def\pgfpageoptionfirstcenter{\pgfpoint{.5\paperwidth}{1.5\paperheight}}% + \def\pgfpageoptionsecondcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}% + \def\pgfpageoptiontwoheight{2\paperheight}% + \def\pgfpageoptiontwowidth{\paperwidth}% +} + + + +% Predefined layouts + +\pgfpagesdeclarelayout{rounded corners} +{ + \def\pgfpageoptioncornerwidth{10pt} +} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=1 + } + \pgfpageslogicalpageoptions{1} + {% + center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight},% + corner width=\pgfpageoptioncornerwidth% + }% +} + +\pgfpagesdeclarelayout{resize to} +{ + \def\pgfpageoptionborder{0pt} +} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=1,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth% + } + \pgfpageslogicalpageoptions{1} + {% + resized width=\pgfphysicalwidth,% + resized height=\pgfphysicalheight,% + border shrink=\pgfpageoptionborder,% + center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}% + }% +} + +\pgfpagesdeclarelayout{two screens with lagging second} +{} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=2,% + physical height=\pgfpageoptiontwoheight,% + physical width=\pgfpageoptiontwowidth,% + last logical shipout=1,% + } + \pgfpageslogicalpageoptions{1} + {% + center=\pgfpageoptionfirstcenter,% + }% + \pgfpageslogicalpageoptions{2} + {% + center=\pgfpageoptionsecondcenter,% + copy from=1% + }% +} + +\pgfpagesdeclarelayout{two screens with optional second} +{} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=2,% + physical height=\pgfpageoptiontwoheight,% + physical width=\pgfpageoptiontwowidth,% + last logical shipout=1% + } + \pgfpageslogicalpageoptions{1} + {% + center=\pgfpageoptionfirstcenter,% + }% + \pgfpageslogicalpageoptions{2} + {% + center=\pgfpageoptionsecondcenter,% + copy from=2% + }% +} + +\pgfpagesdeclarelayout{2 on 1} +{ + \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default + \edef\pgfpageoptionwidth{\the\paperheight} + \def\pgfpageoptionborder{0pt} + \def\pgfpageoptionfirstshipout{1} +} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=2,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth,% + current logical shipout=\pgfpageoptionfirstshipout% + } + \ifdim\paperheight>\paperwidth\relax + % put side-by-side + \pgfpageslogicalpageoptions{1} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}% + }% + \else + % stack on top of one another + \pgfpageslogicalpageoptions{1} + {% + border shrink=\pgfpageoptionborder,% + resized width=\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.5\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.5\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + \fi +} + + +\pgfpagesdeclarelayout{4 on 1} +{ + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} +} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=4,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth% + } + \pgfpageslogicalpageoptions{1} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{3} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% +} + + +\pgfpagesdeclarelayout{8 on 1} +{ + \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default + \edef\pgfpageoptionwidth{\the\paperheight} + \def\pgfpageoptionborder{0pt} +} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=8,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth% + } + \ifdim\paperheight>\paperwidth\relax + % put side-by-side + \pgfpageslogicalpageoptions{1} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.125\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.375\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{3} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.625\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.875\pgfphysicalwidth}{.75\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{5} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.125\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{6} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.375\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{7} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.625\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{8} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.5\pgfphysicalheight,% + center=\pgfpoint{.875\pgfphysicalwidth}{.25\pgfphysicalheight}% + }% + \else + % stack on top of one another + \pgfpageslogicalpageoptions{1} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{3} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{5} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{6} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{7} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.25\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{8} + {% + border shrink=\pgfpageoptionborder,% + resized width=.5\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.75\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% + \fi +} + + +\pgfpagesdeclarelayout{16 on 1} +{ + \edef\pgfpageoptionheight{\the\paperheight} + \edef\pgfpageoptionwidth{\the\paperwidth} + \edef\pgfpageoptionborder{0pt} +} +{ + \pgfpagesphysicalpageoptions + {% + logical pages=16,% + physical height=\pgfpageoptionheight,% + physical width=\pgfpageoptionwidth% + } + \pgfpageslogicalpageoptions{1} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.125\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{2} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.375\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{3} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.625\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{4} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.875\pgfphysicalwidth}{.875\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{5} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.125\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{6} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.375\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{7} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.625\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{8} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.875\pgfphysicalwidth}{.625\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{9} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.125\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{10} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.375\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{11} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.625\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{12} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.875\pgfphysicalwidth}{.375\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{13} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.125\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{14} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.375\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{15} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.625\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% + \pgfpageslogicalpageoptions{16} + {% + border shrink=\pgfpageoptionborder,% + resized width=.25\pgfphysicalwidth,% + resized height=.25\pgfphysicalheight,% + center=\pgfpoint{.875\pgfphysicalwidth}{.125\pgfphysicalheight}% + }% +} + + +% Change/set main option +% +% #1 = options +% +% Options: +% +% logical pages = number of logical pages per physical page +% logical shipouts = number of shipouts needed to fill a physical page +% (may be less than the number of logical pages, +% if some logical pages are calculated +% automatically) +% current logical shipout = number of logical shipout that will come +% next. +% +% Example: +% +% \pgfpagesphysicalpageoptions{logical pages=2,logical shipouts=1} + +\newcommand\pgfpagesphysicalpageoptions[1]{% + \pgf@lastshipout=0\relax% + \pgf@currentshipout=0\relax% + \setkeys{pgfpages@main}{#1}% + \ifnum\pgf@lastshipout=0\relax%not set + \pgf@lastshipout=\pgf@logicalpages% + \fi% + \ifnum\pgf@currentshipout=0\relax%not set + \pgf@currentshipout=\pgf@firstshipout% + \fi% +} + + +\define@key{pgfpages@main}{logical pages}{\pgf@logicalpages=#1\relax} +\define@key{pgfpages@main}{first logical shipout}{\pgf@firstshipout=#1\relax} +\define@key{pgfpages@main}{last logical shipout}{\pgf@lastshipout=#1\relax} +\define@key{pgfpages@main}{current logical shipout}{\pgf@currentshipout=#1\relax} +\define@key{pgfpages@main}{physical height}{\pgfphysicalheight=#1\relax} +\define@key{pgfpages@main}{physical width}{\pgfphysicalwidth=#1\relax} + + + +% Setup/change parameters of a logical page. You must call this +% macro for each logical page. +% +% #1 = logical page number +% #2 = options +% +% Options: +% +% original height = height of the logical page (\paperheight at point of +% first invocation by default) +% original width = width of the logical page (\paperwidth by default) +% resized height = height of the logical page after resizing +% resized width = width of the logical page after resizing +% border shrink = length that is subtracted from resized height and +% resized width +% border code = pgf commands to be used for drawing a border (a +% path with the border set will already have been +% set) +% rounded corners = clip the frame against a rectangle of the size of +% the frame with corners of the given radius +% scale = factor by which the page is enlarged/shrunk +% center = center of the logical page in the physical page +% rotation = degree by which the page is rotated around its center +% xscale = scale only x-axis (use -1 to flip along y-axis) +% yscale = scale only y-axis (use -1 to flip along x-axis) +% copy from = copy the contents from this logical page of the +% previous physical page, if no contents is specified +% +% If more than one of the three options ``resized height'', ``resized +% width'' and ``scale'' are given, the smallest resulting scaling +% wins. +% +% Example: +% +% \pgfpageslogicalpageoptions{1}{scale=0.5,center=\pgfpoint{0cm}{2cm}} + +\newcommand\pgfpageslogicalpageoptions[2]{% + \pgf@cpn=#1\relax% + \expandafter\ifx\csname pgfpages@box@#1\endcsname\relax% + \expandafter\newbox\csname pgfpages@box@#1\endcsname% + \edef\pgf@temp{% + \noexpand\pgf@psetcurrent{height}{\the\paperheight}% + \noexpand\pgf@psetcurrent{width}{\the\paperwidth}% + }% + \pgf@temp% + \fi% + \setkeys{pgfpages@page}{#2}% + \pgf@calculateresizes{height}% + \pgf@calculateresizes{width}% + \pgfsetupphysicalpagesizes% +} + +\def\pgf@epset#1#2#3{\expandafter\edef\csname pgfpages@p@#1@#2\endcsname{#3}} +\def\pgf@epsetcurrent#1#2{\pgf@pset{\the\pgf@cpn}{#1}{#2}} +\def\pgf@pset#1#2#3{\expandafter\def\csname pgfpages@p@#1@#2\endcsname{#3}} +\def\pgf@pget#1#2{\csname pgfpages@p@#1@#2\endcsname} +\def\pgf@psetcurrent#1#2{\pgf@pset{\the\pgf@cpn}{#1}{#2}} +\def\pgf@pgetcurrent#1{\pgf@pget{\the\pgf@cpn}} + +\define@key{pgfpages@page}{scale}{\pgf@epsetcurrent{scale}{#1}} +\define@key{pgfpages@page}{xscale}{\pgf@epsetcurrent{xscale}{#1}} +\define@key{pgfpages@page}{yscale}{\pgf@epsetcurrent{yscale}{#1}} +\define@key{pgfpages@page}{original height}{\pgf@epsetcurrent{height}{#1}} +\define@key{pgfpages@page}{original width}{\pgf@epsetcurrent{width}{#1}} +\define@key{pgfpages@page}{resized height}{\pgf@epsetcurrent{reheight}{#1}} +\define@key{pgfpages@page}{resized width}{\pgf@epsetcurrent{rewidth}{#1}} +\define@key{pgfpages@page}{center}{\pgf@psetcurrent{center}{#1}} +\define@key{pgfpages@page}{rotation}{\pgf@epsetcurrent{rotation}{#1}} +\define@key{pgfpages@page}{copy from}{\pgf@epsetcurrent{copy}{#1}} +\define@key{pgfpages@page}{border shrink}{\pgf@epsetcurrent{border}{#1}} +\define@key{pgfpages@page}{border code}{\pgf@psetcurrent{bordercode}{#1}} +\define@key{pgfpages@page}{corner width}{\pgf@psetcurrent{cornerwidth}{#1}} + +\def\pgf@calculateresizes#1{% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @re#1\endcsname\relax% + \else% + \expandafter\@tempdima\csname pgfpages@p@\the\pgf@cpn @re#1\endcsname\relax% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @border\endcsname\relax% + \else% + \expandafter\@tempdimb\csname pgfpages@p@\the\pgf@cpn @border\endcsname\relax% + \advance\@tempdima by-2\@tempdimb\relax% + \fi% + \expandafter\@tempdimb\csname pgfpages@p@\the\pgf@cpn @#1\endcsname\relax% + \@tempcnta=\@tempdimb% + \divide\@tempcnta by 65536\relax% + \ifnum\@tempcnta=0\relax% + \@tempcnta=1\relax% + \fi% + \divide\@tempdima by\@tempcnta\relax% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @scale\endcsname\relax% + \@tempdimb=10000pt% + \else% + \expandafter\@tempdimb\expandafter=\csname pgfpages@p@\the\pgf@cpn @scale\endcsname pt\relax% + \fi% + \ifdim\@tempdima<\@tempdimb% + \edef\pgf@temp{{scale}{\expandafter\Pgf@geT\the\@tempdima}}% + \expandafter\pgf@psetcurrent\pgf@temp% + \fi% + \fi% +} + + + +% Shipout a physical page immediately +% +% Example: +% +% \pgfshipoutphysicalpage + +\newcommand\pgfshipoutphysicalpage{% + \ifnum\pgf@logicalpages>0\relax% + \pgfpages@buildshipoutbox% + \pgfpages@shipoutshipoutbox% + \pgfpages@performcopying% + \global\pgfphysicalpageemptytrue% + \global\pgf@holdingphysicalpagefalse% + \fi% +} + +\newbox\pgfpages@shipoutbox + +\def\pgfpages@buildshipoutbox{% + \setbox\pgfpages@shipoutbox=\vbox{{% + \set@typeset@protect% + \offinterlineskip% + \pgfsys@beginpicture% + \pgf@cpn=1\relax% + \loop% + \setbox0=\hbox to \csname pgfpages@p@\the\pgf@cpn @width\endcsname{% + \hskip1in% + \vbox to \csname pgfpages@p@\the\pgf@cpn @height\endcsname% + {\vskip1in\offinterlineskip\expandafter\copy\csname + pgfpages@box@\the\pgf@cpn\endcsname\vss}\hss}% + \pgfsys@beginscope% + % Translate lower left corner + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @center\endcsname\relax% + \else% + \pgflowlevel{\pgftransformshift{\csname pgfpages@p@\the\pgf@cpn @center\endcsname}}% + \fi% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @scale\endcsname\relax% + \else% + \pgflowlevel{\pgftransformscale{\csname pgfpages@p@\the\pgf@cpn @scale\endcsname}}% + \fi% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @xscale\endcsname\relax% + \else% + \pgflowlevel{\pgftransformxscale{\csname pgfpages@p@\the\pgf@cpn @xscale\endcsname}{1}}% + \fi% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @yscale\endcsname\relax% + \else% + \pgflowlevel{\pgftransformyscale{\csname pgfpages@p@\the\pgf@cpn @yscale\endcsname}}% + \fi% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname\relax% + \pgfscope% + \else% + \pgflowlevel{\pgftransformrotate{\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname}}% + \fi% + \@tempdima=\csname pgfpages@p@\the\pgf@cpn @width\endcsname\relax% + \@tempdimb=\csname pgfpages@p@\the\pgf@cpn @height\endcsname\relax% + \pgflowlevel{\pgftransformshift{\pgfpoint{-.5\@tempdima}{-.5\@tempdimb}}}% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @bordercode\endcsname\relax% + \else% + \pgfpathmoveto{\pgfpathorigin}% + \pgfpathlineto{\pgfpoint{\wd0}{0pt}}% + \pgfpathlineto{\pgfpoint{\wd0}{\ht0}}% + \pgfpathlineto{\pgfpoint{0pt}{\ht0}}% + \pgfpathclose% + {\csname pgfpages@p@\the\pgf@cpn @bordercode\endcsname}% + \fi% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @cornerwidth\endcsname\relax% + \else% + { + \expandafter\@tempdima\csname pgfpages@p@\the\pgf@cpn @cornerwidth\endcsname\relax% + \color{black} + \pgfpathrectangle{\pgfpathorigin}{\pgfpoint{\@tempdima}{\@tempdima}}% + \pgfpathrectangle{\pgfpoint{0pt}{\ht0-\@tempdima}}{\pgfpoint{\@tempdima}{\@tempdima}}% + \pgfpathrectangle{\pgfpoint{\wd0-\@tempdima}{0pt}}{\pgfpoint{\@tempdima}{\@tempdima}}% + \pgfpathrectangle{\pgfpoint{\wd0-\@tempdima}{\ht0-\@tempdima}}{\pgfpoint{\@tempdima}{\@tempdima}}% + \pgfusepath{fill}% + \pgfpathmoveto{\pgfpoint{0pt}{\@tempdima}} + \pgfpathcurveto{\pgfpoint{0pt}{0.555\@tempdima}}{\pgfpoint{.555\@tempdima}{0pt}}{\pgfpoint{\@tempdima}{0pt}} + \pgfpathlineto{\pgfpoint{\wd0-\@tempdima}{0pt}} + \pgfpathcurveto{\pgfpoint{\wd0-.555\@tempdima}{0pt}}{\pgfpoint{\wd0}{.555\@tempdima}}{\pgfpoint{\wd0}{\@tempdima}} + \pgfpathlineto{\pgfpoint{\wd0}{\ht0-\@tempdima}} + \pgfpathcurveto{\pgfpoint{\wd0}{\ht0-.555\@tempdima}}{\pgfpoint{\wd0-.555\@tempdima}{\ht0}}{\pgfpoint{\wd0-\@tempdima}{\ht0}} + \pgfpathlineto{\pgfpoint{\@tempdima}{\ht0}} + \pgfpathcurveto{\pgfpoint{.555\@tempdima}{\ht0}}{\pgfpoint{0pt}{\ht0-.555\@tempdima}}{\pgfpoint{0pt}{\ht0-\@tempdima}} + \pgfpathclose + \pgfusepath{clip} + \color{white} + \pgfpathrectangle{\pgfpathorigin}{\pgfpoint{\wd0}{\ht0}} + \pgfusepath{fill} + } + \fi% + \ht0=0pt% + \wd0=0pt% + \dp0=0pt% + \pgfsys@hbox0% + \endpgfscope% + \pgfsys@endscope% + \ifnum\pgf@cpn<\pgf@logicalpages% + \advance \pgf@cpn by 1\relax% + \repeat% + \pgfsys@endpicture% + }}% +} + + +\def\pgfpages@shipoutshipoutbox{% + \begingroup + \let \protect \noexpand + \@resetactivechars + \global\let\@@if@newlist\if@newlist + \global\@newlistfalse + \@parboxrestore + \pgfpages@originalshipout% + \hbox{% + \hskip-1in% + \vbox to \pgfphysicalheight{% + \vss\box\pgfpages@shipoutbox% + \vskip1in% + }}% + \endgroup% +} + +\def\pgfpages@performcopying{ + \pgf@cpn=1\relax% copy first + \loop% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @copy\endcsname\relax + \else% + \edef\pgf@temp{\noexpand\global\noexpand\setbox\csname pgfpages@box@% + \the\pgf@cpn\endcsname=\noexpand\copy\csname pgfpages@box@\csname + pgfpages@p@\the\pgf@cpn @copy\endcsname\endcsname}% + \pgf@temp% + \fi% + \ifnum\pgf@cpn<\pgf@logicalpages% + \advance \pgf@cpn by 1\relax% + \repeat% + \pgf@cpn=1\relax% then void + \loop% + \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @copy\endcsname\relax + \expandafter\global\expandafter\setbox\csname pgfpages@box@\the\pgf@cpn\endcsname=\box\voidb@x% + \else% + \fi% + \ifnum\pgf@cpn<\pgf@logicalpages% + \advance \pgf@cpn by 1\relax% + \repeat% +} + + + +% Save original shipout commands +% +% Example: +% +% \pgfhookintoshipout + +\newcommand\pgfhookintoshipout{ + \let\pgfpages@originalshipout=\shipout + \let\shipout=\pgfpages@interceptshipout +} + +\def\pgfpages@interceptshipout{% + \ifnum\pgf@shipoutnextto>0\relax + \def\pgf@next{% + \expandafter\global\expandafter\setbox\csname pgfpages@box@\the\pgf@shipoutnextto\endcsname=\box\voidb@x% + \afterassignment\pgfpages@shipouttestnext% + \pgfpagesshipoutlogicalpage{\the\pgf@shipoutnextto}% + }% + \else% + \ifpgf@holdingphysicalpage% shipout physical page now + {\pgfshipoutphysicalpage}% + \fi% + \ifnum\pgf@logicalpages=0\relax + \def\pgf@next{\pgfpages@originalshipout}% + \else% + \def\pgf@next{% + \expandafter\global\expandafter\setbox\csname pgfpages@box@\the\pgf@currentshipout\endcsname=\box\voidb@x% + \afterassignment\pgfpages@shipouttest% + \pgfpagesshipoutlogicalpage{\the\pgf@currentshipout}% + }% + \fi% + \fi% + \pgf@next% +} + +\def\pgfpages@shipouttest{% + \ifvoid\csname pgfpages@box@\the\pgf@currentshipout\endcsname\relax% + \aftergroup\pgfpages@preparenextshipout% + \else% + \pgfpages@preparenextshipout% + \fi% +} + +\def\pgfpages@shipouttestnext{% + \ifvoid\csname pgfpages@box@\the\pgf@shipoutnextto\endcsname\relax% + \aftergroup\pgfpages@preparenextshipout% + \else% + \pgfpages@preparenextshipout% + \fi% +} + +\def\pgfpages@preparenextshipout{% + \ifnum\pgf@shipoutnextto=0\relax% + \global\advance\pgf@currentshipout by 1\relax% + \else% + \global\pgf@shipoutnextto=0\relax% + \fi% + \ifnum\pgf@currentshipout>\pgf@lastshipout\relax% + \global\pgf@currentshipout=\pgf@firstshipout\relax% + \global\pgf@holdingphysicalpagetrue% + \fi% +} + + + +% Shipout a logical page +% +% #1 = logical page number +% +% The command should be followed by a box. This box will become the +% contents of the logical page. +% +% Example: +% +% \pgfpagesshipoutlogicalpage{0}\vbox{Hi!} + +\newcommand\pgfpagesshipoutlogicalpage[1]{% + \global\pgfphysicalpageemptyfalse% + \expandafter\global\expandafter\setbox\csname pgfpages@box@#1\endcsname=} + + + +% Finish current page and shipout next page to a specific logical page. +% +% #1 = logical page number +% +% When the current page has been typset, it will be become the given +% logical page. This command ``interrupts'' the normal order of +% logical pages. +% +% Example: +% +% \pgfpagesuselayout{two screens with optional second} +% +% Text for main page.\clearpage +% +% \pgfpagescurrentpagewillbelogicalpage{2} +% +% Text that goes to second page +% +% \clearpage +% +% Text for main page. + +\newcommand\pgfpagescurrentpagewillbelogicalpage[1]{% + \global\pgf@shipoutnextto=#1\relax% +} + + +% Setup the physical page sizes +% +% Example: +% +% \pgfsetupphysicalpagesizes + +\newcommand\pgfsetupphysicalpagesizes{% + % The following code was send to me by Rolf Niepraschk + \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% + \AtBeginDvi{% + \special{papersize=\the\pgfphysicalwidth,\the\pgfphysicalheight}}% + \fi% + \def\reserved@a{pdftex}% + \ifx\filename@base\reserved@a + \pdfpagewidth\pgfphysicalwidth\pdfpageheight\pgfphysicalheight% + \fi% + \def\reserved@a{vtex}% + \ifx\filename@base\reserved@a + \mediawidth\pgfphysicalwidth\mediaheight\pgfphysicalheight% + \fi% + \fi +} + + +% +% Start/End setup +% +\AtBeginDocument +{ + \pgfhookintoshipout + \pgfsetupphysicalpagesizes +} +\AtEndDocument +{ + \clearpage + \ifpgfphysicalpageempty + \else + \pgfshipoutphysicalpage + \fi +} + diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty b/Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty new file mode 100644 index 00000000000..509ebded392 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty @@ -0,0 +1,8 @@ +% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>. +% +% This program can be redistributed and/or modified under the terms +% of the GNU Public License, version 2. + +\input{pgfrcs.code.tex} + +\endinput diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty b/Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty new file mode 100644 index 00000000000..9f4ec8c970d --- /dev/null +++ b/Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty @@ -0,0 +1,105 @@ +\ProvidesPackage{xxcolor}[2003/10/24 ver 0.1] +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt. + +\RequirePackage{xcolor} + + + +% Command \newcolormixin{\somecommand} +% +% Description: +% +% After this command has been called, you can assign a partial color +% specification to \somecommand. Every time a color is set, the +% partial color specification in \somecommand will be applied to the +% current color. +% +% Examples: +% +% \newcolormixin\mymixin +% \def\mymixin{!50!white} +% +% \newcolormixin\anothermixin +% \def\anothermixin{!50!red} + +\def\newcolormixin#1{% + \expandafter\def\csname XC@mixin@\the\XC@nummixins\endcsname{#1}% + \advance\XC@nummixins\@ne% + \ifx#1\@undefined\def#1{}\fi} + +\newcount\XC@nummixins +\newcount\XC@countmixins + + +% Command \applycolormixins{colorname} +% +% Description: +% +% Applies all color mixins that have been defined using \newcolormixin +% to the color named colorname. +% +% Examples: +% +% \applycolormixins{mycolor} + +\def\applycolormixins#1{% + \XC@countmixins=0\relax% + \loop% + \ifnum\XC@countmixins<\XC@nummixins% + \colorlet{#1}{#1\csname XC@mixin@\the\XC@countmixins\endcsname}% + \advance\XC@countmixins\@ne\relax% + \repeat% +} + + +% Internal: + +\ifx\XC@mcolor\relax + \let\XC@mcolor\@empty +\fi + +\g@addto@macro\XC@mcolor{% + \ifnum\XC@nummixins>0% + \@namelet{\string\color@XC@mixtmp}{\string\color@.}% + \applycolormixins{XC@mixtmp}% + \@namelet{current@color}{\string\color@XC@mixtmp}% + \fi% +} + + + +% Environment colormixin +% +% #1 = full xcolor specification after the first ! ("white" may not be +% omitted) +% +% Description: +% +% Inside the environment, all colors get the specified mixin. May be +% nested. +% +% Examples: +% +% \color{red}This is red. +% \begin{colormixin}{25!black} +% This is dark red. +% \color{blue} +% This is dark blue. +% \end{colormixin} +% This is normal red once more. + +\newcolormixin\colorcurrentmixin + +\newenvironment{colormixin}[1]% +{\edef\colorcurrentmixin{!#1\colorcurrentmixin}\color{.}}{} + +\def\pgfalternateextension{\colorcurrentmixin} + +\endinput + |