--- generic/pgf/basiclayer/pgfcoreimage.code.tex 2008-02-23 09:49:54.000000000 +0900 +++ generic/pgf/basiclayer/pgfcoreimage.code.tex 2009-04-19 07:28:45.000000000 +0900 @@ -61,7 +61,7 @@ \pgfkeys{/pgf/images/width/.estore in=\pgf@imagewidth} \pgfkeys{/pgf/images/height/.estore in=\pgf@imageheight} \pgfkeys{/pgf/images/page/.estore in=\pgf@imagepage} -\pgfkeys{/pgf/images/interpolate/.cd,.code=\edef\pgf@imageinterpolate{/Interpolate #1},.default=true} +\pgfkeys{/pgf/images/interpolate/.cd,.code=\edef\pgf@imageinterpolate{#1},.default=true} \pgfkeys{/pgf/images/mask/.code=% {% \edef\pgf@imagemask{#1}% @@ -71,10 +71,6 @@ {\PackageError{pgf}{Undefined mask "#1".}{}% \edef\pgf@imagemask{}}% {\edef\pgf@imagemask{\csname pgf@mask@#1\endcsname}% - \ifx\pgf@imagemask\pgfutil@empty% - \else - \edef\pgf@imagemask{/SMask \pgf@imagemask\space 0 R}% - \fi% }% \fi% }} @@ -143,7 +139,7 @@ {File "#3" not found when defining mask "#2".\MessageBreak Tried all extensions in "\pgfsys@imagesuffixlist"}% \else% - \pgfsys@definemask% + \pgfsys@definemask{#2}% \fi% \expandafter\global\expandafter\let\csname pgf@mask@#2\endcsname=\pgf@mask% } --- generic/pgf/systemlayer/pgfsys-pdftex.def 2008-02-25 03:22:07.000000000 +0900 +++ generic/pgf/systemlayer/pgfsys-pdftex.def 2009-04-19 07:30:14.000000000 +0900 @@ -102,19 +102,19 @@ \edef\pgf@image{\noexpand\pdfrefform\the\pdflastform}% \else% new version {\pdfximage \pgf@imageheight \pgf@imagewidth attr - {\pgf@imageinterpolate\space\pgf@imagemask} \pgf@imagepage + {/Interpolate \pgf@imageinterpolate\space\pgf@imagemask} \pgf@imagepage {\pgf@filename}}% \edef\pgf@image{\noexpand\pdfrefximage\the\pdflastximage}% \fi }% -\def\pgfsys@definemask{% +\def\pgfsys@definemask#1{% \ifx\pgf@maskmatte\pgfutil@empty% \else% \edef\pgf@maskmatte{/Matte [\pgf@maskmatte]}% \fi% \edef\pgf@attr{{\pgf@maskmatte\space /Decode [1 0]}}% \immediate\pdfximage attr \pgf@attr {\pgf@filename}% - \edef\pgf@mask{\the\pdflastximage}% + \edef\pgf@mask{/SMask \the\pdflastximage\space 0 R}% } \def\pgfsys@horishading#1#2#3{% {% --- generic/pgf/systemlayer/pgfsys-dvipdfmx.def 2008-02-23 09:49:54.000000000 +0900 +++ generic/pgf/systemlayer/pgfsys-dvipdfmx.def 2009-04-19 08:40:39.000000000 +0900 @@ -9,19 +9,365 @@ \ProvidesFileRCS $Header: /home/cvsroot/dvipdfmx/contrib/generic/pgf-generic-diff.texlive2008,v 1.1 2009/04/19 00:11:49 chofchof Exp $ -% Driver commands for dvipdfm +% Driver commands for dvipdfmx +% +% Modified by Jin-Hwan Cho on April 18, 2009. +% This driver requires the version DVIPDFMX-20080605 that is contained +% in texlive 2008 or later. % -% Load common pdf and pdf in dvi commands: +% Load common pdf commands: % \input pgfsys-common-pdf.def -\input pgfsys-common-pdf-via-dvi.def +% For unique object name: +\newcount\pgfsys@objnum\pgfsys@objnum\@ne + +% `pdf:code' is an abbreviation of `pdf:literal direct', the idea of which +% came from pdfTeX's primitive \pdfliteral direct. +\def\pgfsys@invoke#1{\special{pdf:code #1}} + +% We cannot use many codes in pgfsys-common-pdf-via-dvi.def. +% So it is rewritten here (with some bugs fixed). +\def\pgfsys@hboxsynced#1{% + {% + \pgfsys@beginscope% + \setbox\pgf@hbox=\hbox{% + \hskip\pgf@pt@x% + \raise\pgf@pt@y\hbox{% + \pgf@pt@x=0pt% + \pgf@pt@y=0pt% + % The order of `pdf:bcontent' is important here. It should be + % followed by \pgflowlevelsynccm, not reverse order. + \special{pdf:bcontent}% + \pgflowlevelsynccm% + %\start@force@reset@color% + \pgfsys@hbox#1% + %\stop@force@reset@color% + \special{pdf:econtent}}% + \hss% + }% + \wd\pgf@hbox=0pt% + \ht\pgf@hbox=0pt% + \dp\pgf@hbox=0pt% + \box\pgf@hbox% + \pgfsys@endscope% + }% +} + +% All text materials between `pdf:bcontent' and `pdf:econtent' are +% treated in the relative coordinate. +\def\pgfsys@beginpicture{\special{pdf:bcontent}} +\def\pgfsys@endpicture{\special{pdf:econtent}} + +\def\pgfsys@imagesuffixlist{.pdf:.jpg:.jpeg:.png:.bmp:} + +% Shading from pgfsys-common-pdf-via-dvi.def +\def\pgfsys@horishading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgf@process{\pgfpoint{\pgf@max}{#2}}% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space width \the\pgf@max\space height \the\pgf@y}% + \special{pdf:put @resources << + /Shading << /Sh << /ShadingType 2 + /ColorSpace /DeviceRGB + /Domain [\pgf@pdfparseddomain] + /Coords [\pgf@doma\space0 \pgf@domb\space0] + /Function \pgf@pdfparsedfunction + /Extend [false false] >> >> >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@temp% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to\the\pgf@max{\vbox to#2{\vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + }% + \global\advance\pgfsys@objnum\@ne% +} +\def\pgfsys@vertshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgf@process{\pgfpoint{\pgf@max}{#2}}% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space width \the\pgf@y\space height \the\pgf@max\space}% + \special{pdf:put @resources << + /Shading << /Sh << /ShadingType 2 + /ColorSpace /DeviceRGB + /Domain [\pgf@pdfparseddomain] + /Coords [0 \pgf@doma\space0 \pgf@domb] + /Function \pgf@pdfparsedfunction + /Extend [false false] >> >> >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@temp% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to#2{\vbox to\the\pgf@max{\vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + }% + \global\advance\pgfsys@objnum\@ne% +} +\def\pgfsys@radialshading#1#2#3{% + {% + \pgf@parsefunc{#3}% + \pgf@process{#2}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\pgfpoint{\pgf@max}{\pgf@max}}% + \advance\pgf@xa by \pgf@x\relax% + \advance\pgf@ya by \pgf@y\relax% + \pgf@sys@bp@correct{\pgf@x}% + \pgf@sys@bp@correct{\pgf@y}% + \pgf@sys@bp@correct{\pgf@xa}% + \pgf@sys@bp@correct{\pgf@ya}% + \pgfutil@tempdima=2\pgf@max\relax% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space width \the\pgfutil@tempdima\space height \the\pgfutil@tempdima}% + \special{pdf:put @resources << + /Shading << /Sh << /ShadingType 3 + /ColorSpace /DeviceRGB + /Domain [\pgf@pdfparseddomain] + /Coords [\pgf@sys@tonumber{\pgf@xa} \pgf@sys@tonumber{\pgf@ya} \pgf@doma\space \pgf@sys@tonumber{\pgf@x} \pgf@sys@tonumber{\pgf@y} \pgf@domb] + /Function \pgf@pdfparsedfunction + /Extend [true false] >> >> >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@temp% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to\the\pgfutil@tempdima{\vbox to\the\pgfutil@tempdima{\vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + }% + \global\advance\pgfsys@objnum\@ne% +}% + +\def\pgfsys@functionalshading#1#2#3#4{% + {% + \pgf@process{#2}% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{#3}% + \pgf@xb=\pgf@x% + \pgf@yb=\pgf@y% + \advance\pgf@x by-\pgf@xa% + \advance\pgf@y by-\pgf@ya% + \pgf@sys@bp@correct{\pgf@xa}% + \pgf@sys@bp@correct{\pgf@ya}% + \pgf@sys@bp@correct{\pgf@xb}% + \pgf@sys@bp@correct{\pgf@yb}% + \pgf@xc=-\pgf@xa% + \pgf@yc=-\pgf@ya% + % Now build the function + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:stream @pgfstream\the\pgfsys@objnum\space({#4}) <>}}}\@temp% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:bxobj @pgfshade\the\pgfsys@objnum\space width \the\pgf@x\space height \the\pgf@y}% + \special{pdf:put @resources << + /Shading << /Sh << /ShadingType 1 + /ColorSpace /DeviceRGB + /Matrix [1 0 0 1 \pgf@sys@tonumber{\pgf@xc}\space\pgf@sys@tonumber{\pgf@yc}] + /Domain [\pgf@sys@tonumber{\pgf@xa}\space\pgf@sys@tonumber{\pgf@xb}\space\pgf@sys@tonumber{\pgf@ya}\space\pgf@sys@tonumber{\pgf@yb}] + /Function @pgfstream\the\pgfsys@objnum >> >> >>}% + \pgfsys@invoke{/Sh sh}% + \special{pdf:exobj}}}\@temp% << + \expandafter\xdef\csname @pgfshading#1!\endcsname{% + \hbox to\the\pgf@x{\vbox to\the\pgf@y{\vfil\special{pdf:uxobj @pgfshade\the\pgfsys@objnum}}\hfil}}% + }% + \global\advance\pgfsys@objnum\@ne% +} + +% Page resources +% +\def\pgf@sys@pdf@obj@init{% + \ifx\pgf@sys@pdf@obj\@undefined% + \global\let\pgf@sys@pdf@obj=\relax% + \special{pdf:obj @pgfopacities << >>}% << + \special{pdf:obj @pgfpatterns << >>}% << + \special{pdf:obj @pgfcolorspace <>}% << + \fi% +} +\def\pgf@sys@pdf@possible@resources{% + \special{pdf:put @resources <>}% << +} +\def\pgf@sys@pdf@readdtopageresources@extgs#1{% + \special{pdf:put @pgfopacities << #1 >>}% << + \pgf@sys@pdf@possible@resources% +} +\def\pgf@sys@pdf@readdtopageresources@patterns#1{% + \special{pdf:put @pgfpatterns << #1 >>}% << + \pgf@sys@pdf@possible@resources% +} +\def\pgf@sys@pdf@addtopageresources@extgs#1{% + \pgf@sys@pdf@obj@init + \pgf@sys@pdf@readdtopageresources@extgs{#1} +} +\def\pgf@sys@pdf@addtopageresources@patterns#1{% + \pgf@sys@pdf@obj@init + \pgf@sys@pdf@readdtopageresources@patterns{#1} +} + +% Image Mask +% generic/pgf/basiclayer/pgfcoreimage.code.tex must be modified! % -% dvipdfm-specific stuff: +\def\pgfsys@defineimage{% + \ifx\pgf@imagewidth\pgfutil@empty\else\edef\pgf@imagewidth{width=\pgf@imagewidth,}\fi% + \ifx\pgf@imageheight\pgfutil@empty\else\edef\pgf@imageheight{height=\pgf@imageheight,}\fi% + \ifx\pgf@imagepage\pgfutil@empty\else\edef\pgf@imagepage{page=\pgf@imagepage,}\fi% + \ifx\pgf@imageinterpolate\pgfutil@empty\else\edef\pgf@imageinterpolate{interpolate=\pgf@imageinterpolate,}\fi% + \ifx\pgf@imagemask\pgfutil@empty\else\xdef\pgf@imagemask{mask=\pgf@imagemask,}\fi% + \edef\pgf@image{\noexpand\includegraphics[\pgf@imageheight\pgf@imagewidth\pgf@imagepage\pgf@imageinterpolate\pgf@imagemask]{\pgf@filename}}% +} +\def\pgfsys@definemask#1{% + \ifx\pgf@maskmatte\pgfutil@empty% + \else% + \edef\pgf@maskmatte{/Matte[\pgf@maskmatte]}% + \fi% + \edef\pgf@attr{\pgf@maskmatte\space/Decode[1 0]}% + \special{pdf:image @pgfmask\the\pgfsys@objnum\space hide (\pgf@filename) << \pgf@attr >>}% + \edef\pgf@mask{pgfmask\the\pgfsys@objnum}% + \global\advance\pgfsys@objnum\@ne% +} + +% Patterns +% +\def\pgfsys@declarepattern#1#2#3#4#5#6#7#8#9{% + % Start building the pattern dictionary: + \pgf@xa=#2\relax% + \pgf@ya=#3\relax% + \pgf@xb=#4\relax% + \pgf@yb=#5\relax% + \pgf@xc=#6\relax% + \pgf@yc=#7\relax% + \pgf@sys@bp@correct\pgf@xa% + \pgf@sys@bp@correct\pgf@ya% + \pgf@sys@bp@correct\pgf@xb% + \pgf@sys@bp@correct\pgf@yb% + \pgf@sys@bp@correct\pgf@xc% + \pgf@sys@bp@correct\pgf@yc% + % Now create the pattern object: + \special{pdf:stream @pgf@patternobject@#1 (#8) << + /Type /Pattern + /PatternType 1 + /PaintType \ifnum#9=0 2 \else 1 \fi + /TilingType 1 + /BBox [\pgf@sys@tonumber\pgf@xa\space\pgf@sys@tonumber\pgf@ya\space\pgf@sys@tonumber\pgf@xb\space\pgf@sys@tonumber\pgf@yb] + /XStep \pgf@sys@tonumber\pgf@xc\space + /YStep \pgf@sys@tonumber\pgf@yc\space + /Resources << >> %<< + >>}% + \pgf@sys@pdf@addtopageresources@patterns{/pgfpat#1\space @pgf@patternobject@#1}% +} + +\def\pgfsys@setpatternuncolored#1#2#3#4{% + \pgfsys@invoke{/pgfprgb cs #2 #3 #4 /pgfpat#1\space scn}% +% \pgfsysprotocol@literal{/pgfprgb cs #2 #3 #4 /pgfpat#1\space scn}% +} + +\def\pgfsys@setpatterncolored#1{% + \pgfsys@invoke{/Pattern cs /pgfpat#1\space scn}% +% \pgfsysprotocol@literal{/Pattern cs /pgfpat#1\space scn}% +} + +% Opacity masks % +\def\pgfsys@fadingfrombox#1#2{% + {% + \pgf@x=-.5\wd#2% + \pgf@y=-.5\ht#2% + \advance\pgf@y by.5\dp#2% + \expandafter\xdef\csname pgfsmasktrans@#1\endcsname{% + \noexpand\pgftransformcm{1}{0}{0}{1}{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:bxobj @pgfsmask\the\pgfsys@objnum\space width \the\wd#2\space height \the\ht#2\space depth \the\dp#2}% + \wd#2=0pt% + \ht#2=0pt% + \dp#2=0pt% + \box#2% + \special{pdf:exobj <> >>}}}\@temp% + \expandafter\xdef\csname pgfsmaskxform@#1\endcsname{\the\pgfsys@objnum}% + }% + \global\advance\pgfsys@objnum\@ne% +} +\def\pgfsys@usefading#1#2#3#4#5#6#7{% + \expandafter\ifx\csname pgfsmaskxform@#1\endcsname\relax% + \PackageError{pgf}{Undefined fading '#1'}{}% + \else% + {% + \expandafter\ifx\csname pgfsmask@#1\endcsname\relax% + \pgf@sys@pdf@install@mask{#1}% + \fi% + \pgftransformreset% + \pgftransformcm{#2}{#3}{#4}{#5}{\pgfpoint{#6}{#7}}% + \csname pgfsmasktrans@#1\endcsname% + {% + \pgflowlevelsynccm% + \pgfsys@invoke{/pgfsmask\csname pgfsmaskxform@#1\endcsname\space gs}% + }% + \pgftransforminvert% + \pgflowlevelsynccm% + }% + \fi +} +\def\pgf@sys@pdf@install@mask#1{% + \pgf@sys@pdf@addtopageresources@extgs{% + /pgfsmask\csname pgfsmaskxform@#1\endcsname\space + << /SMask << /S /Luminosity /G @pgfsmask\csname pgfsmaskxform@#1\endcsname >> >>}% + \expandafter\let\csname pgfsmask@#1\endcsname\expandafter\csname pgfsmaskxform@#1\endcsname% +} + +% Transparency groups +% +\def\pgfsys@transparencygroupfrombox#1{% + {% + \pgf@sys@bp@correct\pgf@picminx% + \pgf@sys@bp@correct\pgf@picmaxx% + \pgf@sys@bp@correct\pgf@picminy% + \pgf@sys@bp@correct\pgf@picmaxy% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{% + \special{pdf:bxobj @pgftransgroup\the\pgfsys@objnum\space bbox \pgf@sys@tonumber\pgf@picminx\space\pgf@sys@tonumber\pgf@picminy\space\pgf@sys@tonumber\pgf@picmaxx\space\pgf@sys@tonumber\pgf@picmaxy}% + \wd#1=0pt% + \ht#1=0pt% + \dp#1=0pt% + \hskip\pgf@picminx bp\box#1\hskip-\pgf@picminx bp% + \pgf@sys@pdf@possible@resources% + \special{pdf:exobj <> >>}}}\@temp% + \special{pdf:uxobj @pgftransgroup\the\pgfsys@objnum}% + }% + \global\advance\pgfsys@objnum\@ne% +} + +% The following is an ugly hack. We need something like +% "everyshipout". +% But it should be ultra-portable... +\def\pgf@sys@atbeginpage#1{\AtBeginDvi{#1}} +\AtBeginDocument{% hack for old hyperref + \ifx\Hy@begindvi\@undefined% + \let\pgf@sys@continue@hyper=\pgfutil@empty% + \else% + \pgf@sys@test@hyper% + \fi% + \def\@begindvi{\unvbox\@begindvibox\pgf@sys@continue@hyper} +} +\def\pgf@sys@test@hyper{% + \ifHy@implicit% + \let\pgf@sys@continue@hyper=\Hy@begindvi% + \else% + \let\pgf@sys@continue@hyper=\HyPL@EveryPage% + \fi% +} +\def\pgf@sys@pdf@dvi@tracker{ + \def\pgfsys@markposition##1{% + \pdfsavepos% + \edef\pgf@temp{##1}% + \expandafter\write\expandafter\pgfutil@auxout\expandafter{% + \expandafter\noexpand\expandafter\pgfsyspdfmark\expandafter{\pgf@temp}{\the\pdflastxpos}{\the\pdflastypos}}% + } + \def\pgfsyspdfmark##1##2##3{% + \expandafter\gdef\csname pgf@sys@pdf@mark@pos@##1\endcsname{\pgfqpoint{##2sp}{##3sp}}% + } + \def\pgfsys@getposition##1##2{% + \edef\pgf@marshal{\let\noexpand##2=\expandafter\noexpand\csname pgf@sys@pdf@mark@pos@##1\endcsname}% + \pgf@marshal% + } + \def\pgf@sys@pdf@mark@pos@pgfpageorigin{\pgfpointorigin} +} % % Position tracking (needs pdftex >= 1.40.0-alpha-20051205 in dvi mode)