diff options
Diffstat (limited to 'tex/.texmf/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-dvips.def')
-rw-r--r-- | tex/.texmf/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-dvips.def | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tex/.texmf/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-dvips.def b/tex/.texmf/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-dvips.def new file mode 100644 index 0000000..85ed333 --- /dev/null +++ b/tex/.texmf/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-dvips.def @@ -0,0 +1,114 @@ +%-------------------------------------------- +% +% Package pgfplots +% +% Provides a user-friendly interface to create function plots (normal +% plots, semi-logplots and double-logplots). +% +% It is based on Till Tantau's PGF package. +% +% Copyright 2007/2008 by Christian Feuersänger. +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see <http://www.gnu.org/licenses/>. +% +%-------------------------------------------- + + +\def\pgfplotslibrarysurf@initstream{% + \if\pgfplotslibrarysurf@bytespercoordinate4% + \pgfplots@warning{************** The generated postscript file may not be compatible with all viewers. Consider using \string\pgfplotsset{surf shading/precision=postscript} for improved compatibility. Or: convert it to pdf, that will work correctly. **************}% + \fi + % binary doesn't work due to limitations of DVI. + % We NEED an ASCII encoding. + % + \def\pgfplotslibrarysurf@filter@encode{ASCIIHexEncode}% + \def\pgfplotslibrarysurf@filter@decode{ASCIIHexDecode}% +}% + +% The lowlevel call for surface shadings. It uses a pattern type 2 +% dictionary as fill color and has thus several things to do. +% +% It appears the dvips implementation is simpler than the pdftex +% implementation - I did not need to adjust the matrix (don't know +% why). +\def\pgfplotslibrarysurfdraw{% + \pgfpicture + \pgfplotssys@do@surfshading@fillpaths\pgfplots@loc@TMPa% + \global\let\pgfplots@glob@TMPa=\pgfplots@loc@TMPa + \pgfpathrectanglecorners + {\pgfplotslibrarysurf@corner@sw} + {\pgfplotslibrarysurf@corner@ne}% + \pgfplotslibrarysurfusepath + \endpgfpicture + \leavevmode% ?? +} + +% To be used inside of a pgfpicture. +% +% #1: a macro name. The contents of this macro needs to be written +% into the pdf pattern dictionary contained in the pdf resources of +% the current context. The current context is either the current page +% or an xform object. +% +% +\def\pgfplotssys@do@surfshading@fillpaths#1{% +%http://www.ghostscript.com/pipermail/gs-devel/2002-September/005763.html +%http://www.tek-tips.com/viewthread.cfm?qid=1183719&page=4 +% \pgf@process{\pgfpointdiff{\pgfplotslibrarysurf@corner@sw}{\pgfkeysvalueof{/pgfplots/surf shading/anchor}}}% +% \pgf@sys@bp@correct\pgf@x% +% \pgf@sys@bp@correct\pgf@y% + \pgfsys@invoke{% + << + %/Type /Pattern + /PatternType 2 + /Shading + << + /ShadingType \pgfplotslibrarysurf@type\space + /BitsPerCoordinate \pgfplotslibrarysurf@bitspercoordinate\space + /BitsPerComponent \pgfplotslibrarysurf@bitspercomponent\space % Note: this here is the reason why I can't use ASCII85Decode + \if5\pgfplotslibrarysurf@type + /VerticesPerRow \pgfkeysvalueof{/pgfplots/surf shading/cols} + \else + /BitsPerFlag 8 + \fi + /ColorSpace /Device\pgfplotslibrarysurf@colorspace + /Decode [\pgfplotslibrarysurf@decode] + \ifpgfplotslibrarysurf@usecolormap + /Function \pgfkeysvalueof{/pgfplots/surf shading/colormap} + \fi + /DataSource + currentfile + % direct binary output not possible: DVI + % doesn't support it (?) + %<< /EODCount \pgfplotslibrarysurf@binarystream@len\space /EODString () >> /SubFileDecode filter + % not completely implemented : + %/ASCII85Decode filter + % works: + /ASCIIHexDecode filter + /ReusableStreamDecode filter + \pgfplotslibrarysurf@binarystream + %\csname pgfp@bin@126\endcsname% tilde ~> is end-of-input indicator for ASCII85Decode + > % end-of-input indicator for ASCIIHexDecode + >> + >> [ 1 0 0 1 0 0 ] makepattern setpattern + % I don't know why I don't need the shifts here !? But it + % appears to work, so never mind. +% >> [ 1 0 0 1 \pgf@sys@tonumber\pgf@x\space \pgf@sys@tonumber\pgf@y ] makepattern setpattern + % 'setpattern' is a shortcut for changing the colorspace and + % the color to pattern. + }% +} + +\endinput +% vi: ft=tex |