diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex | 866 |
1 files changed, 0 insertions, 866 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex deleted file mode 100644 index 37d370990ba..00000000000 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +++ /dev/null @@ -1,866 +0,0 @@ -% Copyright 2006 by Till Tantau -% -% This file may be distributed and/or modified -% -% 1. under the LaTeX Project Public License and/or -% 2. under the GNU Public License. -% -% See the file doc/generic/pgf/licenses/LICENSE for more details. - -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys.code.tex,v 1.24 2007/06/07 07:41:11 tantau Exp $ - - -% -% The following conversion functions are used to convert from TeX -% dimensions to postscript/pdf points. -% -{\catcode`\p=12\catcode`\t=12\gdef\Pgf@geT#1pt{#1}} - -\def\pgf@sys@tonumber#1{\expandafter\Pgf@geT\the#1} - -\def\pgf@sys@bp@correct#1{#1=0.99627#1} - -\def\pgf@sys@bp#1{% - {% - \pgf@x=#1\relax% - \pgf@x=0.99627\pgf@x% - \edef\temp{\expandafter\Pgf@geT\the\pgf@x\space}% - \toks@\expandafter\expandafter\expandafter{\expandafter\pgfsysprotocol@currentprotocol\temp}% - \xdef\pgfsysprotocol@currentprotocol{\the\toks@}% - }% -} -\def\pgf@sys@pt#1{% - {% - \pgf@x=#1\relax% - \edef\temp{\expandafter\Pgf@geT\the\pgf@x\space}% - \toks@\expandafter\expandafter\expandafter{\expandafter\pgfsysprotocol@currentprotocol\temp}% - \xdef\pgfsysprotocol@currentprotocol{\the\toks@}% - }% -} - - -% internal dimensions that are always present when pgsys is loaded. -\newdimen\pgf@x -\newdimen\pgf@y -\newdimen\pgf@xa -\newdimen\pgf@ya -\newdimen\pgf@xb -\newdimen\pgf@yb -\newdimen\pgf@xc -\newdimen\pgf@yc - -% internal counters that are alwyas present when pgfsys is loaded -\newcount\c@pgf@counta -\newcount\c@pgf@countb -\newcount\c@pgf@countc -\newcount\c@pgf@countd - - -% The following \if decides, whether even-odd filling and clipping is -% to be used or normal the non-zero winding number rule. See the -% pdf-documentation for details on what these rules are. - -\newif\ifpgfsys@eorule - - - -% In the following dummy definitions of the pgf system commands are -% given. The individual drivers must overwrite these definitions, -% preferably all of them. If some system command is used that has not -% been overwritten, the command fails with a warning. -% -% In some cases, some pgf system commands are just shorthands for a -% series of more complicated commands. In this case, a default -% implementation is given in this file, but a driver may choose to -% overwrite this default implementation with a more effecient -% version. For example, a closestroke is the same as a closepath -% followed by a stroking, but in pdf there is a special shorthand for -% this. So, the pdf driver overwrites \pgfsys@closestroke, while the -% postscript driver does not. -% -% The commands for which default implementations are available are -% given at the end. - -\def\pgf@sys@fail#1{% - \expandafter\ifx\csname pgf@sys@fail@#1\endcsname\pgfutil@empty% - \else% - \expandafter\global\expandafter\let\csname pgf@sys@fail@#1\endcsname=\pgfutil@empty% - \PackageWarning{pgf}{% - Your graphic driver \pgfsysdriver\space does not supported #1. This warning is given only once}% - \fi% -} - - - -\def\pgfsys@invoke{\pgf@sys@fail{invoking specials}} -% This command is used whenever some literal text needs to be inserted -% into the resulting .pdf, .ps, or .dvi file. Note that most -% \pgfsys@xxxx commands will not directly call this command, but, -% rather, use the protocolling mechanism to record their literal -% text. It is then left to the discretion of the protocolling -% mechansim to insert the literal text at some appropriate, later -% time. -% -% This command should only be called when \pgfsys@beginpicture has -% been called previously and when the picture has not been suspended -% using \pgfsys@beginhbox. - - -\def\pgfsys@outerinvoke{\pgfsys@invoke} -% This command can be used to insert protocolled graphic commands -% outside any picture. This is extremely dangerous, but sometimes -% useful. By default, this command does the same as inside pictures. - - - -% -% -% Path construction commands -% -% - -\def\pgfsys@moveto#1#2{\pgf@sys@fail{path constructions}} -% This command is used to start a path at a specific point (#1bp,#2bp) -% or to move the current point of the current path to (#1bp,#2bp) -% without drawing anything upon stroking (the current path is -% `interrupted'). -% -% Here (and in the following) the coordinates are in TeX's big points -% (bp), unless the coordinate system has been scaled. A big point is -% 1/72 inches. Note that TeX's point pt is 1/72.27 inches. -% -% Example: -% -% \pgfsys@moveto{10}{10} -% \pgfsys@lineto{0}{0} -% \pgfsys@stroke -% -% This will draw a line from (10bp,10bp) to the origin of the picture. - -\def\pgfsys@lineto#1#2{\pgf@sys@fail{path constructions}} -% Continue the current path to (#1bp,#2bp) with a line. - -\def\pgfsys@curveto#1#2#3#4#5#6{\pgf@sys@fail{path constructions}} -% Continue the current path with a bezier curver to (#5bp,#6bp). The -% control points of the curve are at (#1bp,#2bp) and (#3bp,#4bp). - -\def\pgfsys@rect#1#2#3#4{\pgf@sys@fail{path constructions}} -% Append a rectangle to the current path whose lower left corner is at -% (#1bp,#2bp) and whose width/height is given by (#3bp,#4bp). -% -% This command can be `mapped back' to moveto and lineto commands, but -% it is included since pdf has a special, quick version of this command. - -\def\pgfsys@closepath{\pgf@sys@fail{path constructions}} -% Close the current path. This results in joining the current point of -% the path with the point specified by the last moveto -% operation. Typically, this is preferable over using lineto to the -% last point specified by a moveto, since the line starting at this -% point and the line ending at this point will be smoothly joined by -% closepath. -% -% Example: -% -% \pgfsys@moveto{0}{0} -% \pgfsys@lineto{10}{10} -% \pgfsys@lineto{0}{10} -% \pgfsys@closepath -% \pgfsys@stroke -% -% versus -% -% \pgfsys@moveto{0}{0} -% \pgfsys@lineto{10}{10} -% \pgfsys@lineto{0}{10} -% \pgfsys@lineto{0}{0} -% \pgfsys@stroke -% -% The difference between the above will be that in the second triangle -% the corner at the origin will be wrong; it will just be the overlay -% of two lines going in different directions, not a sharp pointed -% corner. - - - - - - -% -% -% Stroking and filling commands -% -% - -\def\pgfsys@stroke{\pgf@sys@fail{path usage}} -% Stroke the current path (as if it were drawn with a pen). A number -% of so-called graphic state parameters influence this, which can be -% set in different ways: -% -% - linewidth -% The `thickness' of the line. A width of 0 is the thinnest width -% renderable on the device. On a high-resolution printer this may -% become invisible and should be avoided. A good choice is 0.4pt, -% which is the default. -% -% - stroke color -% This special color is used for stroking. If it is not set, the -% current color is used. -% -% - cap -% The cap describes how the endings of lines a drawn. A round cap -% adds a little half circle to these endings. A butt cap ends the -% lines exactly at the end (or start) point without anything -% added. A rectangular cap ends the lines like the butt cap, but the -% lines protrude over the endpoint by the line thickness. (See also -% the pdf or postscript manual). If the path has been closed, no cap -% is drawn. -% -% - join -% This describes how a bend (a join) in a path is rendered. A round -% join draws bends using small arcs. A bevel join just draws the two -% lines and then fills the join minimally so that it becomes -% convex. A miter join extends the lines so that they form a single -% sharp corner, but only up to a certain miter limit. (See the pdf -% or postscript manual once more). -% -% - dash -% The line may be dashed according to a dashing pattern. -% -% - clipping area -% If a clipping area is established, only those parts of the path -% that are inside the clipping area will be drawn. -% -% In addition to stroking a path, the path may also be used for -% clipping after it has been stroked. This will happen if the -% \pgfsys@clipnext is used prior to this command, see there for -% details. - -\def\pgfsys@fill{\pgf@sys@fail{path usage}} -% This command fills the area surrounded by the current path. If the -% path has not yet been closed, it is closed prior to filling. The -% path itself is not stroked. For self-intersecting paths or paths -% consisting of multiple parts, the nonzero winding number rule is -% used to determine whether a point is inside or outside the -% path, except if \ifpgfsys@eorule holds -- in which case the even-odd -% rule should be used. (See the pdf or postscript manual for details.) -% -% The following graphic state parameters influence the filling: -% -% - fill color -% If the fill color is not especially set, the current color is -% used. -% -% - clipping area -% If a clipping area is established, only those parts of the filling -% area that are inside the clipping area will be drawn. -% -% In addition to filling the path, the path will also be used for -% clipping if \pgfsys@clipnext is used prior to this command. - -\def\pgfsys@fillstroke{\pgf@sys@fail{path usage}} -% First, the path is filled, then the path is stroked. If the fill and -% stroke colors are the same (or if they are not specified and the -% current color is used), this yields almost the same as a -% \pgfsys@fill. However, due to the line thickness of the stroked -% path, the fillstroked area will be slightly larger. -% -% In addition to stroking and filling the path, the path will also be -% used for clipping if \pgfsys@clipnext is used prior to this command. - -\def\pgfsys@clipnext{\pgf@sys@fail{path usage}} -% This command should be issued after a path has been constructed, but -% before it has been stroked and/or filled or discarded. When the -% command is used, the next stroking/filling/discarding command will -% first be executed normally. Then, afterwards, the just-used path -% will be used for subsequent clipping. If there has already been a -% clipping region, this region is intersected with the new clipping -% path (the clipping cannot get bigger). The nonzero winding number -% rule is used to determine whether a point is inside or outside the -% clipping area or the even-odd rule, depending on whether -% \ifpgfsys@eorule holds. - -\def\pgfsys@discardpath{\pgf@sys@fail{path usage}} -% Normally, this command should `throw away' the current path. -% However, after \pgfsys@clipnext has been called, the current path -% should subsequently be used for clipping. See \pgfsys@clipnext for -% details. - - - - - -% -% -% Stroking options -% -% -\def\pgfsys@setlinewidth#1{\pgf@sys@fail{setting the line width}} -% Sets the width of lines, when stroked, to #1bp. - -\def\pgfsys@buttcap{\pgf@sys@fail{setting the line cap}} -% Sets the cap to a butt cap. See \pgfsys@stroke. - -\def\pgfsys@roundcap{\pgf@sys@fail{setting the line cap}} -% Sets the cap to a round cap. See \pgfsys@stroke. - -\def\pgfsys@rectcap{\pgf@sys@fail{setting the line cap}} -% Sets the cap to a rectangular cap. See \pgfsys@stroke. - -\def\pgfsys@miterjoin{\pgf@sys@fail{setting the line join}} -% Sets the join to a miter join. See \pgfsys@stroke. - -\def\pgfsys@setmiterlimit#1{\pgf@sys@fail{setting the line cap}} -% Sets the miter limit of lines to #1. See the pdf or postscript -% documentation. - -\def\pgfsys@roundjoin{\pgf@sys@fail{setting the line cap}} -% Sets the join to a round join. See \pgfsys@stroke. - -\def\pgfsys@beveljoin{\pgf@sys@fail{setting the line cap}} -% Sets the join to a bevel join. See \pgfsys@stroke. - -\def\pgfsys@setdash#1#2{\pgf@sys@fail{setting the dashing pattern}} -% Sets the dashing patter. #1 should be a list of lengths given in big -% points (bp) separated by spaces. #2 should be a single value given -% in bp. -% -% The list of values in #1 is used to determine the lengths of the -% `on' phases of the dashing and of the `off' phases. For example, if -% #1 is `3 4', then the dashing pattern is `3bp on followed by 4bp -% off, followed by 3bp on, followed by 4bp off, and so on'. A pattern -% of `.5 4 3 1.5' means `.5bp on, 4bp off, 3bp on, 1.5bp off, .5bp on, -% ...'. If the number of entries is odd, the last one is used twice, -% so `3' means `3bp on, 3bp off, 3bp on, 3bp off,...'. An empty list -% means `always on'. -% -% The second argument determines the `phase' of the pattern. For -% example, for a pattern of `3 4' and a phase of `1', the pattern -% would start: `2bp on, 4bp off, 3bp on, 4bp off, 3bp on, 4bp off...'. - - - - -% -% -% Opacity stuff -% -% - -\def\pgfsys@stroke@opacity#1{\pgf@sys@fail{opacity}} -% Sets the opacity of stroking operations. 1 means fully opaque, 0 -% means fully transparent. - -\def\pgfsys@fill@opacity#1{\pgf@sys@fail{opacity}} -% Sets the opacity of filling operations. 1 means fully opaque, 0 -% means fully transparent. - - - - -% -% -% Color stuff -% -% - -\def\pgfsys@color@rgb@stroke#1#2#3{\pgf@sys@fail{color}} -% Sets the color used for stroking operations to the given rgb tuple -% (numbers between 0 and 1). -% -% Example: Make stroked text dark red: \pgfsys@color@rgb@stroke{0.5}{0}{0} -% -% The special stroking color is only used if the stroking color has -% been set since the last \pgfutil@color command. Thus, each \pgfutil@color command -% should reset both the stroking and filling colors. - -\def\pgfsys@color@rgb@fill#1#2#3{\pgf@sys@fail{color}} -% Sets the color used for filling operations to the given rgb tuple -% (numbers between 0 and 1). This color may be different from the -% stroking color. - -\def\pgfsys@color@rgb#1#2#3{\pgfsys@color@rgb@stroke{#1}{#2}{#3}\pgfsys@color@rgb@fill{#1}{#2}{#3}} -% Sets the color used for filling and stroking operations. This is a -% ``low-level'' version of the \pgfutil@color command. It is currently only -% used by the plain tex version to support colors. - -\def\pgfsys@color@cmyk@stroke#1#2#3#4{\pgf@sys@fail{color}} -% Sets the color used for stroking operations to the given cymk tuple -% (numbers between 0 and 1). - -\def\pgfsys@color@cmyk@fill#1#2#3#4{\pgf@sys@fail{color}} -% Sets the color used for filling operations to the given cymk tuple -% (numbers between 0 and 1). - -\def\pgfsys@color@cmyk#1#2#3#4{\pgfsys@color@cmyk@stroke{#1}{#2}{#3}{#4}\pgfsys@color@cmyk@fill{#1}{#2}{#3}{#4}} -% Sets the color used for filling and stroking operations. - -\def\pgfsys@color@cmy@stroke#1#2#3{\pgf@sys@fail{color}} -% Sets the color used for stroking operations to the given cym tuple -% (numbers between 0 and 1). - -\def\pgfsys@color@cmy@fill#1#2#3{\pgf@sys@fail{color}} -% Sets the color used for filling operations to the given cym tuple -% (numbers between 0 and 1). - -\def\pgfsys@color@cmy#1#2#3{\pgfsys@color@cmy@stroke{#1}{#2}{#3}\pgfsys@color@cmy@fill{#1}{#2}{#3}} -% Sets the color used for filling and stroking operations. - -\def\pgfsys@color@gray@stroke#1{\pgf@sys@fail{color}} -% Sets the color used for stroking operations to the given gray level -% (number between 0 and 1). - -\def\pgfsys@color@gray@fill#1{\pgf@sys@fail{color}} -% Sets the color used for filling operations to the given gray level -% (number between 0 and 1). - -\def\pgfsys@color@gray#1{\pgfsys@color@gray@stroke{#1}\pgfsys@color@gray@fill{#1}} -% Sets the color used for filling and stroking operations. - -\newif\ifpgfsys@color@reset@inorder -% This if decides whether the color resetting of the -% \pgfsys@color@reset command may assume that all color commands are -% given ``in order.'' This means that this command will not be called, -% say, at the beginning of a box that is later inserted at a point -% where a fill color was actively set. This may allow the command to -% produce more compact code when it ``knows'' that no special fill or -% stroke color has been set. -\pgfsys@color@reset@inordertrue - - -\def\pgfsys@color@reset{} -% This command will be called when the \pgfutil@color command is used. It -% should purge any internal settings of stroking and filling -% color. After this call, till the next use of a command like -% \pgfsys@color@rgb@fill, the current color installed by the \pgfutil@color -% command should be used. - -\def\pgfsys@color@unstacked#1{} -% This slightly obscure command causes the color stack to be -% tricked. When called, this command should set the current color to -% #1 without causing any change in the color stack. - - - -% -% -% Coordinate system transformations -% -% - -\def\pgfsys@transformcm#1#2#3#4#5#6{\pgf@sys@fail{transformations}} -% Perform a concatenation of the low-level current transformation -% matrix with the matrix given by the values #1 to #6. The -% transformation matrix is a transformation on a homogeneous -% 2D-coordinate system. See the pdf or postscript manual for details. - - - - -% -% -% Graphic state saving and restoring. -% -% - -\def\pgfsys@beginscope{\pgf@sys@fail{scoping}} -% Saves the current graphic state on a graphic state stack. All -% changes to the graphic state parameters mentioned for \pgfsys@stroke -% and \pgfsys@fill will be local to the current graphic state and will -% the old values will be restored after endscope is used. -% -% WARNING: pdf and postscript differ with respect to the question of -% whether the current path is part of the graphic state or not. For -% this reason, you should never use this command unless the path is -% currently empty. For example, it might be a good idea to use -% discardpath prior to calling this command. - -\def\pgfsys@endscope{\pgf@sys@fail{scoping}} -% Restores the last saved graphic state. - - - - -% -% -% Special commands -% -% - -\def\pgfsys@imagesuffixlist{} -% A list of suffixes, separated by `:', that will be tried when -% searching for an image. - - - -% -% -% Special commands -% -% - - -\def\pgfsys@definemask{\pgf@sys@fail{masking}} -% This command declares a mask for usage with images. It works similar -% to \pgfsys@defineimage: Certain macros are set when the command is -% called. The result should be to set the macro \pgf@mask to a pdf -% object count that can subsequently be used as a soft mask. The -% following macros will be set when this command is invoked: -% -% - \pgf@filename -% File name of the mask to be defined. -% -% - \pgf@maskmatte -% The so-called matte of the mask (see the pdf documentation for -% details). The matte is a color specification consisting of 1, 3 or -% 4 numbers between 0 and 1. The number of numbers depends on the -% number of color channels in the image (not in the mask!). It will -% be assumed that the image has been preblended with this color. - - - - -% -% -% Shading commands -% -% - -\def\pgfsys@horishading#1#2#3{\pgf@sys@fail{shadings}} -% Declares a horizontal shading for later use. The effect of this -% command should be the definition of a macro called `@pgfshading#1!' -% (or \csname @pdfshading#1!\endcsname, to be precise). When invoked, -% this new macro should insert a shading at the current position. -% -% #1 is the name of the shading, which is also used in the output -% macro name. #2 is the height of the shading and must be given as a -% TeX dimension like `2cm' or `10pt'. #3 is a shading color -% specification as specified in the pgfuserguide. The shading -% specification implicitly fixes the width of the shading. -% -% When `@pgfshading#1!' is invoked, it should insert a box of height -% #2 and the width implicit in the shading declaration. - -\def\pgfsys@vertshading#1#2#3{\pgf@sys@fail{shadings}} -% Like horishading, only for vertical shadings. This time, the height -% of the shading is implicit in #3 and the width is given as #2. - -\def\pgfsys@radialshading#1#2#3{\pgf@sys@fail{shadings}} -% Declares a radial shading. Like the previous macros, this command -% should setup the macro `@pgfshading#1!', which upon invocation -% should insert a radial shading whose size is implicit in #3. -% -% The parameter #2 is a pgf point specification if the starting point -% of the shading. See the pgfuserguide for details. - - - - - -% -% -% Pattern stuff -% -% - -\def\pgfsys@declarepattern#1#2#3#4#5#6#7#8#9{\pgf@sys@fail{patterns}} -% This command declares a new colored or uncolored pattern. Uncolored -% patterns have no inherent color, the color is provided when they are -% set. Colored patters have an inherent color. -% #1 = name of the pattern (must be a plain suffix for use in -% postscript/pdf/etc.) -% #2 to #5 = four coordinates describing the corners of a bounding box -% of pattern cells -% #6 = x-step -% #7 = y-step -% #8 = pattern code -% #9 = 0 if uncolored patter, 1 if colored pattern. - -\def\pgfsys@setpatternuncolored#1#2#3#4{\pgf@sys@fail{patterns}} -% Sets an uncolored pattern #1 as filling color. The numbers #2, #3, -% #4 must be an rgb-value to be used as the color of the pattern. - -\def\pgfsys@setpatterncolored#1{\pgf@sys@fail{patterns}} -% Sets an colored pattern #1 as filling color. - - -% -% -% Page size stuff -% -% -\def\pgfsys@papersize#1#2{\pgf@sys@fail{papersize}} -% This command sets the paper size in a portable way. -% #1 = width -% #2 = height - - - -% -% -% Position tracking commands -% -% - -% Marks the current position on the page. This position can later be -% referenced using \pgfsys@getposition -\def\pgfsys@markposition#1{\pgf@sys@fail{marking the current position}} - -% Sets #2 to a pgfpoint macro that returns the position #1 is -% returned in a coordinate system where the x-axis goes right and the -% y-axis goes up. The origin of this coordinate system may or may not -% lie in the lower left corner; you should shift the coordinate system -% to the position "pgfpageorigin" to make sure that the origin is at -% the lower left corner. Typically, getting this position -% requires two runs of TeX. On the first run, the macro will be set to -% \relax, indicating that the position is not available. -% -% If #1 is set to the special position "pgfpageorigin", the position -% of the the lower left page corner is returned. - -\def\pgfsys@getposition#1#2{\let#2=\relax} - - - -% -% -% Commands having a default implementation. These commands only need -% not be implemented by drivers if this results in a better -% preformance. -% -% - - -\def\pgfsys@shadingoutsidepgfpicture#1{% - #1% -} -% This command gets the definition of a shading (@pgfshadingxxxx!) as -% an argument and should insert this shading into the normal text. -% -% This command has a default implementation. - - -\def\pgfsys@shadinginsidepgfpicture#1{% - \pgf@makehbox{#1}% - \setbox\pgf@hbox=\hbox{\hskip-.5\wd\pgf@hbox\lower.5\ht\pgf@hbox\hbox{\box\pgf@hbox}}% - \pgfqbox{\pgf@hbox}% -} -% This command works like \pgfsys@shadingoutsidepgfpicture, only it is -% called when a shading should be inserted inside a picture. This -% command should insert the shading centered on the origin (which will -% typically have been low-level translated somewhere else.) -% -% This command has a default implementation. - - - - - -\def\pgfsys@closestroke{\pgfsys@closepath\pgfsys@stroke} -% This command should have the same effect as first closing the path -% and then stroking it. - - -\def\pgfsys@transformshift#1#2{\pgfsys@transformcm{1}{0}{0}{1}{#1}{#2}} -% This command will change the origin of the low-level coordinate -% system to (#1bp,#2bp). - -\def\pgfsys@transformxyscale#1#2{\pgfsys@transformcm{#1}{0}{0}{#2}{0bp}{0bp}} -% This command will scale the low-level coordinate system (and -% everything that is drawn) by a factor of #1 in x-directed and #2 in -% y-direction. Note that this applies to everything, including -% lines. So a scaled line will have a different width and may even -% have a different width when going along the x-axis and when going -% along the y-axis, if the scaling is different in these directions. - -\def\pgfsys@hbox#1{% - \pgfsys@beginscope% - \setbox#1=\hbox{\box#1}% - \wd#1=0pt% - \ht#1=0pt% - \dp#1=0pt% - \box#1% - \pgfsys@endscope% -} -% Called to insert a TeX hbox into a pgfpicture. - -\def\pgfsys@hboxsynced#1{% - {\pgfsys@beginscope\pgflowlevelsynccm\pgfsys@hbox#1\pgfsys@endscope}% -} -% Called to insert a TeX hbox into a pgfpicture, but with the current -% coordinate transformation matrix synced with the canvas -% transformation matrix. -% -% In essence, this command does the same as if you first said -% \pgflowlevelsynccm and then \pgfsys@hbox. However, a driver may -% choose to use a ``TeX-translation'' for the translation part of the -% transformation cm. This will ensure that hyperlinks ``survive'' at -% least translations. - -\def\pgfsys@beginpicture{} -% Called at the beginning of a pgfpicture. Used to setup things. - -\def\pgfsys@endpicture{} -% Called at the end of a pgfpicture. - -\def\pgfsys@typesetpicturebox#1{% - \pgfmathsetlength\pgf@x{\pgf@shift@baseline}% - \advance\pgf@x by-\pgf@picminy\relax% - \advance\pgf@picmaxy by-\pgf@picminy\relax% maxy is now the height - \advance\pgf@picmaxx by-\pgf@picminx\relax% maxx is now the width - \setbox#1=\hbox{\hskip-\pgf@picminx\lower\pgf@picminy\box#1}% - \ht#1=\pgf@picmaxy% - \wd#1=\pgf@picmaxx% - \dp#1=0pt% - \leavevmode\raise-\pgf@x\box#1% -} -% Called after a picture has been typeset in box #1. This -% command should insert the box into the normal TeX code. The box #1 -% will still be a ``raw'' box that contains only the \special's. The -% job of this command is to resize and shift this box according to the -% baseline shift and the size of the box. -% -% This command has a default implementation. - -\def\pgfsys@beginpurepicture{\pgfsys@beginpicture} -% This version of the beginpicture command can be used for pictures -% that are guaranteed not to contain any hboxes. In this case, a -% driver might provide a more compact version of the command. - -\def\pgfsys@endpurepicture{\pgfsys@endpicture} -% Called at the end of a ``pure'' pgfpicture. - -\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% - \edef\pgf@image{\noexpand\includegraphics[\pgf@imageheight\pgf@imagewidth]{\pgf@filename}}% -} -% Called, when an image should be defined. -% -% This command does not take any parameters. Instead, certain macros -% will be preinstalled with appropriate values when this command is -% invoked. These are: -% -% - \pgf@filename -% File name of the image to be defined. -% -% - \pgf@imagewidth -% Will be set to the desired (scaled) width of the image. -% -% - \pgf@imageheight -% Will be set to the desired (scaled) height of the image. -% -% If this macro and also the height macro are empty, the image -% should have its `natural' size. -% -% If exactly only of them is specified, the undefined value the -% image is scaled so that the aspect ratio is kept. -% -% If both are set, the image is scaled in both directions -% independently, possibly changing the aspect ratio. -% -% -% The following macros presumable mostly make sense for drivers that -% can handle pdf: -% -% - \pgf@imagepage -% The desired page number to be extracted from a multi-page -% `image'. -% -% - \pgf@imagemask -% If set, it will be set to `/SMask x 0 R', where x is the pdf -% object number of a soft mask to be applied to the image. -% -% - \pgf@imageinterpolate -% If set, it will be set to `/Interpolate true' or `/Interpolate -% false', indicating whether the image should be interpolated in -% pdf. -% -% -% The command should now setup the macro \pgf@image such that calling -% this macro will result in typesetting the image. Thus, \pgf@image is -% the `return value' of the command. - - -\def\pgfsys@defobject#1#2#3#4{% - \pgfsysprotocol@getcurrentprotocol\pgfsys@temp% - {% - \pgfsysprotocol@setcurrentprotocol\pgfutil@empty% - \pgfsysprotocol@bufferedtrue% - #4% - \pgfsysprotocol@getcurrentprotocol\pgfsys@@temp% - \expandafter\global\expandafter\let\csname #1\endcsname=\pgfsys@@temp% - }% - \pgfsysprotocol@setcurrentprotocol\pgfsys@temp% -} -% Declares an object for later use. The idea is that the object can be -% precached in some way and then be rendered more quickly when used -% several times. For example, an arrow head might be defined and -% prerendered in this way. -% -% The parameter #1 is the name for later use. #2 and #3 are pgf points -% specifying a bounding box for the object. #4 is the code for the -% object. The code may only contain protocollable code. - - -\def\pgfsys@useobject#1#2{% - \pgfsysprotocol@getcurrentprotocol\pgfsys@temp% - {% - \pgfsysprotocol@setcurrentprotocol\pgfutil@empty% - \pgfsysprotocol@bufferedfalse% - #2% - \expandafter\pgfsysprotocol@setcurrentprotocol\csname #1\endcsname% - \pgfsysprotocol@invokecurrentprotocol% - }% - \pgfsysprotocol@setcurrentprotocol\pgfsys@temp% -} -% Renders a previously declared object. The first parameter is the -% name of the the object. The second parameter is extra code that -% should be executed right *before* the object is rendered. Typically, -% this will be some transformation code. - - -\def\pgfsys@begininvisible{\pgfsys@transformcm{1}{0}{0}{1}{2000bp}{2000bp}} -% Between this command and the closing endinvisible, all output should -% be suppressed. Nothing should be drawn at all, which includes all -% paths, images and shadings. - -\def\pgfsys@endinvisible{\pgfsys@transformcm{1}{0}{0}{1}{-2000bp}{-2000bp}} -% Ends the invisibilty section, unless invisibility blocks have been -% nested. In this case, only the `last' one restores visibility. - - -\def\pgfsys@atbegindocument{} -% This command will be executed at the begin of the document. If for -% whatever reason this is not done, you may wish to execute this -% command yourself. It will setup certain specials that need to be -% inserted into the resulting .pdf/.ps/.xxx file. - - - - - -% Discern the driver: -\input pgf.cfg - -\PackageInfo{pgfsys}{Driver file for pgf: \pgfsysdriver} -\pgfutil@InputIfFileExists{\pgfsysdriver}{}{% - \PackageError{pgfsys}{Driver file ``\pgfsysdriver'' not found.}{}} - - - -% This will insert always-present-specials at the beginning of the -% code. -\AtBeginDocument{ - \pgfsys@atbegindocument - \let\pgfsys@atbegindocument=\pgfutil@empty -} - - - -% Read aux file in plain and context mode: - -\pgfutil@aux@read@hook - - -\endinput |