From 5c5c7843fbd37c6960799b6e1a32d5948966316c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 17 Jun 2007 23:22:38 +0000 Subject: pgf 1.18 (15jun07) git-svn-id: svn://tug.org/texlive/trunk@4459 c570f23f-e606-0410-a88d-b1316a301751 --- .../generic/pgf/basiclayer/pgfbaseimage.code.tex | 170 +- .../generic/pgf/basiclayer/pgfbasematrix.code.tex | 634 +++++++ .../pgf/basiclayer/pgfbasepatterns.code.tex | 10 +- .../generic/pgf/basiclayer/pgfbaseplot.code.tex | 49 +- .../generic/pgf/basiclayer/pgfbaseshapes.code.tex | 116 +- .../generic/pgf/basiclayer/pgfbasesnakes.code.tex | 16 +- .../tex/generic/pgf/basiclayer/pgfcore.code.tex | 5 +- .../generic/pgf/basiclayer/pgfcorearrows.code.tex | 140 +- .../pgf/basiclayer/pgfcoregraphicstate.code.tex | 8 +- .../generic/pgf/basiclayer/pgfcoremath.code.tex | 271 --- .../pgf/basiclayer/pgfcorepathconstruct.code.tex | 144 +- .../pgf/basiclayer/pgfcorepathprocessing.code.tex | 16 +- .../pgf/basiclayer/pgfcorepathusage.code.tex | 14 +- .../generic/pgf/basiclayer/pgfcorepoints.code.tex | 225 ++- .../generic/pgf/basiclayer/pgfcorescopes.code.tex | 123 +- .../generic/pgf/basiclayer/pgfcoreshade.code.tex | 24 +- .../pgf/basiclayer/pgfcoretransformations.code.tex | 46 +- .../tex/generic/pgf/frontendlayer/tikz.code.tex | 379 +++- .../pgf/libraries/pgflibraryarrows.code.tex | 808 ++++---- .../pgf/libraries/pgflibrarypatterns.code.tex | 108 +- .../pgf/libraries/pgflibraryplothandlers.code.tex | 66 +- .../pgf/libraries/pgflibraryplotmarks.code.tex | 116 +- .../pgf/libraries/pgflibraryshapes.arrows.code.tex | 12 + .../pgf/libraries/pgflibraryshapes.code.tex | 573 +----- .../libraries/pgflibraryshapes.geometric.code.tex | 1229 +++++++++++++ .../pgf/libraries/pgflibraryshapes.misc.code.tex | 70 + .../libraries/pgflibraryshapes.multipart.code.tex | 165 ++ .../libraries/pgflibraryshapes.symbols.code.tex | 50 + .../pgf/libraries/pgflibrarysnakes.code.tex | 232 +-- .../libraries/pgflibrarytikzbackgrounds.code.tex | 12 +- .../pgf/libraries/pgflibrarytikzcalendar.code.tex | 458 +++++ .../pgflibrarytikzcoordinatesystems.code.tex | 24 + .../pgf/libraries/pgflibrarytikzfolding.code.tex | 143 ++ .../pgf/libraries/pgflibrarytikzmatrix.code.tex | 129 ++ .../pgf/libraries/pgflibrarytikzmindmap.code.tex | 91 +- .../pgf/libraries/pgflibrarytikzpetri.code.tex | 6 +- .../libraries/pgflibrarytikzshapes.arrows.code.tex | 14 + .../pgf/libraries/pgflibrarytikzshapes.code.tex | 8 +- .../pgflibrarytikzshapes.geometric.code.tex | 23 + .../libraries/pgflibrarytikzshapes.misc.code.tex | 14 + .../pgflibrarytikzshapes.multipart.code.tex | 14 + .../pgflibrarytikzshapes.symbols.code.tex | 14 + .../pgf/libraries/pgflibrarytikztopaths.code.tex | 16 +- .../pgf/libraries/pgflibrarytikztrees.code.tex | 4 +- .../tex/generic/pgf/math/pgfmath.code.tex | 10 + .../tex/generic/pgf/math/pgfmathbase.code.tex | 263 +++ .../tex/generic/pgf/math/pgfmathcalc.code.tex | 194 ++ .../generic/pgf/math/pgfmathoperations.code.tex | 781 ++++++++ .../tex/generic/pgf/math/pgfmathparser.code.tex | 912 +++++++++ .../tex/generic/pgf/math/pgfmathrnd.code.tex | 213 +++ .../tex/generic/pgf/math/pgfmathtrig.code.tex | 1932 ++++++++++++++++++++ .../tex/generic/pgf/math/pgfmathutil.code.tex | 198 ++ .../texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg | 11 +- .../pgf/systemlayer/pgfsys-common-postscript.def | 6 +- .../generic/pgf/systemlayer/pgfsys-common-svg.def | 13 +- .../tex/generic/pgf/systemlayer/pgfsys-dvi.def | 106 +- .../tex/generic/pgf/systemlayer/pgfsys-dvipdfm.def | 25 +- .../tex/generic/pgf/systemlayer/pgfsys-dvips.def | 8 +- .../tex/generic/pgf/systemlayer/pgfsys-pdftex.def | 18 +- .../tex/generic/pgf/systemlayer/pgfsys-tex4ht.def | 4 +- .../tex/generic/pgf/systemlayer/pgfsys.code.tex | 33 +- .../pgf/systemlayer/pgfsyssoftpath.code.tex | 9 +- .../tex/generic/pgf/utilities/pgfcalendar.code.tex | 723 ++++++++ .../tex/generic/pgf/utilities/pgfexternal.tex | 32 + .../tex/generic/pgf/utilities/pgfrcs.code.tex | 4 +- .../tex/generic/pgf/utilities/pgfutil-common.tex | 12 +- .../tex/generic/pgf/utilities/pgfutil-context.def | 62 +- .../tex/generic/pgf/utilities/pgfutil-latex.def | 17 +- .../tex/generic/pgf/utilities/pgfutil-plain.def | 56 +- 69 files changed, 10249 insertions(+), 2182 deletions(-) create mode 100644 Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex delete mode 100644 Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.arrows.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.geometric.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.misc.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.multipart.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.symbols.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcalendar.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcoordinatesystems.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzfolding.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmatrix.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.arrows.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.geometric.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.misc.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.multipart.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.symbols.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/utilities/pgfcalendar.code.tex create mode 100644 Master/texmf-dist/tex/generic/pgf/utilities/pgfexternal.tex (limited to 'Master/texmf-dist/tex/generic/pgf') diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex index 11d0ec2cda1..b83c41b3f96 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseimage.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseimage.code.tex,v 1.5 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseimage.code.tex,v 1.7 2007/05/31 10:31:50 tantau Exp $ % Declare an image @@ -235,4 +235,172 @@ + + + + + +% The external read/write mechanism is used as follows: +% +% In your document, you put a number or all of your pgfpicture (or +% tikzpicture) environments inside a pair of \beginpgfexternal and +% \endpgfexternal. The \beginpgfexternal gets one parameter called the +% graphics name. +% +% Once this is done, the next step is to declare the names of your +% graphics in the document at the beginning using the +% \pgfdeclaregraphicname command. +% +% Now, when you typeset your document, each time a \beginpgfexternal +% command is encountered, it will be checked whether the corresponding +% graphics file exists. If this is the case, it will be included and +% the code between \beginpgfexternal and \endpgfexternal is +% ignored. Otherwise, the code is executed normally. +% +% Things change when you run tex on your file with the \jobname set to +% the name of a decalred graphics name. In this case, only your +% graphic will be typeset, the rest of the document will be "thrown away". +% To be more precise, everything is gobbled up to the beginning +% of the first \beginpgfexternal with the given graphics name. Then, +% the content of the "environment" is put in a box (this "environment" +% need not contain a graphics, it may contain anything that can be put +% in a box). Then a single page is output whose size is exactly the +% size of the picture. +% +% So, once you have run tex repeatedly, each time with the jobname set +% to each of the graphics, you can then run tex on the whole document +% and this will cause all graphics to be included rather than begin +% typeset. +% +% Finally, once all the graphics have been created, you can also say +% \input pgfexternal.tex instead of including pgf/TikZ. + + + +% Tells pgf which jobname is the name of the real file +% +% #1 = name +% +% Description: +% +% This command is used to tell pgf that the file named #1 should be +% typeset normally. If \jobname is not equal to #1, only +% the graphic called \jobname will be typeset. +% +% Example: +% +% \pgfrealjobname{survey} + +\def\pgfrealjobname#1{% + \edef\pgf@tempa{\expandafter\string\csname #1\endcsname}% + \edef\pgf@tempb{\expandafter\string\csname\jobname\endcsname}% + \ifx\pgf@tempa\pgf@tempb% + \else% + \pgf@external@grabshipouttrue + \fi% +} + + +\newif\ifpgf@external@grabshipout +\newbox\pgfexternal@startupbox + +\AtBeginDocument{% + \ifpgf@external@grabshipout + \global\let\pgfexternal@originalshipout=\shipout% + \global\def\shipout{\setbox\pgfpic=} + \maxdeadcycles=10000% + % Ok, gather everything we have seen up to now in a box. This box + % will contain any specials that have been used. + {% + \output{\global\setbox\pgfexternal@startupbox=\vbox{\csname @begindvi\endcsname\unvbox255}}% + \hbox{}\eject% + }% + \fi% +} + + +% "Environment" for an external graphic. +% +% #1 = graphic name +% +% Example: +% +% \beginpgfgraphicnamed{main-graphic2} +% \begin{tikzpicture} +% ... +% \end{tikzpicture} +% \endpgfgraphicnamed + +\def\pgf@externalbegin#1{% + % First, check whether we wish to grab this graphic: + \let\pgf@next=\pgf@external@normal% + \ifpgf@external@grabshipout + \edef\pgf@tempa{\expandafter\string\csname #1\endcsname}% + \edef\pgf@tempb{\expandafter\string\csname\jobname\endcsname}% + \ifx\pgf@tempa\pgf@tempb% + \let\pgf@next=\pgf@external@grab% + \fi% + \fi% + \pgf@next{#1}% +} + + +\AtBeginDocument{ + \let\beginpgfgraphicnamed=\pgf@externalbegin% overwrite definition of pgfexternal.tex if necessary + \let\endpgfgraphicnamed=\unskip +} + + +% Normal operation: Include an external graphic instead of the +% picture, if such an external picture exists. +\def\pgf@external@normal#1{% + \let\pgf@filename=\pgfutil@empty% + \expandafter\pgf@findfile\pgfsys@imagesuffixlist:+{#1}% + \ifx\pgf@filename\pgfutil@empty% + % Ok, no such image... Just typeset the picture normally. + \let\pgf@next=\relax% + \else% + \let\pgf@next=\pgf@replacepicturebygraphic% + \fi% + \pgf@next% +} + +\long\def\pgf@replacepicturebygraphic#1\endpgfgraphicnamed{\includegraphics{\pgf@filename}\unskip} + + +% Grab operation: If jobname matches the graphic name, typeset this +% picture normall. + +\def\pgf@external@grab#1{% + \setbox\pgfpic=\hbox\bgroup\bgroup% + \let\endpgfgraphicnamed=\pgf@externalend% +} + +\def\pgf@externalend{% + \unskip\egroup\egroup% + {% + \parindent0pt% + \leftmargin0pt% + \rightmargin0pt% + \dimen0\ht\pgfpic% + \advance\dimen0\dp\pgfpic% + \pgfsys@papersize{\the\wd\pgfpic}{\the\dimen0}% + \setbox0=\vbox{% + \kern -1truein% + \hbox{% + \kern -1truein% + \hbox to0pt{% + \wd\pgfexternal@startupbox=0pt% + \ht\pgfexternal@startupbox=0pt% + \dp\pgfexternal@startupbox=0pt% + \box\pgfexternal@startupbox% + \pgfsys@atbegindocument\hss}% + \box\pgfpic% + \kern 1truein}% + \kern1truein}% + \pgfexternal@originalshipout\box0% + }% +} + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex new file mode 100644 index 00000000000..d72f2206aa7 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasematrix.code.tex @@ -0,0 +1,634 @@ +% 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/basiclayer/pgfbasematrix.code.tex,v 1.11 2007/03/09 17:49:32 tantau Exp $ + + +\newif\ifpgfmatrix +\newif\ifpgf@matrix@correct@call + +\newif\ifpgf@matrix@fixed + +\newcount\pgfmatrixcurrentrow + +\newcount\pgfmatrixcurrentcolumn +\newcount\pgf@matrix@numberofcolumns + +\let\pgf@matrix@cell=\pgfnodeparttextbox % alias +\let\pgf@matrix@box=\pgf@matrix@cell % alias + + +% Sets the default row or column sep +% +% #1 = default row or column sep list +% +% Description: +% +% Sets the macro \pgfmatrixrowsep or \pgfmatrixcolumnsep to #1. +% +% Example: +% +% \pgfsetmatrixrowsep{5pt} + +\def\pgfsetmatrixrowsep#1{\def\pgfmatrixrowsep{#1}} +\def\pgfsetmatrixcolumnsep#1{\def\pgfmatrixcolumnsep{#1}} + +\def\pgfmatrixrowsep{0pt} +\def\pgfmatrixcolumnsep{0pt} + + + +% The pgfmatrix command creates a node that contains a matrix. Like +% the \pgfnode command, it is to be used inside a pgfpicture +% environment. +% +% #1 = shape type +% #2 = anchor +% #3 = name for later reference +% #4 = path usage command +% #5 = inner shift +% #6 = startup code +% #7 = the matrix code (may contain verbatim stuff) +% +% Description: +% +% This command creates a node that contains a matrix. For +% each cell of the matrix, drawing commands may be given. These +% commands will create a cell picture and a bounding box is computed +% for each cell picture. The cell picture is then placed inside the +% cell. The position inside the cell is computed according to the +% following rules: +% +% 1. In each column, the origins of the cell pictures are all on a +% vertical line. +% 2. In each row, the origins of the cell pictures are all on a +% horizontal line. +% 3. All cells in the same row have the same height and depth. +% 4. All cells in the same column have the same width. +% 5. The size of cells are chosen minimal such that the boxes fit into +% the cells and still meet the above requirement. +% +% Next, the whole resulting matrix, which is given as #7, is placed +% inside a node whose name is given as #3, whose shape is #1, and +% whose anchor is #1. This means that the resulting node is shifted +% such that the given anchor lies at the origin. Then, as for a normal +% node, the #4 path usage command is used for the node. +% +% The parameter #5 is an additional negative shift for the node. Normally, such +% a shift could be given beforehand (that is, the shift could be +% preapplied to the current transformation matrix). However, when #5 +% is evaluated, you can refer to temporary positions of nodes inside +% the matrix. In detail, the following happens: When the matrix has +% been typeset, all nodes in the matrix temporarily get assigned their +% positions in the matrix box. The origin of this coordinate system is +% at the left baseline end of the matrix box, which corresponds to the +% text anchor. The position #5 is then interpreted inside this +% coordinate system and then used for shifting. +% +% The idea behind using the parameter #5 is the following: If you +% specify "text" as anchor #2 and specify \pgfpointanchor{inner +% node}{some anchor} for parameter #5, where inner node is a node that +% is created in the matrix, then the whole matrix will be shifted such +% that inner node.some anchor lies at the origin of the whole picture. +% +% At the beginning and at the end of each cell, the macros +% \pgfmatrixbegincode and \pgfmatrixendcode are called. Inside these +% macros you can use \pgfmatrixcurrentcolumn and \pgfmatrixcurrentrow +% to access the current row and column. +% +% Before each column except for the first, an extra space given by the +% macro \pgfmatrixcolumnsep is added. Additionally, an extra space +% given by the optional argument of the \pgfmatrixnextcell commands in +% the first line are added, which may vary between columns. Between +% rows, an extra space given by the macro \pgfmatrixrowsep is +% added. You can also change this value for each row by using a \gdef. +% +% Inside the matrix, \\ must be used to end every line ***including +% the last***. You can pass an optional parameter to \\ as in \\[2pt] +% to give an additional space after this particular line. +% +% The usage of \\ at the end of the matrix is imporant since this +% command is used to find the end of the matrix. What happens is that +% \\ followed by a closing brace ends the matrix. +% +% Inside the matrix, you must use \pgfmatrixnextcell to separate +% columns. The reason is that two columns are used internally for +% every single column shown. The macro \pgfmatrixnextcell is yields +% (more or less) two && (and some further trickery). +% +% The parameter #6 is executed at the beginning of the matrix +% group. It is inside the protecting group of the matrix, but outside +% the matrix itself. It can be used for different purposes: 1) It can be +% used to simplify the next cell macro. 2) It can be used to issue an +% \aftergroup command. 3) It can be used to setup local settings. For +% example, by setting #6 to \let\&=\pgfmatrixnextcell you can use \& +% instead of \pgfmatrixnextcell. You can also set the catcode of & to +% active. +% +% +% Example: +% +% \begin{tikzpicture} +% +% \draw (0,0) circle (1mm); % b.north will lie on the center of this circle +% +% \pgfmatrix{rectangle}{text}{mymatrix}{\pgfusepath{}}{\pgfpointanchor{b}{north}}{\let\&=\pgfmatrixnextcell} +% { +% \draw (0,0) circle (1cm); \& \node (a) [draw] {Hallo}; \\ +% \node (b) [draw] {Welt}; \& \draw (0,0) circle (5mm); \\ +% } +% +% \draw [->] (a) -- (b); +% +% \end{tikzpicture} + +\def\pgfmatrix#1#2#3#4#5#6{% + \ifpgfmatrix% + \PackageError{pgf}{You cannot nest pgfmatrix environments, yet}{} + \fi% + \bgroup% + #6% + \def\pgf@matrix@par@shape{#1}% + \def\pgf@matrix@par@anchor{#2}% + \def\pgf@matrix@par@name{#3}% + \def\pgf@matrix@par@usage{#4}% + \def\pgf@matrix@par@shift{#5}% + % the matrix must have a name: + \ifx\pgf@matrix@par@name\pgfutil@empty% + \def\pgf@matrix@par@name{pgf@matrix@internal}% + \fi% + \pgfmatrixcurrentrow=0\relax% + \pgfmatrixcurrentcolumn=0\relax% + \pgf@matrix@numberofcolumns=0\relax% + \let\\=\pgf@matrix@eol% + \tabskip=0pt% + \offinterlineskip% + \pgfmatrixtrue% + \let\pgf@matrix@node@list=\pgfutil@empty% + \expandafter\let\csname pgf@matrix@column@finish@1\endcsname=\pgfutil@empty% + \let\pgf@matrix@row@finish=\pgfutil@empty% + % + % Get rid of bgroup + % + \afterassignment\pgf@matrix@cont\let\pgf@next=% +} +\def\pgf@matrix@cont{% + \setbox\pgf@matrix@box=\hbox\bgroup\vbox\bgroup% + \halign\bgroup% + \pgf@matrix@init@row% + \pgf@matrix@step@column% + {% + \pgf@matrix@startcell% + ##% + \pgf@matrix@endcell% + }% + &% + ##\pgf@matrix@padding&&% + \pgf@matrix@step@column% + {% + \pgf@matrix@startcell% + ##% + \pgf@matrix@endcell% + }&% + ##\pgf@matrix@padding% + \cr% +} + +\def\pgf@end@matrix{% + \egroup\egroup% + \egroup% + % + % If there are named nodes, we must adjust their coordinates. + % + \ifx\pgf@matrix@node@list\pgfutil@empty% + \else% + % Ok, this means we got a lot of work to do... + \pgf@matrix@compute@origin% + \pgf@matrix@shift@nodes@initial% + \fi% + % + % Compute additional shift + % + \pgftransformresetnontranslations% + \pgftransformshift{\pgf@process{\pgftransformreset\pgf@matrix@par@shift\pgf@x=-\pgf@x\pgf@y=-\pgf@y}}% + % + % Create node + % + \pgfmultipartnode{\pgf@matrix@par@shape}{\pgf@matrix@par@anchor}{\pgf@matrix@par@name}{\pgf@matrix@par@usage}% + % + % If there are named nodes, we must adjust their coordinates, again. + % + \ifx\pgf@matrix@node@list\pgfutil@empty% + \else% + {% + \pgftransformreset% + \pgf@process{\pgfpointanchor{\pgf@matrix@par@name}{text}}% + \xdef\pgf@matrix@offset{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% + \pgf@matrix@shift@nodes@secondary{\pgf@matrix@offset}% + }% + \fi% +} + + + + +% Ending a cell +% +% #1 = (optional) spacing between previous and next column. This +% parameter only has an effect in the first row. +% +% Description: +% +% This command ends a cell of a matrix. +% +% Example: +% +% \pgfmatrix{rectangle}{text}{mymatrix}{\pgfusepath{}}{\pgfpointanchor{b}{north}}{} +% { +% \draw (0,0) circle (1cm); \pgfmatrixnextcell[1cm] \node (a) [draw] {Hallo}; \\ +% \node (b) [draw] {Welt}; \pgfmatrixnextcell \draw (0,0) circle (5mm); \\ +% } + +\def\pgfmatrixnextcell{% + % if the cell contains nothing, the following \let will be at the + % beginning (macro expansion has stopped here since neither \omit + % nor \span was found) + \let\pgf@matrix@signal@cell@end=\pgf@matrix@signal@cell@end% + \pgfutil@ifnextchar[{\pgf@matrix@cell@cont}{\pgf@matrix@cell@cont[0pt]}}%} + +\def\pgf@matrix@cell@cont[#1]{% + \ifnum\pgfmatrixcurrentcolumn<\pgf@matrix@numberofcolumns% + \else% + {% + \global\pgf@matrix@fixedfalse% + \pgf@x=0pt% + \pgf@matrix@addtolength{\pgf@x}{\pgfmatrixcolumnsep}% + \pgf@matrix@addtolength{\pgf@x}{#1}% + \ifpgf@matrix@fixed% + \expandafter\pgfutil@g@addto@macro\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname% + {\global\pgf@picmaxx=0pt}% + \fi% + \advance\pgfmatrixcurrentcolumn by1\relax % only temporary for the following: + \expandafter\xdef\csname pgf@matrix@column@sep@\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@x}% + \ifpgf@matrix@fixed% + \expandafter\gdef\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname{\global\pgf@picminx=0pt}% + \else% + \expandafter\global\expandafter\let\csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname=\pgfutil@empty% + \fi% + }% + \fi% + &\pgf@matrix@correct@calltrue&% +}% + + +\def\pgf@matrix@fixed@text{between origins} +\def\pgf@matrix@natural@text{between borders} + +\def\pgf@matrix@addtolength#1#2{\edef\pgf@temp{#2}\expandafter\pgf@matrix@addtolength@\expandafter#1#2,\pgf@stop} +\def\pgf@matrix@addtolength@#1#2,#3\pgf@stop{% + \def\pgf@temp{#2}% + \ifx\pgf@temp\pgfutil@empty% + \else% + \ifx\pgf@temp\pgf@matrix@fixed@text% + \global\pgf@matrix@fixedtrue% + \else% + \ifx\pgf@temp\pgf@matrix@natural@text% + \global\pgf@matrix@fixedfalse% + \else% + \pgfmathaddtolength{#1}{#2}% + \fi% + \fi% + \fi% + \def\pgf@temp{#3}% + \ifx\pgf@temp\pgfutil@empty% + \else% + \pgf@matrix@addtolength@#1#3\pgf@stop% + \fi% +} + + + +% Init a line + +\def\pgf@matrix@init@row{% + \relax% + \global\advance\pgfmatrixcurrentrow by 1\relax% + \global\pgfmatrixcurrentcolumn=0\relax% + \expandafter\gdef\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname{0pt}% + \expandafter\gdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{0pt}% +} + + + +% Step the row column number + +\def\pgf@matrix@step@column{% + \relax% + \global\advance\pgfmatrixcurrentcolumn by1\relax% +} + + + +% Start a cell + +\def\pgf@matrix@startcell{% + % + % Step 1: Init the list of nodes for this cell + % + \let\pgf@nodecallback=\pgf@matrix@nodecallback% + % + % Step 2: Setup the bounding box + % + \pgfinterruptboundingbox% + % + % Step 3: Reset the transformation matrix + % + \pgftransformreset% + % + % Step 4: Collect everything in a cell box + % + \setbox\pgf@matrix@cell=\hbox\bgroup\bgroup% + \pgfsys@beginpicture% + \normalbaselines% + % Find out whether the cell is empty: + \pgfutil@ifnextchar\let% + {% ok, candidate, check following symbol + \afterassignment\pgf@matrix@empty@check\let\pgf@next=% get rid of \let + }% + {% no, not empty + \pgf@matrix@empty@cell@false% + \pgfmatrixbegincode% + }% +} + +\def\pgf@matrix@empty@check{% + \pgfutil@ifnextchar\pgf@matrix@signal@cell@end% + {% Bingo! + \pgf@matrix@empty@cell@true% + \pgfmatrixemptycode% + \let% reinserted + }% + {% Nope! + \pgf@matrix@empty@cell@false% + \pgfmatrixbegincode% + \let% reinserted + } +}% + +\newif\ifpgf@matrix@empty@cell@ + + +% End a cell + +\def\pgf@matrix@endcell{% + \ifpgf@matrix@empty@cell@% + \else% + \expandafter\pgfmatrixendcode% + \fi + \pgfsys@endpicture% + \csname pgf@matrix@column@finish@\the\pgfmatrixcurrentcolumn\endcsname% + \pgf@matrix@row@finish% + \egroup\egroup% + % Special case of the empty picture + \ifdim\pgf@picmaxx=-16000pt\relax% + \pgf@picmaxx=0pt\relax% + \pgf@picminx=0pt\relax% + \pgf@picmaxy=0pt\relax% + \pgf@picminy=0pt\relax% + \fi% + % + % Step 5: Horizontal gap + % + \ifnum\pgfmatrixcurrentcolumn>1\relax% + \pgf@y=\csname pgf@matrix@column@sep@\the\pgfmatrixcurrentcolumn\endcsname\relax% + \advance\pgf@picminx by-\pgf@y% + \fi% + % + % Step 6: Protocol and adjust height and depth + % + % Step 6.1: Protocol... + % + \ifdim\pgf@picmaxy>\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname% + \expandafter\xdef\csname pgf@matrix@maxy\the\pgfmatrixcurrentrow\endcsname{\the\pgf@picmaxy}% + \fi% + \ifdim\pgf@picminy<\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname% + \expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@picminy}% + \fi% + % + % Step 6.2: and setup. + % + \ht\pgf@matrix@cell=\pgf@picmaxy% + \dp\pgf@matrix@cell=-\pgf@picminy% + % + % Step 7: Protocol and adjust left and right width + % + % Step 7.1: Protocol... + % + \ifnum\pgfmatrixcurrentcolumn>\pgf@matrix@numberofcolumns\relax% + \expandafter\xdef\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picmaxx}% + \expandafter\xdef\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picminx}% + \global\pgf@matrix@numberofcolumns=\pgfmatrixcurrentcolumn\relax% + \else% + \ifdim\pgf@picmaxx>\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname% + \expandafter\xdef\csname pgf@matrix@maxx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picmaxx}% + \fi% + \ifdim\pgf@picminx<\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname% + \expandafter\xdef\csname pgf@matrix@minx\the\pgfmatrixcurrentcolumn\endcsname{\the\pgf@picminx}% + \fi% + \fi% + % + % Step 7.2: and setup. + % + \xdef\pgf@matrix@paddingskip{\the\pgf@picmaxx}% + % + % Step 8: Put in the box now + % + \hfil\hskip-\pgf@picminx% + \wd\pgf@matrix@cell=0pt% + \box\pgf@matrix@cell% + % + % Step 9: End bounding box + \endpgfinterruptboundingbox% +} + +% Default code for the start and end code +\let\pgfmatrixbegincode=\relax +\let\pgfmatrixendcode=\relax +\let\pgfmatrixemptycode=\relax + + +% The following callback is called for every node that is produced +% inside a cell + +\def\pgf@matrix@nodecallback#1{% + \def\pgf@temp{#1}% + \ifx\pgf@temp\pgfutil@empty% + \else% + \xdef\pgf@matrix@node@list{\pgf@matrix@node@list,{#1}}% + \expandafter\xdef\csname pgf@matrix@node@location@#1\endcsname{{\the\pgfmatrixcurrentrow}{\the\pgfmatrixcurrentcolumn}}% + \fi% +} + + + +% Padding code + +\def\pgf@matrix@padding{% + \ifpgf@matrix@correct@call% + \else% + \PackageError{pgfbasematrix}{Single ampersand used with wrong + catcode}{}% + \fi% + \hskip\pgf@matrix@paddingskip\hfil% +} + + +% Compute the real positions of the origins + +% We must now compute the real positions of the origins of all the +% small pictures. To this end, we need to compute prefix sums. After +% the procedure is done, the minx and the maxy will contain the origin +% positions. + +\def\pgf@matrix@compute@origin{% + % + % Inverse prefix sum on the vertical positions + % + {% + \ifnum\pgfmatrixcurrentrow>0\relax% + \expandafter\gdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{0pt}% + \fi + \c@pgf@counta=\pgfmatrixcurrentrow\relax% + \loop% + \ifnum\c@pgf@counta>1\relax% + \pgf@y=\csname pgf@matrix@miny\the\c@pgf@counta\endcsname\relax% + \advance\pgf@y by\csname pgf@matrix@maxy\the\c@pgf@counta\endcsname\relax + \advance\c@pgf@counta by-1\relax% + \pgf@ya=\csname pgf@matrix@miny\the\c@pgf@counta\endcsname\relax% + \advance\pgf@y by-\pgf@ya\relax% + \expandafter\xdef\csname pgf@matrix@miny\the\c@pgf@counta\endcsname{\the\pgf@y}% + \repeat% + }% + % + % Prefix sum on the horizontal positions + % + {% + \ifnum\pgf@matrix@numberofcolumns>0\relax% + \pgf@x=\csname pgf@matrix@minx1\endcsname\relax% + \pgf@x=-\pgf@x% + \expandafter\xdef\csname pgf@matrix@minx1\endcsname{\the\pgf@x}% + \fi + \c@pgf@counta=1\relax% + \loop% + \ifnum\c@pgf@counta<\pgf@matrix@numberofcolumns\relax% + \pgf@x=\csname pgf@matrix@minx\the\c@pgf@counta\endcsname\relax% + \advance\pgf@x by\csname pgf@matrix@maxx\the\c@pgf@counta\endcsname\relax% + \advance\c@pgf@counta by1\relax% + \pgf@xa=\csname pgf@matrix@minx\the\c@pgf@counta\endcsname\relax% + \advance\pgf@x by-\pgf@xa\relax% + \expandafter\xdef\csname pgf@matrix@minx\the\c@pgf@counta\endcsname{\the\pgf@x}% + \repeat% + }% +} + + +% Shift the nodes to their origins + +% The following procedure shifts all nodes in +% \pgf@matrix@node@list to their location inside a temporary +% picture. This picture will later be shifted again to its final +% position in the real picture. + +\def\pgf@matrix@shift@nodes@initial{% + {% + \pgfutil@for\pgf@matrix@node@name:=\pgf@matrix@node@list\do{% + \ifx\pgf@matrix@node@name\pgfutil@empty% + \else% + \expandafter\ifx\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname\relax% + \pgf@shift@node{\pgf@matrix@node@name}{% + \pgf@x=\csname pgf@matrix@minx% + \expandafter\expandafter\expandafter\pgfutil@secondoftwo\csname pgf@matrix@node@location@\pgf@matrix@node@name\endcsname\endcsname% + \pgf@y=\csname pgf@matrix@miny% + \expandafter\expandafter\expandafter\pgfutil@firstoftwo\csname pgf@matrix@node@location@\pgf@matrix@node@name\endcsname\endcsname% + }% + \expandafter\let\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname=\pgfutil@empty% + \fi% + \fi% + }% + }% +} + + +% The second shifting, done in the following procedure, shifts all +% nodes to their real positions inside the real picture. + +\def\pgf@matrix@shift@nodes@secondary#1{% + \pgfutil@for\pgf@matrix@node@name:=\pgf@matrix@node@list\do{% + \ifx\pgf@matrix@node@name\pgfutil@empty% + \else% + \expandafter\ifx\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname\relax% + \pgf@shift@node{\pgf@matrix@node@name}{#1}% + \expandafter\let\csname pgf@matrix@node@visited@\pgf@matrix@node@name\endcsname=\pgfutil@empty% + \fi% + \fi% + }% +} + + +% End of line +\def\pgf@matrix@eol{% + % if the cell contains nothing, the following \let will be at the + % beginning (macro expansion has stopped here since neither \omit + % nor \span was found) + \let\pgf@matrix@signal@cell@end=\pgf@matrix@signal@cell@end% + &\pgf@matrix@correct@calltrue% + \global\pgf@matrix@fixedfalse% + \pgf@y=0pt% + \pgf@matrix@addtolength\pgf@y{\pgfmatrixrowsep}% + \pgfutil@ifnextchar[{\pgf@matrix@eol@skip}{\pgf@matrix@finish@line}% +} + +\def\pgf@matrix@signal@cell@end{\pgf@matrix@signal@cell@end} +% exact definition does not matter, only needs to be unique. + +\def\pgf@matrix@eol@skip[#1]{% + \pgf@matrix@addtolength\pgf@y{#1}% + \pgf@matrix@finish@line% +} + +\def\pgf@matrix@finish@line{% + \global\pgf@y=\pgf@y% + \pgf@ya=-\pgf@y% + \global\advance\pgf@ya by\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname% + \expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@ya}% + \@ifnextchar\egroup{\cr\pgf@end@matrix}{\pgf@matrix@no@eom@found}% +} + +\def\pgf@matrix@eom@found{% + \cr% + \pgf@end@matrix% +} + +\def\pgf@matrix@no@eom@found{% + \cr% + \noalign{\vskip\pgf@y% + \ifpgf@matrix@fixed% + \vskip\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname% unskip + \vskip\pgf@y% + \pgf@y=-\pgf@y% + \expandafter\xdef\csname pgf@matrix@miny\the\pgfmatrixcurrentrow\endcsname{\the\pgf@y}% + \gdef\pgf@matrix@row@finish{\global\pgf@picmaxy=0pt}% + \else% + \global\let\pgf@matrix@row@finish=\pgfutil@empty% + \fi% + }% +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex index 816f50c0d19..199d38e3b7b 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasepatterns.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasepatterns.code.tex,v 1.9 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasepatterns.code.tex,v 1.10 2007/02/05 11:23:22 tantau Exp $ % Creates a new uncolored pattern @@ -112,10 +112,10 @@ \pgf@xc=\pgf@x% \pgf@yc=\pgf@y% % Now, build a name for the pattern - \@tempcnta=\pgf@pattern@number% - \advance\@tempcnta by1\relax% - \xdef\pgf@pattern@number{\the\@tempcnta}% - \expandafter\xdef\csname pgf@pattern@name@#1\endcsname{\the\@tempcnta}% + \pgfutil@tempcnta=\pgf@pattern@number% + \advance\pgfutil@tempcnta by1\relax% + \xdef\pgf@pattern@number{\the\pgfutil@tempcnta}% + \expandafter\xdef\csname pgf@pattern@name@#1\endcsname{\the\pgfutil@tempcnta}% \expandafter\gdef\csname pgf@pattern@type@#1\endcsname{#6}% \xdef\pgf@marshal{\noexpand\pgfsys@declarepattern {\csname pgf@pattern@name@#1\endcsname} diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex index 9ca915d5981..3e019c5feec 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseplot.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseplot.code.tex,v 1.5 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseplot.code.tex,v 1.7 2007/05/02 14:08:27 tantau Exp $ % PGF's plotting interface works as follows: @@ -198,10 +198,11 @@ \endgroup% } +\let\pgf@savedpar=\par% \def\pgf@partext{\par} \def\pgf@readxyfile{% \read1 to \pgf@temp% - \let\par=\@@par% + \let\par=\pgf@savedpar% \edef\pgf@temp{\pgf@temp}% \ifx\pgf@temp\pgfutil@empty% \else\ifx\pgf@temp\pgf@partext% @@ -294,15 +295,15 @@ \def\pgf@plotgnuplot[#1]#2{% \pgf@resample@plottrue% % Check, whether it is up-to-date - \openin\@inputcheck=#1.gnuplot - \ifeof\@inputcheck% + \openin\pgfutil@inputcheck=#1.gnuplot + \ifeof\pgfutil@inputcheck% \else% - \read\@inputcheck to\pgf@temp% ignored - \read\@inputcheck to\pgf@plot@line% + \read\pgfutil@inputcheck to\pgf@temp% ignored + \read\pgfutil@inputcheck to\pgf@plot@line% \edef\pgf@plot@code{#2\space}% \ifx\pgf@plot@code\pgf@plot@line% - \openin\@inputcheck=#1.table - \ifeof\@inputcheck% + \openin\pgfutil@inputcheck=#1.table + \ifeof\pgfutil@inputcheck% \else% \pgf@resample@plotfalse% \fi% @@ -320,5 +321,37 @@ +% This producer handler plots a function using pgf's mathematical engine. +% +% #1 = variable +% #2 = domain for the variable +% #3 = point, typically defined in terms of the value of the variable +% +% Description: +% +% This producer will iterate the variable #1 over all variables in #2 +% (using the \foreach statement). For each value, a plot coordinate +% #3 is created. +% +% Note that this command is pretty slow. +% +% Example: +% +% \pgfplothandlerlineto +% \pgfplotfunction{\x}{0,0.1,...,3.141}{\pgfpointxy{\x}{sin(\x)}} + +\def\pgfplotfunction#1#2#3{% + \pgfplotstreamstart% + \foreach#1in{#2}% + {% + \pgf@process{#3}% + \edef\pgf@marshal{\noexpand\pgfplotstreampoint{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}% + \pgf@marshal% + } + \pgfplotstreamend% +} + + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex index 5535010cbbb..dc9f660d0c2 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbaseshapes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseshapes.code.tex,v 1.16 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbaseshapes.code.tex,v 1.19 2007/06/07 07:41:10 tantau Exp $ \newbox\pgfnodeparttextbox @@ -28,12 +28,12 @@ % pgf's transformation matrix prior to calling this command. % % When this command is called, the shape-specific TeX boxes of the -% node must be have been setup correctly. +% node must have been setup correctly. % % Example: % % \pgftransformshift{\pgfpoint{1cm}{1cm}} -% \pgfmultipartnode{rectangle}{center}{Hello}{hellonode}{\pgfusepath{stroke}} +% \pgfmultipartnode{rectangle}{center}{hellonode}{\pgfusepath{stroke}} \def\pgfmultipartnode#1#2#3#4{% \pgfutil@ifundefined{pgf@sh@s@#1}% @@ -79,11 +79,31 @@ {\csname pgf@sh@fg@#1\endcsname#4}% \pgfutil@ifundefined{pgf@sh@ffg@#1}{}% {{\pgfscope\csname pgf@sh@ffg@#1\endcsname\endpgfscope}}% + \pgf@nodecallback{#3}% }% }% } +\def\pgf@shift@node#1#2{% + % This internal command shifts the recorded coordinates for node #1 + % by the vector #2. It is used to + % correct the position of the node if the recorded coordinate + % happens to be wrong + {% + \pgfsettransform{\csname pgf@sh@nt@#1\endcsname}% + \pgf@process{#2}% + \advance\pgf@pt@x by\pgf@x% + \advance\pgf@pt@y by\pgf@y% + \pgfgettransform{\pgf@temp}% + \expandafter\xdef\csname pgf@sh@nt@#1\endcsname{\pgf@temp}% + }% +} + +\let\pgf@nodecallback=\pgfutil@gobble + + + % Creates a node % % #1 = shape type @@ -120,7 +140,7 @@ \pgf@process{#2}% \edef\pgf@sh@marshal{% \noexpand\pgfutil@g@addto@macro\noexpand\pgf@sh@savedpoints{% - \noexpand\def\noexpand#1{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \noexpand\def\noexpand#1{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% }}% \pgf@sh@marshal% } @@ -139,8 +159,8 @@ \def\pgf@sh@reanchor#1#2{% \pgfutil@ifundefined{pgf@anchor@#1@#2}% {% - \pgflatex@setcounter{pgf@counta}{#2}% - \csname pgf@anchor@#1@border\endcsname{\pgfpointpolar{\c@pgf@counta}{1pt}}% + \pgfmathsetcounter{pgf@counta}{#2}% + \csname pgf@anchor@#1@border\endcsname{\pgfqpointpolar{\c@pgf@counta}{1pt}}% }% {\csname pgf@anchor@#1@#2\endcsname}% } @@ -243,7 +263,7 @@ \pgf@process{\pgf@shape@interpictureshift{#1}}%% \advance\pgf@xa by-\pgf@x% \advance\pgf@ya by-\pgf@y% - \csname pgf@anchor@\csname pgf@sh@ns@#1\endcsname @border\endcsname{\pgfpoint{\pgf@xa}{\pgf@ya}}% + \csname pgf@anchor@\csname pgf@sh@ns@#1\endcsname @border\endcsname{\pgfqpoint{\pgf@xa}{\pgf@ya}}% \pgfsettransform{\csname pgf@sh@nt@#1\endcsname}% \pgf@pos@transform{\pgf@x}{\pgf@y}% \global\pgf@x=\pgf@x% @@ -523,9 +543,9 @@ % % First, is width < minimum width? \pgf@x=\the\wd\pgfnodeparttextbox% - \setlength\pgf@xc{\pgfshapeinnerxsep}% + \pgfmathsetlength\pgf@xc{\pgfshapeinnerxsep}% \advance\pgf@x by 2\pgf@xc% - \setlength\pgf@xb{\pgfshapeminwidth}% + \pgfmathsetlength\pgf@xb{\pgfshapeminwidth}% \ifdim\pgf@x<\pgf@xb% % yes, too small. Enlarge... \pgf@x=\pgf@xb% @@ -533,16 +553,16 @@ % Now, calculate right border: .5\wd\pgfnodeparttextbox + .5 \pgf@x + outer sep \pgf@x=.5\pgf@x% \advance\pgf@x by.5\wd\pgfnodeparttextbox% - \setlength\pgf@xa{\pgfshapeouterxsep}% + \pgfmathsetlength\pgf@xa{\pgfshapeouterxsep}% \advance\pgf@x by\pgf@xa% % Calculate y % % First, is height+depth < minimum height? \pgf@y=\ht\pgfnodeparttextbox% \advance\pgf@y by\dp\pgfnodeparttextbox% - \setlength\pgf@yc{\pgfshapeinnerysep}% + \pgfmathsetlength\pgf@yc{\pgfshapeinnerysep}% \advance\pgf@y by 2\pgf@yc% - \setlength\pgf@yb{\pgfshapeminheight}% + \pgfmathsetlength\pgf@yb{\pgfshapeminheight}% \ifdim\pgf@y<\pgf@yb% % yes, too small. Enlarge... \pgf@y=\pgf@yb% @@ -551,7 +571,7 @@ \pgf@y=.5\pgf@y% \advance\pgf@y by-.5\dp\pgfnodeparttextbox% \advance\pgf@y by.5\ht\pgfnodeparttextbox% - \setlength\pgf@ya{\pgfshapeouterysep}% + \pgfmathsetlength\pgf@ya{\pgfshapeouterysep}% \advance\pgf@y by\pgf@ya% } @@ -560,9 +580,9 @@ % % First, is width < minimum width? \pgf@x=\wd\pgfnodeparttextbox% - \setlength\pgf@xc{\pgfshapeinnerxsep}% + \pgfmathsetlength\pgf@xc{\pgfshapeinnerxsep}% \advance\pgf@x by 2\pgf@xc% - \setlength\pgf@xb{\pgfshapeminwidth}% + \pgfmathsetlength\pgf@xb{\pgfshapeminwidth}% \ifdim\pgf@x<\pgf@xb% % yes, too small. Enlarge... \pgf@x=\pgf@xb% @@ -570,16 +590,16 @@ % Now, calculate left border: .5\wd\pgfnodeparttextbox - .5 \pgf@x - outer sep \pgf@x=-.5\pgf@x% \advance\pgf@x by.5\wd\pgfnodeparttextbox% - \setlength\pgf@xa{\pgfshapeouterxsep}% + \pgfmathsetlength\pgf@xa{\pgfshapeouterxsep}% \advance\pgf@x by-\pgf@xa% % Calculate y % % First, is height+depth < minimum height? \pgf@y=\ht\pgfnodeparttextbox% \advance\pgf@y by\dp\pgfnodeparttextbox% - \setlength\pgf@yc{\pgfshapeinnerysep}% + \pgfmathsetlength\pgf@yc{\pgfshapeinnerysep}% \advance\pgf@y by 2\pgf@yc% - \setlength\pgf@yb{\pgfshapeminheight}% + \pgfmathsetlength\pgf@yb{\pgfshapeminheight}% \ifdim\pgf@y<\pgf@yb% % yes, too small. Enlarge... \pgf@y=\pgf@yb% @@ -588,7 +608,7 @@ \pgf@y=-.5\pgf@y% \advance\pgf@y by-.5\dp\pgfnodeparttextbox% \advance\pgf@y by.5\ht\pgfnodeparttextbox% - \setlength\pgf@ya{\pgfshapeouterysep}% + \pgfmathsetlength\pgf@ya{\pgfshapeouterysep}% \advance\pgf@y by-\pgf@ya% } @@ -605,7 +625,7 @@ \advance\pgf@x by \pgf@xa% \advance\pgf@y by \pgf@ya% } - \anchor{mid}{\pgf@anchor@rectangle@center\setlength\pgf@y{.5ex}} + \anchor{mid}{\pgf@anchor@rectangle@center\pgfmathsetlength\pgf@y{.5ex}} \anchor{base}{\pgf@anchor@rectangle@center\pgf@y=0pt} \anchor{north}{ \pgf@process{\southwest}% @@ -628,7 +648,7 @@ \pgf@y=.5\pgf@y% \advance\pgf@y by \pgf@ya% } - \anchor{mid west}{\southwest\setlength\pgf@y{.5ex}} + \anchor{mid west}{\southwest\pgfmathsetlength\pgf@y{.5ex}} \anchor{base west}{\southwest\pgf@y=0pt} \anchor{north west}{ \southwest @@ -643,7 +663,7 @@ \pgf@y=.5\pgf@y% \advance\pgf@y by \pgf@ya% } - \anchor{mid east}{\northeast\setlength\pgf@y{.5ex}} + \anchor{mid east}{\northeast\pgfmathsetlength\pgf@y{.5ex}} \anchor{base east}{\northeast\pgf@y=0pt} \anchor{north east}{\northeast} \anchor{south east}{ @@ -667,8 +687,8 @@ \advance\pgf@ya by\pgf@yc% \edef\pgf@marshal{% \noexpand\pgfpointborderrectangle - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}} - {\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}} + {\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% }% \pgf@process{\pgf@marshal}% \advance\pgf@x by\pgf@xa% @@ -690,8 +710,8 @@ % Special current bounding box rectangle: \expandafter\def\csname pgf@sh@ns@current bounding box\endcsname{rectangle} \expandafter\def\csname pgf@sh@np@current bounding box\endcsname{% - \def\southwest{\pgfpoint{\pgf@picminx}{\pgf@picminy}}% - \def\northeast{\pgfpoint{\pgf@picmaxx}{\pgf@picmaxy}}% + \def\southwest{\pgfqpoint{\pgf@picminx}{\pgf@picminy}}% + \def\northeast{\pgfqpoint{\pgf@picmaxx}{\pgf@picmaxy}}% } \expandafter\def\csname pgf@sh@nt@current bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}} \expandafter\def\csname pgf@sh@pi@current bounding box\endcsname{\pgfpictureid} @@ -700,8 +720,8 @@ % Special current path bounding box rectangle: \expandafter\def\csname pgf@sh@ns@current path bounding box\endcsname{rectangle} \expandafter\def\csname pgf@sh@np@current path bounding box\endcsname{% - \def\southwest{\pgfpoint{\pgf@pathminx}{\pgf@pathminy}}% - \def\northeast{\pgfpoint{\pgf@pathmaxx}{\pgf@pathmaxy}}% + \def\southwest{\pgfqpoint{\pgf@pathminx}{\pgf@pathminy}}% + \def\northeast{\pgfqpoint{\pgf@pathmaxx}{\pgf@pathmaxy}}% } \expandafter\def\csname pgf@sh@nt@current path bounding box\endcsname{{1}{0}{0}{1}{0pt}{0pt}} \expandafter\def\csname pgf@sh@pi@current path bounding box\endcsname{\pgfpictureid} @@ -710,8 +730,8 @@ % Special current page bounding box rectangle: \expandafter\def\csname pgf@sh@ns@current page\endcsname{rectangle} \expandafter\def\csname pgf@sh@np@current page\endcsname{% - \def\southwest{\pgfpoint{0pt}{0pt}}% - \def\northeast{\pgfpoint{\paperwidth}{\paperheight}}% + \def\southwest{\pgfqpoint{0pt}{0pt}}% + \def\northeast{\pgfqpoint{\paperwidth}{\paperheight}}% } \expandafter\def\csname pgf@sh@nt@current page\endcsname{{1}{0}{0}{1}{0pt}{0pt}} \expandafter\def\csname pgf@sh@pi@current page\endcsname{pgfpageorigin} @@ -739,18 +759,18 @@ % \pgf@ya=.5\ht\pgfnodeparttextbox% \advance\pgf@ya by.5\dp\pgfnodeparttextbox% - \setlength\pgf@yb{\pgfshapeinnerysep}% + \pgfmathsetlength\pgf@yb{\pgfshapeinnerysep}% \advance\pgf@ya by\pgf@yb% % % Caculate ``width radius'' % \pgf@xa=.5\wd\pgfnodeparttextbox% - \setlength\pgf@xb{\pgfshapeinnerxsep}% + \pgfmathsetlength\pgf@xb{\pgfshapeinnerxsep}% \advance\pgf@xa by\pgf@xb% % % Calculate length of radius vector: % - \pgf@process{\pgfpointnormalised{\pgfpoint{\pgf@xa}{\pgf@ya}}}% + \pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}% \ifdim\pgf@x>\pgf@y% \c@pgf@counta=\pgf@x% \ifnum\c@pgf@counta=0\relax% @@ -775,8 +795,8 @@ % If necessary, adjust radius so that the size requirements are % met: % - \setlength{\pgf@xb}{\pgfshapeminwidth}% - \setlength{\pgf@yb}{\pgfshapeminheight}% + \pgfmathsetlength{\pgf@xb}{\pgfshapeminwidth}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeminheight}% \ifdim\pgf@x<.5\pgf@xb% \pgf@x=.5\pgf@xb% \fi% @@ -786,8 +806,8 @@ % % Now, add larger of outer sepearations. % - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% \ifdim\pgf@xb<\pgf@yb% \advance\pgf@x by\pgf@yb% \else% @@ -799,14 +819,14 @@ % Anchors % \anchor{center}{\centerpoint} - \anchor{mid}{\centerpoint\setlength\pgf@y{.5ex}} + \anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}} \anchor{base}{\centerpoint\pgf@y=0pt} \anchor{north}{\centerpoint\advance\pgf@y by\radius} \anchor{south}{\centerpoint\advance\pgf@y by-\radius} \anchor{west}{\centerpoint\advance\pgf@x by-\radius} \anchor{east}{\centerpoint\advance\pgf@x by\radius} - \anchor{mid west}{\centerpoint\advance\pgf@x by-\radius\setlength\pgf@y{.5ex}} - \anchor{mid east}{\centerpoint\advance\pgf@x by\radius\setlength\pgf@y{.5ex}} + \anchor{mid west}{\centerpoint\advance\pgf@x by-\radius\pgfmathsetlength\pgf@y{.5ex}} + \anchor{mid east}{\centerpoint\advance\pgf@x by\radius\pgfmathsetlength\pgf@y{.5ex}} \anchor{base west}{\centerpoint\advance\pgf@x by-\radius\pgf@y=0pt} \anchor{base east}{\centerpoint\advance\pgf@x by\radius\pgf@y=0pt} \anchor{north west}{ @@ -838,8 +858,8 @@ \pgf@ya=\pgf@y% \edef\pgf@marshal{% \noexpand\pgfpointborderellipse - {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}} - {\noexpand\pgfpoint{\radius}{\radius}}% + {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}} + {\noexpand\pgfqpoint{\radius}{\radius}}% }% \pgf@marshal% \pgf@xa=\pgf@x% @@ -853,15 +873,15 @@ % Background path % \backgroundpath{ - \@tempdima=\radius% - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% + \pgfutil@tempdima=\radius% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% \ifdim\pgf@xb<\pgf@yb% - \advance\@tempdima by-\pgf@yb% + \advance\pgfutil@tempdima by-\pgf@yb% \else% - \advance\@tempdima by-\pgf@xb% + \advance\pgfutil@tempdima by-\pgf@xb% \fi% - \pgfpathcircle{\centerpoint}{\@tempdima}% + \pgfpathcircle{\centerpoint}{\pgfutil@tempdima}% } } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex index e20b2ca3c9e..5259624c57a 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfbasesnakes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasesnakes.code.tex,v 1.10 2006/10/16 22:32:58 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfbasesnakes.code.tex,v 1.11 2007/03/09 17:49:32 tantau Exp $ \newdimen\pgfsnakeremainingdistance \newdimen\pgfsnakecompleteddistance @@ -174,9 +174,9 @@ } \def\pgf@snake@invoke#1#2{% - \setlength\pgf@xa{#2}% + \pgfmathsetlength\pgf@xa{#2}% {% - \edef\pgf@marshal{\noexpand\pgfpathsnakealongvector{#1}{\the\pgf@xa}{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}}% + \edef\pgf@marshal{\noexpand\pgfpathsnakealongvector{#1}{\the\pgf@xa}{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}}% \pgf@marshal% }% \advance\pgfsnakecompleteddistance by\pgf@xa% @@ -246,7 +246,7 @@ \expandafter\let\expandafter\pgf@snake@current@state\expandafter=\csname pgf@snake@@#1@initial\endcsname% \def\pgf@snake@name{#1}% \pgfsnakecompleteddistance=0pt% - \setlength\pgfsnakeremainingdistance{#2}% + \pgfmathsetlength\pgfsnakeremainingdistance{#2}% \pgf@snake@run% % Last step: {% @@ -289,7 +289,7 @@ \csname pgf@snake@@\pgf@snake@name @\pgf@snake@current@state @code\endcsname% }% % next, do transformation and update - \setlength{\pgf@xa}{\pgf@snake@width}% + \pgfmathsetlength{\pgf@xa}{\pgf@snake@width}% \advance\pgfsnakeremainingdistance by-\pgf@xa% \advance\pgfsnakecompleteddistance by\pgf@xa% % Next iteration: @@ -310,7 +310,7 @@ \def\pgf@snake@switch@if#1to #2\pgf@stop{% \ifx\pgf@snake@next\relax% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \ifdim\pgfsnakeremainingdistance<\pgf@x% \def\pgf@snake@current@state{#2}% \let\pgf@snake@next=\pgf@snake@run% @@ -328,7 +328,7 @@ \pgfdeclaresnake{lineto}{final} { \state{final} - { \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } + { \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -341,7 +341,7 @@ \pgfdeclaresnake{moveto}{final} { \state{final} - { \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } + { \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex index 80e932c4571..8cbb060e1c1 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex @@ -7,11 +7,12 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcore.code.tex,v 1.4 2006/10/11 15:22:25 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcore.code.tex,v 1.5 2007/03/09 17:49:32 tantau Exp $ \newif\ifpgf@draftmode -\input pgfcoremath.code.tex +\input pgfmath.code.tex + \input pgfcorepoints.code.tex \input pgfcorepathconstruct.code.tex \input pgfcorepathusage.code.tex diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex index bbbe9580b26..bdf4906c1be 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorearrows.code.tex,v 1.6 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorearrows.code.tex,v 1.8 2007/06/07 07:41:10 tantau Exp $ % Sets the end arrow @@ -186,8 +186,8 @@ }% } -\def\pgfarrowsleftextend#1{\setlength\pgf@xa{#1}} -\def\pgfarrowsrightextend#1{\setlength\pgf@xb{#1}} +\def\pgfarrowsleftextend#1{\pgfmathsetlength\pgf@xa{#1}} +\def\pgfarrowsrightextend#1{\pgfmathsetlength\pgf@xb{#1}} \def\pgf@arrows@repeat#1#2{% \edef\pgf@arrows@marshal{\noexpand\let\expandafter\noexpand\csname#2\endcsname=\expandafter\noexpand\csname#1\endcsname}% @@ -283,7 +283,7 @@ {\expandafter\noexpand\csname pgf@arrow@code@#7\endcsname}% \noexpand\endpgfscope% {% - \noexpand\setlength\pgf@x{#1}% + \noexpand\pgfmathsetlength\pgf@x{#1}% \noexpand\pgf@process{\expandafter\noexpand\csname pgf@arrow@left@#7\endcsname}% \noexpand\pgf@process{\expandafter\noexpand\csname pgf@arrow@right@#5\endcsname}% \pgf@x=-\pgf@x% @@ -293,7 +293,7 @@ \pgf@arrows@repeat{pgf@arrow@right@#7}{pgf@arrow@right@#3}% \expandafter\def\csname pgf@arrow@left@#3\endcsname{% \pgf@process{% - \setlength\pgf@y{#1}% + \pgfmathsetlength\pgf@y{#1}% \advance\pgf@x by\pgf@y% \pgf@process{\csname pgf@arrow@left@#7\endcsname}% \pgf@process{\csname pgf@arrow@right@#5\endcsname}% @@ -317,7 +317,7 @@ \expandafter\edef\csname pgf@arrow@code@#3\endcsname{% \noexpand\pgfscope% {% - \noexpand\setlength\pgf@x{#1}% + \noexpand\pgfmathsetlength\pgf@x{#1}% \pgf@process{\expandafter\noexpand\csname pgf@arrow@left@#7\endcsname}% \pgf@process{\expandafter\noexpand\csname pgf@arrow@right@#5\endcsname}% \noexpand\pgflowlevel{\noexpand\pgftransformxshift{\pgf@x}}% @@ -329,7 +329,7 @@ \pgf@arrows@repeat{pgf@arrow@left@#7}{pgf@arrow@left@#3}% \expandafter\def\csname pgf@arrow@right@#3\endcsname{% \pgf@process{% - \setlength\pgf@y{#1}% + \pgfmathsetlength\pgf@y{#1}% \advance\pgf@x by\pgf@y% \pgf@process{\csname pgf@arrow@left@#7\endcsname}% \pgf@process{\csname pgf@arrow@right@#5\endcsname}% @@ -373,18 +373,18 @@ \pgfarrowsdeclare{stealth}{stealth} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-3\@tempdima} - \pgfarrowsrightextend{5\@tempdima} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-3\pgfutil@tempdima} + \pgfarrowsrightextend{+5\pgfutil@tempdima} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfpathmoveto{\pgfpoint{5\@tempdima}{0pt}} - \pgfpathlineto{\pgfpoint{-3\@tempdima}{4\@tempdima}} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfpathmoveto{\pgfqpoint{5\pgfutil@tempdima}{0pt}} + \pgfpathlineto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathlineto{\pgfpointorigin} - \pgfpathlineto{\pgfpoint{-3\@tempdima}{-4\@tempdima}} + \pgfpathlineto{\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfusepathqfill } @@ -399,57 +399,57 @@ \pgfarrowsdeclare{to}{to} { - \@tempdima=-0.84pt% - \advance\@tempdima by-1.3\pgflinewidth% - \@tempdimb=0.21pt% - \advance\@tempdimb by.625\pgflinewidth% - \pgfarrowsleftextend{\@tempdima} - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=-0.84pt% + \advance\pgfutil@tempdima by-1.3\pgflinewidth% + \pgfutil@tempdimb=0.21pt% + \advance\pgfutil@tempdimb by.625\pgflinewidth% + \pgfarrowsleftextend{+\pgfutil@tempdima} + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% \pgfsetlinewidth{0.8\pgflinewidth} - \pgfsetdash{}{0pt} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{-3\@tempdima}{4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-2.75\@tempdima}{2.5\@tempdima}} - {\pgfpoint{0pt}{0.25\@tempdima}} - {\pgfpoint{0.75\@tempdima}{0pt}} + {\pgfqpoint{-2.75\pgfutil@tempdima}{2.5\pgfutil@tempdima}} + {\pgfqpoint{0pt}{0.25\pgfutil@tempdima}} + {\pgfqpoint{0.75\pgfutil@tempdima}{0pt}} \pgfpathcurveto - {\pgfpoint{0pt}{-0.25\@tempdima}} - {\pgfpoint{-2.75\@tempdima}{-2.5\@tempdima}} - {\pgfpoint{-3\@tempdima}{-4\@tempdima}} + {\pgfqpoint{0pt}{-0.25\pgfutil@tempdima}} + {\pgfqpoint{-2.75\pgfutil@tempdima}{-2.5\pgfutil@tempdima}} + {\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfusepathqstroke } \pgfarrowsdeclare{to reversed}{to reversed} { - \@tempdima=-0.21pt% - \advance\@tempdima by-0.475\pgflinewidth% - \@tempdimb=0.98pt% - \advance\@tempdimb by1.45\pgflinewidth% - \pgfarrowsleftextend{\@tempdima} - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=-0.21pt% + \advance\pgfutil@tempdima by-0.475\pgflinewidth% + \pgfutil@tempdimb=0.98pt% + \advance\pgfutil@tempdimb by1.45\pgflinewidth% + \pgfarrowsleftextend{+\pgfutil@tempdima} + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfsetlinewidth{0.8\pgflinewidth} - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfsetlinewidth{+0.8\pgflinewidth} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{3.5\@tempdima}{4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{3.5\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{3.25\@tempdima}{2.5\@tempdima}} - {\pgfpoint{0.5\@tempdima}{0.25\@tempdima}} - {\pgfpoint{-0.25\@tempdima}{0\@tempdima}} + {\pgfqpoint{3.25\pgfutil@tempdima}{2.5\pgfutil@tempdima}} + {\pgfqpoint{0.5\pgfutil@tempdima}{0.25\pgfutil@tempdima}} + {\pgfqpoint{-0.25\pgfutil@tempdima}{0\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{0.5\@tempdima}{-0.25\@tempdima}} - {\pgfpoint{3.25\@tempdima}{-2.5\@tempdima}} - {\pgfpoint{3.5\@tempdima}{-4\@tempdima}} + {\pgfqpoint{0.5\pgfutil@tempdima}{-0.25\pgfutil@tempdima}} + {\pgfqpoint{3.25\pgfutil@tempdima}{-2.5\pgfutil@tempdima}} + {\pgfqpoint{3.5\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfusepathqstroke } @@ -463,24 +463,24 @@ \pgfarrowsdeclare{latex}{latex} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-1\@tempdima} - \pgfarrowsrightextend{9\@tempdima} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-1\pgfutil@tempdima} + \pgfarrowsrightextend{+9\pgfutil@tempdima} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfpathmoveto{\pgfpoint{9\@tempdima}{0pt}} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfpathmoveto{\pgfqpoint{9\pgfutil@tempdima}{0pt}} \pgfpathcurveto - {\pgfpoint{6.3333\@tempdima}{.5\@tempdima}} - {\pgfpoint{2\@tempdima}{2\@tempdima}} - {\pgfpoint{-1\@tempdima}{3.75\@tempdima}} - \pgfpathlineto{\pgfpoint{-1\@tempdima}{-3.75\@tempdima}} + {\pgfqpoint{6.3333\pgfutil@tempdima}{.5\pgfutil@tempdima}} + {\pgfqpoint{2\pgfutil@tempdima}{2\pgfutil@tempdima}} + {\pgfqpoint{-1\pgfutil@tempdima}{3.75\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-1\pgfutil@tempdima}{-3.75\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{2\@tempdima}{-2\@tempdima}} - {\pgfpoint{6.3333\@tempdima}{-.5\@tempdima}} - {\pgfpoint{9\@tempdima}{0pt}} + {\pgfqpoint{2\pgfutil@tempdima}{-2\pgfutil@tempdima}} + {\pgfqpoint{6.3333\pgfutil@tempdima}{-.5\pgfutil@tempdima}} + {\pgfqpoint{9\pgfutil@tempdima}{0pt}} \pgfusepathqfill } \pgfarrowsdeclarereversed{latex reversed}{latex reversed}{latex}{latex} @@ -495,16 +495,16 @@ \pgfarrowsdeclare{|}{|} { - \pgfarrowsleftextend{-0.25\pgflinewidth} - \pgfarrowsrightextend{.75\pgflinewidth} + \pgfarrowsleftextend{+-0.25\pgflinewidth} + \pgfarrowsrightextend{+.75\pgflinewidth} } { - \@tempdima=2pt% - \advance\@tempdima by1.5\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=2pt% + \advance\pgfutil@tempdima by1.5\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetrectcap - \pgfpathmoveto{\pgfpoint{0.25\pgflinewidth}{-\@tempdima}} - \pgfpathlineto{\pgfpoint{0.25\pgflinewidth}{\@tempdima}} + \pgfpathmoveto{\pgfqpoint{0.25\pgflinewidth}{-\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.25\pgflinewidth}{\pgfutil@tempdima}} \pgfusepathqstroke } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex index 236dc6a80cb..38f60266178 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex,v 1.6 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex,v 1.7 2007/03/09 17:49:32 tantau Exp $ % Globals @@ -23,7 +23,7 @@ % \pgfsetlinewidth{3pt} \def\pgfsetlinewidth#1{% - \setlength\pgflinewidth{#1}% + \pgfmathsetlength\pgflinewidth{#1}% \global\pgflinewidth=\pgflinewidth% \pgfsys@setlinewidth{\the\pgflinewidth}% \ignorespaces} @@ -57,7 +57,7 @@ \def\pgf@temp{}% \def\pgf@next{\pgf@strip}% \pgf@strip#1{pgf@stop}% - \setlength\pgf@x{#2}% + \pgfmathsetlength\pgf@x{#2}% \pgfsys@setdash{\pgf@temp}{\the\pgf@x}% \ignorespaces} @@ -66,7 +66,7 @@ \ifx\pgf@@temp\pgf@stop% \let\pgf@next=\relax% \else% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \ifx\pgf@temp\pgfutil@empty% \edef\pgf@temp{\the\pgf@x}% \else% diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex deleted file mode 100644 index 2a0187b13a8..00000000000 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoremath.code.tex +++ /dev/null @@ -1,271 +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. - -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoremath.code.tex,v 1.3 2006/10/15 15:54:25 tantau Exp $ - - -% Mathematical stuff - - -% Internal registers -\ifx\pgflatex@setcounter\@undefined - \def\pgflatex@setcounter{\setcounter} -\fi - -\newcount\c@pgf@counta -\newcount\c@pgf@countb -\newcount\c@pgf@countc -\newcount\c@pgf@countd - - -% Internal setting function -\def\pgf@setmath#1#2{\edef\pgf@temp{#2pt}\csname pgf@#1\endcsname=\pgf@temp} - - -% Calculate sin of a degree -% -% #1 = degree -% -% x = sin of #1 -% -% Example: -% -% \pgfsin{30} - -\def\pgfsin#1{% - \pgf@setcounter{pgf@counta}{#1}\relax% - \c@pgf@countb=90% - \advance\c@pgf@countb by-\c@pgf@counta% - \ifnum\c@pgf@countb>179% - \advance\c@pgf@countb by-360% - \else% - \ifnum\c@pgf@countb<-179% - \advance\c@pgf@countb by360% - \fi\fi% - \ifnum\c@pgf@countb<0\relax% - \c@pgf@countb=-\c@pgf@countb% - \fi% - \pgf@setmath{x}{\csname pgf@cos\the\c@pgf@countb\endcsname}} - - -% Calculate cos of a degree -% -% #1 = degree -% -% x = cos of #1 -% -% Example: -% -% \pgfcos{30} - -\def\pgfcos#1{% - \pgf@setcounter{pgf@counta}{#1}% - \ifnum\c@pgf@counta>179% - \advance\c@pgf@counta by-360% - \else% - \ifnum\c@pgf@counta<-179% - \advance\c@pgf@counta by360% - \fi\fi% - \ifnum\c@pgf@counta<0\relax% - \c@pgf@counta=-\c@pgf@counta% - \fi% - \pgf@setmath{x}{\csname pgf@cos\the\c@pgf@counta\endcsname}} - - - -% Calculate sin and cos of a degree -% -% #1 = degree -% -% x = cos of #1 -% y = sin of #1 -% -% Example: -% -% \pgfcos{30} - -\def\pgfsincos#1{% - \pgf@setcounter{pgf@counta}{#1}% - \ifnum\c@pgf@counta>179% - \advance\c@pgf@counta by-360% - \else% - \ifnum\c@pgf@counta<-179% - \advance\c@pgf@counta by360% - \fi\fi\relax% - \c@pgf@countb=\c@pgf@counta\relax% - \ifnum\c@pgf@counta<0\relax% - \c@pgf@counta=-\c@pgf@counta% - \fi\relax% - \pgf@setmath{y}{\csname pgf@cos\the\c@pgf@counta\endcsname}% - \c@pgf@counta=90% - \advance\c@pgf@counta by-\c@pgf@countb\relax% - \ifnum\c@pgf@counta>179% - \advance\c@pgf@counta by-360% - \else% - \ifnum\c@pgf@counta<-179% - \advance\c@pgf@counta by360% - \fi\fi\relax% - \ifnum\c@pgf@counta<0\relax% - \c@pgf@counta=-\c@pgf@counta% - \fi\relax% - \pgf@setmath{x}{\csname pgf@cos\the\c@pgf@counta\endcsname}} - - -% Internal tables - -\def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}} -\pgf@def{cos}{0}{1} \pgf@def{cos}{1}{0.999848} -\pgf@def{cos}{2}{0.999391} \pgf@def{cos}{3}{0.99863} -\pgf@def{cos}{4}{0.997564} \pgf@def{cos}{5}{0.996195} -\pgf@def{cos}{6}{0.994522} \pgf@def{cos}{7}{0.992546} -\pgf@def{cos}{8}{0.990268} \pgf@def{cos}{9}{0.987688} -\pgf@def{cos}{10}{0.984808} \pgf@def{cos}{11}{0.981627} -\pgf@def{cos}{12}{0.978148} \pgf@def{cos}{13}{0.97437} -\pgf@def{cos}{14}{0.970296} \pgf@def{cos}{15}{0.965926} -\pgf@def{cos}{16}{0.961262} \pgf@def{cos}{17}{0.956305} -\pgf@def{cos}{18}{0.951057} \pgf@def{cos}{19}{0.945519} -\pgf@def{cos}{20}{0.939693} \pgf@def{cos}{21}{0.93358} -\pgf@def{cos}{22}{0.927184} \pgf@def{cos}{23}{0.920505} -\pgf@def{cos}{24}{0.913545} \pgf@def{cos}{25}{0.906308} -\pgf@def{cos}{26}{0.898794} \pgf@def{cos}{27}{0.891007} -\pgf@def{cos}{28}{0.882948} \pgf@def{cos}{29}{0.87462} -\pgf@def{cos}{30}{0.866025} \pgf@def{cos}{31}{0.857167} -\pgf@def{cos}{32}{0.848048} \pgf@def{cos}{33}{0.838671} -\pgf@def{cos}{34}{0.829038} \pgf@def{cos}{35}{0.819152} -\pgf@def{cos}{36}{0.809017} \pgf@def{cos}{37}{0.798636} -\pgf@def{cos}{38}{0.788011} \pgf@def{cos}{39}{0.777146} -\pgf@def{cos}{40}{0.766044} \pgf@def{cos}{41}{0.75471} -\pgf@def{cos}{42}{0.743145} \pgf@def{cos}{43}{0.731354} -\pgf@def{cos}{44}{0.71934} \pgf@def{cos}{45}{0.707107} -\pgf@def{cos}{46}{0.694658} \pgf@def{cos}{47}{0.681998} -\pgf@def{cos}{48}{0.669131} \pgf@def{cos}{49}{0.656059} -\pgf@def{cos}{50}{0.642788} \pgf@def{cos}{51}{0.62932} -\pgf@def{cos}{52}{0.615661} \pgf@def{cos}{53}{0.601815} -\pgf@def{cos}{54}{0.587785} \pgf@def{cos}{55}{0.573576} -\pgf@def{cos}{56}{0.559193} \pgf@def{cos}{57}{0.544639} -\pgf@def{cos}{58}{0.529919} \pgf@def{cos}{59}{0.515038} -\pgf@def{cos}{60}{0.5} \pgf@def{cos}{61}{0.48481} -\pgf@def{cos}{62}{0.469472} \pgf@def{cos}{63}{0.45399} -\pgf@def{cos}{64}{0.438371} \pgf@def{cos}{65}{0.422618} -\pgf@def{cos}{66}{0.406737} \pgf@def{cos}{67}{0.390731} -\pgf@def{cos}{68}{0.374607} \pgf@def{cos}{69}{0.358368} -\pgf@def{cos}{70}{0.34202} \pgf@def{cos}{71}{0.325568} -\pgf@def{cos}{72}{0.309017} \pgf@def{cos}{73}{0.292372} -\pgf@def{cos}{74}{0.275637} \pgf@def{cos}{75}{0.258819} -\pgf@def{cos}{76}{0.241922} \pgf@def{cos}{77}{0.224951} -\pgf@def{cos}{78}{0.207912} \pgf@def{cos}{79}{0.190809} -\pgf@def{cos}{80}{0.173648} \pgf@def{cos}{81}{0.156434} -\pgf@def{cos}{82}{0.139173} \pgf@def{cos}{83}{0.121869} -\pgf@def{cos}{84}{0.104528} \pgf@def{cos}{85}{0.0871557} -\pgf@def{cos}{86}{0.0697565} \pgf@def{cos}{87}{0.052336} -\pgf@def{cos}{88}{0.0348995} \pgf@def{cos}{89}{0.0174524} -\pgf@def{cos}{90}{0} \pgf@def{cos}{91}{-0.0174524} -\pgf@def{cos}{92}{-0.0348995} \pgf@def{cos}{93}{-0.052336} -\pgf@def{cos}{94}{-0.0697565} \pgf@def{cos}{95}{-0.0871557} -\pgf@def{cos}{96}{-0.104528} \pgf@def{cos}{97}{-0.121869} -\pgf@def{cos}{98}{-0.139173} \pgf@def{cos}{99}{-0.156434} -\pgf@def{cos}{100}{-0.173648} \pgf@def{cos}{101}{-0.190809} -\pgf@def{cos}{102}{-0.207912} \pgf@def{cos}{103}{-0.224951} -\pgf@def{cos}{104}{-0.241922} \pgf@def{cos}{105}{-0.258819} -\pgf@def{cos}{106}{-0.275637} \pgf@def{cos}{107}{-0.292372} -\pgf@def{cos}{108}{-0.309017} \pgf@def{cos}{109}{-0.325568} -\pgf@def{cos}{110}{-0.34202} \pgf@def{cos}{111}{-0.358368} -\pgf@def{cos}{112}{-0.374607} \pgf@def{cos}{113}{-0.390731} -\pgf@def{cos}{114}{-0.406737} \pgf@def{cos}{115}{-0.422618} -\pgf@def{cos}{116}{-0.438371} \pgf@def{cos}{117}{-0.45399} -\pgf@def{cos}{118}{-0.469472} \pgf@def{cos}{119}{-0.48481} -\pgf@def{cos}{120}{-0.5} \pgf@def{cos}{121}{-0.515038} -\pgf@def{cos}{122}{-0.529919} \pgf@def{cos}{123}{-0.544639} -\pgf@def{cos}{124}{-0.559193} \pgf@def{cos}{125}{-0.573576} -\pgf@def{cos}{126}{-0.587785} \pgf@def{cos}{127}{-0.601815} -\pgf@def{cos}{128}{-0.615661} \pgf@def{cos}{129}{-0.62932} -\pgf@def{cos}{130}{-0.642788} \pgf@def{cos}{131}{-0.656059} -\pgf@def{cos}{132}{-0.669131} \pgf@def{cos}{133}{-0.681998} -\pgf@def{cos}{134}{-0.694658} \pgf@def{cos}{135}{-0.707107} -\pgf@def{cos}{136}{-0.71934} \pgf@def{cos}{137}{-0.731354} -\pgf@def{cos}{138}{-0.743145} \pgf@def{cos}{139}{-0.75471} -\pgf@def{cos}{140}{-0.766044} \pgf@def{cos}{141}{-0.777146} -\pgf@def{cos}{142}{-0.788011} \pgf@def{cos}{143}{-0.798636} -\pgf@def{cos}{144}{-0.809017} \pgf@def{cos}{145}{-0.819152} -\pgf@def{cos}{146}{-0.829038} \pgf@def{cos}{147}{-0.838671} -\pgf@def{cos}{148}{-0.848048} \pgf@def{cos}{149}{-0.857167} -\pgf@def{cos}{150}{-0.866025} \pgf@def{cos}{151}{-0.87462} -\pgf@def{cos}{152}{-0.882948} \pgf@def{cos}{153}{-0.891007} -\pgf@def{cos}{154}{-0.898794} \pgf@def{cos}{155}{-0.906308} -\pgf@def{cos}{156}{-0.913545} \pgf@def{cos}{157}{-0.920505} -\pgf@def{cos}{158}{-0.927184} \pgf@def{cos}{159}{-0.93358} -\pgf@def{cos}{160}{-0.939693} \pgf@def{cos}{161}{-0.945519} -\pgf@def{cos}{162}{-0.951057} \pgf@def{cos}{163}{-0.956305} -\pgf@def{cos}{164}{-0.961262} \pgf@def{cos}{165}{-0.965926} -\pgf@def{cos}{166}{-0.970296} \pgf@def{cos}{167}{-0.97437} -\pgf@def{cos}{168}{-0.978148} \pgf@def{cos}{169}{-0.981627} -\pgf@def{cos}{170}{-0.984808} \pgf@def{cos}{171}{-0.987688} -\pgf@def{cos}{172}{-0.990268} \pgf@def{cos}{173}{-0.992546} -\pgf@def{cos}{174}{-0.994522} \pgf@def{cos}{175}{-0.996195} -\pgf@def{cos}{176}{-0.997564} \pgf@def{cos}{177}{-0.99863} -\pgf@def{cos}{178}{-0.999391} \pgf@def{cos}{179}{-0.999848} -\pgf@def{cos}{180}{-1} - - - -\pgf@def{cosfrac}{0}{1} -\pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998} -\pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201} -\pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205} -\pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815} -\pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037} -\pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877} -\pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342} -\pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441} -\pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183} -\pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581} -\pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644} -\pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387} -\pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823} -\pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964} -\pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826} -\pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424} -\pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773} -\pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887} -\pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784} -\pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477} -\pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982} -\pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315} -\pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849} -\pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523} -\pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427} -\pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217} -\pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905} -\pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506} -\pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031} -\pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493} -\pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903} -\pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271} -\pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609} -\pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927} -\pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232} -\pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534} -\pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842} -\pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162} -\pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502} -\pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869} -\pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268} -\pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705} -\pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185} -\pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714} -\pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294} -\pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931} -\pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628} -\pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387} -\pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213} -\pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107} - - - -\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex index ad0a8fff031..2886ffa8a53 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex,v 1.6 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex,v 1.9 2007/06/07 07:41:10 tantau Exp $ \newdimen\pgf@path@lastx @@ -218,8 +218,8 @@ % \pgfstroke \def\pgfpatharc#1#2#3{% - \pgf@setcounter{pgf@countc}{#1}% - \pgf@setcounter{pgf@countd}{#2}% + \pgfmathsetcounter{pgf@countc}{#1}% + \pgfmathsetcounter{pgf@countd}{#2}% \ifnum\c@pgf@countc>360\relax% \advance\c@pgf@countc by-360\relax% \fi% @@ -233,21 +233,21 @@ \advance\c@pgf@countd by360\relax% \fi% \loop% - \@tempcnta=\c@pgf@countc\relax% - \advance\@tempcnta by-\c@pgf@countd\relax% - \ifnum\@tempcnta<0\relax% - \@tempcnta=-\@tempcnta\relax% + \pgfutil@tempcnta=\c@pgf@countc\relax% + \advance\pgfutil@tempcnta by-\c@pgf@countd\relax% + \ifnum\pgfutil@tempcnta<0\relax% + \pgfutil@tempcnta=-\pgfutil@tempcnta\relax% \fi% - \ifnum\@tempcnta>90\relax% + \ifnum\pgfutil@tempcnta>90\relax% \ifnum\c@pgf@countd>\c@pgf@countc\relax% - \@tempcnta=\c@pgf@countc\relax% - \advance\@tempcnta by 90\relax% - \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\@tempcnta}{#3}% + \pgfutil@tempcnta=\c@pgf@countc\relax% + \advance\pgfutil@tempcnta by 90\relax% + \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\pgfutil@tempcnta}{#3}% \advance\c@pgf@countc by 90\relax% \else - \@tempcnta=\c@pgf@countc\relax% - \advance\@tempcnta by -90\relax% - \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\@tempcnta}{#3}% + \pgfutil@tempcnta=\c@pgf@countc\relax% + \advance\pgfutil@tempcnta by -90\relax% + \expandafter\pgf@arc\expandafter{\expandafter\c@pgf@countc\expandafter}\expandafter{\the\pgfutil@tempcnta}{#3}% \advance\c@pgf@countc by -90\relax% \fi% \repeat% @@ -256,53 +256,53 @@ } \def\pgf@arc#1#2#3{% - \pgfutil@in@/{#3}% + \pgfutil@in@{and }{#3}% \ifpgfutil@in@% \pgf@@arc{#1}{#2}#3\@@% \else - \pgf@@arc{#1}{#2}#3/#3\@@% + \pgf@@arc{#1}{#2}#3and #3\@@% \fi% } -\def\pgf@@arc#1#2#3/#4\@@{% - \setlength{\@tempdima}{#3}% - \setlength{\@tempdimb}{#4}% - \@tempcnta=#1\relax% - \@tempcntb=#2\relax% - \advance\@tempcntb by-\@tempcnta\relax% - \ifnum\@tempcntb<0\relax% - \@tempcntb=-\@tempcntb\relax% +\def\pgf@@arc#1#2#3and #4\@@{% + \pgfmathsetlength{\pgfutil@tempdima}{#3}% + \pgfmathsetlength{\pgfutil@tempdimb}{#4}% + \pgfutil@tempcnta=#1\relax% + \pgfutil@tempcntb=#2\relax% + \advance\pgfutil@tempcntb by-\pgfutil@tempcnta\relax% + \ifnum\pgfutil@tempcntb<0\relax% + \pgfutil@tempcntb=-\pgfutil@tempcntb\relax% \fi% - \ifnum\@tempcntb>85\relax% hackery to correct the control points - \@tempdima=0.0555\@tempdima\relax% - \@tempdimb=0.0555\@tempdimb\relax% + \ifnum\pgfutil@tempcntb>85\relax% hackery to correct the control points + \pgfutil@tempdima=0.0555\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.0555\pgfutil@tempdimb\relax% \else% - \ifnum\@tempcntb>75\relax% - \@tempdima=0.055\@tempdima\relax% - \@tempdimb=0.055\@tempdimb\relax% + \ifnum\pgfutil@tempcntb>75\relax% + \pgfutil@tempdima=0.055\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.055\pgfutil@tempdimb\relax% \else% - \ifnum\@tempcntb>60\relax% - \@tempdima=0.0545\@tempdima\relax% - \@tempdimb=0.0545\@tempdimb\relax% + \ifnum\pgfutil@tempcntb>60\relax% + \pgfutil@tempdima=0.0545\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.0545\pgfutil@tempdimb\relax% \else% - \@tempdima=0.054\@tempdima\relax% - \@tempdimb=0.054\@tempdimb\relax% + \pgfutil@tempdima=0.054\pgfutil@tempdima\relax% + \pgfutil@tempdimb=0.054\pgfutil@tempdimb\relax% \fi% \fi% \fi - \@tempdima=\@tempcntb\@tempdima\relax% - \divide\@tempdima by 9\relax% - \@tempdimb=\@tempcntb\@tempdimb\relax% - \divide\@tempdimb by 9\relax% - %.. controls +(\@tempcnta+90:\@tempdima) and +(\@tempcntb-90:\@tempdima) .. +(-(#1:#3)+(#2:#3))% + \pgfutil@tempdima=\pgfutil@tempcntb\pgfutil@tempdima\relax% + \divide\pgfutil@tempdima by 9\relax% + \pgfutil@tempdimb=\pgfutil@tempcntb\pgfutil@tempdimb\relax% + \divide\pgfutil@tempdimb by 9\relax% + %.. controls +(\pgfutil@tempcnta+90:\pgfutil@tempdima) and +(\pgfutil@tempcntb-90:\pgfutil@tempdima) .. +(-(#1:#3)+(#2:#3))% % store first support vector in xa/ya: - \@tempcnta=#1\relax% + \pgfutil@tempcnta=#1\relax% \ifnum#2>#1\relax% - \advance\@tempcnta by 90\relax% + \advance\pgfutil@tempcnta by 90\relax% \else% - \advance\@tempcnta by -90\relax% + \advance\pgfutil@tempcnta by -90\relax% \fi% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{\@tempdima/\@tempdimb}}% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{\pgfutil@tempdima and \pgfutil@tempdimb}}% \advance\pgf@x by-\pgf@pt@x% \advance\pgf@y by-\pgf@pt@y% \pgf@xa=\pgf@path@lastx% @@ -310,24 +310,24 @@ \advance\pgf@xa by \pgf@x% \advance\pgf@ya by \pgf@y% % store target in xb/yb: - \@tempcnta=#1\relax% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{#3/#4}}% + \pgfutil@tempcnta=#1\relax% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{#3and #4}}% \pgf@xb=\pgf@path@lastx% \pgf@yb=\pgf@path@lasty% \advance\pgf@xb by -\pgf@x% \advance\pgf@yb by -\pgf@y% - \@tempcnta=#2\relax% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{#3/#4}}% + \pgfutil@tempcnta=#2\relax% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{#3and #4}}% \advance\pgf@xb by \pgf@x% \advance\pgf@yb by \pgf@y% % store second support xc/yc: - \@tempcnta=#2\relax% + \pgfutil@tempcnta=#2\relax% \ifnum#2>#1\relax% - \advance\@tempcnta by -90\relax% + \advance\pgfutil@tempcnta by -90\relax% \else% - \advance\@tempcnta by 90\relax% + \advance\pgfutil@tempcnta by 90\relax% \fi% - \pgfpointtransformed{\pgfpointpolar{\@tempcnta}{\@tempdima/\@tempdimb}}% + \pgfpointtransformed{\pgfpointpolar{\pgfutil@tempcnta}{\pgfutil@tempdima and \pgfutil@tempdimb}}% \advance\pgf@x by-\pgf@pt@x% \advance\pgf@y by-\pgf@pt@y% \pgf@xc=\pgf@xb\relax% @@ -554,12 +554,12 @@ \pgf@yb=\pgf@y% \advance\pgf@xa by\pgf@xb% \advance\pgf@ya by\pgf@yb% - \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}% - \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}% - \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}% - \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}% + \pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}}% + \pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@ya}}% + \pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}}% + \pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@yb}}% \pgfpathclose% - \pgfpathmoveto{\pgfpoint{\pgf@xb}{\pgf@yb}}% + \pgfpathmoveto{\pgfqpoint{\pgf@xb}{\pgf@yb}}% } % Append a rectangle to the current path @@ -579,7 +579,7 @@ \pgf@process{#1}% \advance\pgf@xc by-\pgf@x% \advance\pgf@yc by-\pgf@y% - \pgfpathrectangle{#1}{\pgfpoint{\pgf@xc}{\pgf@yc}}% + \pgfpathrectangle{#1}{\pgfqpoint{\pgf@xc}{\pgf@yc}}% } @@ -601,8 +601,8 @@ % \pgfsetlinewidth{0.4pt} % \pgfgrid[stepx=1cm,stepy=1cm]{\pgfxy(0,0)}{\pgfxy(3,2)} -\define@key{pgfbase}{stepx}{\setlength{\pgf@x}{#1}\relax} -\define@key{pgfbase}{stepy}{\setlength{\pgf@y}{#1}\relax} +\define@key{pgfbase}{stepx}{\pgfmathsetlength{\pgf@x}{#1}\relax} +\define@key{pgfbase}{stepy}{\pgfmathsetlength{\pgf@y}{#1}\relax} \define@key{pgfbase}{step}{\pgf@process{#1}} \def\pgfpathgrid{\pgfutil@ifnextchar[{\pgf@pathgrid}{\pgf@pathgrid[]}} @@ -774,9 +774,9 @@ \pgf@pt@x=\pgf@path@lastx% \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.1125\pgf@xc}{.225\pgf@yc}}% found by trial and error - {\pgfpoint{.5\pgf@xc}{\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.1125\pgf@xc}{.225\pgf@yc}}% found by trial and error + {\pgfqpoint{.5\pgf@xc}{\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% \fi% }% @@ -787,9 +787,9 @@ \pgf@pt@x=\pgf@path@lastx% \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.5\pgf@xc}{0\pgf@yc}}% found by trial and error - {\pgfpoint{.8875\pgf@xc}{.775\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.5\pgf@xc}{0\pgf@yc}}% found by trial and error + {\pgfqpoint{.8875\pgf@xc}{.775\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% \fi% }% @@ -822,9 +822,9 @@ \pgf@pt@x=\pgf@path@lastx% evil trickery to transform to the last point \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.31830988618\pgf@xc}{.5\pgf@yc}}% found by trial and error - {\pgfpoint{.63502822294\pgf@xc}{\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.31831\pgf@xc}{.5\pgf@yc}}% found by trial and error + {\pgfqpoint{.63503\pgf@xc}{\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% } @@ -847,9 +847,9 @@ \pgf@pt@x=\pgf@path@lastx% evil trickery to transform to the last point \pgf@pt@y=\pgf@path@lasty% \pgfpathcurveto% - {\pgfpoint{.36497177706\pgf@xc}{0pt}}% found by trial and error - {\pgfpoint{.68169011382\pgf@xc}{.5\pgf@yc}}% found by trial and error - {\pgfpoint{\pgf@xc}{\pgf@yc}}% + {\pgfqpoint{.36497\pgf@xc}{0pt}}% found by trial and error + {\pgfqpoint{.68169\pgf@xc}{.5\pgf@yc}}% found by trial and error + {\pgfqpoint{\pgf@xc}{\pgf@yc}}% }% } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex index a913b30d52a..072585ba3a8 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex,v 1.5 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex,v 1.6 2007/03/09 17:49:32 tantau Exp $ @@ -103,7 +103,7 @@ } \def\pgf@extractprocessorfirst#1#2#3#4{% - \def\pgfpointfirstonpath{\pgfpoint{#2}{#3}}% + \def\pgfpointfirstonpath{\pgfqpoint{#2}{#3}}% \ifx#4\pgf@stop% % pretty short path... \let\pgfpointsecondonpath=\pgfpointfirstonpath% @@ -126,7 +126,7 @@ \pgf@next#1% } \def\pgf@@extractprocessorsecond#1#2#3#4{% - \def\pgfpointsecondonpath{\pgfpoint{#2}{#3}}% + \def\pgfpointsecondonpath{\pgfqpoint{#2}{#3}}% \let\pgfpointsecondlastonpath=\pgfpointfirstonpath% \let\pgfpointlastonpath=\pgfpointsecondonpath% \ifx#4\pgf@stop% @@ -149,7 +149,7 @@ } \def\pgf@@extractprocessorother#1#2#3#4{% \let\pgfpointsecondlastonpath=\pgfpointlastonpath% - \def\pgfpointlastonpath{\pgfpoint{#2}{#3}}% + \def\pgfpointlastonpath{\pgfqpoint{#2}{#3}}% \ifx#4\pgf@stop% % end! \let\next=\pgfutil@gobble% @@ -330,8 +330,8 @@ % \edef\pgf@marshal% {\noexpand\pgfpointlineatdistance{\pgfprocess@savex}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}% \pgf@process{\pgf@marshal}% \pgf@xa=\pgf@x% save start point of added curve \pgf@ya=\pgf@y% @@ -342,8 +342,8 @@ % \edef\pgf@marshal% {\noexpand\pgfpointlineatdistance{\pgfprocess@savey}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - {\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + {\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}}% \pgf@process{\pgf@marshal}% \pgf@xc=\pgf@x% save end point of added curve \pgf@yc=\pgf@y% diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex index c7d20093db9..e7d918f5210 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathusage.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepathusage.code.tex,v 1.8 2007/03/09 17:49:32 tantau Exp $ % Stroke/fill/clip/etc. the current path. Depending on the options, @@ -128,8 +128,8 @@ % \pgfpathmoveto{\pgfpointorigin} % \pgfpathlineto{\pgfpoint{11pt}{0pt} -\def\pgfsetshortenstart#1{\setlength\pgf@shorten@start@additional{#1}} -\def\pgfsetshortenend#1{\setlength\pgf@shorten@end@additional{#1}} +\def\pgfsetshortenstart#1{\pgfmathsetlength\pgf@shorten@start@additional{#1}} +\def\pgfsetshortenend#1{\pgfmathsetlength\pgf@shorten@end@additional{#1}} \newif\ifpgf@drawarrows @@ -183,8 +183,8 @@ \global\advance\pgf@x by\pgf@xa% \global\advance\pgf@y by\pgf@ya% }% - \edef\pgfpointfirstonpath{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - \edef\pgfpointsecondonpath{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \edef\pgfpointfirstonpath{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + \edef\pgfpointsecondonpath{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% {% \pgf@x=0pt% \pgf@shorten@end% @@ -197,8 +197,8 @@ \global\advance\pgf@x by\pgf@xa% \global\advance\pgf@y by\pgf@ya% }% - \edef\pgfpointlastonpath{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - \edef\pgfpointsecondlastonpath{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \edef\pgfpointlastonpath{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + \edef\pgfpointsecondlastonpath{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% \pgfprocesspathreplacestartandend{\pgf@arrowpath}{\pgfpointfirstonpath}{\pgfpointlastonpath}% \pgfsyssoftpath@setcurrentpath\pgf@arrowpath% } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex index 3f2a26be578..0edcd6d7b2c 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepoints.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorepoints.code.tex,v 1.9 2007/04/19 11:57:08 tantau Exp $ \newdimen\pgf@picminx \newdimen\pgf@picmaxx @@ -23,27 +23,6 @@ \def\pgf@process#1{{#1\global\pgf@x=\pgf@x\global\pgf@y=\pgf@y}} -\newdimen\pgf@tempdim -\def\pgf@setlength#1#2{% these will be used only when \nullfont is active - \begingroup% keep font setting local - \pgf@selectfontorig% restore font - \pgf@setlengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) - \global\pgf@tempdim\pgf@tempdim% make dimension global - \endgroup% - #1=\pgf@tempdim\relax} -\def\pgf@addtolength#1#2{% - \begingroup% keep font setting local - \pgf@selectfontorig% restore font - \pgf@tempdim#1\relax% - \pgf@addtolengthorig\pgf@tempdim{#2}% calculate dimension (possibly using calc) - \global\pgf@tempdim\pgf@tempdim% make dimension global - \endgroup% - #1=\pgf@tempdim\relax} -\newcount\c@pgf@tempcount -\def\pgf@setcounter#1#2{% - \pgflatex@setcounter{pgf@tempcount}{#2}% makes change global! - \csname c@#1\endcsname=\c@pgf@tempcount\relax} -\def\pgf@selectfont{\pgf@selectfontorig\nullfont} @@ -60,8 +39,8 @@ % \pgfpathmoveto{\pgfpoint{2pt+3cm}{3cm}} \def\pgfpoint#1#2{% - \setlength\pgf@x{#1}% - \setlength\pgf@y{#2}\ignorespaces} + \pgfmathsetlength\pgf@x{#1}% + \pgfmathsetlength\pgf@y{#2}\ignorespaces} % Quickly a point @@ -89,7 +68,7 @@ % % \pgfpathmoveto{\pgfpointorigin} -\def\pgfpointorigin{\pgfpoint{0pt}{0pt}\ignorespaces} +\def\pgfpointorigin{\pgf@x=0pt\pgf@y=\pgf@x\ignorespaces} @@ -321,7 +300,7 @@ \advance\pgf@x by-\pgf@xb\relax% \advance\pgf@y by-\pgf@yb\relax% \pgf@process{\pgfpointnormalised{}}% x/y = normalised vector - \setlength\pgf@xa{#1}% + \pgfmathsetlength\pgf@xa{#1}% \pgf@ya=\pgf@xa\relax% \pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa% \pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya% @@ -353,8 +332,9 @@ % \pgfpathmoveto{\pgfpointcurveattime{0.5}{\pgfpointxy{0}{1}}{\pgfpointxy{1}{1}}{\pgfpointxy{1}{1}}{\pgfpointxy{2}{3}}} \def\pgfpointcurveattime#1#2#3#4#5{% - \def\pgf@time@s{#1}% - \pgf@x=#1pt% + \pgfmathparse{#1}% + \let\pgf@time@s=\pgfmathresult% + \pgf@x=\pgfmathresult pt% \pgf@x=-\pgf@x% \advance\pgf@x by 1pt% \edef\pgf@time@t{\pgf@sys@tonumber{\pgf@x}}% @@ -406,8 +386,8 @@ % A polar coordinate % % #1 = a degree -% #2 = a radius -- either a dimension or two dimensions separated by a -% slash. +% #2 = a radius -- either a dimension or two dimensions separated by +% " and ". % % x = (first dimension in #2) * cos(#1) % y = (second dimension in #2) * sin(#2) @@ -415,26 +395,41 @@ % Example: % % \pgfpathmoveto{\pgfpointpolar{30}{1cm}} -% \pgfpathlineto{\pgfpointpolar{30}{1cm/2cm}} +% \pgfpathlineto{\pgfpointpolar{30}{1cm and 2cm}} \def\pgfpointpolar#1#2{% - \pgfsincos{#1}% - \pgfutil@in@/{#2}% + \pgfutil@in@{and }{#2}% \ifpgfutil@in@% \pgf@polar@#2\@@% \else% - \pgf@polar@#2/#2\@@% + \pgf@polar@#2 and #2\@@% \fi% - \pgf@xa=\pgf@sys@tonumber{\pgf@x}\pgf@xa% - \pgf@ya=\pgf@sys@tonumber{\pgf@y}\pgf@ya% - \pgf@y=\pgf@xa\relax% - \pgf@x=\pgf@ya\ignorespaces} + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@x=\pgfmathresult\pgf@x% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@y=\pgfmathresult\pgf@y% +} -\def\pgf@polar@#1/#2\@@{% - \setlength{\pgf@xa}{#2}% - \setlength{\pgf@ya}{#1}% +\def\pgf@polar@#1and #2\@@{% + \pgfmathsetlength{\pgf@y}{#2}% + \pgfmathsetlength{\pgf@x}{#1}% } +% Quick version of the polar coordinate method + +\def\pgfqpointpolar#1#2{% + \pgf@x=#2% + \pgf@y=\pgf@x% + \pgfmathcos@{#1}% + \pgf@x=\pgfmathresult\pgf@x% + \pgfmathsin@{#1}% + \pgf@y=\pgfmathresult\pgf@y\relax% +} + + + % A polar coordinate in the xy plane. % @@ -449,21 +444,26 @@ % \pgfpathmoveto{\pgfpointpolarxy{30}{2}} \def\pgfpointpolarxy#1#2{% - \pgfsincos{#1}% - \pgfutil@in@/{#2}% + \pgfutil@in@{and }{#2}% \ifpgfutil@in@% \pgf@polarxy@#2\@@% \else% - \pgf@polarxy@#2/#2\@@% + \pgf@polarxy@#2and #2\@@% \fi% + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@xa=\pgfmathresult\pgf@xa% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@ya=\pgfmathresult\pgf@ya% \pgf@x=\pgf@sys@tonumber{\pgf@xa}\pgf@xx% \advance\pgf@x by \pgf@sys@tonumber{\pgf@ya}\pgf@yx% \pgf@y=\pgf@sys@tonumber{\pgf@xa}\pgf@xy% \advance\pgf@y by \pgf@sys@tonumber{\pgf@ya}\pgf@yy} -\def\pgf@polarxy@#1/#2\@@{% - \pgf@xa=#1\pgf@y% - \pgf@ya=#2\pgf@x% +\def\pgf@polarxy@#1and #2\@@{% + \pgfmathsetlength{\pgf@xa}{#1}% + \pgfmathsetlength{\pgf@ya}{#2}% } @@ -482,8 +482,9 @@ \def\pgfpointcylindrical#1#2#3{% \pgfpointpolarxy{#1}{#2}% - \advance\pgf@x by #3\pgf@zx% - \advance\pgf@y by #3\pgf@zy} + \pgfmathparse{#3}% + \advance\pgf@x by \pgfmathresult\pgf@zx% + \advance\pgf@y by \pgfmathresult\pgf@zy} % A spherical coordinate. @@ -499,18 +500,26 @@ % \pgfpathmoveto{\pgfpointspherical{30}{30}{2}} \def\pgfpointspherical#1#2#3{% - \pgfsincos{#1}% - \pgf@xb=\pgf@sys@tonumber{\pgf@y}\pgf@xx% - \advance\pgf@xb by \pgf@sys@tonumber{\pgf@x}\pgf@yx% - \pgf@yb=\pgf@sys@tonumber{\pgf@y}\pgf@xy% - \advance\pgf@yb by \pgf@sys@tonumber{\pgf@x}\pgf@yy% - \pgfsincos{#2}% - \pgf@xc=\pgf@sys@tonumber{\pgf@y}\pgf@xb% - \advance\pgf@xc by \pgf@sys@tonumber{\pgf@x}\pgf@zx% - \pgf@yc=\pgf@sys@tonumber{\pgf@y}\pgf@yb% - \advance\pgf@yc by \pgf@sys@tonumber{\pgf@x}\pgf@zy% - \pgf@x=#3\pgf@xc% - \pgf@y=#3\pgf@yc% + \pgfmathparse{#1}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathsin@{\pgfpoint@angle}% + \pgf@xb=\pgfmathresult\pgf@xx% + \pgf@yb=\pgfmathresult\pgf@xy% + \pgfmathcos@{\pgfpoint@angle}% + \advance\pgf@xb by \pgfmathresult\pgf@yx% + \advance\pgf@yb by \pgfmathresult\pgf@yy% + % + \pgfmathparse{#2}% + \let\pgfpoint@angle=\pgfmathresult% + \pgfmathcos@{\pgfpoint@angle}% + \pgf@xc=\pgfmathresult\pgf@xb% + \pgf@yc=\pgfmathresult\pgf@yb% + \pgfmathsin@{\pgfpoint@angle}% + \advance\pgf@xc by \pgfmathresult\pgf@zx% + \advance\pgf@yc by \pgfmathresult\pgf@zy% + \pgfmathparse{#3}% + \pgf@x=\pgfmathresult\pgf@xc% + \pgf@y=\pgfmathresult\pgf@yc\relax% } @@ -542,10 +551,15 @@ % \pgfpathlineto{\pgfpointxy{0}{1}} % \pgfclosestroke -\def\pgfpointxy#1#2{\pgf@x=#1\pgf@xx% - \advance\pgf@x by #2\pgf@yx% - \pgf@y=#1\pgf@xy% - \advance\pgf@y by #2\pgf@yy} +\def\pgfpointxy#1#2{% + \pgfmathparse{#1}% + \let\pgftemp@x=\pgfmathresult% + \pgfmathparse{#2}% + \let\pgftemp@y=\pgfmathresult% + \pgf@x=\pgftemp@x\pgf@xx% + \advance\pgf@x by \pgftemp@y\pgf@yx% + \pgf@y=\pgftemp@x\pgf@xy% + \advance\pgf@y by \pgftemp@y\pgf@yy} % Store the vector #1 * x-vec + #2 * y-vec + #3 * z-vec @@ -581,12 +595,18 @@ % \pgfline{\pgfpointxyz{0}{1}{1}}{\pgfpointxyz{1}{1}{1}} \def\pgfpointxyz#1#2#3{% - \pgf@x=#1\pgf@xx% - \advance\pgf@x by #2\pgf@yx% - \advance\pgf@x by #3\pgf@zx% - \pgf@y=#1\pgf@xy% - \advance\pgf@y by #2\pgf@yy% - \advance\pgf@y by #3\pgf@zy} + \pgfmathparse{#1}% + \let\pgftemp@x=\pgfmathresult% + \pgfmathparse{#2}% + \let\pgftemp@y=\pgfmathresult% + \pgfmathparse{#3}% + \let\pgftemp@z=\pgfmathresult% + \pgf@x=\pgftemp@x\pgf@xx% + \advance\pgf@x by \pgftemp@y\pgf@yx% + \advance\pgf@x by \pgftemp@z\pgf@zx% + \pgf@y=\pgftemp@x\pgf@xy% + \advance\pgf@y by \pgftemp@y\pgf@yy% + \advance\pgf@y by \pgftemp@z\pgf@zy} @@ -688,7 +708,7 @@ \pgf@y=0pt\relax% \else% \divide\c@pgf@countb by \c@pgf@counta% - \pgf@setmath{x}{\csname pgf@cosfrac\the\c@pgf@countb\endcsname}% + \pgf@x=\csname pgf@cosfrac\the\c@pgf@countb\endcsname pt% \pgf@xc=8192pt% \divide\pgf@xc by\c@pgf@counta% \pgf@y=\pgf@sys@tonumber{\pgf@xc}\pgf@ya% @@ -719,7 +739,7 @@ \pgf@x=0pt\relax% \else% \divide\c@pgf@countb by \c@pgf@counta% - \pgf@setmath{y}{\csname pgf@cosfrac\the\c@pgf@countb\endcsname}% + \pgf@y=\csname pgf@cosfrac\the\c@pgf@countb\endcsname pt% \pgf@xc=8192pt% \divide\pgf@xc by\c@pgf@counta% \pgf@x=\pgf@sys@tonumber{\pgf@xc}\pgf@xa% @@ -728,7 +748,8 @@ \ifdim\pgf@ya<0pt% \pgf@y=-\pgf@y% \fi% - \fi\ignorespaces} + \fi\ignorespaces% +} @@ -919,4 +940,60 @@ #1=\pgf@y\relax} + +\def\pgf@def#1#2#3{\expandafter\def\csname pgf@#1#2\endcsname{#3}} +\pgf@def{cosfrac}{0}{1} +\pgf@def{cosfrac}{1}{0.99995} \pgf@def{cosfrac}{2}{0.9998} +\pgf@def{cosfrac}{3}{0.99955} \pgf@def{cosfrac}{4}{0.999201} +\pgf@def{cosfrac}{5}{0.998752} \pgf@def{cosfrac}{6}{0.998205} +\pgf@def{cosfrac}{7}{0.997559} \pgf@def{cosfrac}{8}{0.996815} +\pgf@def{cosfrac}{9}{0.995974} \pgf@def{cosfrac}{10}{0.995037} +\pgf@def{cosfrac}{11}{0.994004} \pgf@def{cosfrac}{12}{0.992877} +\pgf@def{cosfrac}{13}{0.991656} \pgf@def{cosfrac}{14}{0.990342} +\pgf@def{cosfrac}{15}{0.988936} \pgf@def{cosfrac}{16}{0.987441} +\pgf@def{cosfrac}{17}{0.985856} \pgf@def{cosfrac}{18}{0.984183} +\pgf@def{cosfrac}{19}{0.982424} \pgf@def{cosfrac}{20}{0.980581} +\pgf@def{cosfrac}{21}{0.978653} \pgf@def{cosfrac}{22}{0.976644} +\pgf@def{cosfrac}{23}{0.974555} \pgf@def{cosfrac}{24}{0.972387} +\pgf@def{cosfrac}{25}{0.970143} \pgf@def{cosfrac}{26}{0.967823} +\pgf@def{cosfrac}{27}{0.965429} \pgf@def{cosfrac}{28}{0.962964} +\pgf@def{cosfrac}{29}{0.960429} \pgf@def{cosfrac}{30}{0.957826} +\pgf@def{cosfrac}{31}{0.955157} \pgf@def{cosfrac}{32}{0.952424} +\pgf@def{cosfrac}{33}{0.949629} \pgf@def{cosfrac}{34}{0.946773} +\pgf@def{cosfrac}{35}{0.943858} \pgf@def{cosfrac}{36}{0.940887} +\pgf@def{cosfrac}{37}{0.937862} \pgf@def{cosfrac}{38}{0.934784} +\pgf@def{cosfrac}{39}{0.931655} \pgf@def{cosfrac}{40}{0.928477} +\pgf@def{cosfrac}{41}{0.925252} \pgf@def{cosfrac}{42}{0.921982} +\pgf@def{cosfrac}{43}{0.918669} \pgf@def{cosfrac}{44}{0.915315} +\pgf@def{cosfrac}{45}{0.911922} \pgf@def{cosfrac}{46}{0.90849} +\pgf@def{cosfrac}{47}{0.905024} \pgf@def{cosfrac}{48}{0.901523} +\pgf@def{cosfrac}{49}{0.89799} \pgf@def{cosfrac}{50}{0.894427} +\pgf@def{cosfrac}{51}{0.890835} \pgf@def{cosfrac}{52}{0.887217} +\pgf@def{cosfrac}{53}{0.883573} \pgf@def{cosfrac}{54}{0.879905} +\pgf@def{cosfrac}{55}{0.876216} \pgf@def{cosfrac}{56}{0.872506} +\pgf@def{cosfrac}{57}{0.868777} \pgf@def{cosfrac}{58}{0.865031} +\pgf@def{cosfrac}{59}{0.861269} \pgf@def{cosfrac}{60}{0.857493} +\pgf@def{cosfrac}{61}{0.853704} \pgf@def{cosfrac}{62}{0.849903} +\pgf@def{cosfrac}{63}{0.846092} \pgf@def{cosfrac}{64}{0.842271} +\pgf@def{cosfrac}{65}{0.838444} \pgf@def{cosfrac}{66}{0.834609} +\pgf@def{cosfrac}{67}{0.83077} \pgf@def{cosfrac}{68}{0.826927} +\pgf@def{cosfrac}{69}{0.82308} \pgf@def{cosfrac}{70}{0.819232} +\pgf@def{cosfrac}{71}{0.815383} \pgf@def{cosfrac}{72}{0.811534} +\pgf@def{cosfrac}{73}{0.807687} \pgf@def{cosfrac}{74}{0.803842} +\pgf@def{cosfrac}{75}{0.8} \pgf@def{cosfrac}{76}{0.796162} +\pgf@def{cosfrac}{77}{0.792329} \pgf@def{cosfrac}{78}{0.788502} +\pgf@def{cosfrac}{79}{0.784682} \pgf@def{cosfrac}{80}{0.780869} +\pgf@def{cosfrac}{81}{0.777064} \pgf@def{cosfrac}{82}{0.773268} +\pgf@def{cosfrac}{83}{0.769481} \pgf@def{cosfrac}{84}{0.765705} +\pgf@def{cosfrac}{85}{0.761939} \pgf@def{cosfrac}{86}{0.758185} +\pgf@def{cosfrac}{87}{0.754443} \pgf@def{cosfrac}{88}{0.750714} +\pgf@def{cosfrac}{89}{0.746997} \pgf@def{cosfrac}{90}{0.743294} +\pgf@def{cosfrac}{91}{0.739605} \pgf@def{cosfrac}{92}{0.735931} +\pgf@def{cosfrac}{93}{0.732272} \pgf@def{cosfrac}{94}{0.728628} +\pgf@def{cosfrac}{95}{0.724999} \pgf@def{cosfrac}{96}{0.721387} +\pgf@def{cosfrac}{97}{0.717792} \pgf@def{cosfrac}{98}{0.714213} +\pgf@def{cosfrac}{99}{0.710651} \pgf@def{cosfrac}{100}{0.707107} + + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex index a3bb4b05cef..286ac78c216 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorescopes.code.tex,v 1.20 2006/10/23 08:38:17 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcorescopes.code.tex,v 1.24 2007/06/07 07:41:10 tantau Exp $ % Globals @@ -150,7 +150,7 @@ \def\pgf@text@options{#1}% \pgf@maketext\pgf@after@text} \def\pgf@after@text{% - { + {% \def\pgf@text@hshift{center}% \def\pgf@text@vshift{center}% \def\pgf@marshal{\setkeys{pgfbox}}% @@ -158,13 +158,13 @@ \csname pgf@halign\pgf@text@hshift\endcsname% \csname pgf@valign\pgf@text@vshift\endcsname% % Protocol sizes: - \pgf@process{\pgfpointtransformed{\pgfpoint{0pt}{\dp\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{0pt}{\dp\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% - \pgf@process{\pgfpointtransformed{\pgfpoint{\wd\pgf@hbox}{\dp\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{\wd\pgf@hbox}{\dp\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% - \pgf@process{\pgfpointtransformed{\pgfpoint{0pt}{\ht\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{0pt}{\ht\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% - \pgf@process{\pgfpointtransformed{\pgfpoint{\wd\pgf@hbox}{\ht\pgf@hbox}}}% + \pgf@process{\pgfpointtransformed{\pgfqpoint{\wd\pgf@hbox}{\ht\pgf@hbox}}}% \pgf@protocolsizes{\pgf@x}{\pgf@y}% \pgfqboxsynced{\pgf@hbox}% }% @@ -182,12 +182,12 @@ \define@key{pgfbox}{rotate}{\pgftransformrotate{#1}} \def\pgf@halignleft{}% do nothing -\def\pgf@haligncenter{\pgftransformxshift{-.5\wd\pgf@hbox}} -\def\pgf@halignright{\pgftransformxshift{-\wd\pgf@hbox}}% +\def\pgf@haligncenter{\pgftransformxshift{+-.5\wd\pgf@hbox}} +\def\pgf@halignright{\pgftransformxshift{+-\wd\pgf@hbox}}% \def\pgf@valignbase{}% do nothing -\def\pgf@valignbottom{\pgftransformyshift{\dp\pgf@hbox}}% -\def\pgf@valigncenter{\pgftransformyshift{.5\dp\pgf@hbox}\pgftransformyshift{-.5\ht\pgf@hbox}}% -\def\pgf@valigntop{\pgftransformyshift{-\ht\pgf@hbox}}% +\def\pgf@valignbottom{\pgftransformyshift{+\dp\pgf@hbox}}% +\def\pgf@valigncenter{\pgftransformyshift{+.5\dp\pgf@hbox}\pgftransformyshift{+-.5\ht\pgf@hbox}}% +\def\pgf@valigntop{\pgftransformyshift{+-\ht\pgf@hbox}}% % Internal function for creating a hbox. @@ -237,6 +237,7 @@ \pgfpicturetrue% \global\advance\pgf@picture@serial@count by1\relax% \edef\pgfpictureid{pgfid\the\pgf@picture@serial@count}% + \let\pgf@nodecallback=\pgfutil@gobble% \pgf@picmaxx=-16000pt\relax% \pgf@picminx=16000pt\relax% \pgf@picmaxy=-16000pt\relax% @@ -245,10 +246,10 @@ \pgf@resetpathsizes% \pgfutil@ifnextchar\bgroup\pgf@oldpicture\pgf@picture} \def\pgf@oldpicture#1#2#3#4{% - \setlength\pgf@picminx{#1}% - \setlength\pgf@picminy{#2}% - \setlength\pgf@picmaxx{#3}% - \setlength\pgf@picmaxy{#4}% + \pgfmathsetlength\pgf@picminx{#1}% + \pgfmathsetlength\pgf@picminy{#2}% + \pgfmathsetlength\pgf@picmaxx{#3}% + \pgfmathsetlength\pgf@picmaxy{#4}% \pgf@relevantforpicturesizefalse% \pgf@picture} @@ -309,7 +310,22 @@ \box\pgf@layerbox@main% } +\def\pgf@selectfont{\pgf@selectfontorig\nullfont} +\def\pgf@setlength#1#2{% these will be used only when \nullfont is active + \begingroup% keep font setting local + \pgfutil@selectfont% restore font + \pgf@setlengthorig#1{#2}% calculate dimension (possibly using calc) + \expandafter% + \endgroup% + \expandafter#1\expandafter=\the#1\relax} +\def\pgf@addtolength#1#2{% + \begingroup% keep font setting local + \pgfutil@selectfont% restore font + \pgf@addtolengthorig#1{#2}% calculate dimension (possibly using calc) + \expandafter% + \endgroup% + \expandafter#1\expandafter=\the#1\relax} % Sets the baseline at the y-coordinate of a given point @@ -409,6 +425,47 @@ +% Interrupt bounding box +% +% Description: +% +% The environment can be used to temporarily setup a new bounding box +% computation. The bounding box will be made empty at the beginning of +% the environment and will be reset to its old value after the +% environment. +% +% Example: +% +% \begin{pgfinterruptboundinbox} +% \pgfmoveto{\pgfpoint{1cm}{0cm}} +% \pgfmoveto{\pgfpoint{1cm}{1cm}} +% \pgfusepath{stroke} +% \end{pgfinterruptboundinbox} + +\def\pgfinterruptboundingbox +{% + \begingroup% + \edef\pgf@interrupt@savemaxx{\the\pgf@picmaxx}% + \edef\pgf@interrupt@saveminx{\the\pgf@picminx}% + \edef\pgf@interrupt@savemaxy{\the\pgf@picmaxy}% + \edef\pgf@interrupt@saveminy{\the\pgf@picminy}% + \pgf@picmaxx=-16000pt\relax% + \pgf@picminx=16000pt\relax% + \pgf@picmaxy=-16000pt\relax% + \pgf@picminy=16000pt\relax% +} +\def\endpgfinterruptboundingbox +{% + \global\pgf@picmaxx=\pgf@interrupt@savemaxx% + \global\pgf@picmaxy=\pgf@interrupt@savemaxy% + \global\pgf@picminx=\pgf@interrupt@saveminx% + \global\pgf@picminy=\pgf@interrupt@saveminy% + \endgroup% +} + + + + % Interrupts a picture % @@ -450,30 +507,24 @@ \def\pgfinterruptpicture {% \begingroup% - \edef\pgf@interrupt@savemaxx{\the\pgf@picmaxx}% - \edef\pgf@interrupt@saveminx{\the\pgf@picminx}% - \edef\pgf@interrupt@savemaxy{\the\pgf@picmaxy}% - \edef\pgf@interrupt@saveminy{\the\pgf@picminy}% - \pgftransformreset% - \pgfinterruptpath% - \ifx\pgf@setlengthorig\@undefined% - \else% - \let\setlength\pgf@setlengthorig% - \let\addtolength\pgf@addtolengthorig% - \let\selectfont\pgf@selectfontorig% - \fi% - \selectfont% - \pgfpicturefalse% - \pgf@savelayers% + \pgfinterruptboundingbox% + \pgftransformreset% + \pgfinterruptpath% + \ifx\pgf@selectfontorig\@undefined% + \else% + \let\setlength\pgf@setlengthorig% + \let\addtolength\pgf@addtolengthorig% + \let\selectfont\pgf@selectfontorig% + \fi% + \pgfutil@selectfont% + \pgfpicturefalse% + \pgf@savelayers% } \def\endpgfinterruptpicture {% - \pgf@restorelayers% - \endpgfinterruptpath% - \global\pgf@picmaxx=\pgf@interrupt@savemaxx% - \global\pgf@picmaxy=\pgf@interrupt@savemaxy% - \global\pgf@picminx=\pgf@interrupt@saveminx% - \global\pgf@picminy=\pgf@interrupt@saveminy% + \pgf@restorelayers% + \endpgfinterruptpath% + \endpgfinterruptboundingbox% \endgroup% } diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex index e7d4c0a8081..05142e8c0db 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreshade.code.tex,v 1.7 2006/10/16 22:32:58 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoreshade.code.tex,v 1.8 2007/03/09 17:49:32 tantau Exp $ % % Parsing functions @@ -42,7 +42,7 @@ \xdef\pgf@psfuncs{\pgf@psfuncs}% } \def\pgf@parsefirst[rgb(#1)=(#2,#3,#4)#5]{% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \edef\pgf@sys@shading@start@pos{\the\pgf@x}% \pgf@sys@bp@correct\pgf@x% \edef\pgf@doma{\pgf@sys@tonumber{\pgf@x}}% @@ -55,7 +55,7 @@ \edef\pgf@firstcolor{\pgf@rgb}} \def\pgf@parselastdom[rgb(#1)=(#2,#3,#4); {% \pgfutil@ifnextchar]{% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \edef\pgf@sys@shading@end@pos{\the\pgf@x}% \pgf@max=\pgf@x\relax% \pgf@sys@bp@correct\pgf@x% @@ -75,12 +75,12 @@ << /FunctionType 2 /Domain [\pgf@doma\space\pgf@domb] /C0 [\pgf@prevcolor] /C1 [\pgf@rgb] /N 1 >> }% \edef\pgf@psfuncs{\pgf@prevx\space \pgf@rgb\space \pgf@prevcolor\space pgfshade \pgf@psfuncs}% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@rgb}}}% \edef\pgf@sys@prevpos{\the\pgf@x}% \let\pgf@sys@prevcolor=\pgf@sys@rgb% \pgfutil@gobble}{% - \setlength\pgf@x{#1}% + \pgfmathsetlength\pgf@x{#1}% \pgf@getrgbtuplewithmixin{#2}{#3}{#4}% \edef\pgf@sys@shading@ranges{\pgf@sys@shading@ranges{{\pgf@sys@prevpos}{\the\pgf@x}{\pgf@sys@prevcolor}{\pgf@sys@rgb}}}% \edef\pgf@sys@prevpos{\the\pgf@x}% @@ -397,15 +397,19 @@ \pgfsys@clipnext% \pgfsys@discardpath% % Compute new transformation matrix: - \pgf@process{\pgfsincos{#2}}% - \pgf@xa=-\pgf@x% \pgfsys@transformcm{1}{0}{0}{1}{\pgf@xb}{\pgf@yb}% \pgfsys@transformcm% {\pgf@sys@tonumber{\pgf@xc}}{0}% {0}{\pgf@sys@tonumber{\pgf@yc}}{0pt}{0pt}% - \pgfsys@transformcm% - {\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}% - {\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@y}}{0pt}{0pt}% + \pgfmathparse{#2}% + \let\pgfshade@angle=\pgfmathresult% + \pgfmathsin@{\pgfshade@angle}% + \let\pgfshade@sin=\pgfmathresult% + \pgfmathcos@{\pgfshade@angle}% + \let\pgfshade@cos=\pgfmathresult% + \pgf@x=\pgfshade@sin pt% + \pgf@xa=-\pgf@x% + \pgfsys@transformcm{\pgfshade@cos}{\pgfshade@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgfshade@cos}{0pt}{0pt}% \ifx\pgf@shade@extra@transform\pgfutil@empty% \else% \pgflowlevel{\pgf@shade@extra@transform}% diff --git a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex index 54eff0c9c0e..4a9a23f0d2c 100644 --- a/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoretransformations.code.tex,v 1.4 2006/10/11 15:22:25 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/basiclayer/pgfcoretransformations.code.tex,v 1.6 2007/06/07 07:41:10 tantau Exp $ % Position transformations @@ -120,24 +120,24 @@ % Matrix = (aa ab % ba bb) {% - \@tempdima=\pgf@pt@aa pt% - \@tempdima=\pgf@pt@bb\@tempdima% aa * bb - \@tempdimb=\pgf@pt@ba pt% - \@tempdimb=\pgf@pt@ab\@tempdimb% ba * ab - \advance\@tempdima by -\@tempdimb% aa*bb - ba*ab + \pgfutil@tempdima=\pgf@pt@aa pt% + \pgfutil@tempdima=\pgf@pt@bb\pgfutil@tempdima% aa * bb + \pgfutil@tempdimb=\pgf@pt@ba pt% + \pgfutil@tempdimb=\pgf@pt@ab\pgfutil@tempdimb% ba * ab + \advance\pgfutil@tempdima by -\pgfutil@tempdimb% aa*bb - ba*ab % Invert - \@tempdima=.125\@tempdima% - \c@pgf@counta=\@tempdima\relax% 8192*determinant - \@tempdima=8192pt% - \divide\@tempdima by\c@pgf@counta% - \pgf@x=\pgf@pt@bb\@tempdima% bb/(det A) + \pgfutil@tempdima=.125\pgfutil@tempdima% + \c@pgf@counta=\pgfutil@tempdima\relax% 8192*determinant + \pgfutil@tempdima=8192pt% + \divide\pgfutil@tempdima by\c@pgf@counta% + \pgf@x=\pgf@pt@bb\pgfutil@tempdima% bb/(det A) \xdef\pgf@new@pt@aa{\pgf@sys@tonumber{\pgf@x}}% - \pgf@x=\pgf@pt@aa\@tempdima% aa/(det A) + \pgf@x=\pgf@pt@aa\pgfutil@tempdima% aa/(det A) \xdef\pgf@new@pt@bb{\pgf@sys@tonumber{\pgf@x}}% - \@tempdima=-\@tempdima% - \pgf@x=\pgf@pt@ba\@tempdima% -ba/(det A) + \pgfutil@tempdima=-\pgfutil@tempdima% + \pgf@x=\pgf@pt@ba\pgfutil@tempdima% -ba/(det A) \xdef\pgf@new@pt@ba{\pgf@sys@tonumber{\pgf@x}}% - \pgf@x=\pgf@pt@ab\@tempdima% -ab/(det A) + \pgf@x=\pgf@pt@ab\pgfutil@tempdima% -ab/(det A) \xdef\pgf@new@pt@ab{\pgf@sys@tonumber{\pgf@x}}% }% \expandafter\def\expandafter\pgf@pt@aa\expandafter{\pgf@new@pt@aa}% @@ -358,11 +358,15 @@ % \pgftransformrotate{30} \def\pgftransformrotate#1{% - \pgfsincos{#1}% + \pgfmathparse{#1}% + \let\pgftransform@angle=\pgfmathresult% + \pgfmathsin@{\pgftransform@angle}% + \let\pgftransform@sin=\pgfmathresult% + \pgfmathcos@{\pgftransform@angle}% + \let\pgftransform@cos=\pgfmathresult% + \pgf@x=\pgftransform@sin pt% \pgf@xa=-\pgf@x% - \pgftransformcm% - {\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}% - {\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@y}}{\pgfpointorigin}% + \pgftransformcm{\pgftransform@cos}{\pgftransform@sin}{\pgf@sys@tonumber{\pgf@xa}}{\pgftransform@cos}{\pgfpointorigin}% } @@ -463,7 +467,7 @@ % \def\pgftransformcurveattime#1#2#3#4#5{% \pgfpointcurveattime{#1}{#2}{#3}{#4}{#5}% - \pgftransformshift{\pgfpoint{\pgf@x}{\pgf@y}}% + \pgftransformshift{\pgfqpoint{\pgf@x}{\pgf@y}}% \ifpgfresetnontranslationattime% \pgftransformresetnontranslations% \fi% @@ -515,7 +519,7 @@ \pgf@ya=-\pgf@y% \pgftransformcm% {\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}% - {\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfpoint{0pt}{0pt}}% + {\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{\pgfqpoint{0pt}{0pt}}% } diff --git a/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz.code.tex b/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz.code.tex index 740dacf6794..805f27bcad6 100644 --- a/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/frontendlayer/tikz.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz.code.tex,v 1.68 2006/10/17 08:16:28 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz.code.tex,v 1.87 2007/06/07 07:41:10 tantau Exp $ % Always-present libraries: @@ -65,7 +65,7 @@ % Draw options \tikzoption{line width}{\tikz@semiaddlinewidth{#1}}% -\def\tikz@semiaddlinewidth#1{\tikz@addoption{\pgfsetlinewidth{#1}}\setlength\pgflinewidth{#1}} +\def\tikz@semiaddlinewidth#1{\tikz@addoption{\pgfsetlinewidth{#1}}\pgfmathsetlength\pgflinewidth{#1}} \tikzoption{cap}{\tikz@addoption{\csname pgfset#1cap\endcsname}} \tikzoption{join}{\tikz@addoption{\csname pgfset#1join\endcsname}} @@ -111,7 +111,7 @@ \tikz@addmode{\tikz@mode@doubletrue}% \fi} \tikzoption{double distance}{% - \setlength{\pgf@x}{#1}% + \pgfmathsetlength{\pgf@x}{#1}% \edef\tikz@double@width@distance{\the\pgf@x}% \tikz@addmode{\tikz@mode@doubletrue}} @@ -203,7 +203,8 @@ \tikzoption{xshift}{\tikz@addtransform{\pgftransformxshift{#1}}} \tikzoption{yshift}{\tikz@addtransform{\pgftransformyshift{#1}}} \tikzoption{cm}{\tikz@addtransform{\tikz@parse@cm#1\relax}} -\tikzoption{reset cm}{\tikz@addtransform{\pgftransformreset}} +\tikzoption{reset cm}[]{\tikz@addtransform{\pgftransformreset}} +\tikzoption{shift only}[]{\tikz@addtransform{\pgftransformresetnontranslations}} \def\tikz@parse@cm#1,#2,#3,#4,{% \def\tikz@p@cm{{#1}{#2}{#3}{#4}}% @@ -453,6 +454,8 @@ \tikzoption{shape}{\edef\tikz@shape{#1}} +\tikzoption{nodes}{\tikzstyle{every node}+=[#1]} + \tikzoption{inner sep}{\def\pgfshapeinnerxsep{#1}\def\pgfshapeinnerysep{#1}} \tikzoption{inner xsep}{\def\pgfshapeinnerxsep{#1}} \tikzoption{inner ysep}{\def\pgfshapeinnerysep{#1}} @@ -533,7 +536,7 @@ \def\tikz@test{#3}% \ifx\tikz@test\pgfutil@empty% \else% - \setlength{\pgf@x}{#3}% + \pgfmathsetlength{\pgf@x}{#3}% \pgf@x=#2\pgf@x\relax% \edef\tikz@marshal{\noexpand\tikz@addtransform{% \expandafter\noexpand\csname pgftransform#1shift\endcsname{\the\pgf@x}}}% @@ -690,7 +693,7 @@ \def\tikz@set@parabola@bend#1{\def\tikz@parabola@bend{#1}} % Axis options -\tikzoption{domain}{\def\tikz@plot@domain{#1}} +\tikzoption{domain}{\def\tikz@plot@domain{#1}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax} \tikzoption{range}{\def\tikz@plot@range{#1}} % Plot options @@ -708,9 +711,12 @@ \tikzoption{prefix}{\def\tikz@plot@prefix{#1}} \tikzoption{id}{\def\tikz@plot@id{#1}} -\tikzoption{samples}{\def\tikz@plot@sampels{#1}} +\tikzoption{samples}{\def\tikz@plot@samples{#1}\expandafter\tikz@plot@samples@recalc\tikz@plot@domain\relax} +\tikzoption{samples at}{\def\tikz@plot@samplesat{#1}} \tikzoption{parametric}[true]{\csname tikz@plot@parametric#1\endcsname} +\tikzoption{variable}{\def\tikz@plot@var{#1}} + \tikzoption{only marks}[]{\let\tikz@plot@handler\pgfplothandlerdiscard} \tikzoption{mark}{\def\tikz@plot@mark{#1}} @@ -728,8 +734,19 @@ \let\tikz@plot@handler=\pgfplothandlerlineto \let\tikz@plot@mark=\pgfutil@empty -\def\tikz@plot@sampels{25} +\def\tikz@plot@samples{25} \def\tikz@plot@domain{-5:5} +\def\tikz@plot@var{\x} +\def\tikz@plot@samplesat{-5,-4.6,...,5} +\def\tikz@plot@samples@recalc#1:#2\relax{% + \pgfmathparse{#1}% + \let\tikz@temp@start=\pgfmathresult% + \pgfmathparse{#2}% + \let\tikz@temp@end=\pgfmathresult% + \pgfmathparse{\tikz@temp@start+(\tikz@temp@end-\tikz@temp@start)/\tikz@plot@samples}% + \edef\tikz@plot@samplesat{\tikz@temp@start,\pgfmathresult,...,\tikz@temp@end}% +} + \def\tikz@plot@prefix{\jobname.} \def\tikz@plot@id{pgf-plot} @@ -751,13 +768,15 @@ \tikzoption{parent anchor}{\def\tikzparentanchor{.#1}\ifx\tikzparentanchor\tikz@border@text\let\tikzparentanchor\pgfutil@empty\fi} \tikzoption{child anchor}{\def\tikzchildanchor{.#1}\ifx\tikzchildanchor\tikz@border@text\let\tikzchildanchor\pgfutil@empty\fi} -\tikzoption{level distance}{\setlength\tikzleveldistance{#1}} -\tikzoption{sibling distance}{\setlength\tikzsiblingdistance{#1}} +\tikzoption{level distance}{\pgfmathsetlength\tikzleveldistance{#1}} +\tikzoption{sibling distance}{\pgfmathsetlength\tikzsiblingdistance{#1}} \tikzoption{growth function}{\let\tikz@grow=#1} +\tikzoption{growth parent anchor}{\def\tikz@growth@anchor{#1}} \tikzoption{grow}{\tikz@set@growth{#1}\edef\tikz@special@level{\the\tikztreelevel}}% \tikzoption{grow'}{\tikz@set@growth{#1}\tikz@swap@growth\edef\tikz@special@level{\the\tikztreelevel}}% +\def\tikz@growth@anchor{center} \def\tikz@special@level{-1}% never @@ -812,8 +831,8 @@ \pgf@xc=.5\tikzsiblingdistance% \c@pgf@counta=\tikznumberofchildren% \advance\c@pgf@counta by1\relax% - \@tempdima=\c@pgf@counta\pgf@xc% - \pgftransformshift{\pgfpointpolar{\tikz@angle@grow@left}{\@tempdima}}% + \pgfutil@tempdima=\c@pgf@counta\pgf@xc% + \pgftransformshift{\pgfpointpolar{\tikz@angle@grow@left}{\pgfutil@tempdima}}% \pgftransformshift{\pgfpointpolar{\tikz@angle@grow@right}{\tikznumberofcurrentchild\tikzsiblingdistance}}% \fi% } @@ -837,12 +856,12 @@ \fi% \fi} -\tikzoption{segment amplitude}{\setlength{\pgfsnakesegmentamplitude}{#1}} -\tikzoption{segment length}{\setlength{\pgfsnakesegmentlength}{#1}} -\tikzoption{segment angle}{\def\pgfsnakesegmentangle{#1}} -\tikzoption{segment aspect}{\def\pgfsnakesegmentaspect{#1}} +\tikzoption{segment amplitude}{\pgfmathsetlength{\pgfsnakesegmentamplitude}{#1}} +\tikzoption{segment length}{\pgfmathsetlength{\pgfsnakesegmentlength}{#1}} +\tikzoption{segment angle}{\pgfmathparse{#1}\let\pgfsnakesegmentangle=\pgfmathresult} +\tikzoption{segment aspect}{\pgfmathparse{#1}\let\pgfsnakesegmentaspect=\pgfmathresult} -\tikzoption{segment object length}{\def\pgfsnakesegmentobjectlength{#1}} +\tikzoption{segment object length}{\pgfmathparse{#1}\edef\pgfsnakesegmentobjectlength{\pgfmathresult pt}} \tikzoption{raise snake}{\def\pgf@snake@raise{\pgftransformyshift{#1}}} \tikzoption{mirror snake}[true]{% @@ -881,6 +900,21 @@ \def\tikz@mainsnakelength{\pgfsnakeremainingdistance} +% Matrix options +\tikzoption{matrix}[true]{\csname tikz@is@matrix#1\endcsname} + +\tikzoption{matrix anchor}{\def\tikz@matrix@anchor{#1}} + +\tikzoption{column sep}{\def\pgfmatrixcolumnsep{#1}} +\tikzoption{row sep}{\def\pgfmatrixrowsep{#1}} + +\tikzoption{cells}{\tikzstyle{every cell}+=[#1]} + +\tikzoption{ampersand replacement}{\def\tikz@ampersand@replacement{#1}} + +\newif\iftikz@is@matrix +\let\tikz@matrix@anchor=\pgfutil@empty +\let\tikz@ampersand@replacement=\pgfutil@empty % Execute option @@ -892,6 +926,9 @@ \tikzoption{execute at end to}{\expandafter\def\expandafter\tikz@atend@to\expandafter{\tikz@atend@to#1}} \tikzoption{execute at begin node}{\expandafter\def\expandafter\tikz@atbegin@node\expandafter{\tikz@atbegin@node#1}} \tikzoption{execute at end node}{\expandafter\def\expandafter\tikz@atend@node\expandafter{\tikz@atend@node#1}} +\tikzoption{execute at begin cell}{\expandafter\def\expandafter\tikz@atbegin@cell\expandafter{\tikz@atbegin@cell#1}} +\tikzoption{execute at end cell}{\expandafter\def\expandafter\tikz@atend@cell\expandafter{\tikz@atend@cell#1}} +\tikzoption{execute at empty cell}{\expandafter\def\expandafter\tikz@at@emptycell\expandafter{\tikz@at@emptycell#1}} \let\tikz@atbegin@picture=\pgfutil@empty \let\tikz@atend@picture=\pgfutil@empty @@ -901,6 +938,9 @@ \let\tikz@atend@to=\pgfutil@empty \let\tikz@atbegin@node=\pgfutil@empty \let\tikz@atend@node=\pgfutil@empty +\let\tikz@atbegin@cell=\pgfutil@empty +\let\tikz@atend@cell=\pgfutil@empty +\let\tikz@at@emptycell=\pgfutil@empty @@ -957,6 +997,8 @@ \tikzstyle{every child}= [] \tikzstyle{every child node}= [] \tikzstyle{every to}= [] +\tikzstyle{every cell}= [] +\tikzstyle{every matrix}= [] \tikzstyle{every edge}= [draw] \tikzstyle{every label}= [draw=none,fill=none] \tikzstyle{every pin}= [draw=none,fill=none] @@ -1206,6 +1248,8 @@ \let\tikz@origuseasboundingbox=\useasboundingbox% \let\tikz@orignode=\node% \let\tikz@origcoordinate=\coordinate% + \let\tikz@origmatrix=\matrix% + \let\tikz@origcalendar=\calendar% % \tikz@deactivatthings% % @@ -1226,7 +1270,12 @@ \def\useasboundingbox{\path[use as bounding box]} \def\node{\path node} \def\coordinate{\path coordinate} + \def\matrix{\path node[matrix]} + \def\calendar{\tikz@lib@cal@calendar}% } +\ifx\tikz@lib@cal@calendar\@undefined +\def\tikz@lib@cal@calendar{\PackageError{tikz}{You need to load the calendar library}{}} +\fi \def\tikz@uninstallcommands{% \ifnum\the\catcode`\;=\active\relax\expandafter\let\tikz@activesemicolon=\tikz@origsemi\fi% @@ -1248,6 +1297,8 @@ \let\useasboundingbox=\tikz@origuseasboundingbox% \let\node=\tikz@orignode% \let\coordinate=\tikz@origcoordinate% + \let\matrix=\tikz@origmatrix% + \let\calendar=\tikz@origcalendar% } @@ -1281,8 +1332,10 @@ % settings. \def\tikz@command@path{% + \let\tikz@signal@path=\tikz@signal@path% for detection at begin of matrix cell \pgfutil@ifnextchar[{\tikz@check@earg}%] {\pgfutil@ifnextchar<{\tikz@doopt}{\tikz@@command@path}}} +\def\tikz@signal@path{\tikz@signal@path}% \def\tikz@check@earg[#1]{% \pgfutil@ifnextchar<{\tikz@swap@args[#1]}{\tikz@@command@path[#1]}} \def\tikz@swap@args[#1]<#2>{\tikz@command@path<#2>[#1]} @@ -1546,7 +1599,7 @@ \def\tikz@expand{% \advance\tikz@expandcount by -1% \ifnum\tikz@expandcount<0\relax% - \PackageError{tikz}{Giving up on this path}{}% + \PackageError{tikz}{Giving up on this path. Did you forget a semicolon?}{}% \let\@next=\tikz@finish% \else% \let\@next=\tikz@@expand @@ -1589,11 +1642,22 @@ \def\tikz@foreach{% \def\pgffor@beginhook{\setbox\tikz@figbox=\box\tikz@tempbox\expandafter\tikz@scan@next@command\@firstofone}% - \def\pgffor@endhook{\pgfextra{\global\setbox\tikz@tempbox=\copy\tikz@figbox\pgfutil@gobble}}% - \def\pgffor@afterhook{\setbox\tikz@figbox=\box\tikz@tempbox\tikz@scan@next@command}% + \def\pgffor@endhook{\pgfextra{% + \xdef\tikz@foreach@save@lastx{\the\tikz@lastx}% + \xdef\tikz@foreach@save@lasty{\the\tikz@lasty}% + \xdef\tikz@foreach@save@lastxsaved{\the\tikz@lastxsaved}% + \xdef\tikz@foreach@save@lastysaved{\the\tikz@lastysaved}% + \global\setbox\tikz@tempbox=\copy\tikz@figbox\pgfutil@gobble}}% + \def\pgffor@afterhook{% + \tikz@lastx=\tikz@foreach@save@lastx% + \tikz@lasty=\tikz@foreach@save@lasty% + \tikz@lastxsaved=\tikz@foreach@save@lastxsaved% + \tikz@lastysaved=\tikz@foreach@save@lastysaved% + \setbox\tikz@figbox=\box\tikz@tempbox\tikz@scan@next@command}% \global\setbox\tikz@tempbox=\copy\tikz@figbox% \foreach} + % Syntax for againpath: % \againpath \somepathname @@ -1753,7 +1817,10 @@ % snake or lineto? \def\tikz@path@lineto#1{% \iftikz@snaked% - \pgfpathsnakesto{\tikz@presnake,{\tikz@snake}{\tikz@mainsnakelength},\tikz@postsnake}{#1}% + { + \pgfsyssoftpathmovetorelevantfalse% + \pgfpathsnakesto{\tikz@presnake,{\tikz@snake}{\tikz@mainsnakelength},\tikz@postsnake}{#1}% + } \else% \pgfpathlineto{#1}% \fi% @@ -2074,7 +2141,10 @@ \tikz@path@lineto{\pgfqpoint{\pgf@xa}{\tikz@lasty}}% \tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}% \tikz@path@lineto{\pgfqpoint{\tikz@lastx}{\pgf@ya}}% - \tikz@path@close{\pgfqpoint{\pgf@xa}{\pgf@ya}}% + \iftikz@snaked% + \tikz@path@lineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}% + \fi% + \pgfpathclose% \pgfpathmoveto{\pgfqpoint{\tikz@lastx}{\tikz@lasty}}% \def\pgfstrokehook{}% \tikz@scan@next@command% @@ -2133,8 +2203,9 @@ \tikz@setkeys{#1}% \pgfutil@ifnextchar f{\tikz@plot@f}% {\pgfutil@ifnextchar c{\tikz@plot@scan@points}% - {\PackageError{tikz}{Cannot parse this plotting data}{}% - \endgroup}}} + {\pgfutil@ifnextchar ({\tikz@plot@expression}{% + \PackageError{tikz}{Cannot parse this plotting data}{}% + \endgroup}}}} \def\tikz@plot@f f{\pgfutil@ifnextchar i{\tikz@plot@file}{\tikz@plot@function}} \def\tikz@plot@file ile#1{\def\tikz@plot@data{\pgfplotxyfile{#1}}\tikz@@@plot}% @@ -2157,12 +2228,12 @@ \else% \iftikz@plot@parametric% \def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{% - set samples \tikz@plot@sampels; + set samples \tikz@plot@samples; set parametric; plot [t=\tikz@plot@domain] #1}}% \else% \def\tikz@plot@data{\pgfplotgnuplot[\tikz@plot@filename]{% - set samples \tikz@plot@sampels; + set samples \tikz@plot@samples; plot [x=\tikz@plot@domain] #1}}% \fi% \fi% @@ -2175,6 +2246,11 @@ {}% } +\def\tikz@plot@expression(#1){% + \edef\tikz@plot@data{\noexpand\pgfplotfunction{\expandafter\noexpand\tikz@plot@var}{\tikz@plot@samplesat}}% + \expandafter\def\expandafter\tikz@plot@data\expandafter{\tikz@plot@data{\tikz@scan@one@point\pgfutil@firstofone(#1)}}% + \tikz@@@plot% +} \def\tikz@@@plot{% \def\pgfplotlastpoint{\pgfpointorigin}% @@ -2359,30 +2435,23 @@ } \def\tikz@@@arcto@check@slashand(#1:#2:#3){% - \pgfutil@in@{/}{#3}% + \pgfutil@in@{ and }{#3}% \ifpgfutil@in@% - \tikz@parse@arc@replace@slash@and(#1:#2:#3)% + \tikz@parse@arc@and(#1:#2:#3)% \else% - \pgfutil@in@{ and }{#3}% - \ifpgfutil@in@% - \tikz@parse@arc@and(#1:#2:#3)% - \else% - \tikz@parse@arc@and(#1:#2:#3 and #3)% - \fi% + \tikz@parse@arc@and(#1:#2:#3 and #3)% \fi% } -\def\tikz@parse@arc@replace@slash@and(#1:#2:#3/#4){\tikz@parse@arc@and(#1:#2:#3 and #4)} - \def\tikz@parse@arc@and(#1:#2:#3 and #4){% \tikz@checkunit{#3}% \iftikz@isdimension% - \tikz@@@arcfinal{\pgfpatharc{#1}{#2}{#3/#4}} - {\pgfpointpolar{#1}{#3/#4}} - {\pgfpointpolar{#2}{#3/#4}}% + \tikz@@@arcfinal{\pgfpatharc{#1}{#2}{#3 and #4}} + {\pgfpointpolar{#1}{#3 and #4}} + {\pgfpointpolar{#2}{#3 and #4}}% \else% \tikz@@@arcfinal{\pgfpatharcaxes{#1}{#2}{\pgfpointxy{#3}{0}}{\pgfpointxy{0}{#4}}} - {\pgfpointpolarxy{#1}{#3/#4}}{\pgfpointpolarxy{#2}{#3/#4}}% + {\pgfpointpolarxy{#1}{#3 and #4}}{\pgfpointpolarxy{#2}{#3 and #4}}% \fi% } @@ -2429,6 +2498,7 @@ \begingroup% \let\tikz@fig@name=\pgfutil@empty% \begingroup% + \tikz@is@matrixfalse% \let\nodepart=\tikz@nodepart% \let\tikz@options=\pgfutil@empty% \let\tikz@after@node=\pgfutil@empty% @@ -2463,6 +2533,14 @@ \def\tikz@shape{rectangle}}% {}% \tikz@every@style{every \tikz@shape\space node}% + \iftikz@is@matrix% + \let\tikz@next=\tikz@do@matrix% + \else% + \let\tikz@next=\tikz@do@fig% + \fi% + \tikz@next% +} +\def\tikz@do@fig{% \setbox\pgfnodeparttextbox=\hbox% \bgroup% \tikz@every@style{every text node part}% @@ -2506,66 +2584,179 @@ \fi% \endpgfinterruptpicture% \egroup% - \pgfutil@ifnextchar c{\tikz@fig@mustbenamed}% - {\pgfutil@ifnextchar[{\tikz@fig@mustbenamed}% - {\pgfutil@ifnextchar t{\tikz@fig@mustbenamed} - {\pgfutil@ifnextchar e{\tikz@fig@mustbenamed} - {\ifx\tikz@after@node\pgfutil@empty\expandafter\tikz@fig@continue\else\expandafter\tikz@fig@mustbenamed\fi}}}}}%} -\def\tikz@fig@mustbenamed{% - \ifx\tikz@fig@name\pgfutil@empty% - % Assign a dummy name - \global\advance\tikz@fig@count by1\relax - \edef\tikz@fig@name{tikz@f@\the\tikz@fig@count}% - \fi% - \tikz@fig@continue% + \pgfutil@ifnextchar c{\tikz@fig@mustbenamed\tikz@fig@continue}% + {\pgfutil@ifnextchar[{\tikz@fig@mustbenamed\tikz@fig@continue}% + {\pgfutil@ifnextchar t{\tikz@fig@mustbenamed\tikz@fig@continue} + {\pgfutil@ifnextchar e{\tikz@fig@mustbenamed\tikz@fig@continue} + {\ifx\tikz@after@node\pgfutil@empty\expandafter\tikz@fig@continue\else\expandafter\tikz@fig@mustbenamed\expandafter\tikz@fig@continue\fi}}}}}%} + +\def\tikz@do@matrix{% + \tikz@every@style{every matrix}% + \tikz@node@transformations% + \tikz@fig@mustbenamed% + \setbox\tikz@figbox=\hbox\bgroup% + \setbox\pgfutil@tempboxa=\copy\tikz@figbox% + \unhbox\pgfutil@tempboxa% + \hbox\bgroup\bgroup% + \pgfinterruptpath% + \pgfscope% + \tikz@options% + \setbox\tikz@figbox=\box\voidb@x% + \let\tikzmatrixname=\tikz@fig@name% + \edef\tikz@m@anchor{\ifx\tikz@matrix@anchor\pgfutil@empty\tikz@anchor\else\tikz@matrix@anchor\fi}% + \expandafter\pgfutil@in@\expandafter{\expandafter.\expandafter}\expandafter{\tikz@m@anchor}% + \ifpgfutil@in@% + \expandafter\tikz@matrix@split\tikz@m@anchor\relax% + \else% + \def\tikz@matrix@shift{\pgfpointorigin}% + \fi% + \let\tikz@transform=\relax% + \pgfmatrix% + {\tikz@shape}% + {\tikz@m@anchor}% + {\tikz@fig@name}% + {% + \pgfutil@tempdima=\pgflinewidth% + {\begingroup\tikz@finish}% + \global\pgflinewidth=\pgfutil@tempdima% + }% + {\tikz@matrix@shift}% + {% + \tikz@matrix@make@active@ampersand% + \def\pgfmatrixbegincode{% + \pgfsys@beginscope% + \tikz@common@matrix@code% + \tikz@atbegin@cell% + }% + \def\tikz@common@matrix@code{% + \let\tikz@options=\pgfutil@empty% + \let\tikz@mode=\pgfutil@empty% + \tikz@every@style{every cell}% + \tikz@every@style{column \the\pgfmatrixcurrentcolumn}% + \ifodd\pgfmatrixcurrentcolumn% + \tikz@every@style{every odd column}% + \else% + \tikz@every@style{every even column}% + \fi% + \tikz@every@style{row \the\pgfmatrixcurrentrow}% + \ifodd\pgfmatrixcurrentrow% + \tikz@every@style{every odd row}% + \else% + \tikz@every@style{every even row}% + \fi% + \tikz@every@style{row \the\pgfmatrixcurrentrow\space column \the\pgfmatrixcurrentcolumn}% + \tikz@options% + }% + \def\pgfmatrixendcode{% + \tikz@atend@cell% + \pgfsys@endscope% + }% + \def\pgfmatrixemptycode{% + \pgfsys@beginscope% + \tikz@common@matrix@code% + \tikz@at@emptycell% + \pgfsys@endscope% + }% + \aftergroup\tikz@do@matrix@cont}% + \bgroup% +} +\def\tikz@do@matrix@cont{% + \endpgfscope + \endpgfinterruptpath% + \egroup\egroup% + \egroup% + % + \tikz@node@finish% +} + +{% + \catcode`\&=13 + \gdef\tikz@matrix@make@active@ampersand{% + \ifx\tikz@ampersand@replacement\pgfutil@empty% + \catcode`\&=13% + \let&=\pgfmatrixnextcell% + \else% + \expandafter\let\tikz@ampersand@replacement=\pgfmatrixnextcell% + \fi% + }% +}% + + +\def\tikz@matrix@split#1.#2\relax{% + \def\tikz@m@anchor{text}% + \def\tikz@matrix@shift{\pgfpointanchor{#1}{#2}}% } + \def\tikz@fig@continue{% \ifx\tikz@text@width\pgfutil@empty% \else% - \setlength{\pgf@x}{\tikz@text@width}% + \pgfmathsetlength{\pgf@x}{\tikz@text@width}% \wd\pgfnodeparttextbox=\pgf@x% \fi% \ifx\tikz@text@height\pgfutil@empty% \else% - \setlength{\pgf@x}{\tikz@text@height}% + \pgfmathsetlength{\pgf@x}{\tikz@text@height}% \ht\pgfnodeparttextbox=\pgf@x% \fi% \ifx\tikz@text@depth\pgfutil@empty% \else% - \setlength{\pgf@x}{\tikz@text@depth}% + \pgfmathsetlength{\pgf@x}{\tikz@text@depth}% \dp\pgfnodeparttextbox=\pgf@x% \fi% - % Possibly, we are ``online'' - \ifx\tikz@time\pgfutil@empty% - \pgftransformshift{\tikz@node@at}% - \iftikz@fullytransformed% - \else% - \pgftransformresetnontranslations - \fi% - \else% - \tikz@do@auto@anchor% - \tikz@timer% - \fi% - % Invoke local transformations - \tikz@transform% + % + % Node transformation + % + \tikz@node@transformations + % \setbox\tikz@figbox=\hbox{% - \setbox\@tempboxa=\copy\tikz@figbox% - \unhbox\@tempboxa% + \setbox\pgfutil@tempboxa=\copy\tikz@figbox% + \unhbox\pgfutil@tempboxa% \hbox{{% \pgfinterruptpath% \pgfscope% \tikz@options% \setbox\tikz@figbox=\box\voidb@x% \pgfmultipartnode{\tikz@shape}{\tikz@anchor}{\tikz@fig@name}{% - \@tempdima=\pgflinewidth% + \pgfutil@tempdima=\pgflinewidth% {\begingroup\tikz@finish}% - \global\pgflinewidth=\@tempdima% + \global\pgflinewidth=\pgfutil@tempdima% }% \endpgfscope \endpgfinterruptpath% }}% }% - % + % + \tikz@node@finish% +} + + +\def\tikz@fig@mustbenamed{% + \ifx\tikz@fig@name\pgfutil@empty% + % Assign a dummy name + \global\advance\tikz@fig@count by1\relax + \edef\tikz@fig@name{tikz@f@\the\tikz@fig@count}% + \fi% +} + +\def\tikz@node@transformations{ + % + % Possibly, we are ``online'' + % + \ifx\tikz@time\pgfutil@empty% + \pgftransformshift{\tikz@node@at}% + \iftikz@fullytransformed% + \else% + \pgftransformresetnontranslations% + \fi% + \else% + \tikz@do@auto@anchor% + \tikz@timer% + \fi% + % Invoke local transformations + \tikz@transform% +} + +\def\tikz@node@finish{% \global\let\tikz@last@fig@name=\tikz@fig@name% \global\let\tikz@after@node@smuggle=\tikz@after@node% \global\let\tikz@afternodepathoptions@smuggle=\tikz@afternodepathoptions% @@ -2585,6 +2776,8 @@ } \let\tikz@fig@continue@orig=\tikz@fig@continue + + % Syntax for parts of nodes: % node ... {... \nodepart{name} ... \nodepart{name} ...} @@ -2742,7 +2935,7 @@ \tikz@transform% \let\tikzparentnode=\tikz@last@fig@name% % Transform to center of node - \pgftransformshift{\pgfpointanchor{\tikzparentnode}{center}}% + \pgftransformshift{\pgfpointanchor{\tikzparentnode}{\tikz@growth@anchor}}% \tikznumberofcurrentchild=0\relax% \tikz@children@list% \global\setbox\tikz@tempbox=\copy\tikz@figbox% @@ -2973,7 +3166,7 @@ \tikzdeclarecoordinatesystem{xyz polar} {% \tikz@orig@setkeys{tikzcskeys}{angle=0,radius=0,#1}% - \pgfpointpolarxy{\tikz@cs@angle}{\tikz@cs@xradius/\tikz@cs@yradius}% + \pgfpointpolarxy{\tikz@cs@angle}{\tikz@cs@xradius and \tikz@cs@yradius}% } \tikzaliascoordinatesystem{xy polar}{xyz polar} @@ -3021,6 +3214,33 @@ \pgfqpoint{\the\pgf@xb}{\the\pgf@ya} } +\tikzdeclarecoordinatesystem{barycentric} +{% + {% + \pgf@xa=0pt% point + \pgf@ya=0pt% + \pgf@xb=0pt% sum + \tikz@bary@dolist#1,=,% + \pgfmathparse{1/\the\pgf@xb}% + \global\pgf@x=\pgfmathresult\pgf@xa% + \global\pgf@y=\pgfmathresult\pgf@ya% + }% +} + +\def\tikz@bary@dolist#1=#2,{% + \def\tikz@temp{#1}% + \ifx\tikz@temp\pgfutil@empty% + \else + \pgf@process{\pgfpointanchor{#1}{center}}% + \pgfmathparse{#2}% + \advance\pgf@xa by\pgfmathresult\pgf@x% + \advance\pgf@ya by\pgfmathresult\pgf@y% + \advance\pgf@xb by\pgfmathresult pt% + \expandafter\tikz@bary@dolist% + \fi% +} + + \tikz@orig@define@key{tikzcskeys}{x}{\def\tikz@cs@x{#1}} \tikz@orig@define@key{tikzcskeys}{y}{\def\tikz@cs@y{#1}} \tikz@orig@define@key{tikzcskeys}{z}{\def\tikz@cs@z{#1}} @@ -3168,9 +3388,8 @@ \newif\iftikz@isdimension \def\tikz@checkunit#1{% - \@tempdima\z@% - \afterassignment\tikz@@checkunit% - \@tempdima#1\@tempdima\tikz@unique% + \pgfmathparse{#1}% + \let\iftikz@isdimension=\ifpgfmathunitsdeclared% } \def\tikz@@checkunit{\pgfutil@ifnextchar\tikz@unique{\tikz@checkunit@number}{\tikz@checkunit@dimension}} \def\tikz@checkunit@number\tikz@unique{\tikz@isdimensionfalse} @@ -3193,9 +3412,9 @@ \def\tikz@@@parse@polar#1(#2:#3 and #4){% \tikz@checkunit{#3}% \iftikz@isdimension% - \def\tikz@next{#1{\pgfpointpolar{#2}{#3/#4}}}% + \def\tikz@next{#1{\pgfpointpolar{#2}{#3 and #4}}}% \else% - \def\tikz@next{#1{\pgfpointpolarxy{#2}{#3/#4}}}% + \def\tikz@next{#1{\pgfpointpolarxy{#2}{#3 and #4}}}% \fi% \tikz@next% } diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex index a0b9a108d60..9de07884dd5 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex @@ -7,30 +7,30 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryarrows.code.tex,v 1.5 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryarrows.code.tex,v 1.7 2007/06/07 07:41:11 tantau Exp $ % A square bracket shaped arrow \pgfarrowsdeclare{[}{]} { - \@tempdima=1pt% - \advance\@tempdima by1.25\pgflinewidth% - \pgfarrowsleftextend{-\@tempdima} - \pgfarrowsrightextend{.5\pgflinewidth} + \pgfutil@tempdima=1pt% + \advance\pgfutil@tempdima by1.25\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdima} + \pgfarrowsrightextend{+.5\pgflinewidth} } { - \@tempdima=2pt% - \advance\@tempdima by1.5\pgflinewidth% - \@tempdimb=\@tempdima% - \advance\@tempdimb by\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=2pt% + \advance\pgfutil@tempdima by1.5\pgflinewidth% + \pgfutil@tempdimb=\pgfutil@tempdima% + \advance\pgfutil@tempdimb by\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin \pgfsetbuttcap - \pgfpathmoveto{\pgfpoint{-.5\@tempdimb}{-\@tempdima}} - \pgfpathlineto{\pgfpoint{0pt}{-\@tempdima}} - \pgfpathlineto{\pgfpoint{0pt}{\@tempdima}} - \pgfpathlineto{\pgfpoint{-.5\@tempdimb}{\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-.5\pgfutil@tempdimb}{-1\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0pt}{-1\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0pt}{\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-.5\pgfutil@tempdimb}{\pgfutil@tempdima}} \pgfusepathqstroke } @@ -41,23 +41,23 @@ \pgfarrowsdeclare{(}{)} { - \@tempdima=2pt% - \advance\@tempdima by1.5\pgflinewidth% - \@tempdimb=0.0625\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} - \@tempdimb=0.5\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} + \pgfutil@tempdima=2pt% + \advance\pgfutil@tempdima by1.5\pgflinewidth% + \pgfutil@tempdimb=0.0625\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} + \pgfutil@tempdimb=0.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} } { - \@tempdima=2pt% - \advance\@tempdima by1.5\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=2pt% + \advance\pgfutil@tempdima by1.5\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap - \pgfpathmoveto{\pgfpoint{-.5\@tempdima}{-\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-.5\pgfutil@tempdima}{-1\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{.25\@tempdima}{-.5\@tempdima}} - {\pgfpoint{.25\@tempdima}{.5\@tempdima}} - {\pgfpoint{-.5\@tempdima}{\@tempdima}} + {\pgfqpoint{.25\pgfutil@tempdima}{-.5\pgfutil@tempdima}} + {\pgfqpoint{.25\pgfutil@tempdima}{.5\pgfutil@tempdima}} + {\pgfqpoint{-.5\pgfutil@tempdima}{\pgfutil@tempdima}} \pgfusepathqstroke } @@ -70,22 +70,22 @@ \pgfarrowsdeclare{angle 90}{angle 90} { - \@tempdima=0.3pt% - \advance\@tempdima by.25\pgflinewidth% - \@tempdimb=5.5\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=.5\@tempdima\advance\@tempdimb by0.707\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.3pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfutil@tempdimb=5.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by0.707\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.3pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.3pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetmiterjoin - \pgfpathmoveto{\pgfpoint{-5.5\@tempdima}{-6\@tempdima}} - \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{-5.5\@tempdima}{6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-5.5\pgfutil@tempdima}{-6\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-5.5\pgfutil@tempdima}{6\pgfutil@tempdima}} \pgfusepathqstroke } @@ -94,22 +94,22 @@ \pgfarrowsdeclare{angle 60}{angle 60} { - \@tempdima=0.3pt% - \advance\@tempdima by.25\pgflinewidth% - \@tempdimb=7.29\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=.5\@tempdima\advance\@tempdimb by\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.3pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfutil@tempdimb=7.29\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.3pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.3pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{150}{9\@tempdima}}} - \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-150}{9\@tempdima}}} + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{150}{9\pgfutil@tempdima}}} + \pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-150}{9\pgfutil@tempdima}}} \pgfusepathqstroke } @@ -119,22 +119,22 @@ \pgfarrowsdeclare{angle 45}{angle 45} { - \@tempdima=0.3pt% - \advance\@tempdima by.25\pgflinewidth% - \@tempdimb=8.705\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=.5\@tempdima\advance\@tempdimb by1.28\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.3pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfutil@tempdimb=8.705\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by1.28\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.3pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.3pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{157}{10\@tempdima}}} - \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-157}{10\@tempdima}}} + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{157}{10\pgfutil@tempdima}}} + \pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-157}{10\pgfutil@tempdima}}} \pgfusepathqstroke } @@ -146,18 +146,18 @@ \pgfarrowsdeclare{*}{*} { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \@tempdimb=5.5\@tempdima\advance\@tempdimb by\pgflinewidth - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=1.5\@tempdima\advance\@tempdimb by.5\pgflinewidth - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfutil@tempdimb=5.5\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=1.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfsetdash{}{0pt} - \pgfpathcircle{\pgfpoint{-3\@tempdima}{0pt}}{4.5\@tempdima} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfsetdash{}{+0pt} + \pgfpathcircle{\pgfqpoint{-3\pgfutil@tempdima}{0pt}}{+4.5\pgfutil@tempdima} \pgfusepathqfillstroke } @@ -166,17 +166,17 @@ \pgfarrowsdeclare{o}{o} { - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \@tempdimb=9\@tempdima\advance\@tempdimb by.5\pgflinewidth - \pgfarrowsrightextend{\@tempdimb} + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfutil@tempdimb=9\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfsetdash{}{0pt} - \pgfpathcircle{\pgfpoint{4.5\@tempdima}{0bp}}{4.5\@tempdima} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfsetdash{}{+0pt} + \pgfpathcircle{\pgfqpoint{4.5\pgfutil@tempdima}{0bp}}{4.5\pgfutil@tempdima} \pgfusepathqstroke } @@ -186,43 +186,43 @@ \pgfarrowsdeclare{diamond}{diamond} { - \@tempdima=0.4pt% - \advance\@tempdima by.275\pgflinewidth% - \@tempdimb=13\@tempdima\advance\@tempdimb by.5\pgflinewidth - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=1\@tempdima\advance\@tempdimb by.5\pgflinewidth - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.275\pgflinewidth% + \pgfutil@tempdimb=13\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=1\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.275\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.275\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{1\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{-6\@tempdima}{4\@tempdima}} - \pgfpathlineto{\pgfpoint{-13\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{-6\@tempdima}{-4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{1\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-6\pgfutil@tempdima}{4\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-13\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-6\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfpathclose \pgfusepathqfillstroke } \pgfarrowsdeclare{open diamond}{open diamond}%{{-.5bp}{14.5bp}} { - \@tempdima=0.4pt% - \advance\@tempdima by.275\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=14\@tempdima\advance\@tempdimb by.5\pgflinewidth - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.275\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=14\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.275\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.275\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{14\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{7\@tempdima}{4\@tempdima}} - \pgfpathlineto{\pgfpoint{0\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{7\@tempdima}{-4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{14\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{7\pgfutil@tempdima}{4\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{7\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfpathclose \pgfusepathqstroke } @@ -233,21 +233,21 @@ \pgfarrowsdeclare{triangle 90}{triangle 90} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \@tempdimb=5.5\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=.5\@tempdima\advance\@tempdimb by0.707\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfutil@tempdimb=5.5\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by0.707\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpoint{-5.5\@tempdima}{-6\@tempdima}} - \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{-5.5\@tempdima}{6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-5.5\pgfutil@tempdima}{-6\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-5.5\pgfutil@tempdima}{6\pgfutil@tempdima}} \pgfpathclose \pgfusepathqfillstroke } @@ -257,21 +257,21 @@ \pgfarrowsdeclare{triangle 60}{triangle 60} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \@tempdimb=7.29\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=.5\@tempdima\advance\@tempdimb by\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfutil@tempdimb=7.29\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{150}{9\@tempdima}}} - \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-150}{9\@tempdima}}} + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{150}{9\pgfutil@tempdima}}} + \pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-150}{9\pgfutil@tempdima}}} \pgfpathclose \pgfusepathqfillstroke } @@ -283,21 +283,21 @@ \pgfarrowsdeclare{triangle 45}{triangle 45} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \@tempdimb=8.705\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=.5\@tempdima\advance\@tempdimb by1.28\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfutil@tempdimb=8.705\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=.5\pgfutil@tempdima\advance\pgfutil@tempdimb by1.28\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{157}{10\@tempdima}}} - \pgfpathlineto{\pgfpoint{0.5\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{0.5\@tempdima}{0pt}}{\pgfpointpolar{-157}{10\@tempdima}}} + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{157}{10\pgfutil@tempdima}}} + \pgfpathlineto{\pgfqpoint{0.5\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{0.5\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-157}{10\pgfutil@tempdima}}} \pgfpathclose \pgfusepathqfillstroke } @@ -309,40 +309,40 @@ \pgfarrowsdeclare{open triangle 90}{open triangle 90} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=6\@tempdima\advance\@tempdimb by0.707\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=6\pgfutil@tempdima\advance\pgfutil@tempdimb by0.707\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpoint{0\@tempdima}{-6\@tempdima}} - \pgfpathlineto{\pgfpoint{6\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{0\@tempdima}{6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{-6\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{6\pgfutil@tempdima}} \pgfpathclose \pgfusepathqstroke } \pgfarrowsdeclare{open triangle 90 reversed}{open triangle 90 reversed} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfarrowsleftextend{-.707\pgflinewidth} - \@tempdimb=6\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{+-.707\pgflinewidth} + \pgfutil@tempdimb=6\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpoint{6\@tempdima}{-6\@tempdima}} - \pgfpathlineto{\pgfpoint{0\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{6\@tempdima}{6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{6\pgfutil@tempdima}{-6\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{6\pgfutil@tempdima}{6\pgfutil@tempdima}} \pgfpathclose \pgfusepathqstroke } @@ -351,20 +351,20 @@ \pgfarrowsdeclare{open triangle 60}{open triangle 60} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=7.794\@tempdima\advance\@tempdimb by\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=7.794\pgfutil@tempdima\advance\pgfutil@tempdimb by\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointadd{\pgfpoint{7.794\@tempdima}{0pt}}{\pgfpointpolar{150}{9\@tempdima}}} - \pgfpathlineto{\pgfpoint{7.794\@tempdima}{0pt}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{7.794\@tempdima}{0pt}}{\pgfpointpolar{-150}{9\@tempdima}}} + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{7.794\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{150}{9\pgfutil@tempdima}}} + \pgfpathlineto{\pgfqpoint{7.794\pgfutil@tempdima}{0pt}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{7.794\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-150}{9\pgfutil@tempdima}}} \pgfpathclose \pgfusepathqstroke } @@ -373,20 +373,20 @@ \pgfarrowsdeclare{open triangle 60 reversed}{open triangle 60 reversed} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfarrowsleftextend{-\pgflinewidth} - \@tempdimb=7.794\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{+-\pgflinewidth} + \pgfutil@tempdimb=7.794\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointpolar{30}{9\@tempdima}} + \pgfpathmoveto{\pgfqpointpolar{30}{9\pgfutil@tempdima}} \pgfpathlineto{\pgfpointorigin} - \pgfpathlineto{\pgfpointpolar{-30}{9\@tempdima}} + \pgfpathlineto{\pgfqpointpolar{-30}{9\pgfutil@tempdima}} \pgfpathclose \pgfusepathqstroke } @@ -395,20 +395,20 @@ \pgfarrowsdeclare{open triangle 45}{open triangle 45} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=9.205\@tempdima\advance\@tempdimb by1.28\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=9.205\pgfutil@tempdima\advance\pgfutil@tempdimb by1.28\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointadd{\pgfpoint{9.205\@tempdima}{0pt}}{\pgfpointpolar{157}{10\@tempdima}}} - \pgfpathlineto{\pgfpoint{9.205\@tempdima}{0pt}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{9.205\@tempdima}{0pt}}{\pgfpointpolar{-157}{10\@tempdima}}} + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{9.205\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{157}{10\pgfutil@tempdima}}} + \pgfpathlineto{\pgfqpoint{9.205\pgfutil@tempdima}{0pt}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{9.205\pgfutil@tempdima}{0pt}}{\pgfqpointpolar{-157}{10\pgfutil@tempdima}}} \pgfpathclose \pgfusepathqstroke } @@ -417,20 +417,20 @@ \pgfarrowsdeclare{open triangle 45 reversed}{open triangle 45 reversed} { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfarrowsleftextend{-1.28\pgflinewidth} - \@tempdimb=9.205\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfarrowsleftextend{+-1.28\pgflinewidth} + \pgfutil@tempdimb=9.205\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.5pt% - \advance\@tempdima by.25\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.5pt% + \advance\pgfutil@tempdima by.25\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetmiterjoin - \pgfpathmoveto{\pgfpointpolar{23}{10\@tempdima}} + \pgfpathmoveto{\pgfqpointpolar{23}{10\pgfutil@tempdima}} \pgfpathlineto{\pgfpointorigin} - \pgfpathlineto{\pgfpointpolar{-23}{10\@tempdima}} + \pgfpathlineto{\pgfqpointpolar{-23}{10\pgfutil@tempdima}} \pgfpathclose \pgfusepathqstroke } @@ -441,27 +441,27 @@ \pgfarrowsdeclare{latex'}{latex'} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-4\@tempdima} - \pgfarrowsrightextend{6\@tempdima} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-4\pgfutil@tempdima} + \pgfarrowsrightextend{+6\pgfutil@tempdima} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfpathmoveto{\pgfpoint{6\@tempdima}{0\@tempdima}} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfpathmoveto{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{3.5\@tempdima}{.5\@tempdima}} - {\pgfpoint{-1\@tempdima}{1.5\@tempdima}} - {\pgfpoint{-4\@tempdima}{3.75\@tempdima}} + {\pgfqpoint{3.5\pgfutil@tempdima}{.5\pgfutil@tempdima}} + {\pgfqpoint{-1\pgfutil@tempdima}{1.5\pgfutil@tempdima}} + {\pgfqpoint{-4\pgfutil@tempdima}{3.75\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-1.5\@tempdima}{1\@tempdima}} - {\pgfpoint{-1.5\@tempdima}{-1\@tempdima}} - {\pgfpoint{-4\@tempdima}{-3.75\@tempdima}} + {\pgfqpoint{-1.5\pgfutil@tempdima}{1\pgfutil@tempdima}} + {\pgfqpoint{-1.5\pgfutil@tempdima}{-1\pgfutil@tempdima}} + {\pgfqpoint{-4\pgfutil@tempdima}{-3.75\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-1\@tempdima}{-1.5\@tempdima}} - {\pgfpoint{3.5\@tempdima}{-.5\@tempdima}} - {\pgfpoint{6\@tempdima}{0\@tempdima}} + {\pgfqpoint{-1\pgfutil@tempdima}{-1.5\pgfutil@tempdima}} + {\pgfqpoint{3.5\pgfutil@tempdima}{-.5\pgfutil@tempdima}} + {\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}} \pgfusepathqfill } @@ -472,31 +472,31 @@ \pgfarrowsdeclare{stealth'}{stealth'} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \@tempdimb=6\@tempdima\advance\@tempdimb by.5\pgflinewidth% - \pgfarrowsleftextend{-\@tempdimb} - \@tempdimb=2\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfutil@tempdimb=6\pgfutil@tempdima\advance\pgfutil@tempdimb by.5\pgflinewidth% + \pgfarrowsleftextend{+-\pgfutil@tempdimb} + \pgfutil@tempdimb=2\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{2\@tempdima}{0\@tempdima}} + \pgfpathmoveto{\pgfqpoint{2\pgfutil@tempdima}{0\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-.5\@tempdima}{.5\@tempdima}} - {\pgfpoint{-3\@tempdima}{1.5\@tempdima}} - {\pgfpoint{-6\@tempdima}{3.25\@tempdima}} + {\pgfqpoint{-.5\pgfutil@tempdima}{.5\pgfutil@tempdima}} + {\pgfqpoint{-3\pgfutil@tempdima}{1.5\pgfutil@tempdima}} + {\pgfqpoint{-6\pgfutil@tempdima}{3.25\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-3\@tempdima}{1\@tempdima}} - {\pgfpoint{-3\@tempdima}{-1\@tempdima}} - {\pgfpoint{-6\@tempdima}{-3.25\@tempdima}} + {\pgfqpoint{-3\pgfutil@tempdima}{1\pgfutil@tempdima}} + {\pgfqpoint{-3\pgfutil@tempdima}{-1\pgfutil@tempdima}} + {\pgfqpoint{-6\pgfutil@tempdima}{-3.25\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-3\@tempdima}{-1.5\@tempdima}} - {\pgfpoint{-.5\@tempdima}{-.5\@tempdima}} - {\pgfpoint{2\@tempdima}{0\@tempdima}} + {\pgfqpoint{-3\pgfutil@tempdima}{-1.5\pgfutil@tempdima}} + {\pgfqpoint{-.5\pgfutil@tempdima}{-.5\pgfutil@tempdima}} + {\pgfqpoint{2\pgfutil@tempdima}{0\pgfutil@tempdima}} \pgfpathclose \pgfusepathqfillstroke } @@ -509,60 +509,60 @@ \pgfarrowsdeclare{left to}{left to} { - \@tempdima=-0.84pt% - \advance\@tempdima by-1.3\pgflinewidth% - \@tempdimb=0.21pt% - \advance\@tempdimb by.625\pgflinewidth% - \pgfarrowsleftextend{\@tempdima} - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=-0.84pt% + \advance\pgfutil@tempdima by-1.3\pgflinewidth% + \pgfutil@tempdimb=0.21pt% + \advance\pgfutil@tempdimb by.625\pgflinewidth% + \pgfarrowsleftextend{+\pgfutil@tempdima} + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% \pgfsetlinewidth{0.8\pgflinewidth} - \pgfsetdash{}{0pt} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{-3\@tempdima}{4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-2.75\@tempdima}{2.5\@tempdima}} - {\pgfpoint{0pt}{0.25\@tempdima}} - {\pgfpoint{0.75\@tempdima}{0pt}} + {\pgfqpoint{-2.75\pgfutil@tempdima}{2.5\pgfutil@tempdima}} + {\pgfqpoint{0pt}{0.25\pgfutil@tempdima}} + {\pgfqpoint{0.75\pgfutil@tempdima}{0pt}} \pgfpathcurveto - {\pgfpoint{0.55\@tempdima}{-0.125\pgflinewidth}} - {\pgfpoint{0.5\@tempdima}{-0.125\pgflinewidth}} - {\pgfpoint{0.5\@tempdima}{-0.125\pgflinewidth}} - \pgfpathlineto{\pgfpoint{0pt}{-0.125\pgflinewidth}} + {\pgfqpoint{0.55\pgfutil@tempdima}{-0.125\pgflinewidth}} + {\pgfqpoint{0.5\pgfutil@tempdima}{-0.125\pgflinewidth}} + {\pgfqpoint{0.5\pgfutil@tempdima}{-0.125\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{0pt}{-0.125\pgflinewidth}} \pgfusepathqstroke } \pgfarrowsdeclare{right to}{right to} { - \@tempdima=-0.84pt% - \advance\@tempdima by-1.3\pgflinewidth% - \@tempdimb=0.21pt% - \advance\@tempdimb by.625\pgflinewidth% - \pgfarrowsleftextend{\@tempdima} - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=-0.84pt% + \advance\pgfutil@tempdima by-1.3\pgflinewidth% + \pgfutil@tempdimb=0.21pt% + \advance\pgfutil@tempdimb by.625\pgflinewidth% + \pgfarrowsleftextend{+\pgfutil@tempdima} + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% \pgfsetlinewidth{0.8\pgflinewidth} - \pgfsetdash{}{0pt} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfsetroundjoin - \pgfpathmoveto{\pgfpoint{-3\@tempdima}{-4\@tempdima}} + \pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-2.75\@tempdima}{-2.5\@tempdima}} - {\pgfpoint{0pt}{-0.25\@tempdima}} - {\pgfpoint{0.75\@tempdima}{0pt}} + {\pgfqpoint{-2.75\pgfutil@tempdima}{-2.5\pgfutil@tempdima}} + {\pgfqpoint{0pt}{-0.25\pgfutil@tempdima}} + {\pgfqpoint{0.75\pgfutil@tempdima}{0pt}} \pgfpathcurveto - {\pgfpoint{0.55\@tempdima}{0.125\pgflinewidth}} - {\pgfpoint{0.5\@tempdima}{0.125\pgflinewidth}} - {\pgfpoint{0.5\@tempdima}{0.125\pgflinewidth}} - \pgfpathlineto{\pgfpoint{0pt}{0.125\pgflinewidth}} + {\pgfqpoint{0.55\pgfutil@tempdima}{0.125\pgflinewidth}} + {\pgfqpoint{0.5\pgfutil@tempdima}{0.125\pgflinewidth}} + {\pgfqpoint{0.5\pgfutil@tempdima}{0.125\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{0pt}{0.125\pgflinewidth}} \pgfusepathqstroke } @@ -572,56 +572,56 @@ \pgfarrowsdeclare{left to reversed}{left to reversed} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-.1\pgflinewidth} - \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.9\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-.1\pgflinewidth} + \pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.9\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundjoin \pgfsetbuttcap - \pgfpathmoveto{\pgfpoint{0.5\pgflinewidth}{0pt}} - \pgfpathlineto{\pgfpoint{-0.1\pgflinewidth}{0pt}} + \pgfpathmoveto{\pgfqpoint{0.5\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfqpoint{-0.1\pgflinewidth}{0pt}} \pgfusepathqstroke \pgfsetroundcap \pgfsetlinewidth{.8\pgflinewidth} {\pgftransformxshift{0.625\pgflinewidth} - \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{4\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{0.25\@tempdima}}{\pgfpoint{0pt}{0.125\pgflinewidth}} - \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{4\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{0.25\@tempdima}}{\pgfpoint{0pt}{-0.125\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{4\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{0.125\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{4\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{-0.125\pgflinewidth}} } \pgfusepathqstroke% } \pgfarrowsdeclare{right to reversed}{right to reversed} { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfarrowsleftextend{-.1\pgflinewidth} - \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.9\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfarrowsleftextend{+-.1\pgflinewidth} + \pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.9\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.28pt% - \advance\@tempdima by.3\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.28pt% + \advance\pgfutil@tempdima by.3\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundjoin \pgfsetbuttcap - \pgfpathmoveto{\pgfpoint{0.5\pgflinewidth}{0pt}} - \pgfpathlineto{\pgfpoint{-0.1\pgflinewidth}{0pt}} + \pgfpathmoveto{\pgfqpoint{0.5\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfqpoint{-0.1\pgflinewidth}{0pt}} \pgfusepathqstroke \pgfsetroundcap \pgfsetlinewidth{.8\pgflinewidth} {\pgftransformxshift{0.625\pgflinewidth} - \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{-4\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{-2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{-0.25\@tempdima}}{\pgfpoint{0pt}{-0.125\pgflinewidth}} - \pgfpathmoveto{\pgfpoint{3.75\@tempdima}{-4\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.5\@tempdima}{-2.5\@tempdima}}{\pgfpoint{0.75\@tempdima}{-0.25\@tempdima}}{\pgfpoint{0pt}{0.125\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{-0.125\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.5\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-0.25\pgfutil@tempdima}}{\pgfqpoint{0pt}{0.125\pgflinewidth}} } \pgfusepathqstroke% } @@ -632,21 +632,21 @@ \pgfarrowsdeclare{left hook}{left hook} { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap - \pgfpathmoveto{\pgfpoint{0\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} - \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{3\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{6\@tempdima}}{\pgfpoint{0.75\@tempdima}{6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{3\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{6\pgfutil@tempdima}} \pgfusepathqstroke% } @@ -658,21 +658,21 @@ \pgfarrowsdeclare{right hook}{right hook} { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap - \pgfpathmoveto{\pgfpoint{0\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} - \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{-1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{-3\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{-4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{-6\@tempdima}}{\pgfpoint{0.75\@tempdima}{-6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-3\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{-6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-6\pgfutil@tempdima}} \pgfusepathqstroke% } @@ -683,24 +683,24 @@ \pgfarrowsdeclare{hooks}{hooks} { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfarrowsleftextend{-.5\pgflinewidth} - \@tempdimb=3.75\@tempdima\advance\@tempdimb by0.5\pgflinewidth% - \pgfarrowsrightextend{\@tempdimb} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfarrowsleftextend{+-.5\pgflinewidth} + \pgfutil@tempdimb=3.75\pgfutil@tempdima\advance\pgfutil@tempdimb by0.5\pgflinewidth% + \pgfarrowsrightextend{+\pgfutil@tempdimb} } { - \@tempdima=0.4pt% - \advance\@tempdima by.2\pgflinewidth% - \pgfsetdash{}{0pt} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.2\pgflinewidth% + \pgfsetdash{}{+0pt} \pgfsetroundcap - \pgfpathmoveto{\pgfpoint{0\@tempdima}{0\@tempdima}} - \pgfpathlineto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} - \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{3\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{6\@tempdima}}{\pgfpoint{0.75\@tempdima}{6\@tempdima}} - \pgfpathmoveto{\pgfpoint{0.75\@tempdima}{0\@tempdima}} - \pgfpathcurveto{\pgfpoint{2.415\@tempdima}{0\@tempdima}}{\pgfpoint{3.75\@tempdima}{-1.665\@tempdima}}{\pgfpoint{3.75\@tempdima}{-3\@tempdima}} - \pgfpathcurveto{\pgfpoint{3.75\@tempdima}{-4.665\@tempdima}}{\pgfpoint{2.415\@tempdima}{-6\@tempdima}}{\pgfpoint{0.75\@tempdima}{-6\@tempdima}} + \pgfpathmoveto{\pgfqpoint{0\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{3\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{6\pgfutil@tempdima}} + \pgfpathmoveto{\pgfqpoint{0.75\pgfutil@tempdima}{0\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{2.415\pgfutil@tempdima}{0\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-1.665\pgfutil@tempdima}}{\pgfqpoint{3.75\pgfutil@tempdima}{-3\pgfutil@tempdima}} + \pgfpathcurveto{\pgfqpoint{3.75\pgfutil@tempdima}{-4.665\pgfutil@tempdima}}{\pgfqpoint{2.415\pgfutil@tempdima}{-6\pgfutil@tempdima}}{\pgfqpoint{0.75\pgfutil@tempdima}{-6\pgfutil@tempdima}} \pgfusepathqstroke% } @@ -711,30 +711,30 @@ \pgfarrowsdeclare{serif cm}{serif cm} { - \@tempdima=0.4pt% - \advance\@tempdima by.45\pgflinewidth% - \pgfarrowsleftextend{-.75\@tempdima} - \pgfarrowsrightextend{.04\pgflinewidth} + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.45\pgflinewidth% + \pgfarrowsleftextend{+-.75\pgfutil@tempdima} + \pgfarrowsrightextend{+.04\pgflinewidth} } { - \@tempdima=0.4pt% - \advance\@tempdima by.45\pgflinewidth% + \pgfutil@tempdima=0.4pt% + \advance\pgfutil@tempdima by.45\pgflinewidth% \pgftransformxshift{.04\pgflinewidth} - \pgfpathmoveto{\pgfpoint{-.75\@tempdima}{.5\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{-.75\pgfutil@tempdima}{.5\pgflinewidth}} \pgfpathcurveto - {\pgfpoint{-.375\@tempdima}{.5\pgflinewidth}} - {\pgfpoint{-.375\@tempdima}{.7\pgflinewidth}} - {\pgfpoint{-.375\@tempdima}{1.95\@tempdima}} - \pgfpathlineto{\pgfpoint{0pt}{1.95\@tempdima}} + {\pgfqpoint{-.375\pgfutil@tempdima}{.5\pgflinewidth}} + {\pgfqpoint{-.375\pgfutil@tempdima}{.7\pgflinewidth}} + {\pgfqpoint{-.375\pgfutil@tempdima}{1.95\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{0pt}{1.95\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-.04\pgflinewidth}{.5\@tempdima}} - {\pgfpoint{-.04\pgflinewidth}{-.5\@tempdima}} - {\pgfpoint{0pt}{-1.95\@tempdima}} - \pgfpathlineto{\pgfpoint{-.375\@tempdima}{-1.95\@tempdima}} + {\pgfqpoint{-.04\pgflinewidth}{.5\pgfutil@tempdima}} + {\pgfqpoint{-.04\pgflinewidth}{-.5\pgfutil@tempdima}} + {\pgfqpoint{0pt}{-1.95\pgfutil@tempdima}} + \pgfpathlineto{\pgfqpoint{-.375\pgfutil@tempdima}{-1.95\pgfutil@tempdima}} \pgfpathcurveto - {\pgfpoint{-.375\@tempdima}{-.7\pgflinewidth}} - {\pgfpoint{-.375\@tempdima}{-.5\pgflinewidth}} - {\pgfpoint{-.75\@tempdima}{-.5\pgflinewidth}} + {\pgfqpoint{-.375\pgfutil@tempdima}{-.7\pgflinewidth}} + {\pgfqpoint{-.375\pgfutil@tempdima}{-.5\pgflinewidth}} + {\pgfqpoint{-.75\pgfutil@tempdima}{-.5\pgflinewidth}} \pgfpathclose \pgfusepathqfill } @@ -744,12 +744,12 @@ % Round cap \pgfarrowsdeclare{round cap}{round cap} -{\pgfarrowsleftextend{0pt}\pgfarrowsrightextend{\pgflinewidth}} +{\pgfarrowsleftextend{+0pt}\pgfarrowsrightextend{+\pgflinewidth}} { - \pgfsetdash{}{0pt} + \pgfsetdash{}{+0pt} \pgfsetroundcap \pgfpathmoveto{\pgfpointorigin} - \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfqpoint{0.5\pgflinewidth}{0pt}} \pgfusepathqstroke } @@ -757,12 +757,12 @@ % Butt cap \pgfarrowsdeclare{butt cap}{butt cap} -{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{.5\pgflinewidth}} +{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+.5\pgflinewidth}} { - \pgfsetdash{}{0pt} + \pgfsetdash{}{+0pt} \pgfsetbuttcap - \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0pt}} - \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{0pt}} + \pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfqpoint{0.5\pgflinewidth}{0pt}} \pgfusepathqstroke } @@ -771,13 +771,13 @@ % 90 degrees cap \pgfarrowsdeclare{triangle 90 cap}{triangle 90 cap} -{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{1\pgflinewidth}} +{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+\pgflinewidth}} { - \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{\pgflinewidth}{0pt}} - \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{\pgflinewidth}{0pt}} + \pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} \pgfusepathqfill } @@ -785,13 +785,13 @@ % reversed 90 degrees cap \pgfarrowsdeclare{triangle 90 cap reversed}{triangle 90 cap reversed} -{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{1\pgflinewidth}} +{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+\pgflinewidth}} { - \pgfpathmoveto{\pgfpoint{1\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{0.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{0.5\pgflinewidth}{0\pgflinewidth}} \pgfusepathqfill } @@ -800,40 +800,40 @@ % fast \pgfarrowsdeclare{fast cap}{fast cap} -{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{2\pgflinewidth}} +{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+2\pgflinewidth}} { - \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1\pgflinewidth}{0\pgflinewidth}} - \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} \pgfpathclose - \pgfpathmoveto{\pgfpoint{1\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{2\pgflinewidth}{0\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1\pgflinewidth}{-0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{0\pgflinewidth}} \pgfpathclose \pgfusepathqfill } \pgfarrowsdeclare{fast cap reversed}{fast cap reversed} -{\pgfarrowsleftextend{-.1\pgflinewidth}\pgfarrowsrightextend{2\pgflinewidth}} +{\pgfarrowsleftextend{+-.1\pgflinewidth}\pgfarrowsrightextend{+2\pgflinewidth}} { - \pgfpathmoveto{\pgfpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1\pgflinewidth}{.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{.5\pgflinewidth}{0\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{-.1\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1\pgflinewidth}{.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{-.1\pgflinewidth}{-0.5\pgflinewidth}} \pgfpathclose - \pgfpathmoveto{\pgfpoint{1.5\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{2\pgflinewidth}{0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{0\pgflinewidth}} - \pgfpathlineto{\pgfpoint{2\pgflinewidth}{-.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1.5\pgflinewidth}{-0.5\pgflinewidth}} - \pgfpathlineto{\pgfpoint{1\pgflinewidth}{0\pgflinewidth}} + \pgfpathmoveto{\pgfqpoint{1.5\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{0\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1.5\pgflinewidth}{-0.5\pgflinewidth}} + \pgfpathlineto{\pgfqpoint{1\pgflinewidth}{0\pgflinewidth}} \pgfpathclose \pgfusepathqfill } diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex index aebb9fb5ce6..92352856dbe 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarypatterns.code.tex @@ -7,78 +7,78 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarypatterns.code.tex,v 1.7 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarypatterns.code.tex,v 1.8 2007/03/09 17:49:32 tantau Exp $ % Lines in different directions -\pgfdeclarepatternformonly{horizontal lines}{\pgfpointorigin}{\pgfpoint{100pt}{1pt}}{\pgfpoint{100pt}{3pt}}% +\pgfdeclarepatternformonly{horizontal lines}{\pgfpointorigin}{\pgfqpoint{100pt}{1pt}}{\pgfqpoint{100pt}{3pt}}% { \pgfsetlinewidth{0.4pt} - \pgfpathmoveto{\pgfpoint{0pt}{0.5pt}} - \pgfpathlineto{\pgfpoint{100pt}{0.5pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{0.5pt}} + \pgfpathlineto{\pgfqpoint{100pt}{0.5pt}} \pgfusepath{stroke} } -\pgfdeclarepatternformonly{vertical lines}{\pgfpointorigin}{\pgfpoint{1pt}{100pt}}{\pgfpoint{3pt}{100pt}}% +\pgfdeclarepatternformonly{vertical lines}{\pgfpointorigin}{\pgfqpoint{1pt}{100pt}}{\pgfqpoint{3pt}{100pt}}% { \pgfsetlinewidth{0.4pt} - \pgfpathmoveto{\pgfpoint{0.5pt}{0pt}} - \pgfpathlineto{\pgfpoint{0.5pt}{100pt}} + \pgfpathmoveto{\pgfqpoint{0.5pt}{0pt}} + \pgfpathlineto{\pgfqpoint{0.5pt}{100pt}} \pgfusepath{stroke} } -\pgfdeclarepatternformonly{north east lines}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +\pgfdeclarepatternformonly{north east lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}% { \pgfsetlinewidth{0.4pt} - \pgfpathmoveto{\pgfpoint{0pt}{0pt}} - \pgfpathlineto{\pgfpoint{3.1pt}{3.1pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} + \pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}} \pgfusepath{stroke} } -\pgfdeclarepatternformonly{north west lines}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +\pgfdeclarepatternformonly{north west lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}% { \pgfsetlinewidth{0.4pt} - \pgfpathmoveto{\pgfpoint{0pt}{3pt}} - \pgfpathlineto{\pgfpoint{3.1pt}{-0.1pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{3pt}} + \pgfpathlineto{\pgfqpoint{3.1pt}{-0.1pt}} \pgfusepath{stroke} } % Crossed lines in different directions -\pgfdeclarepatternformonly{grid}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +\pgfdeclarepatternformonly{grid}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}% { \pgfsetlinewidth{0.4pt} - \pgfpathmoveto{\pgfpoint{0pt}{0pt}} - \pgfpathlineto{\pgfpoint{0pt}{3.1pt}} - \pgfpathmoveto{\pgfpoint{0pt}{0pt}} - \pgfpathlineto{\pgfpoint{3.1pt}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{3.1pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} + \pgfpathlineto{\pgfqpoint{3.1pt}{0pt}} \pgfusepath{stroke} } -\pgfdeclarepatternformonly{crosshatch}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{4pt}{4pt}}{\pgfpoint{3pt}{3pt}}% +\pgfdeclarepatternformonly{crosshatch}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}% { \pgfsetlinewidth{0.4pt} - \pgfpathmoveto{\pgfpoint{3.1pt}{0pt}} - \pgfpathlineto{\pgfpoint{0pt}{3.1pt}} - \pgfpathmoveto{\pgfpoint{0pt}{0pt}} - \pgfpathlineto{\pgfpoint{3.1pt}{3.1pt}} + \pgfpathmoveto{\pgfqpoint{3.1pt}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{3.1pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} + \pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}} \pgfusepath{stroke} } % Dotted regions -\pgfdeclarepatternformonly{dots}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{1pt}{1pt}}{\pgfpoint{3pt}{3pt}}% +\pgfdeclarepatternformonly{dots}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{1pt}{1pt}}{\pgfqpoint{3pt}{3pt}}% { - \pgfpathcircle{\pgfpoint{0pt}{0pt}}{.5pt} + \pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt} \pgfusepath{fill} } -\pgfdeclarepatternformonly{crosshatch dots}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{2.5pt}{2.5pt}}{\pgfpoint{3pt}{3pt}}% +\pgfdeclarepatternformonly{crosshatch dots}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{2.5pt}{2.5pt}}{\pgfqpoint{3pt}{3pt}}% { - \pgfpathcircle{\pgfpoint{0pt}{0pt}}{.5pt} - \pgfpathcircle{\pgfpoint{1.5pt}{1.5pt}}{.5pt} + \pgfpathcircle{\pgfqpoint{0pt}{0pt}}{.5pt} + \pgfpathcircle{\pgfqpoint{1.5pt}{1.5pt}}{.5pt} \pgfusepath{fill} } @@ -87,28 +87,28 @@ % Star shaped patterns -\pgfdeclarepatternformonly{fivepointed stars}{\pgfpointorigin}{\pgfpoint{3mm}{3mm}}{\pgfpoint{3mm}{3mm}}% +\pgfdeclarepatternformonly{fivepointed stars}{\pgfpointorigin}{\pgfqpoint{3mm}{3mm}}{\pgfqpoint{3mm}{3mm}}% { - \pgftransformshift{\pgfpoint{1mm}{1mm}} - \pgfpathmoveto{\pgfpointpolar{18}{1mm}} - \pgfpathlineto{\pgfpointpolar{162}{1mm}} - \pgfpathlineto{\pgfpointpolar{306}{1mm}} - \pgfpathlineto{\pgfpointpolar{90}{1mm}} - \pgfpathlineto{\pgfpointpolar{234}{1mm}} + \pgftransformshift{\pgfqpoint{1mm}{1mm}} + \pgfpathmoveto{\pgfqpointpolar{18}{1mm}} + \pgfpathlineto{\pgfqpointpolar{162}{1mm}} + \pgfpathlineto{\pgfqpointpolar{306}{1mm}} + \pgfpathlineto{\pgfqpointpolar{90}{1mm}} + \pgfpathlineto{\pgfqpointpolar{234}{1mm}} \pgfpathclose% \pgfusepath{fill} } -\pgfdeclarepatternformonly{sixpointed stars}{\pgfpointorigin}{\pgfpoint{3mm}{3mm}}{\pgfpoint{3mm}{3mm}}% +\pgfdeclarepatternformonly{sixpointed stars}{\pgfpointorigin}{\pgfqpoint{3mm}{3mm}}{\pgfqpoint{3mm}{3mm}}% { - \pgftransformshift{\pgfpoint{1mm}{1mm}} - \pgfpathmoveto{\pgfpointpolar{30}{1mm}} - \pgfpathlineto{\pgfpointpolar{150}{1mm}} - \pgfpathlineto{\pgfpointpolar{270}{1mm}} + \pgftransformshift{\pgfqpoint{1mm}{1mm}} + \pgfpathmoveto{\pgfqpointpolar{30}{1mm}} + \pgfpathlineto{\pgfqpointpolar{150}{1mm}} + \pgfpathlineto{\pgfqpointpolar{270}{1mm}} \pgfpathclose% - \pgfpathmoveto{\pgfpointpolar{-30}{1mm}} - \pgfpathlineto{\pgfpointpolar{-270}{1mm}} - \pgfpathlineto{\pgfpointpolar{-150}{1mm}} + \pgfpathmoveto{\pgfqpointpolar{-30}{1mm}} + \pgfpathlineto{\pgfqpointpolar{-270}{1mm}} + \pgfpathlineto{\pgfqpointpolar{-150}{1mm}} \pgfpathclose% \pgfsetnonzerorule \pgfusepath{fill} @@ -118,19 +118,19 @@ % Bricks -\pgfdeclarepatternformonly{bricks}{\pgfpoint{-1pt}{-1pt}}{\pgfpoint{5mm}{5mm}}{\pgfpoint{4mm}{4mm}}% +\pgfdeclarepatternformonly{bricks}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{5mm}{5mm}}{\pgfqpoint{4mm}{4mm}}% { \pgfsetlinewidth{0.8pt} - \pgfpathmoveto{\pgfpoint{0mm}{1mm}} - \pgfpathlineto{\pgfpoint{4mm}{1mm}} - \pgfpathmoveto{\pgfpoint{0mm}{3mm}} - \pgfpathlineto{\pgfpoint{4mm}{3mm}} - \pgfpathmoveto{\pgfpoint{1mm}{0mm}} - \pgfpathlineto{\pgfpoint{1mm}{1mm}} - \pgfpathmoveto{\pgfpoint{3mm}{1mm}} - \pgfpathlineto{\pgfpoint{3mm}{3mm}} - \pgfpathmoveto{\pgfpoint{1mm}{3mm}} - \pgfpathlineto{\pgfpoint{1mm}{4mm}} + \pgfpathmoveto{\pgfqpoint{0mm}{1mm}} + \pgfpathlineto{\pgfqpoint{4mm}{1mm}} + \pgfpathmoveto{\pgfqpoint{0mm}{3mm}} + \pgfpathlineto{\pgfqpoint{4mm}{3mm}} + \pgfpathmoveto{\pgfqpoint{1mm}{0mm}} + \pgfpathlineto{\pgfqpoint{1mm}{1mm}} + \pgfpathmoveto{\pgfqpoint{3mm}{1mm}} + \pgfpathlineto{\pgfqpoint{3mm}{3mm}} + \pgfpathmoveto{\pgfqpoint{1mm}{3mm}} + \pgfpathlineto{\pgfqpoint{1mm}{4mm}} \pgfusepath{stroke} } diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex index 0a1572cd894..a0f504431eb 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplothandlers.code.tex,v 1.8 2006/10/16 22:32:59 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplothandlers.code.tex,v 1.9 2007/03/09 17:49:32 tantau Exp $ \newif\ifpgf@plot@started @@ -36,22 +36,22 @@ \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% - \pgf@plot@first@action{\pgfpoint{\pgf@xa}{\pgf@ya}}% - \xdef\pgf@plot@curveto@first{\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}% + \pgf@plot@first@action{\pgfqpoint{\pgf@xa}{\pgf@ya}}% + \xdef\pgf@plot@curveto@first{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}% \global\let\pgf@plot@curveto@first@support=\pgf@plot@curveto@first% \global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@second% } \def\pgf@plot@curveto@handler@second#1{% \pgf@process{#1}% - \xdef\pgf@plot@curveto@second{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \xdef\pgf@plot@curveto@second{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% \global\let\pgf@plotstreampoint=\pgf@plot@curveto@handler@third% \global\pgf@plot@startedtrue% } \def\pgf@plot@curveto@handler@third#1{% \pgf@process{#1}% - \xdef\pgf@plot@curveto@current{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \xdef\pgf@plot@curveto@current{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% % compute difference vector: \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% @@ -72,12 +72,12 @@ \advance\pgf@xc by\pgf@xa% \advance\pgf@yc by\pgf@ya% \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@curveto@first@support}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@curveto@second}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@curveto@second}}% {\pgf@marshal}% % Prepare next: \global\let\pgf@plot@curveto@first=\pgf@plot@curveto@second% \global\let\pgf@plot@curveto@second=\pgf@plot@curveto@current% - \xdef\pgf@plot@curveto@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + \xdef\pgf@plot@curveto@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% } \def\pgf@plot@curveto@handler@finish{% @@ -125,14 +125,14 @@ \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% - \xdef\pgf@plot@closedcurve@initial{\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}% + \xdef\pgf@plot@closedcurve@initial{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}% \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@second% \global\pgf@plot@startedfalse% } \def\pgf@plot@closedcurve@handler@second#1{% \pgf@process{#1}% - \xdef\pgf@plot@closedcurve@after@initial{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \xdef\pgf@plot@closedcurve@after@initial{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% {\pgfpathmoveto{}}% \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@third% } @@ -140,7 +140,7 @@ \def\pgf@plot@closedcurve@handler@third#1{% \global\pgf@plot@startedtrue% \pgf@process{#1}% - \xdef\pgf@plot@closedcurve@current{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \xdef\pgf@plot@closedcurve@current{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% % compute difference vector: \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% @@ -162,14 +162,14 @@ \advance\pgf@yc by\pgf@ya% \global\let\pgf@plot@closedcurve@first=\pgf@plot@closedcurve@after@initial% \global\let\pgf@plot@closedcurve@second=\pgf@plot@closedcurve@current% - \xdef\pgf@plot@closedcurve@after@initial@presupport{\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}% - \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + \xdef\pgf@plot@closedcurve@after@initial@presupport{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}% + \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% \global\let\pgf@plotstreampoint=\pgf@plot@closedcurve@handler@fourth% } \def\pgf@plot@closedcurve@handler@fourth#1{% \pgf@process{#1}% - \xdef\pgf@plot@closedcurve@current{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}}% + \xdef\pgf@plot@closedcurve@current{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}% % compute difference vector: \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% @@ -190,12 +190,12 @@ \advance\pgf@xc by\pgf@xa% \advance\pgf@yc by\pgf@ya% \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}% {\pgf@marshal}% % Prepare next: \global\let\pgf@plot@closedcurve@first=\pgf@plot@closedcurve@second% \global\let\pgf@plot@closedcurve@second=\pgf@plot@closedcurve@current% - \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% } \def\pgf@plot@closedcurve@handler@finish{% @@ -224,9 +224,9 @@ \advance\pgf@xc by\pgf@xa% \advance\pgf@yc by\pgf@ya% \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@second}}% {\pgf@marshal}% - \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + \xdef\pgf@plot@closedcurve@first@support{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% % % second, draw line from last point to start: % @@ -251,12 +251,12 @@ \advance\pgf@xc by\pgf@xa% \advance\pgf@yc by\pgf@ya% \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgf@plot@closedcurve@first@support}% - {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@initial}}% + {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}{\noexpand\pgf@plot@closedcurve@initial}}% {\pgf@marshal}% % % third, draw line from first to second point: % - \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}% + \edef\pgf@marshal{\noexpand\pgfpathcurveto{\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}% {\noexpand\pgf@plot@closedcurve@after@initial@presupport}{\noexpand\pgf@plot@closedcurve@after@initial}}% {\pgf@marshal}% \pgfpathclose% @@ -288,8 +288,8 @@ \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% - \pgfpathmoveto{\pgfpoint{0pt}{\pgf@ya}}% - \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}% + \pgfpathmoveto{\pgfqpoint{0pt}{\pgf@ya}}% + \pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}% } @@ -314,8 +314,8 @@ \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% - \pgfpathmoveto{\pgfpoint{\pgf@xa}{0pt}}% - \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}% + \pgfpathmoveto{\pgfqpoint{\pgf@xa}{0pt}}% + \pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}% } @@ -344,7 +344,7 @@ \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgfpathmoveto{\pgfpointorigin}% - \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}% + \pgfpathlineto{\pgfqpoint{\pgf@xa}{\pgf@ya}}% } @@ -461,7 +461,7 @@ % % \pgfsetplotmarksize{1pt} -\def\pgfsetplotmarksize#1{\setlength\pgfplotmarksize{#1}} +\def\pgfsetplotmarksize#1{\pgfmathsetlength\pgfplotmarksize{#1}} \newdimen\pgfplotmarksize \pgfplotmarksize=2pt @@ -491,10 +491,10 @@ \pgfdeclareplotmark{+} {% - \pgfpathmoveto{\pgfpoint{-\pgfplotmarksize}{0pt}} - \pgfpathlineto{\pgfpoint{\pgfplotmarksize}{0pt}} - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}} \pgfusepathqstroke } @@ -503,10 +503,10 @@ \pgfdeclareplotmark{x} {% - \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} - \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} \pgfusepathqstroke } diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex index a821e6f65cf..e20805d50a1 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplotmarks.code.tex,v 1.4 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryplotmarks.code.tex,v 1.5 2007/03/09 17:49:32 tantau Exp $ % A stroked circle mark @@ -24,12 +24,12 @@ \pgfdeclareplotmark{asterisk} {% - \pgfpathmoveto{\pgfpoint{0pt}{-\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathmoveto{\pgfpointpolar{30}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{210}{\pgfplotmarksize}} - \pgfpathmoveto{\pgfpointpolar{-30}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-210}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{0pt}{-\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpointpolar{30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{210}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpointpolar{-30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-210}{\pgfplotmarksize}} \pgfusepathqstroke } @@ -38,11 +38,11 @@ \pgfdeclareplotmark{star} {% - \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{18}{\pgfplotmarksize}} - \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{-54}{\pgfplotmarksize}} - \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{234}{\pgfplotmarksize}} - \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfpointpolar{162}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfpointorigin}\pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}} \pgfusepathqstroke } @@ -52,20 +52,20 @@ \pgfdeclareplotmark{oplus} {% \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} - \pgfpathmoveto{\pgfpoint{-\pgfplotmarksize}{0pt}} - \pgfpathlineto{\pgfpoint{\pgfplotmarksize}{0pt}} - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}} \pgfusepathqstroke } \pgfdeclareplotmark{oplus*} {% \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} - \pgfpathmoveto{\pgfpoint{-\pgfplotmarksize}{0pt}} - \pgfpathlineto{\pgfpoint{\pgfplotmarksize}{0pt}} - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}} \pgfusepathqfillstroke } @@ -75,20 +75,20 @@ \pgfdeclareplotmark{otimes} {% \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} - \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} - \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} \pgfusepathqstroke } \pgfdeclareplotmark{otimes*} {% \pgfpathcircle{\pgfpointorigin}{\pgfplotmarksize} - \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} - \pgfpathmoveto{\pgfpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}{.70710678\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}{-.70710678\pgfplotmarksize}} \pgfusepathqfillstroke } @@ -97,8 +97,8 @@ \pgfdeclareplotmark{|} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}} \pgfusepathqstroke } @@ -108,8 +108,8 @@ \pgfdeclareplotmark{-} {% - \pgfpathmoveto{\pgfpoint{\pgfplotmarksize}{0pt}} - \pgfpathlineto{\pgfpoint{-\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfqpoint{\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfqpoint{-\pgfplotmarksize}{0pt}} \pgfusepathqstroke } @@ -118,7 +118,7 @@ \pgfdeclareplotmark{square} {% - \pgfpathrectangle{\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}% + \pgfpathrectangle{\pgfqpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfqpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}% \pgfusepathqstroke } @@ -126,7 +126,7 @@ \pgfdeclareplotmark{square*} {% - \pgfpathrectangle{\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}% + \pgfpathrectangle{\pgfqpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}{\pgfqpoint{2\pgfplotmarksize}{2\pgfplotmarksize}}% \pgfusepathqfillstroke } @@ -135,9 +135,9 @@ \pgfdeclareplotmark{triangle} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-30}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-150}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-150}{\pgfplotmarksize}} \pgfpathclose \pgfusepathqstroke } @@ -147,9 +147,9 @@ \pgfdeclareplotmark{triangle*} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-30}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-150}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-30}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-150}{\pgfplotmarksize}} \pgfpathclose \pgfusepathqfillstroke } @@ -160,10 +160,10 @@ \pgfdeclareplotmark{diamond} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.75\pgfplotmarksize}{0pt}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{-.75\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.75\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}} \pgfpathclose \pgfusepathqstroke } @@ -173,10 +173,10 @@ \pgfdeclareplotmark{diamond*} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{.75\pgfplotmarksize}{0pt}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfplotmarksize}} - \pgfpathlineto{\pgfpoint{-.75\pgfplotmarksize}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{.75\pgfplotmarksize}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfplotmarksize}} + \pgfpathlineto{\pgfqpoint{-.75\pgfplotmarksize}{0pt}} \pgfpathclose \pgfusepathqfillstroke } @@ -187,11 +187,11 @@ \pgfdeclareplotmark{pentagon} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{18}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-54}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{234}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{162}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}} \pgfpathclose \pgfusepathqstroke } @@ -200,11 +200,11 @@ \pgfdeclareplotmark{pentagon*} {% - \pgfpathmoveto{\pgfpoint{0pt}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{18}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{-54}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{234}{\pgfplotmarksize}} - \pgfpathlineto{\pgfpointpolar{162}{\pgfplotmarksize}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{18}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{-54}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{234}{\pgfplotmarksize}} + \pgfpathlineto{\pgfqpointpolar{162}{\pgfplotmarksize}} \pgfpathclose \pgfusepathqfillstroke } diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.arrows.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.arrows.code.tex new file mode 100644 index 00000000000..2f81d04742f --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.arrows.code.tex @@ -0,0 +1,12 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.arrows.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex index a6965b60e3b..fecbb7df710 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.code.tex @@ -7,573 +7,12 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.code.tex,v 1.9 2006/10/11 15:22:26 tantau Exp $ - -\pgfdeclareshape{ellipse} -% -% Draws a circle around the text -% -{ - \savedanchor\centerpoint{% - \pgf@x=.5\wd\pgfnodeparttextbox% - \pgf@y=.5\ht\pgfnodeparttextbox% - \advance\pgf@y by-.5\dp\pgfnodeparttextbox% - } - \savedanchor\radius{% - % - % Caculate ``height radius'' - % - \pgf@y=.5\ht\pgfnodeparttextbox% - \advance\pgf@y by.5\dp\pgfnodeparttextbox% - \setlength\pgf@yb{\pgfshapeinnerysep}% - \advance\pgf@y by\pgf@yb% - % - % Caculate ``width radius'' - % - \pgf@x=.5\wd\pgfnodeparttextbox% - \setlength\pgf@xb{\pgfshapeinnerxsep}% - \advance\pgf@x by\pgf@xb% - % - % Adjust - % - \pgf@x=1.4142136\pgf@x% - \pgf@y=1.4142136\pgf@y% - % - % Adjust hieght, if necessary - % - \setlength\pgf@yc{\pgfshapeminheight}% - \ifdim\pgf@y<.5\pgf@yc% - \pgf@y=.5\pgf@yc% - \fi% - % - % Adjust width, if necessary - % - \setlength\pgf@xc{\pgfshapeminwidth}% - \ifdim\pgf@x<.5\pgf@xc% - \pgf@x=.5\pgf@xc% - \fi% - % - % Add outer sep - % - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% - \advance\pgf@x by\pgf@xb% - \advance\pgf@y by\pgf@yb% - } - - % - % Anchors - % - \anchor{center}{\centerpoint} - \anchor{mid}{\centerpoint\setlength\pgf@y{.5ex}} - \anchor{base}{\centerpoint\pgf@y=0pt} - \anchor{north} - { - \pgf@process{\radius} - \pgf@ya=\pgf@y% - \pgf@process{\centerpoint} - \advance\pgf@y by\pgf@ya - } - \anchor{south} - { - \pgf@process{\radius} - \pgf@ya=\pgf@y% - \pgf@process{\centerpoint} - \advance\pgf@y by-\pgf@ya - } - \anchor{west} - { - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@process{\centerpoint} - \advance\pgf@x by-\pgf@xa - } - \anchor{mid west} - {% - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@process{\centerpoint} - \advance\pgf@x by-\pgf@xa% - \setlength\pgf@y{.5ex} - } - \anchor{base west} - {% - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@process{\centerpoint} - \advance\pgf@x by-\pgf@xa% - \pgf@y=0pt - } - \anchor{north west} - { - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@ya=\pgf@y% - \pgf@process{\centerpoint} - \advance\pgf@x by-0.707107\pgf@xa - \advance\pgf@y by0.707107\pgf@ya - } - \anchor{south west} - { - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@ya=\pgf@y% - \pgf@process{\centerpoint} - \advance\pgf@x by-0.707107\pgf@xa - \advance\pgf@y by-0.707107\pgf@ya - } - \anchor{east} - {% - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@process{\centerpoint} - \advance\pgf@x by\pgf@xa - } - \anchor{mid east} - {% - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@process{\centerpoint} - \advance\pgf@x by\pgf@xa% - \setlength\pgf@y{.5ex} - } - \anchor{base east} - {% - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@process{\centerpoint} - \advance\pgf@x by\pgf@xa% - \pgf@y=0pt - } - \anchor{north east} - { - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@ya=\pgf@y% - \pgf@process{\centerpoint} - \advance\pgf@x by0.707107\pgf@xa - \advance\pgf@y by0.707107\pgf@ya - } - \anchor{south east} - { - \pgf@process{\radius} - \pgf@xa=\pgf@x% - \pgf@ya=\pgf@y% - \pgf@process{\centerpoint} - \advance\pgf@x by0.707107\pgf@xa - \advance\pgf@y by-0.707107\pgf@ya - } - \anchorborder{ - \edef\pgf@marshal{% - \noexpand\pgfpointborderellipse - {\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}} - {\noexpand\radius}% - }% - \pgf@marshal% - \pgf@xa=\pgf@x% - \pgf@ya=\pgf@y% - \centerpoint% - \advance\pgf@x by\pgf@xa% - \advance\pgf@y by\pgf@ya% - } - - % - % Background path - % - \backgroundpath - { - \pgf@process{\radius}% - \@tempdima=\pgf@x% - \@tempdimb=\pgf@y% - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% - \advance\@tempdima by-\pgf@xb% - \advance\@tempdimb by-\pgf@yb% - \pgfpathellipse{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}{\pgfpoint{0pt}{\@tempdimb}}% - } -} - - - - -% Set the recommended shape aspect ratio -% -% #1 = aspect ratio -% -% Example: -% -% \pgfsetshapeminwidth{1.5} - -\def\pgfsetshapeaspect#1{% - \def\pgfshapeaspect{#1}% - % Invert - \@tempdima=#1pt% - \@tempdima=.125\@tempdima% - \c@pgf@counta=\@tempdima\relax% 8192*determinant - \@tempdima=8192pt% - \divide\@tempdima by\c@pgf@counta% - \edef\pgfshapeaspectinverse{\pgf@sys@tonumber{\@tempdima}} -} -\pgfsetshapeaspect{1} - - - -\pgfdeclareshape{diamond} -{ - \savedanchor\outernortheast{% - % - % Calculate width and height of the inner rectangle - % - \pgf@xa=.5\wd\pgfnodeparttextbox% - \setlength\pgf@xc{\pgfshapeinnerxsep}% - \advance\pgf@xa by\pgf@xc% - \pgf@ya=.5\ht\pgfnodeparttextbox% - \advance\pgf@ya by.5\dp\pgfnodeparttextbox% - \setlength\pgf@yc{\pgfshapeinnerysep}% - \advance\pgf@ya by\pgf@yc% - % - % Calculate width and height of diamond - % - \pgf@x=\pgf@xa% - \advance\pgf@x by\pgfshapeaspect\pgf@ya% - \pgf@y=\pgfshapeaspectinverse\pgf@xa% - \advance\pgf@y by\pgf@ya% - % - % Check against minimum height/width - % - \setlength\pgf@xb{\pgfshapeminwidth}% - \ifdim\pgf@x<\pgf@xb% - % yes, too small. Enlarge... - \pgf@x=\pgf@xb% - \fi% - \setlength\pgf@yb{\pgfshapeminheight}% - \ifdim\pgf@y<\pgf@yb% - % yes, too small. Enlarge... - \pgf@y=\pgf@yb% - \fi% - % - % Add outer border - % - \setlength\pgf@xa{\pgfshapeouterxsep}% - \advance\pgf@x by\pgf@xa% - \setlength\pgf@ya{\pgfshapeouterysep}% - \advance\pgf@y by\pgf@ya% - } - \savedanchor\text{% - \pgf@x=-.5\wd\pgfnodeparttextbox% - \pgf@y=-.5\ht\pgfnodeparttextbox% - \advance\pgf@y by.5\dp\pgfnodeparttextbox% - } - - % - % Anchors - % - \anchor{text}{\text}% - \anchor{center}{\pgfpointorigin}% - \anchor{mid}{% - \pgf@process{\text}% - \pgf@x=0pt% - \setlength\pgf@ya{.5ex} - \advance\pgf@y by\pgf@ya% - } - \anchor{base}{\pgf@process{\text}\pgf@x=0pt } - \anchor{north}{\pgf@process{\outernortheast}\pgf@x=0pt} - \anchor{south}{\pgf@process{\outernortheast}\pgf@x=0pt\pgf@y=-\pgf@y} - \anchor{west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=0pt} - \anchor{north west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=.5\pgf@y} - \anchor{south west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=-.5\pgf@y} - \anchor{east}{\pgf@process{\outernortheast}\pgf@y=0pt} - \anchor{north east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=.5\pgf@y} - \anchor{south east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=-.5\pgf@y} - \anchorborder{% - \pgf@xa=\pgf@x% - \pgf@ya=\pgf@y% - \pgf@process{\outernortheast}% - \ifdim\pgf@xa>0pt% - \else% - \pgf@x=-\pgf@x% - \fi% - \ifdim\pgf@ya>0pt% - \else% - \pgf@y=-\pgf@y% - \fi% - \edef\pgf@marshal{% - \noexpand\pgfpointintersectionoflines - {\noexpand\pgfpointorigin} - {\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}} - {\noexpand\pgfpoint{\the\pgf@x}{0pt}} - {\noexpand\pgfpoint{0pt}{\the\pgf@y}}% - }% - \pgf@process{\pgf@marshal}% - } - - % - % Background path - % - \backgroundpath{ - \pgf@process{\outernortheast}% - \pgf@xc=\pgf@x% - \pgf@yc=\pgf@y% - \setlength{\pgf@xa}{\pgfshapeouterxsep}% - \setlength{\pgf@ya}{\pgfshapeouterysep}% - \advance\pgf@xc by-1.414213\pgf@xa% - \advance\pgf@yc by-1.414213\pgf@ya% - \pgfpathmoveto{\pgfpoint{\pgf@xc}{0pt}}% - \pgfpathlineto{\pgfpoint{0pt}{\pgf@yc}}% - \pgfpathlineto{\pgfpoint{-\pgf@xc}{0pt}}% - \pgfpathlineto{\pgfpoint{0pt}{-\pgf@yc}}% - \pgfpathclose% - } -} - - - -\newbox\pgfnodepartlowerbox - -% -% A circle that is split in the middle into an upper and a lower part. -% -% This node consists of two parts: The upper (main) part is shown in -% the upper half of the circle. The second part is the (optional) -% lower part. -% -% Parts: text, lower - -\pgfdeclareshape{circle split} -{ - % - % Node parts - % - \nodeparts{text,lower} - - % - % Anchors - % - \savedanchor\centerpoint{% - \pgf@x=.5\wd\pgfnodeparttextbox% - \setlength{\pgf@y}{\pgfshapeinnerysep}% - \pgf@y=-\pgf@y% - \advance\pgf@y by-\dp\pgfnodeparttextbox% - \advance\pgf@y by-.5\pgflinewidth% - }% - \savedanchor\loweranchor{% - \pgf@x=-.5\wd\pgfnodepartlowerbox% - \advance\pgf@x by.5\wd\pgfnodeparttextbox% - \setlength{\pgf@y}{\pgfshapeinnerysep}% - \pgf@y=-2\pgf@y% - \advance\pgf@y by-\ht\pgfnodepartlowerbox% - \advance\pgf@y by-.5\pgflinewidth% - \advance\pgf@y by-\dp\pgfnodeparttextbox% - \advance\pgf@y by-.5\pgflinewidth% - } - - \saveddimen\radius{% - % - % Caculate ``height radius'' - % - \pgf@ya=.5\ht\pgfnodeparttextbox% - \advance\pgf@ya by.5\dp\pgfnodeparttextbox% - \advance\pgf@ya by.5\ht\pgfnodepartlowerbox% - \advance\pgf@ya by.5\dp\pgfnodepartlowerbox% - \advance\pgf@ya by.5\pgflinewidth% - \setlength\pgf@yb{\pgfshapeinnerysep}% - \advance\pgf@ya by2\pgf@yb% - % - % Caculate ``width radius'' - % - \pgf@xa=.5\wd\pgfnodeparttextbox% - \ifdim\pgf@xa<.5\wd\pgfnodepartlowerbox% - \pgf@xa=.5\wd\pgfnodepartlowerbox% - \fi% - \setlength\pgf@xb{\pgfshapeinnerxsep}% - \advance\pgf@xa by\pgf@xb% - % - % Calculate length of radius vector: - % - \pgf@process{\pgfpointnormalised{\pgfpoint{\pgf@xa}{\pgf@ya}}}% - \ifdim\pgf@x>\pgf@y% - \c@pgf@counta=\pgf@x% - \ifnum\c@pgf@counta=0\relax% - \else% - \divide\c@pgf@counta by 255\relax% - \pgf@xa=16\pgf@xa\relax% - \divide\pgf@xa by\c@pgf@counta% - \pgf@xa=16\pgf@xa\relax% - \fi% - \else% - \c@pgf@counta=\pgf@y% - \ifnum\c@pgf@counta=0\relax% - \else% - \divide\c@pgf@counta by 255\relax% - \pgf@ya=16\pgf@ya\relax% - \divide\pgf@ya by\c@pgf@counta% - \pgf@xa=16\pgf@ya\relax% - \fi% - \fi% - \pgf@x=\pgf@xa% - % - % If necessary, adjust radius so that the size requirements are - % met: - % - \setlength{\pgf@xb}{\pgfshapeminwidth}% - \setlength{\pgf@yb}{\pgfshapeminheight}% - \ifdim\pgf@x<.5\pgf@xb% - \pgf@x=.5\pgf@xb% - \fi% - \ifdim\pgf@x<.5\pgf@yb% - \pgf@x=.5\pgf@yb% - \fi% - % - % Now, add larger of outer sepearations. - % - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% - \ifdim\pgf@xb<\pgf@yb% - \advance\pgf@x by\pgf@yb% - \else% - \advance\pgf@x by\pgf@xb% - \fi% - } - - % - % Anchors - % - \inheritanchorborder[from=circle] - \inheritanchor[from=circle]{north} - \inheritanchor[from=circle]{north west} - \inheritanchor[from=circle]{north east} - \inheritanchor[from=circle]{center} - \inheritanchor[from=circle]{west} - \inheritanchor[from=circle]{east} - \inheritanchor[from=circle]{mid} - \inheritanchor[from=circle]{mid west} - \inheritanchor[from=circle]{mid east} - \inheritanchor[from=circle]{base} - \inheritanchor[from=circle]{base west} - \inheritanchor[from=circle]{base east} - \inheritanchor[from=circle]{south} - \inheritanchor[from=circle]{south west} - \inheritanchor[from=circle]{south east} - \anchor{lower}{\loweranchor} - - % - % Background path - % - \inheritbackgroundpath[from=circle] - \beforebackgroundpath{ - \@tempdima=\radius% - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% - \ifdim\pgf@xb<\pgf@yb% - \advance\@tempdima by-\pgf@yb% - \else% - \advance\@tempdima by-\pgf@xb% - \fi% - \advance\@tempdima by-.5\pgflinewidth% - \pgfsetshortenstart{0pt}% - \pgfsetshortenend{0pt}% - \pgfsetarrows{-}% - \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfpoint{-\@tempdima}{0pt}}}% - \pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfpoint{\@tempdima}{0pt}}}% - \pgfusepath{stroke}% - } -} - - - -\pgfdeclareshape{cross out} -{ - \inheritsavedanchors[from=rectangle] % this is nearly a rectangle - \inheritanchorborder[from=rectangle] - \inheritanchor[from=rectangle]{north} - \inheritanchor[from=rectangle]{north west} - \inheritanchor[from=rectangle]{north east} - \inheritanchor[from=rectangle]{center} - \inheritanchor[from=rectangle]{west} - \inheritanchor[from=rectangle]{east} - \inheritanchor[from=rectangle]{mid} - \inheritanchor[from=rectangle]{mid west} - \inheritanchor[from=rectangle]{mid east} - \inheritanchor[from=rectangle]{base} - \inheritanchor[from=rectangle]{base west} - \inheritanchor[from=rectangle]{base east} - \inheritanchor[from=rectangle]{south} - \inheritanchor[from=rectangle]{south west} - \inheritanchor[from=rectangle]{south east} - \foregroundpath{ - % store lower right in xa/ya and upper right in xb/yb - \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y - \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y - \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}} - \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}} - \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@yb}} - \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}} - } -} - - -\pgfdeclareshape{strike out} -{ - \inheritsavedanchors[from=rectangle] % this is nearly a rectangle - \inheritanchorborder[from=rectangle] - \inheritanchor[from=rectangle]{north} - \inheritanchor[from=rectangle]{north west} - \inheritanchor[from=rectangle]{north east} - \inheritanchor[from=rectangle]{center} - \inheritanchor[from=rectangle]{west} - \inheritanchor[from=rectangle]{east} - \inheritanchor[from=rectangle]{mid} - \inheritanchor[from=rectangle]{mid west} - \inheritanchor[from=rectangle]{mid east} - \inheritanchor[from=rectangle]{base} - \inheritanchor[from=rectangle]{base west} - \inheritanchor[from=rectangle]{base east} - \inheritanchor[from=rectangle]{south} - \inheritanchor[from=rectangle]{south west} - \inheritanchor[from=rectangle]{south east} - \foregroundpath{ - \pgfpathmoveto{\southwest} - \pgfpathlineto{\northeast} - } -} - - -\pgfdeclareshape{forbidden sign} -{ - \inheritsavedanchors[from=circle] % this is nearly a circle - \inheritanchorborder[from=circle] - \inheritanchor[from=circle]{north} - \inheritanchor[from=circle]{north west} - \inheritanchor[from=circle]{north east} - \inheritanchor[from=circle]{center} - \inheritanchor[from=circle]{west} - \inheritanchor[from=circle]{east} - \inheritanchor[from=circle]{mid} - \inheritanchor[from=circle]{mid west} - \inheritanchor[from=circle]{mid east} - \inheritanchor[from=circle]{base} - \inheritanchor[from=circle]{base west} - \inheritanchor[from=circle]{base east} - \inheritanchor[from=circle]{south} - \inheritanchor[from=circle]{south west} - \inheritanchor[from=circle]{south east} - \inheritbackgroundpath[from=circle] - \foregroundpath{ - \centerpoint% - \pgf@xc=\pgf@x% - \pgf@yc=\pgf@y% - \@tempdima=\radius% - \setlength{\pgf@xb}{\pgfshapeouterxsep}% - \setlength{\pgf@yb}{\pgfshapeouterysep}% - \ifdim\pgf@xb<\pgf@yb% - \advance\@tempdima by-\pgf@yb% - \else% - \advance\@tempdima by-\pgf@xb% - \fi% - \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}{\pgfpoint{-0.707107\@tempdima}{-0.707107\@tempdima}}} - \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}{\pgfpoint{0.707107\@tempdima}{0.707107\@tempdima}}} - } -} +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.code.tex,v 1.12 2007/06/08 11:24:59 tantau Exp $ +\usepgflibrary{shapes.geometric} +\usepgflibrary{shapes.misc} +\usepgflibrary{shapes.symbols} +\usepgflibrary{shapes.arrows} +\usepgflibrary{shapes.multipart} \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.geometric.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.geometric.code.tex new file mode 100644 index 00000000000..802c85a41b9 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.geometric.code.tex @@ -0,0 +1,1229 @@ +% Copyright 2006 by Till Tantau and Mark Wibrow +% +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.geometric.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\pgfdeclareshape{ellipse} +% +% Draws a circle around the text +% +{ + \savedanchor\centerpoint{% + \pgf@x=.5\wd\pgfnodeparttextbox% + \pgf@y=.5\ht\pgfnodeparttextbox% + \advance\pgf@y by-.5\dp\pgfnodeparttextbox% + } + \savedanchor\radius{% + % + % Caculate ``height radius'' + % + \pgf@y=.5\ht\pgfnodeparttextbox% + \advance\pgf@y by.5\dp\pgfnodeparttextbox% + \pgfmathsetlength\pgf@yb{\pgfshapeinnerysep}% + \advance\pgf@y by\pgf@yb% + % + % Caculate ``width radius'' + % + \pgf@x=.5\wd\pgfnodeparttextbox% + \pgfmathsetlength\pgf@xb{\pgfshapeinnerxsep}% + \advance\pgf@x by\pgf@xb% + % + % Adjust + % + \pgf@x=1.4142136\pgf@x% + \pgf@y=1.4142136\pgf@y% + % + % Adjust hieght, if necessary + % + \pgfmathsetlength\pgf@yc{\pgfshapeminheight}% + \ifdim\pgf@y<.5\pgf@yc% + \pgf@y=.5\pgf@yc% + \fi% + % + % Adjust width, if necessary + % + \pgfmathsetlength\pgf@xc{\pgfshapeminwidth}% + \ifdim\pgf@x<.5\pgf@xc% + \pgf@x=.5\pgf@xc% + \fi% + % + % Add outer sep + % + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% + \advance\pgf@x by\pgf@xb% + \advance\pgf@y by\pgf@yb% + } + + % + % Anchors + % + \anchor{center}{\centerpoint} + \anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}} + \anchor{base}{\centerpoint\pgf@y=0pt} + \anchor{north} + { + \pgf@process{\radius} + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@y by\pgf@ya + } + \anchor{south} + { + \pgf@process{\radius} + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@y by-\pgf@ya + } + \anchor{west} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by-\pgf@xa + } + \anchor{mid west} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by-\pgf@xa% + \pgfmathsetlength\pgf@y{.5ex} + } + \anchor{base west} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by-\pgf@xa% + \pgf@y=0pt + } + \anchor{north west} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by-0.707107\pgf@xa + \advance\pgf@y by0.707107\pgf@ya + } + \anchor{south west} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by-0.707107\pgf@xa + \advance\pgf@y by-0.707107\pgf@ya + } + \anchor{east} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by\pgf@xa + } + \anchor{mid east} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by\pgf@xa% + \pgfmathsetlength\pgf@y{.5ex} + } + \anchor{base east} + {% + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@process{\centerpoint} + \advance\pgf@x by\pgf@xa% + \pgf@y=0pt + } + \anchor{north east} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by0.707107\pgf@xa + \advance\pgf@y by0.707107\pgf@ya + } + \anchor{south east} + { + \pgf@process{\radius} + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\centerpoint} + \advance\pgf@x by0.707107\pgf@xa + \advance\pgf@y by-0.707107\pgf@ya + } + \anchorborder{ + \edef\pgf@marshal{% + \noexpand\pgfpointborderellipse + {\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}} + {\noexpand\radius}% + }% + \pgf@marshal% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \centerpoint% + \advance\pgf@x by\pgf@xa% + \advance\pgf@y by\pgf@ya% + } + + % + % Background path + % + \backgroundpath + { + \pgf@process{\radius}% + \pgfutil@tempdima=\pgf@x% + \pgfutil@tempdimb=\pgf@y% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% + \advance\pgfutil@tempdima by-\pgf@xb% + \advance\pgfutil@tempdimb by-\pgf@yb% + \pgfpathellipse{\centerpoint}{\pgfqpoint{\pgfutil@tempdima}{0pt}}{\pgfqpoint{0pt}{\pgfutil@tempdimb}}% + } +} + + + + +% Set the recommended shape aspect ratio +% +% #1 = aspect ratio +% +% Example: +% +% \pgfsetshapeminwidth{1.5} + +\def\pgfsetshapeaspect#1{% + \def\pgfshapeaspect{#1}% + % Invert + \pgfutil@tempdima=#1pt% + \pgfutil@tempdima=.125\pgfutil@tempdima% + \c@pgf@counta=\pgfutil@tempdima\relax% 8192*determinant + \pgfutil@tempdima=8192pt% + \divide\pgfutil@tempdima by\c@pgf@counta% + \edef\pgfshapeaspectinverse{\pgf@sys@tonumber{\pgfutil@tempdima}} +} +\pgfsetshapeaspect{1} + + + +\pgfdeclareshape{diamond} +{ + \savedanchor\outernortheast{% + % + % Calculate width and height of the inner rectangle + % + \pgf@xa=.5\wd\pgfnodeparttextbox% + \pgfmathsetlength\pgf@xc{\pgfshapeinnerxsep}% + \advance\pgf@xa by\pgf@xc% + \pgf@ya=.5\ht\pgfnodeparttextbox% + \advance\pgf@ya by.5\dp\pgfnodeparttextbox% + \pgfmathsetlength\pgf@yc{\pgfshapeinnerysep}% + \advance\pgf@ya by\pgf@yc% + % + % Calculate width and height of diamond + % + \pgf@x=\pgf@xa% + \advance\pgf@x by\pgfshapeaspect\pgf@ya% + \pgf@y=\pgfshapeaspectinverse\pgf@xa% + \advance\pgf@y by\pgf@ya% + % + % Check against minimum height/width + % + \pgfmathsetlength\pgf@xb{\pgfshapeminwidth}% + \ifdim\pgf@x<\pgf@xb% + % yes, too small. Enlarge... + \pgf@x=\pgf@xb% + \fi% + \pgfmathsetlength\pgf@yb{\pgfshapeminheight}% + \ifdim\pgf@y<\pgf@yb% + % yes, too small. Enlarge... + \pgf@y=\pgf@yb% + \fi% + % + % Add outer border + % + \pgfmathsetlength\pgf@xa{\pgfshapeouterxsep}% + \advance\pgf@x by\pgf@xa% + \pgfmathsetlength\pgf@ya{\pgfshapeouterysep}% + \advance\pgf@y by\pgf@ya% + } + \savedanchor\text{% + \pgf@x=-.5\wd\pgfnodeparttextbox% + \pgf@y=-.5\ht\pgfnodeparttextbox% + \advance\pgf@y by.5\dp\pgfnodeparttextbox% + } + + % + % Anchors + % + \anchor{text}{\text}% + \anchor{center}{\pgfpointorigin}% + \anchor{mid}{% + \pgf@process{\text}% + \pgf@x=0pt% + \pgfmathsetlength\pgf@ya{.5ex} + \advance\pgf@y by\pgf@ya% + } + \anchor{base}{\pgf@process{\text}\pgf@x=0pt } + \anchor{north}{\pgf@process{\outernortheast}\pgf@x=0pt} + \anchor{south}{\pgf@process{\outernortheast}\pgf@x=0pt\pgf@y=-\pgf@y} + \anchor{west}{\pgf@process{\outernortheast}\pgf@x=-\pgf@x\pgf@y=0pt} + \anchor{north west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=.5\pgf@y} + \anchor{south west}{\pgf@process{\outernortheast}\pgf@x=-.5\pgf@x\pgf@y=-.5\pgf@y} + \anchor{east}{\pgf@process{\outernortheast}\pgf@y=0pt} + \anchor{north east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=.5\pgf@y} + \anchor{south east}{\pgf@process{\outernortheast}\pgf@x=.5\pgf@x\pgf@y=-.5\pgf@y} + \anchorborder{% + \pgf@xa=\pgf@x% + \pgf@ya=\pgf@y% + \pgf@process{\outernortheast}% + \ifdim\pgf@xa>0pt% + \else% + \pgf@x=-\pgf@x% + \fi% + \ifdim\pgf@ya>0pt% + \else% + \pgf@y=-\pgf@y% + \fi% + \edef\pgf@marshal{% + \noexpand\pgfpointintersectionoflines + {\noexpand\pgfpointorigin} + {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}} + {\noexpand\pgfqpoint{\the\pgf@x}{0pt}} + {\noexpand\pgfqpoint{0pt}{\the\pgf@y}}% + }% + \pgf@process{\pgf@marshal}% + } + + % + % Background path + % + \backgroundpath{ + \pgf@process{\outernortheast}% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \pgfmathsetlength{\pgf@xa}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@ya}{\pgfshapeouterysep}% + \advance\pgf@xc by-1.414213\pgf@xa% + \advance\pgf@yc by-1.414213\pgf@ya% + \pgfpathmoveto{\pgfqpoint{\pgf@xc}{0pt}}% + \pgfpathlineto{\pgfqpoint{0pt}{\pgf@yc}}% + \pgfpathlineto{\pgfqpoint{-\pgf@xc}{0pt}}% + \pgfpathlineto{\pgfqpoint{0pt}{-\pgf@yc}}% + \pgfpathclose% + } +} + + + + +% \pgfsetstarpoints +% +% Set the number of points on a star. +% +\def\pgfsetstarpoints#1{% + \pgfmathsetcounter{pgf@counta}{#1}% + \edef\pgfstarpoints{\the\c@pgfmath@counta}} +\pgfsetstarpoints{5} + +% \pgfsetstarpointheight +% +% Set the height of the points (this is the +% distance between the outer and inner point +% radii). +% +\def\pgfsetstarpointheight#1{% + \pgfmathparse{#1}% + \edef\pgfstarpointheight{\pgfmathresult pt}} +\pgfsetstarpointheight{12pt} + +% \pgfsetstarpointratio +% +% Set the ratio between the outer and +% inner point radii. +% +\def\pgfsetstarpointratio#1{% + \pgfmathparse{#1}% + \edef\pgfstarpointratio{\pgfmathresult}% + \def\pgfstarpointheight{-16383pt}% If negative, the ratio is used. +} +\pgfsetstarpointratio{1.75} + +% \pgfsetstarrrotate +% +% Set the angle of rotation of the star +% border. This can be decimal. +% +\def\pgfsetstarrotate#1{% + \pgfmathparse{#1}% + \edef\pgfstarrotate{\pgfmathresult}}% +\pgfsetstarrotate{0} + +% Shape star. +% +\pgfdeclareshape{star}{% + \saveddimen{\points}{\pgf@x\pgfstarpoints pt}% + \saveddimen{\pointratio}{\pgf@x\pgfstarpointratio pt}% + \saveddimen{\rotate}{\pgf@x\pgfstarrotate pt}% + \saveddimen{\pointheight}{\pgf@x\pgfstarpointheight}% + \saveddimen{\minimumsize}{% + \pgfmathsetlength\pgf@x{\pgfshapeminwidth}% + \pgfmathsetlength\pgf@y{\pgfshapeminheight}% + \ifdim\pgf@y>\pgf@x% + \pgf@x\pgf@y% + \fi}% + \saveddimen{\outersep}{% + \pgfmathsetlength\pgf@x{\pgfshapeouterxsep}% + \pgfmathsetlength\pgf@y{\pgfshapeouterysep}% + \ifdim\pgf@y>\pgf@x% + \pgf@x\pgf@y% + \fi}% + \savedanchor{\centerpoint}{% + \pgf@x.5\wd\pgfnodeparttextbox% + \pgf@y.5\ht\pgfnodeparttextbox% + \advance\pgf@y-.5\dp\pgfnodeparttextbox% + }% + \saveddimen{\innerpointradius}{% + % + % The innerpoint radius is the radius of the circle which + % can safely encompass the node textbox. + % + \pgfmathsetlength\pgf@x{\pgfshapeinnerxsep}% + \advance\pgf@x.5\wd\pgfnodeparttextbox% + \pgfmathsetlength\pgf@y{\pgfshapeinnerysep}% + \advance\pgf@y.5\ht\pgfnodeparttextbox% + \ifdim\pgf@y>\pgf@x% + \pgf@x\pgf@y% + \fi% + \pgfmathveclen@{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@x}}% + \pgf@x\pgfmathresult pt\relax% + }% + % + \anchor{center}{\centerpoint}% + \anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}}% + \anchor{base}{\centerpoint\pgf@y=0pt}% + \anchor{north}{\pgf@anchor@star@border{\pgfpoint{+0pt}{+\outerpointradius}}}% + \anchor{south}{\pgf@anchor@star@border{\pgfpoint{+0pt}{+-\outerpointradius}}}% + \anchor{east}{\pgf@anchor@star@border{\pgfpoint{+\outerpointradius}{+0pt}}}% + \anchor{west}{\pgf@anchor@star@border{\pgfpoint{+-\outerpointradius}{+0pt}}}% + \anchor{north east}{\pgf@anchor@star@border{\pgfpoint{+\outerpointradius}{+\outerpointradius}}}% + \anchor{north west}{\pgf@anchor@star@border{\pgfpoint{+-\outerpointradius}{+\outerpointradius}}}% + \anchor{south east}{\pgf@anchor@star@border{\pgfpoint{+\outerpointradius}{+-\outerpointradius}}}% + \anchor{south west}{\pgf@anchor@star@border{\pgfpoint{+-\outerpointradius}{+-\outerpointradius}}}% + % + \backgroundpath{% + % + % Redefine stuff for ease of use. + % + \pgf@x\points% + \c@pgf@counta\pgf@x% + \divide\c@pgf@counta65536\relax% + \edef\points{\the\c@pgf@counta}% + \pgf@x\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@x}}% + \pgf@x\pointratio% + \edef\pointratio{\pgf@sys@tonumber{\pgf@x}}% + % + % Calculate radii. + % + \pgf@x\innerpointradius\relax% + \edef\innerradius{\the\pgf@x}% + \pgf@xa\pointheight\relax% + \ifdim\pgf@xa<0pt\relax% + \pgf@x\pointratio\pgf@x% + \else% + \advance\pgf@x\pgf@xa% + \fi% + \pgf@xb\pgf@x% + \pgf@xc\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xc% + \pgf@x.5\pgf@xc% + \fi% + \edef\outerradius{\the\pgf@x}% + \ifdim\pgf@x>\pgf@xb% + \ifdim\pgf@xa<0pt\relax% + \pgfmathreciprocal{\pointratio}% + \pgf@xc\pgfmathresult\pgf@x\relax% + \edef\innerradius{\the\pgf@xc}% + \else% + \pgf@xc\pgf@x\relax% + \advance\pgf@xc-\pointheight% + \edef\innerradius{\the\pgf@xc}% + \fi% + \fi% + % + % Get the total number of points (inner + outer)... + % + \c@pgf@counta\points% + \advance\c@pgf@counta\c@pgf@counta% + \edef\numpoints{\the\c@pgf@counta}% + % + % ...and hence the angle between points. + % + \pgf@x360pt\relax% + \divide\pgf@x\c@pgf@counta% + \edef\staranglestep{\the\pgf@x}% + % + % Start at 90 degrees (star always points up)... + % + \pgf@x90pt\relax% + % + % ...unless rotation is applied. + % + \pgf@xa\rotate pt\relax% + \advance\pgf@x\pgf@xa% + \edef\starangle{\the\pgf@x}% + \let\starradius=\outerradius% + % + % Move to first point. + % + \pgfpathmoveto{% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\starangle}{+\starradius}}% + }% + \def\staranchorname{pgf@anchor@star@outer point}% + \pgfmathloop% + % + % Create anchors. Manually \xdef as \gdef is normally used by \anchor. + % + \c@pgf@counta\pgfmathcounter\relax% + \advance\c@pgf@counta1\relax% + \divide\c@pgf@counta2\relax% + \expandafter\xdef\csname\staranchorname\space\the\c@pgf@counta\endcsname{% + \noexpand\pgf@lib@shapesstaranchor{\pgfmathcounter}% + }% + \ifnum\pgfmathcounter=\numpoints\relax% Stop. + \else% + \ifodd\pgfmathcounter% + \let\starradius\innerradius% + \def\staranchorname{pgf@anchor@star@inner point}% + \else% + \let\starradius\outerradius% + \def\staranchorname{pgf@anchor@star@outer point}% + \fi% + \pgf@x\starangle\relax% + \advance\pgf@x\staranglestep\relax% + \edef\starangle{\the\pgf@x}% + \pgfpathlineto{% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\starangle}{+\starradius}}% + }% + \repeatpgfmathloop% + \pgfpathclose% + }% + % + \anchorborder{% + % + % Save x and y. + % + \pgf@xa\pgf@x% + \pgf@ya\pgf@y% + % + % Redefine stuff for ease of use. + % + \pgf@x\points% + \c@pgf@counta\pgf@x% + \divide\c@pgf@counta65536\relax% + \edef\points{\the\c@pgf@counta}% + \pgf@x\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@x}}% + \pgf@x\pointratio% + \edef\pointratio{\pgf@sys@tonumber{\pgf@x}}% + % + % Calculate the location of the external + % point relative to the node center. + % + \centerpoint% + \advance\pgf@xa\pgf@x% + \advance\pgf@ya\pgf@y% + \edef\externalx{\the\pgf@xa}% + \edef\externaly{\the\pgf@ya}% + \pgf@process{\pgfpointdiff{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}}% + % + % First approximate the angle of the external point... + % + \pgf@xa\pgf@x% + \pgf@ya\pgf@y% + \pgf@xb\pgf@x% + \pgf@yb\pgf@y% + \ifdim\pgf@xa<0pt\relax% + \pgf@xa-\pgf@xa% + \fi% + \ifdim\pgf@ya<0pt\relax% + \pgf@ya-\pgf@ya% + \fi% + \ifdim\pgf@ya>\pgf@xa% + \pgf@x\pgf@xa% + \pgf@y\pgf@ya% + \else% + \pgf@x\pgf@ya% + \pgf@y\pgf@xa% + \fi% + \ifdim\pgf@y=0pt\relax% + \pgf@x0pt% + \else% + \pgfmathreciprocal@{\pgf@sys@tonumber{\pgf@y}}% + \pgf@x\pgfmathresult\pgf@x% + \fi% + \multiply\pgf@x1000\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgf@counta\the\pgf@x\relax\pgfmath@% + \expandafter\pgf@x\csname pgfmath@atan@\the\c@pgf@counta\endcsname pt\relax% + \ifdim\pgfmath@ya>\pgfmath@xa\relax% + \pgf@x-\pgf@x% + \advance\pgf@x90pt% + \fi% + \ifdim\pgf@xb<0pt% + \ifdim\pgf@yb>0pt% + \pgf@x-\pgf@x% + \fi% + \advance\pgf@x180pt\relax% + \else% + \ifdim\pgf@yb<0pt% + \pgf@x-\pgf@x% + \advance\pgf@x360pt\relax% + \fi\fi% + % + % ...then adjust, as star points start at 90 degrees... + % + \advance\pgf@x-90pt\relax% + \ifdim\pgf@x<0pt\relax% + \advance\pgf@x360pt\relax% + \fi% + % + % ...and also for rotation. + % + \advance\pgf@x-\rotate pt\relax% + \ifdim\pgf@x<0pt\relax% + \advance\pgf@x360pt\relax% + \fi% + % + % Now, locate the start and end points on the star border segment... + % + \c@pgf@counta\points\relax% + \pgf@y180pt\relax% + \divide\pgf@y\c@pgf@counta\relax% + \pgfmathreciprocal@{\pgf@sys@tonumber{\pgf@y}}% + \pgf@x\pgfmathresult\pgf@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgf@counta\the\pgf@x\relax\pgfmath@% + % + % ...and hence, the start and end angles of the star border segment. + % + \pgf@x\pgf@y% + \multiply\pgf@x\c@pgf@counta% + \advance\pgf@x90pt% + \advance\pgf@x\rotate pt\relax% + \edef\firstangle{\the\pgf@x}% + \advance\c@pgf@counta1\relax% + \pgf@x\pgf@y% + \multiply\pgf@x\c@pgf@counta% + \advance\pgf@x\rotate pt\relax% + \advance\pgf@x90pt% + \edef\secondangle{\the\pgf@x}% + % + % Get the radii and add the outer sep... + % + \pgf@x\innerpointradius\relax% + \edef\innerradius{\the\pgf@x}% + \pgf@xa\pointheight\relax% + \ifdim\pgf@xa<0pt\relax% + \pgf@x\pointratio\pgf@x% + \else% + \advance\pgf@x\pgf@xa% + \fi% + \pgf@xb\pgf@x% + \pgf@xc\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xc% + \pgf@x.5\pgf@xc% + \fi% + \edef\outerradius{\the\pgf@x}% + \ifdim\pgf@x>\pgf@xb% + \ifdim\pgf@xa<0pt\relax% + \pgfmathreciprocal{\pointratio}% + \pgf@xc\pgfmathresult\pgf@x\relax% + \edef\innerradius{\the\pgf@xc}% + \else% + \pgf@xc\pgf@x\relax% + \advance\pgf@xc-\pgf@xb% + \edef\innerradius{\the\pgf@xc}% + \fi% + \fi% + \pgf@xa\outersep\relax% + \pgf@x\outerradius\relax% + \advance\pgf@x\pgf@xa% + \edef\outerradius{\the\pgf@x}% + \pgf@x\innerradius\relax% + \advance\pgf@x\pgf@xa% + \edef\innerradius{\the\pgf@x}% + \ifodd\c@pgf@counta% + \let\firstradii\outerradius% + \let\secondradii\innerradius% + \else% + \let\firstradii\innerradius% + \let\secondradii\outerradius% + \fi% + % + % ...and calculate the point on the intersection of + % the line from the external point to \centerpoint and + % the relevant segment of the star border. + % + \pgfpointintersectionoflines{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}% + {% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\firstangle}{+\firstradii}}% + }% + {% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\secondangle}{+\secondradii}}% + }% + }% +}% + + +% \pgf@lib@shapesstaranchor +% +% Used internally to calculate inner point and +% outer point anchor positions 'on line'. +% +\def\pgf@lib@shapesstaranchor#1{% + % + % Redefine stuff for ease of use. + % + \pgf@x\points% + \c@pgf@counta\pgf@x% + \divide\c@pgf@counta65536\relax% + \edef\points{\the\c@pgf@counta}% + \pgf@x\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@x}}% + \pgf@x\pointratio% + \edef\pointratio{\pgf@sys@tonumber{\pgf@x}}% + % + % Caculate radii. + % + \pgf@x\innerpointradius% + \edef\innerradius{\the\pgf@x}% + \pgf@xa\pointheight\relax% + \ifdim\pgf@xa<0pt\relax% + \pgf@x\pointratio\pgf@x% + \else% + \advance\pgf@x\pgf@xa% + \fi% + \pgf@xb\pgf@x% + \pgf@xc\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xc% + \pgf@x.5\pgf@xc% + \fi% + \edef\outerradius{\the\pgf@x}% + \ifdim\pgf@x>\pgf@xb% + \ifdim\pgf@xa<0pt\relax% + \pgfmathreciprocal{\pointratio}% + \pgf@xc\pgfmathresult\pgf@x\relax% + \edef\innerradius{\the\pgf@xc}% + \else% + \pgf@xc\pgf@x\relax% + \advance\pgf@xc-\pgf@xb% + \edef\innerradius{\the\pgf@xc}% + \fi% + \fi% + % + % Add the outer sep. + % + \pgf@xa\outersep% + \pgf@x\outerradius\relax% + \advance\pgf@x\pgf@xa% + \edef\outerradius{\the\pgf@x}% + \pgf@x\innerradius\relax% + \advance\pgf@x\pgf@xa% + \edef\innerradius{\the\pgf@x}% + % + % Calculate the angle. + % + \c@pgf@counta\points% + \pgf@x180pt\relax% + \divide\pgf@x\c@pgf@counta% + \c@pgf@counta#1\relax% + \advance\c@pgf@counta-1\relax% + \multiply\pgf@x\c@pgf@counta% + \pgf@xa\rotate pt\relax% + \advance\pgf@x\pgf@xa% + \advance\pgf@x90pt\relax% + \edef\starangle{\the\pgf@x}% + \ifodd\c@pgf@counta% + \let\starradius\innerradius% + \else% + \let\starradius\outerradius% + \fi% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{\starangle}{\starradius}}% +}% + + +% \pgfsetpolygonsides +% +% Set the number of sides on a polygon. +% +\def\pgfsetpolygonsides#1{% + \pgfmathsetcounter{pgf@counta}{#1}% + \edef\pgfpolygonsides{\the\c@pgfmath@counta}} +\pgfsetpolygonsides{6} + +% \pgfsetpolygonrotate +% +% Set the angle of rotation of the polygon +% border. This can be decimal. +% +\def\pgfsetpolygonrotate#1{% + \pgfmathparse{#1}% + \edef\pgfpolygonrotate{\pgfmathresult}}% +\pgfsetpolygonrotate{0} + + +% Regular polygon shape. +% +% +\pgfdeclareshape{regular polygon}{% + % + % Saved dimensions. + % + \saveddimen{\sides}{\pgf@x\pgfpolygonsides pt}% + \saveddimen{\rotate}{\pgf@x\pgfpolygonrotate pt}% + \saveddimen{\minimumsize}{% + \pgfmathsetlength\pgf@x{\pgfshapeminwidth}% + \pgfmathsetlength\pgf@y{\pgfshapeminheight}% + \ifdim\pgf@y>\pgf@x% + \pgf@x\pgf@y% + \fi}% + \saveddimen{\outersep}{% + \pgfmathsetlength\pgf@x{\pgfshapeouterxsep}% + \pgfmathsetlength\pgf@y{\pgfshapeouterysep}% + \ifdim\pgf@y>\pgf@x% + \pgf@x\pgf@y% + \fi}% + \saveddimen{\radius}{% + % + % The radius calculated here is the radius of the circle which + % can safely encompass the node textbox. This corresponds to the + % distance from the centre of the polygon to the mid-point of the + % of the sides of the polygon. The desired radius for the corners + % of the polygon has to calculated `on-line' as the saved dimen + % \sides is not available here. + % + \pgfmathsetlength\pgf@x{\pgfshapeinnerxsep}% + \advance\pgf@x.5\wd\pgfnodeparttextbox% + \pgfmathsetlength\pgf@y{\pgfshapeinnerysep}% + \advance\pgf@y.5\ht\pgfnodeparttextbox% + \ifdim\pgf@y>\pgf@x% + \pgf@x\pgf@y% + \fi% + \pgfmathveclen@{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@x}}% + \pgf@x\pgfmathresult pt\relax% + }% + + % + % Saved anchors. + % + \savedanchor{\centerpoint}{% + \pgf@x.5\wd\pgfnodeparttextbox% + \pgf@y.5\ht\pgfnodeparttextbox% + \advance\pgf@y-.5\dp\pgfnodeparttextbox% + }% + + % + % Other anchors. + % + \anchor{center}{\centerpoint}% + \anchor{mid}{\centerpoint\pgfmathsetlength\pgf@y{.5ex}}% + \anchor{base}{\centerpoint\pgf@y=0pt}% + \anchor{north}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+0pt}{+\radius}}}% + \anchor{south}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+0pt}{+-\radius}}}% + \anchor{east}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+\radius}{+0pt}}}% + \anchor{west}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+-\radius}{+0pt}}}% + \anchor{north east}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+\radius}{+\radius}}}% + \anchor{north west}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+-\radius}{+\radius}}}% + \anchor{south east}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+\radius}{+-\radius}}}% + \anchor{south west}{\csname pgf@anchor@regular polygon@border\endcsname{\pgfpoint{+-\radius}{+-\radius}}}% + + % + % Background path. + % + \backgroundpath{% + % + % Redefine some stuff for ease of use. + % + \pgf@x\sides% + \c@pgf@counta\pgf@x% + \divide\c@pgf@counta65536\relax% + \edef\sides{\the\c@pgf@counta}% + \pgf@x\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@x}}% + % + % Get the inner angle. + % + \pgf@y360pt\relax% + \divide\pgf@y\sides% + \edef\polygonanglestep{\the\pgf@y}% + % + % Now recalculate the polygon *corner* radius. + % + \pgf@y.5\pgf@y% + \pgfmathcos@{\pgf@sys@tonumber{\pgf@y}}% + \pgfmathreciprocal@{\pgfmathresult}% + \pgf@x\radius\relax% + \pgf@x\pgfmathresult\pgf@x% + \pgf@xa\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xa% + \pgf@x.5\pgf@xa% + \fi% + \edef\polygonradius{\the\pgf@x}% + % + % Every polygon is drawn so that a side is at the bottom... + % + \pgf@x90pt\relax% + \ifodd\sides% + \else% + \advance\pgf@x-\pgf@y% + \fi% + % + % ...unless rotation is applied. + % + \pgf@xa\rotate pt\relax% + \advance\pgf@x\pgf@xa% + \edef\polygonangle{\the\pgf@x}% + % + % Move to first point. + % + \pgfpathmoveto{% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\polygonangle}{+\polygonradius}}% + }% + \pgfmathloop% + % + % Create anchors. Manually \xdef as \gdef is normally used by \anchor. + % + \expandafter\xdef\csname pgf@anchor@regular polygon@corner\space\pgfmathcounter\endcsname{% + \noexpand\pgf@lib@shapescorneranchor{\pgfmathcounter}% + }% + \expandafter\xdef\csname pgf@anchor@regular polygon@side\space\pgfmathcounter\endcsname{% + \noexpand\pgf@lib@shapessideanchor{\pgfmathcounter}% + }% + \ifnum\pgfmathcounter=\sides\relax% Stop. + \else% + \pgf@x\polygonangle\relax% + \advance\pgf@x\polygonanglestep\relax% + \edef\polygonangle{\the\pgf@x}% + \pgfpathlineto{% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\polygonangle}{+\polygonradius}}% + }% + \repeatpgfmathloop% + \pgfpathclose% + }% + + % + % Anchor border. + % + \anchorborder{% + % + % Save the external point. + % + \pgf@xa\pgf@x% + \pgf@ya\pgf@y% + \centerpoint% + \advance\pgf@xa\pgf@x% + \advance\pgf@ya\pgf@y% + \edef\externalx{\the\pgf@xa}% + \edef\externaly{\the\pgf@ya}% + \pgf@process{\pgfpointdiff{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}}% + % + % Approximate the angle of the external point... + % + \pgf@xa\pgf@x% + \pgf@ya\pgf@y% + \pgf@xb\pgf@x% + \pgf@yb\pgf@y% + \ifdim\pgf@xa<0pt\relax% + \pgf@xa-\pgf@xa% + \fi% + \ifdim\pgf@ya<0pt\relax% + \pgf@ya-\pgf@ya% + \fi% + \ifdim\pgf@ya>\pgf@xa% + \pgf@x\pgf@xa% + \pgf@y\pgf@ya% + \else% + \pgf@x\pgf@ya% + \pgf@y\pgf@xa% + \fi% + \ifdim\pgf@y=0pt\relax% + \pgf@x0pt% + \else% + \pgfmathreciprocal@{\pgf@sys@tonumber{\pgf@y}}% + \pgf@x\pgfmathresult\pgf@x% + \fi% + \multiply\pgf@x1000\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgf@counta\the\pgf@x\relax\pgfmath@% + \expandafter\pgf@x\csname pgfmath@atan@\the\c@pgf@counta\endcsname pt\relax% + \ifdim\pgfmath@ya>\pgfmath@xa\relax% + \pgf@x-\pgf@x% + \advance\pgf@x90pt% + \fi% + \ifdim\pgf@xb<0pt% + \ifdim\pgf@yb>0pt% + \pgf@x-\pgf@x% + \fi% + \advance\pgf@x180pt\relax% + \else% + \ifdim\pgf@yb<0pt% + \pgf@x-\pgf@x% + \advance\pgf@x360pt\relax% + \fi\fi% + % + % ...(redefine stuff for ease of use)... + % + \pgf@y\sides% + \c@pgf@counta\pgf@y% + \divide\c@pgf@counta65536\relax% + \edef\sides{\the\c@pgf@counta}% + \pgf@y\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@y}}% + % + % ...now adjust angle, for the number of polygon sides... + % + \advance\pgf@x-90pt\relax% + \pgf@xa180pt\relax% + \divide\pgf@xa\sides% + % + % ...and for if the there is an even number of sides... + % + \ifodd\sides% + \else% + \advance\pgf@x\pgf@xa% + \fi% + \ifdim\pgf@x<0pt\relax% + \advance\pgf@x360pt\relax% + \fi% + % + % ...and also for rotation. + % + \advance\pgf@x-\rotate pt\relax% + \ifdim\pgf@x<0pt\relax% + \advance\pgf@x360pt\relax% + \fi% + % + % Now, locate the start and end points on the polygon border segment... + % + \c@pgf@counta\sides\relax% + \pgf@y360pt\relax% + \divide\pgf@y\c@pgf@counta\relax% + \pgfmathreciprocal@{\pgf@sys@tonumber{\pgf@y}}% + \pgf@x\pgfmathresult\pgf@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgf@counta\the\pgf@x\relax\pgfmath@% + % + % ...and hence, the start and end angles of the polygon border segment. + % + \pgf@x\pgf@y% + \multiply\pgf@x\c@pgf@counta% + \advance\pgf@x90pt% + \ifodd\sides% + \else% + \advance\pgf@x-\pgf@xa% + \fi% + \advance\pgf@x\rotate pt\relax% + \edef\firstangle{\the\pgf@x}% + \advance\c@pgf@counta1\relax% + \pgf@x\pgf@y% + \multiply\pgf@x\c@pgf@counta% + \advance\pgf@x\rotate pt\relax% + \advance\pgf@x90pt% + \ifodd\sides% + \else% + \advance\pgf@x-\pgf@xa% + \fi% + \edef\secondangle{\the\pgf@x}% + % + % Get the inner angle. + % + \pgf@y360pt\relax% + \divide\pgf@y\sides% + % + % Now recalculate the polygon *corner* radius... + % + \pgf@y.5\pgf@y% + \pgfmathcos@{\pgf@sys@tonumber{\pgf@y}}% + \pgfmathreciprocal@{\pgfmathresult}% + \pgf@x\radius\relax% + \pgf@x\pgfmathresult\pgf@x% + \edef\polygonradius{\the\pgf@x}% + % + % ...and add the outer sep to the corner radius... + % + \pgf@xa\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xa% + \pgf@x.5\pgf@xa% + \fi% + \pgf@xa\outersep\relax% + \advance\pgf@x\pgf@xa% + \edef\radius{\the\pgf@x}% + % + % ...and calculate the point on the intersection of + % the line from the external point to \centerpoint and + % the segment of the star border. + % + \pgfpointintersectionoflines{\centerpoint}{\pgfpoint{+\externalx}{+\externaly}}% + {% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\firstangle}{+\radius}}% + }% + {% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{+\secondangle}{+\radius}}% + }% + }% +}% + + +% \pgf@lib@shapespolygoncorneranchor +% +% Used internally to calculate corner anchor positions. +% +\def\pgf@lib@shapescorneranchor#1{% + % + % Redefine stuff for ease of use. + % + \pgf@y\sides% + \c@pgf@counta\pgf@y% + \divide\c@pgf@counta65536\relax% + \edef\sides{\the\c@pgf@counta}% + \pgf@y\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@y}}% + % + % Get the inner angle. + % + \pgf@y360pt\relax% + \divide\pgf@y\sides\relax% + \edef\polgonanglestep{\pgf@sys@tonumber{\pgf@y}}% + % + % Recalculate the polygon corner radius... + % + \pgf@y.5\pgf@y% + \pgfmathcos@{\pgf@sys@tonumber{\pgf@y}}% + \pgfmathreciprocal@{\pgfmathresult}% + \pgf@x\radius\relax% + \pgf@x\pgfmathresult\pgf@x% + \edef\polygonradius{\the\pgf@x}% + % + % ...adjust for minimum size... + % + \pgf@xa\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xa% + \pgf@x.5\pgf@xa% + \fi% + % + % ...and add the outer sep. + % + \pgf@xa\outersep\relax% + \advance\pgf@x\pgf@xa% + \edef\polygonradius{\the\pgf@x}% + % + % Calculate the angle. + % + \c@pgf@counta#1\relax% + \advance\c@pgf@counta-1\relax% + \pgf@x2.0\pgf@y% + \multiply\pgf@x\c@pgf@counta% + \pgf@xa\rotate pt\relax% + \advance\pgf@x\pgf@xa% + \advance\pgf@x90pt\relax% + \ifodd\sides% + \else% + \advance\pgf@x-\pgf@y% + \fi% + \edef\polygonangle{\the\pgf@x}% + \pgfpointadd{\centerpoint}% + {\pgfpointpolar{\polygonangle}{\polygonradius}}% +}% + +% \pgf@lib@shapespolygonsideanchor +% +% Used internally to calculate side anchor positions. +% +\def\pgf@lib@shapessideanchor#1{% + % + % Redefine stuff for ease of use. + % + \pgf@y\sides% + \c@pgf@counta\pgf@y% + \divide\c@pgf@counta65536\relax% + \edef\sides{\the\c@pgf@counta}% + \pgf@y\rotate% + \edef\rotate{\pgf@sys@tonumber{\pgf@y}}% + % + % Get the inner angle. + % + \pgf@y360pt\relax% + \divide\pgf@y\sides\relax% + \edef\polygonanglestep{\the\pgf@y}% + % + % Recalculate the polygon corner radius... + % + \pgf@y.5\pgf@y% + \pgfmathcos@{\pgf@sys@tonumber{\pgf@y}}% + \pgfmathreciprocal@{\pgfmathresult}% + \pgf@x\radius\relax% + \pgf@x\pgfmathresult\pgf@x% + % + % ...adjust for minimum size... + % + \pgf@xa\minimumsize\relax% + \ifdim\pgf@x<.5\pgf@xa% + \pgf@x.5\pgf@xa% + \fi% + % + % and add the outer sep. + % + \pgf@xa\outersep\relax% + \advance\pgf@x\pgf@xa% + \edef\polygonradius{\the\pgf@x}% + % + % Calculate the angle. + % + \pgf@y\polygonanglestep% + \c@pgf@counta#1\relax% + \advance\c@pgf@counta-1\relax% + \pgf@x\polygonanglestep pt\relax% + \multiply\pgf@x\c@pgf@counta% + \pgf@xa\rotate pt\relax% + \advance\pgf@x\pgf@xa% + \advance\pgf@x90pt\relax% + \ifodd\sides% + \else% + \advance\pgf@x-.5\pgf@y% + \fi% + \edef\firstangle{\the\pgf@x}% + \advance\pgf@x\pgf@y% + \edef\secondangle{\the\pgf@x}% + \pgfpointlineattime{0.5}{% + \pgfpointadd{\centerpoint}{\pgfpointpolar{+\firstangle}{+\polygonradius}}% + }{% + \pgfpointadd{\centerpoint}{\pgfpointpolar{+\secondangle}{+\polygonradius}}% + }% +}% + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.misc.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.misc.code.tex new file mode 100644 index 00000000000..6dcd610f612 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.misc.code.tex @@ -0,0 +1,70 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.misc.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + + +\pgfdeclareshape{cross out} +{ + \inheritsavedanchors[from=rectangle] % this is nearly a rectangle + \inheritanchorborder[from=rectangle] + \inheritanchor[from=rectangle]{north} + \inheritanchor[from=rectangle]{north west} + \inheritanchor[from=rectangle]{north east} + \inheritanchor[from=rectangle]{center} + \inheritanchor[from=rectangle]{west} + \inheritanchor[from=rectangle]{east} + \inheritanchor[from=rectangle]{mid} + \inheritanchor[from=rectangle]{mid west} + \inheritanchor[from=rectangle]{mid east} + \inheritanchor[from=rectangle]{base} + \inheritanchor[from=rectangle]{base west} + \inheritanchor[from=rectangle]{base east} + \inheritanchor[from=rectangle]{south} + \inheritanchor[from=rectangle]{south west} + \inheritanchor[from=rectangle]{south east} + \foregroundpath{ + % store lower right in xa/ya and upper right in xb/yb + \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y + \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y + \pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@ya}} + \pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@yb}} + \pgfpathmoveto{\pgfqpoint{\pgf@xa}{\pgf@yb}} + \pgfpathlineto{\pgfqpoint{\pgf@xb}{\pgf@ya}} + } +} + + +\pgfdeclareshape{strike out} +{ + \inheritsavedanchors[from=rectangle] % this is nearly a rectangle + \inheritanchorborder[from=rectangle] + \inheritanchor[from=rectangle]{north} + \inheritanchor[from=rectangle]{north west} + \inheritanchor[from=rectangle]{north east} + \inheritanchor[from=rectangle]{center} + \inheritanchor[from=rectangle]{west} + \inheritanchor[from=rectangle]{east} + \inheritanchor[from=rectangle]{mid} + \inheritanchor[from=rectangle]{mid west} + \inheritanchor[from=rectangle]{mid east} + \inheritanchor[from=rectangle]{base} + \inheritanchor[from=rectangle]{base west} + \inheritanchor[from=rectangle]{base east} + \inheritanchor[from=rectangle]{south} + \inheritanchor[from=rectangle]{south west} + \inheritanchor[from=rectangle]{south east} + \foregroundpath{ + \pgfpathmoveto{\southwest} + \pgfpathlineto{\northeast} + } +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.multipart.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.multipart.code.tex new file mode 100644 index 00000000000..2299d9520c8 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.multipart.code.tex @@ -0,0 +1,165 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.multipart.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\newbox\pgfnodepartlowerbox + +% +% A circle that is split in the middle into an upper and a lower part. +% +% This node consists of two parts: The upper (main) part is shown in +% the upper half of the circle. The second part is the (optional) +% lower part. +% +% Parts: text, lower + +\pgfdeclareshape{circle split} +{ + % + % Node parts + % + \nodeparts{text,lower} + + % + % Anchors + % + \savedanchor\centerpoint{% + \pgf@x=.5\wd\pgfnodeparttextbox% + \pgfmathsetlength{\pgf@y}{\pgfshapeinnerysep}% + \pgf@y=-\pgf@y% + \advance\pgf@y by-\dp\pgfnodeparttextbox% + \advance\pgf@y by-.5\pgflinewidth% + }% + \savedanchor\loweranchor{% + \pgf@x=-.5\wd\pgfnodepartlowerbox% + \advance\pgf@x by.5\wd\pgfnodeparttextbox% + \pgfmathsetlength{\pgf@y}{\pgfshapeinnerysep}% + \pgf@y=-2\pgf@y% + \advance\pgf@y by-\ht\pgfnodepartlowerbox% + \advance\pgf@y by-.5\pgflinewidth% + \advance\pgf@y by-\dp\pgfnodeparttextbox% + \advance\pgf@y by-.5\pgflinewidth% + } + + \saveddimen\radius{% + % + % Caculate ``height radius'' + % + \pgf@ya=.5\ht\pgfnodeparttextbox% + \advance\pgf@ya by.5\dp\pgfnodeparttextbox% + \advance\pgf@ya by.5\ht\pgfnodepartlowerbox% + \advance\pgf@ya by.5\dp\pgfnodepartlowerbox% + \advance\pgf@ya by.5\pgflinewidth% + \pgfmathsetlength\pgf@yb{\pgfshapeinnerysep}% + \advance\pgf@ya by2\pgf@yb% + % + % Caculate ``width radius'' + % + \pgf@xa=.5\wd\pgfnodeparttextbox% + \ifdim\pgf@xa<.5\wd\pgfnodepartlowerbox% + \pgf@xa=.5\wd\pgfnodepartlowerbox% + \fi% + \pgfmathsetlength\pgf@xb{\pgfshapeinnerxsep}% + \advance\pgf@xa by\pgf@xb% + % + % Calculate length of radius vector: + % + \pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}% + \ifdim\pgf@x>\pgf@y% + \c@pgf@counta=\pgf@x% + \ifnum\c@pgf@counta=0\relax% + \else% + \divide\c@pgf@counta by 255\relax% + \pgf@xa=16\pgf@xa\relax% + \divide\pgf@xa by\c@pgf@counta% + \pgf@xa=16\pgf@xa\relax% + \fi% + \else% + \c@pgf@counta=\pgf@y% + \ifnum\c@pgf@counta=0\relax% + \else% + \divide\c@pgf@counta by 255\relax% + \pgf@ya=16\pgf@ya\relax% + \divide\pgf@ya by\c@pgf@counta% + \pgf@xa=16\pgf@ya\relax% + \fi% + \fi% + \pgf@x=\pgf@xa% + % + % If necessary, adjust radius so that the size requirements are + % met: + % + \pgfmathsetlength{\pgf@xb}{\pgfshapeminwidth}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeminheight}% + \ifdim\pgf@x<.5\pgf@xb% + \pgf@x=.5\pgf@xb% + \fi% + \ifdim\pgf@x<.5\pgf@yb% + \pgf@x=.5\pgf@yb% + \fi% + % + % Now, add larger of outer sepearations. + % + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% + \ifdim\pgf@xb<\pgf@yb% + \advance\pgf@x by\pgf@yb% + \else% + \advance\pgf@x by\pgf@xb% + \fi% + } + + % + % Anchors + % + \inheritanchorborder[from=circle] + \inheritanchor[from=circle]{north} + \inheritanchor[from=circle]{north west} + \inheritanchor[from=circle]{north east} + \inheritanchor[from=circle]{center} + \inheritanchor[from=circle]{west} + \inheritanchor[from=circle]{east} + \inheritanchor[from=circle]{mid} + \inheritanchor[from=circle]{mid west} + \inheritanchor[from=circle]{mid east} + \inheritanchor[from=circle]{base} + \inheritanchor[from=circle]{base west} + \inheritanchor[from=circle]{base east} + \inheritanchor[from=circle]{south} + \inheritanchor[from=circle]{south west} + \inheritanchor[from=circle]{south east} + \anchor{lower}{\loweranchor} + + % + % Background path + % + \inheritbackgroundpath[from=circle] + \beforebackgroundpath{ + \pgfutil@tempdima=\radius% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% + \ifdim\pgf@xb<\pgf@yb% + \advance\pgfutil@tempdima by-\pgf@yb% + \else% + \advance\pgfutil@tempdima by-\pgf@xb% + \fi% + \advance\pgfutil@tempdima by-.5\pgflinewidth% + \pgfsetshortenstart{0pt}% + \pgfsetshortenend{0pt}% + \pgfsetarrows{-}% + \pgfpathmoveto{\pgfpointadd{\centerpoint}{\pgfqpoint{-1\pgfutil@tempdima}{0pt}}}% + \pgfpathlineto{\pgfpointadd{\centerpoint}{\pgfqpoint{\pgfutil@tempdima}{0pt}}}% + \pgfusepath{stroke}% + } +} + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.symbols.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.symbols.code.tex new file mode 100644 index 00000000000..50ee3ec9c6b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibraryshapes.symbols.code.tex @@ -0,0 +1,50 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibraryshapes.symbols.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\pgfdeclareshape{forbidden sign} +{ + \inheritsavedanchors[from=circle] % this is nearly a circle + \inheritanchorborder[from=circle] + \inheritanchor[from=circle]{north} + \inheritanchor[from=circle]{north west} + \inheritanchor[from=circle]{north east} + \inheritanchor[from=circle]{center} + \inheritanchor[from=circle]{west} + \inheritanchor[from=circle]{east} + \inheritanchor[from=circle]{mid} + \inheritanchor[from=circle]{mid west} + \inheritanchor[from=circle]{mid east} + \inheritanchor[from=circle]{base} + \inheritanchor[from=circle]{base west} + \inheritanchor[from=circle]{base east} + \inheritanchor[from=circle]{south} + \inheritanchor[from=circle]{south west} + \inheritanchor[from=circle]{south east} + \inheritbackgroundpath[from=circle] + \foregroundpath{ + \centerpoint% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \pgfutil@tempdima=\radius% + \pgfmathsetlength{\pgf@xb}{\pgfshapeouterxsep}% + \pgfmathsetlength{\pgf@yb}{\pgfshapeouterysep}% + \ifdim\pgf@xb<\pgf@yb% + \advance\pgfutil@tempdima by-\pgf@yb% + \else% + \advance\pgfutil@tempdima by-\pgf@xb% + \fi% + \pgfpathmoveto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{-0.707107\pgfutil@tempdima}{-0.707107\pgfutil@tempdima}}} + \pgfpathlineto{\pgfpointadd{\pgfqpoint{\pgf@xc}{\pgf@yc}}{\pgfqpoint{0.707107\pgfutil@tempdima}{0.707107\pgfutil@tempdima}}} + } +} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex index f9795dc4a99..dde1a6db64c 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarysnakes.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarysnakes.code.tex,v 1.14 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarysnakes.code.tex,v 1.15 2007/03/09 17:49:32 tantau Exp $ \newdimen\pgfsnakesegmentamplitude @@ -29,47 +29,47 @@ \pgfdeclaresnake{snake}{initial} { - \state{initial}[switch if less than=.625\pgfsnakesegmentlength to final, - width=.3125\pgfsnakesegmentlength, + \state{initial}[switch if less than=+.625\pgfsnakesegmentlength to final, + width=+.3125\pgfsnakesegmentlength, next state=down] { \pgfpathcurveto - {\pgfpoint{.125\pgfsnakesegmentlength}{0pt}} - {\pgfpoint{.1875\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - {\pgfpoint{.3125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfqpoint{.125\pgfsnakesegmentlength}{0pt}} + {\pgfqpoint{.1875\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfqpoint{.3125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} } - \state{down}[switch if less than=.8125\pgfsnakesegmentlength to end down, - width=.5\pgfsnakesegmentlength, + \state{down}[switch if less than=+.8125\pgfsnakesegmentlength to end down, + width=+.5\pgfsnakesegmentlength, next state=up] { - \pgfpathcosine{\pgfpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} - \pgfpathsine{\pgfpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + \pgfpathcosine{\pgfqpoint{.25\pgfsnakesegmentlength}{-1\pgfsnakesegmentamplitude}} + \pgfpathsine{\pgfqpoint{.25\pgfsnakesegmentlength}{-1\pgfsnakesegmentamplitude}} } - \state{up}[switch if less than=.8125\pgfsnakesegmentlength to end up, - width=.5\pgfsnakesegmentlength, + \state{up}[switch if less than=+.8125\pgfsnakesegmentlength to end up, + width=+.5\pgfsnakesegmentlength, next state=down] { - \pgfpathcosine{\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - \pgfpathsine{\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathcosine{\pgfqpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathsine{\pgfqpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} } - \state{end down}[width=.3125\pgfsnakesegmentlength, + \state{end down}[width=+.3125\pgfsnakesegmentlength, next state=final] { \pgfpathcurveto - {\pgfpoint{.125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - {\pgfpoint{.1875\pgfsnakesegmentlength}{0pt}} - {\pgfpoint{.3125\pgfsnakesegmentlength}{0pt}} + {\pgfqpoint{.125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfqpoint{.1875\pgfsnakesegmentlength}{0pt}} + {\pgfqpoint{.3125\pgfsnakesegmentlength}{0pt}} } - \state{end up}[width=.3125\pgfsnakesegmentlength, + \state{end up}[width=+.3125\pgfsnakesegmentlength, next state=final] { \pgfpathcurveto - {\pgfpoint{.125\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} - {\pgfpoint{.1875\pgfsnakesegmentlength}{0pt}} - {\pgfpoint{.3125\pgfsnakesegmentlength}{0pt}} + {\pgfqpoint{.125\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + {\pgfqpoint{.1875\pgfsnakesegmentlength}{0pt}} + {\pgfqpoint{.3125\pgfsnakesegmentlength}{0pt}} } \state{final} - { \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } + { \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -81,20 +81,20 @@ \pgfdeclaresnake{zigzag}{up} { - \state{up}[width=.5\pgfsnakesegmentlength,% + \state{up}[width=+.5\pgfsnakesegmentlength,% next state=down] { - \pgfpathlineto{\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{.5\pgfsnakesegmentlength}{0pt}} + \pgfpathlineto{\pgfqpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{.5\pgfsnakesegmentlength}{0pt}} } - \state{down}[width=.5\pgfsnakesegmentlength,% + \state{down}[width=+.5\pgfsnakesegmentlength,% next state=up] { - \pgfpathlineto{\pgfpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{.5\pgfsnakesegmentlength}{0pt}} + \pgfpathlineto{\pgfqpoint{.25\pgfsnakesegmentlength}{-\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{.5\pgfsnakesegmentlength}{0pt}} } \state{final} - { \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} } + { \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -105,14 +105,14 @@ \pgfdeclaresnake{saw}{initial} { - \state{initial}[width=\pgfsnakesegmentlength] + \state{initial}[width=+\pgfsnakesegmentlength] { - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentlength}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentlength}{0pt}} } \state{final} { - \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -127,7 +127,7 @@ 1.5\pgfsnakesegmentlength+% \pgfsnakesegmentaspect\pgfsnakesegmentamplitude+% \pgfsnakesegmentaspect\pgfsnakesegmentamplitude to last, - width=\pgfsnakesegmentlength] + width=+\pgfsnakesegmentlength] { \pgfpathcurveto {\pgfpoint@oncoil{0 }{ 0.555}{1}} @@ -161,7 +161,7 @@ } \state{final} { - \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -180,20 +180,20 @@ \pgfdeclaresnake{bumps}{initial} { - \state{initial}[width=.5\pgfsnakesegmentlength] + \state{initial}[width=+.5\pgfsnakesegmentlength] { \pgfpathcurveto - {\pgfpoint{0pt}{.555\pgfsnakesegmentamplitude}} - {\pgfpoint{0.11125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - {\pgfpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfqpoint{0pt}{.555\pgfsnakesegmentamplitude}} + {\pgfqpoint{0.11125\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfqpoint{.25\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} \pgfpathcurveto - {\pgfpoint{.38875\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} - {\pgfpoint{.5\pgfsnakesegmentlength}{.5\pgfsnakesegmentamplitude}} - {\pgfpoint{.5\pgfsnakesegmentlength}{0\pgfsnakesegmentamplitude}} + {\pgfqpoint{.38875\pgfsnakesegmentlength}{\pgfsnakesegmentamplitude}} + {\pgfqpoint{.5\pgfsnakesegmentlength}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{.5\pgfsnakesegmentlength}{0\pgfsnakesegmentamplitude}} } \state{final} { - \pgfpathlineto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathlineto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -205,29 +205,29 @@ \pgfdeclaresnake{expanding waves}{initial} { - \state{initial}[width=\pgfsnakesegmentlength,next state=wave] + \state{initial}[width=+\pgfsnakesegmentlength,next state=wave] {} - \state{wave}[switch if less than=\pgfsnakesegmentlength to last, - width=\pgfsnakesegmentlength] + \state{wave}[switch if less than=+\pgfsnakesegmentlength to last, + width=+\pgfsnakesegmentlength] { \pgfpathmoveto{ \pgfpointadd - {\pgfpoint{-\pgfsnakecompleteddistance}{0pt}}% - {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}}}% - \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}% + {\pgfqpoint{-\pgfsnakecompleteddistance}{0pt}}% + {\pgfpointpolar{\pgfsnakesegmentangle}{+\pgfsnakecompleteddistance}}}% + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{+\pgfsnakecompleteddistance}% } - \state{last}[width=0pt,next state=final] + \state{last}[width=+0pt,next state=final] { \pgfpathmoveto{ \pgfpointadd - {\pgfpoint{-\pgfsnakecompleteddistance}{0pt}}% - {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}}}% - \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecompleteddistance}% + {\pgfqpoint{-\pgfsnakecompleteddistance}{0pt}}% + {\pgfpointpolar{\pgfsnakesegmentangle}{+\pgfsnakecompleteddistance}}}% + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{+\pgfsnakecompleteddistance}% } \state{final} { - \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -241,16 +241,16 @@ { \state{wave}[width=\pgfsnakesegmentlength] { - \pgftransformxshift{\pgfsnakesegmentlength} + \pgftransformxshift{+\pgfsnakesegmentlength} \pgfpathmoveto{ \pgfpointadd - {\pgfpoint{-\pgfsnakesegmentobjectlength}{0pt}}% - {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakesegmentobjectlength}}}% - \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakesegmentobjectlength}% + {\pgfqpoint{-\pgfsnakesegmentobjectlength}{0pt}}% + {\pgfpointpolar{\pgfsnakesegmentangle}{+\pgfsnakesegmentobjectlength}}}% + \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{+\pgfsnakesegmentobjectlength}% } \state{final} { - \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -261,24 +261,24 @@ \pgfdeclaresnake{triangles}{triangle} { - \state{triangle}[switch if less than=\pgfsnakesegmentlength to last, - width=\pgfsnakesegmentlength] + \state{triangle}[switch if less than=+\pgfsnakesegmentlength to last, + width=+\pgfsnakesegmentlength] { - \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{0pt}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentobjectlength}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfsnakesegmentamplitude}} \pgfpathclose } - \state{last}[width=\pgfsnakesegmentobjectlength,next state=final] + \state{last}[width=+\pgfsnakesegmentobjectlength,next state=final] { - \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{0pt}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentobjectlength}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfsnakesegmentamplitude}} \pgfpathclose } \state{final} { - \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -290,24 +290,24 @@ \pgfdeclaresnake{crosses}{crosses} { - \state{crosses}[switch if less than=\pgfsnakesegmentlength to last, - width=\pgfsnakesegmentlength] + \state{crosses}[switch if less than=+\pgfsnakesegmentlength to last, + width=+\pgfsnakesegmentlength] { - \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{-\pgfsnakesegmentamplitude}} - \pgfpathmoveto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentobjectlength}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentobjectlength}{\pgfsnakesegmentamplitude}} } \state{last}[width=\pgfsnakesegmentobjectlength,next state=final] { - \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{-\pgfsnakesegmentamplitude}} - \pgfpathmoveto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{\pgfsnakesegmentobjectlength}{\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentobjectlength}{-1\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{\pgfsnakesegmentobjectlength}{\pgfsnakesegmentamplitude}} } \state{final} { - \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -319,16 +319,16 @@ \pgfdeclaresnake{ticks}{ticks} { - \state{ticks}[width=\pgfsnakesegmentlength] + \state{ticks}[width=+\pgfsnakesegmentlength] { - \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfsnakesegmentamplitude}} } \state{final} { - \pgfpathmoveto{\pgfpoint{0pt}{\pgfsnakesegmentamplitude}} - \pgfpathlineto{\pgfpoint{0pt}{-\pgfsnakesegmentamplitude}} - \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathmoveto{\pgfqpoint{0pt}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfqpoint{0pt}{-\pgfsnakesegmentamplitude}} + \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -339,20 +339,20 @@ \pgfdeclaresnake{border}{tick} { - \state{tick}[switch if less than=\pgfsnakesegmentlength to last, - width=\pgfsnakesegmentlength] + \state{tick}[switch if less than=+\pgfsnakesegmentlength to last, + width=+\pgfsnakesegmentlength] { \pgfpathmoveto{\pgfpointorigin} - \pgfpathlineto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpointpolar{\pgfsnakesegmentangle}{+\pgfsnakesegmentamplitude}} } - \state{last}[width=\pgfsnakesegmentamplitude,next state=final] + \state{last}[width=+\pgfsnakesegmentamplitude,next state=final] { \pgfpathmoveto{\pgfpointorigin} - \pgfpathlineto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakesegmentamplitude}} + \pgfpathlineto{\pgfpointpolar{\pgfsnakesegmentangle}{+\pgfsnakesegmentamplitude}} } \state{final} { - \pgfpathmoveto{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + \pgfpathmoveto{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } } @@ -365,32 +365,32 @@ \pgfdeclaresnake{brace}{brace} { - \state{brace}[width=\pgfsnakeremainingdistance,next state=final] + \state{brace}[width=+\pgfsnakeremainingdistance,next state=final] { - \pgfpathmoveto{\pgfpoint{0pt}{0pt}} + \pgfpathmoveto{\pgfpointorigin} \pgfpathcurveto - {\pgfpoint{.15\pgfsnakesegmentamplitude}{.3\pgfsnakesegmentamplitude}} - {\pgfpoint{.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} - {\pgfpoint{\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{.15\pgfsnakesegmentamplitude}{.3\pgfsnakesegmentamplitude}} + {\pgfqpoint{.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} { - \pgftransformxshift{\pgfsnakesegmentaspect\pgfsnakeremainingdistance} - \pgfpathlineto{\pgfpoint{-\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + \pgftransformxshift{+\pgfsnakesegmentaspect\pgfsnakeremainingdistance} + \pgfpathlineto{\pgfqpoint{-\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} \pgfpathcurveto - {\pgfpoint{-.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} - {\pgfpoint{-.15\pgfsnakesegmentamplitude}{.7\pgfsnakesegmentamplitude}} - {\pgfpoint{0\pgfsnakesegmentamplitude}{1\pgfsnakesegmentamplitude}} + {\pgfqpoint{-.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{-.15\pgfsnakesegmentamplitude}{.7\pgfsnakesegmentamplitude}} + {\pgfqpoint{0\pgfsnakesegmentamplitude}{1\pgfsnakesegmentamplitude}} \pgfpathcurveto - {\pgfpoint{.15\pgfsnakesegmentamplitude}{.7\pgfsnakesegmentamplitude}} - {\pgfpoint{.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} - {\pgfpoint{\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{.15\pgfsnakesegmentamplitude}{.7\pgfsnakesegmentamplitude}} + {\pgfqpoint{.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} } { - \pgftransformxshift{\pgfsnakeremainingdistance} - \pgfpathlineto{\pgfpoint{-\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + \pgftransformxshift{+\pgfsnakeremainingdistance} + \pgfpathlineto{\pgfqpoint{-\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} \pgfpathcurveto - {\pgfpoint{-.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} - {\pgfpoint{-.15\pgfsnakesegmentamplitude}{.3\pgfsnakesegmentamplitude}} - {\pgfpoint{0pt}{0pt}} + {\pgfqpoint{-.5\pgfsnakesegmentamplitude}{.5\pgfsnakesegmentamplitude}} + {\pgfqpoint{-.15\pgfsnakesegmentamplitude}{.3\pgfsnakesegmentamplitude}} + {\pgfqpoint{0pt}{0pt}} } } \state{final} @@ -407,13 +407,13 @@ \pgfdeclaresnake{bent}{bent} { - \state{bent}[width=\pgfsnakeremainingdistance,next state=final] + \state{bent}[width=+\pgfsnakeremainingdistance,next state=final] { \pgfpathcurveto - {\pgfpoint{\pgfsnakesegmentaspect\pgfsnakeremainingdistance}{\pgfsnakesegmentamplitude}} - {\pgfpointadd{\pgfpoint{\pgfsnakeremainingdistance}{0pt}} - {\pgfpoint{-\pgfsnakesegmentaspect\pgfsnakeremainingdistance}{\pgfsnakesegmentamplitude}}} - {\pgfpoint{\pgfsnakeremainingdistance}{0pt}} + {\pgfqpoint{\pgfsnakesegmentaspect\pgfsnakeremainingdistance}{\pgfsnakesegmentamplitude}} + {\pgfpointadd{\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} + {\pgfqpoint{-\pgfsnakesegmentaspect\pgfsnakeremainingdistance}{\pgfsnakesegmentamplitude}}} + {\pgfqpoint{\pgfsnakeremainingdistance}{0pt}} } \state{final} {} diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex index 6fa6b9963cc..5ae08cdf634 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex,v 1.3 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzbackgrounds.code.tex,v 1.5 2007/04/11 13:04:15 tantau Exp $ % Layers @@ -27,7 +27,7 @@ \define@key{tikz}{inner frame sep}{\def\tikz@framexsep{#1}\def\tikz@frameysep{#1}} \define@key{tikz}{inner frame xsep}{\def\tikz@framexsep{#1}} -\define@key{tikz}{inerr frame ysep}{\def\tikz@frameysep{#1}} +\define@key{tikz}{inner frame ysep}{\def\tikz@frameysep{#1}} \def\tikz@framexsep{1ex} \def\tikz@frameysep{1ex} @@ -66,8 +66,8 @@ \pgf@yb=\pgf@picminy% \pgf@xc=\pgf@picmaxx% \pgf@yc=\pgf@picmaxy% - \setlength{\pgf@x}{\tikz@framexsep}% - \setlength{\pgf@y}{\tikz@frameysep}% + \pgfmathsetlength{\pgf@x}{\tikz@framexsep}% + \pgfmathsetlength{\pgf@y}{\tikz@frameysep}% \advance\pgf@xb by-\pgf@x% \advance\pgf@yb by-\pgf@y% \advance\pgf@xc by\pgf@x% @@ -76,8 +76,8 @@ \edef\tikz@bg@miny{\the\pgf@yb}% \edef\tikz@bg@maxx{\the\pgf@xc}% \edef\tikz@bg@maxy{\the\pgf@yc}% - \setlength{\pgf@x}{\tikz@outerframexsep}% - \setlength{\pgf@y}{\tikz@outerframeysep}% + \pgfmathsetlength{\pgf@x}{\tikz@outerframexsep}% + \pgfmathsetlength{\pgf@y}{\tikz@outerframeysep}% \advance\pgf@xb by-\pgf@x% \advance\pgf@yb by-\pgf@y% \advance\pgf@xc by\pgf@x% diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcalendar.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcalendar.code.tex new file mode 100644 index 00000000000..ec8cc93531b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcalendar.code.tex @@ -0,0 +1,458 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzcalendar.code.tex,v 1.12 2007/03/09 17:49:32 tantau Exp $ + + +\pgfutil@usemodule{pgfcalendar} + + +% +% General options (these options affect all calendars typeset unsind \calendar): +% +% Start, end, and code executed for each current date +% + +\tikzoption{dates}{\tikz@lib@cal@parse#1\relax} +\def\tikz@lib@cal@parse#1to#2\relax{% + \def\tikz@lib@cal@start{#1} + \def\tikz@lib@cal@end{#2}% +} +\tikzoption{execute at begin day scope}{\expandafter\def\expandafter\tikz@atbegin@day\expandafter{\tikz@atbegin@day#1}} +\tikzoption{execute at end day scope}{% + \def\pgf@temp{#1}% + \expandafter\expandafter\expandafter\def% + \expandafter\expandafter\expandafter\tikz@atend@day% + \expandafter\expandafter\expandafter{\expandafter\pgf@temp\tikz@atend@day}} +\tikzoption{execute before day scope}{\expandafter\def\expandafter\tikz@before@day\expandafter{\tikz@before@day#1}} +\tikzoption{execute after day scope}{\expandafter\def\expandafter\tikz@after@day\expandafter{\tikz@after@day#1}} + +\let\tikz@atbegin@day=\pgfutil@empty +\let\tikz@atend@day=\pgfutil@empty +\let\tikz@before@day=\pgfutil@empty +\let\tikz@after@day=\pgfutil@empty + + + +% +% Options affecting some calendars: +% + +% +% Shifts and skips +% + +% Shift between days + +\tikzoption{day xshift}{\def\tikz@lib@cal@xshift{#1}} +\tikzoption{day yshift}{\def\tikz@lib@cal@yshift{#1}} + +\def\tikz@lib@cal@yshift{3ex} +\def\tikz@lib@cal@xshift{3.5ex} + + +% Shift between months + +\tikzoption{month xshift}{\def\tikz@lib@cal@month@xshift{#1}} +\tikzoption{month yshift}{\def\tikz@lib@cal@month@yshift{#1}} + +\def\tikz@lib@cal@month@yshift{9ex} +\def\tikz@lib@cal@month@xshift{9ex} + + + + +% Templates for typesetting days, month, years + +\tikzoption{day code}{\def\tikzdaycode{#1}} +\tikzoption{day text}{\def\tikzdaytext{#1}} +\tikzoption{days}{\tikzstyle{every day}+=[#1]} +\tikzstyle{every day}=[anchor=base east] + +\tikzoption{month code}{\def\tikzmonthcode{#1}} +\tikzoption{month text}{\def\tikzmonthtext{#1}} +\tikzstyle{every month}=[] + +\tikzoption{year code}{\def\tikzyearcode{#1}} +\tikzoption{year text}{\def\tikzyeartext{#1}} +\tikzstyle{every year}=[] + +\def\tikzdaycode{\node[name=\pgfcalendarsuggestedname,every day]{\tikzdaytext};} +\def\tikzmonthcode{\node[every month]{\tikzmonthtext};} +\def\tikzyearcode{\node[every year]{\tikzyeartext};} + +\def\tikzdaytext{\%d-} +\def\tikzmonthtext{\%mt} +\def\tikzyeartext{\%y0} + + +% Internal option for storing the "width" of a calendar as a number of +% days + +\tikzoption{tikz@lib@cal@width}{\def\tikz@lib@cal@width{#1}} + +\def\tikz@lib@cal@width{1} + +% +% Days on a line +% + +\tikzstyle{day list downward}=[% + execute before day scope={ + \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{} + {% + % On first of month, except when first date in calendar. + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}% + \pgftransformyshift{-\pgf@y} + }% + }{}% + }, + execute after day scope={\pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}\pgftransformyshift{-\pgf@y}}, + tikz@lib@cal@width=1 +] +\tikzstyle{day list upward}=[% + execute before day scope={ + \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{} + {% + % On first of month, except when first date in calendar. + \pgftransformyshift{\tikz@lib@cal@month@yshift}% + }% + }{}% + }, + execute after day scope={\pgftransformyshift\tikz@lib@cal@yshift}, + tikz@lib@cal@width=1 +] +\tikzstyle{day list right}=[% + execute before day scope={ + \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{} + {% + % On first of month, except when first date in calendar. + \pgftransformxshift{\tikz@lib@cal@month@xshift}% + }% + }{}% + }, + execute after day scope={\pgftransformxshift\tikz@lib@cal@xshift}, + tikz@lib@cal@width=30% not quite right, but close enough in most cases... +] + +\tikzstyle{day list left}=[% + execute before day scope={ + \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{} + {% + % On first of month, except when first date in calendar. + \pgfmathsetlength{\pgf@x}{\tikz@lib@cal@month@xshift} + \pgftransformxshift{-\pgf@x}% + }% + }{}% + }, + execute after day scope={ + \pgfmathsetlength{\pgf@x}{\tikz@lib@cal@xshift} + \pgftransformxshift{-\pgf@x}% + }, + tikz@lib@cal@width=30% not quite right, but close enough in most cases... +] + + + +% +% Week list +% + +\tikzstyle{week list}=[% + execute before day scope={% + \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{} + {% + % On first of month, except when first date in calendar. + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}% + \pgftransformyshift{-\pgf@y} + }% + }{}% + }, + execute at begin day scope={% + \pgfmathsetlength\pgf@x{\tikz@lib@cal@xshift}% + \pgf@x=\pgfcalendarcurrentweekday\pgf@x% + \pgftransformxshift{\pgf@x}% + }, + execute after day scope={% + \ifdate{Sunday}{% + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}% + \pgftransformyshift{-\pgf@y} + }{}% + }, + tikz@lib@cal@width=7 +] + + + +% +% Month list +% + +\tikzstyle{month list}=[% + execute before day scope={% + \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{} + {% + % On first of month, except when first date in calendar. + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}% + \pgftransformyshift{-\pgf@y} + }% + }{}% + \ifdate{day of month=1} + {% + \edef\tikz@lib@cal@month@list@start{\pgfcalendarcurrentweekday}% + }{}% + \ifdate{equals=\pgfcalendarbeginiso}% + {% + % Computer day of week for start of month + {% + \c@pgf@counta=\pgfcalendarcurrentjulian% + \advance\c@pgf@counta by-\pgfcalendarcurrentday% + \advance\c@pgf@counta by1\relax% + \pgfcalendarjuliantoweekday{\c@pgf@counta}{\c@pgf@countb}% + \xdef\pgf@temp{\the\c@pgf@countb}% + }% + \let\tikz@lib@cal@month@list@start=\pgf@temp% + }{}% + }, + execute at begin day scope={% + \pgfmathsetlength\pgf@xa{\tikz@lib@cal@xshift}% + \pgf@xb=\pgfcalendarcurrentday\pgf@xa% + \advance\pgf@xb by\tikz@lib@cal@month@list@start\pgf@xa% + \advance\pgf@xb by-\pgf@xa\relax% + \pgftransformxshift{\pgf@xb}% + }, + tikz@lib@cal@width=37 +] + + + + +% +% Month labels +% + +\tikzstyle{month label left}=[% + execute before day scope={\ifdate{day of month=1}{\tikzmonthcode}{}}, + set style={{every month}+=[anchor=base east,xshift=-3.5ex]} +] + +\tikzstyle{month label left vertical}=[% + execute before day scope={\ifdate{day of month=1}{\tikzmonthcode}{}}, + set style={{every month}+=[anchor=base east,xshift=-4.5ex,yshift=2.25ex,rotate=90]} +] + +\tikzstyle{month label right}=[% +execute before day scope={\ifdate{day of month=1}{% + {% + \pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}% + \pgftransformxshift{\tikz@lib@cal@width\pgf@xa}% + \pgftransformxshift{-\pgf@xa}% + \tikzmonthcode% + }}{}}, + set style={{every month}+=[anchor=base west,xshift=1ex]} +] + +\tikzstyle{month label right vertical}=[% + execute before day scope={\ifdate{day of month=1}{% + {% + \pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}% + \pgftransformxshift{\tikz@lib@cal@width\pgf@xa}% + \pgftransformxshift{-\pgf@xa}% + \tikzmonthcode% + }}{}}, + set style={{every month}+=[anchor=base west,xshift=2ex,yshift=2.25ex,rotate=-90]} +] + +\tikzstyle{month label above centered}=[% + execute before day scope={% + \ifdate{day of month=1}{% + { + \pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}% + \pgf@xb=\tikz@lib@cal@width\pgf@xa% + \advance\pgf@xb by-\pgf@xa% + \pgf@xb=.5\pgf@xb% + \pgftransformxshift{\pgf@xb}% + \pgftransformxshift{-1.5ex}% + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}% + \pgftransformyshift{1.25\pgf@y} + \tikzmonthcode% + } + }{}}, + set style={{every month}+=[anchor=base]} +] + +\tikzstyle{month label above left}=[% + execute before day scope={% + \ifdate{day of month=1}{% + { + \pgftransformxshift{-3.25ex}% + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}% + \pgftransformyshift{1.25\pgf@y} + \tikzmonthcode% + } + }{}}, + set style={{every month}+=[anchor=base west]} +] + + + +\tikzstyle{month label above right}=[% + execute before day scope={% + \ifdate{day of month=1}{% + { + \pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}% + \pgf@xb=\tikz@lib@cal@width\pgf@xa% + \advance\pgf@xb by-\pgf@xa% + \pgftransformxshift{\pgf@xb}% + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}% + \pgftransformyshift{1.25\pgf@y} + \tikzmonthcode% + } + }{}}, + set style={{every month}+=[anchor=base east]} +] + +\tikzstyle{month label below centered}=[% + execute before day scope={% + \ifdate{day of month=1}{% + { + \pgfmathsetlength{\pgf@xa}{\tikz@lib@cal@xshift}% + \pgf@xb=\tikz@lib@cal@width\pgf@xa% + \advance\pgf@xb by-\pgf@xa% + \pgf@xb=.5\pgf@xb% + \pgftransformxshift{\pgf@xb}% + \pgftransformxshift{-1.5ex}% + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}% + \pgftransformyshift{-1.25\pgf@y} + \tikzmonthcode% + } + }{}}, + set style={{every month}+=[anchor=base]} +] + +\tikzstyle{month label below left}=[% + execute before day scope={% + \ifdate{day of month=1}{% + { + \pgftransformxshift{-3.25ex}% + \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}% + \pgftransformyshift{-1.25\pgf@y} + \tikzmonthcode% + } + }{}}, + set style={{every month}+=[anchor=base west]} +] + + + +% +% Code of the actual \calendar command (tikz.code.tex contains \let\calendar=\tikz@lib@cal@calendar): +% + +\def\tikz@lib@cal@calendar{% + \begingroup% + \let\tikz@lib@cal@ifs=\pgfutil@empty% + \tikz@expandcount=1000\relax% + \tikz@setkeys{name=,at={(0,0)}}% + \let\%=\pgfcalendarshorthand% + \tikz@every@style{every calendar}% + \tikz@lib@cal@scanner% +} + +\def\tikz@lib@cal@scanner{% + \afterassignment\tikz@lib@cal@handle\let\@let@token=% +} + +\def\tikz@lib@cal@handle{% + \let\@next=\tikz@lib@cal@expand% + \ifx\@let@token;% + \let\@next=\tikz@lib@cal@stop% + \else% + \ifx\@let@token(%) + \let\@next=\tikz@lib@cal@name% + \else% + \ifx\@let@token a% + \let\@next=\tikz@lib@cal@at% + \else% + \ifx\@let@token[% + \let\@next=\tikz@lib@cal@option% + \else% + \ifx\@let@token i% + \let\@next=\tikz@lib@cal@if% + \fi% + \fi% + \fi% + \fi% + \fi% + \@next% +} +\def\tikz@lib@cal@expand{% + \advance\tikz@expandcount by -1% + \ifnum\tikz@expandcount<0\relax% + \PackageError{tikz}{Giving up on this calendar}{}% + \let\@next=\tikz@lib@cal@end% + \else% + \let\@next=\tikz@lib@cal@@expand + \fi% + \@next} + +\def\tikz@lib@cal@@expand{\expandafter\tikz@lib@cal@scanner\@let@token} + + +\def\tikz@lib@cal@name#1){% + \tikz@setkeys{name=#1}% + \tikz@lib@cal@scanner% +} +\def\tikz@lib@cal@at t#1(#2){% + \tikz@setkeys{at={(#2)}}% + \tikz@lib@cal@scanner% +} +\def\tikz@lib@cal@option#1]{% + \tikz@setkeys{#1}% + \tikz@lib@cal@scanner% +} +\def\tikz@lib@cal@if f#1(#2){% + \pgfutil@ifnextchar[{\tikz@lib@cal@if@opt{#2}}{\tikz@lib@cal@if@code{#2}}}%} + +\def\tikz@lib@cal@if@opt#1[#2]{\tikz@lib@cal@if@code{#1}{\tikz@setkeys{#2}}} +\def\tikz@lib@cal@if@code#1#2{% + \pgfutil@ifnextchar e{\tikz@lib@cal@if@else{#1}{#2}}{\tikz@lib@cal@if@else{#1}{#2}else{}}} + +\def\tikz@lib@cal@if@else#1#2else{% + \pgfutil@ifnextchar[{\tikz@lib@cal@if@else@opt{#1}{#2}}{\tikz@lib@cal@if@else@code{#1}{#2}}}%} +\def\tikz@lib@cal@if@else@opt#1#2[#3]{\tikz@lib@cal@if@else@code{#1}{#2}{\tikz@setkeys{#3}}} +\def\tikz@lib@cal@if@else@code#1#2#3{% + \expandafter\def\expandafter\tikz@lib@cal@ifs\expandafter{\tikz@lib@cal@ifs\ifdate{#1}{#2}{#3}}% + \tikz@lib@cal@scanner% +} +\def\tikz@lib@cal@stop{% + \pgftransformshift{\tikz@node@at}% + \expandafter\pgfcalendar\expandafter{\tikz@fig@name}{\tikz@lib@cal@start}{\tikz@lib@cal@end}% + {% + \tikz@before@day% + \scope% + \tikz@atbegin@day% + \tikz@lib@cal@ifs% + \tikzdaycode% + \tikz@atend@day% + \endscope% + \tikz@after@day% + }% + \endgroup% +} + +\tikzoption{if}{% + \let\tikz@lib@cal@scanner@orig=\tikz@lib@cal@scanner% + \let\tikz@lib@cal@scanner=\relax% + \tikz@lib@cal@if f#1\relax% + \let\tikz@lib@cal@scanner=\tikz@lib@cal@scanner@orig} + + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcoordinatesystems.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcoordinatesystems.code.tex new file mode 100644 index 00000000000..68659de8138 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzcoordinatesystems.code.tex @@ -0,0 +1,24 @@ +% Copyright 2007 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzmatrix.code.tex,v 1.5 2007/01/08 10:42:19 tantau Exp $ + + + +% Barycentric coordinates +% +% Usage: the argument of the coordinate system expression should be a +% list of comma-separated pairs of the form node=number. For each +% node, the center anchors is weighted by the number. +% +% Exampe: (barycentric cs:a=1,b=1,c=1) yields the weighted middle of +% the three points a.center, b.center, c.center. + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzfolding.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzfolding.code.tex new file mode 100644 index 00000000000..25ae5d3e39b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzfolding.code.tex @@ -0,0 +1,143 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzfolding.code.tex,v 1.3 2007/03/09 17:49:32 tantau Exp $ + + +% +% Length of a standard line in a folding +% + +\tikzoption{folding line length}{\pgfmathsetlength\tikz@lib@fold@length{#1}} +\newdimen\tikz@lib@fold@length +\tikz@lib@fold@length=2cm + + +\def\tikz@lib@fold@pentagon#1#2#3#4#5#6{% + \begin{scope}[xshift=.5\tikz@lib@fold@length,yshift=0.68819\tikz@lib@fold@length] + #1 + \end{scope} + \begin{scope}[shift={(108:\tikz@lib@fold@length)},shift={(36:\tikz@lib@fold@length)},rotate=-36] + #2 + \end{scope} + \begin{scope}[xshift=\tikz@lib@fold@length,shift={(72:\tikz@lib@fold@length)},rotate=-108] + #3 + \end{scope} + \begin{scope}[xshift=\tikz@lib@fold@length,rotate=180] + #4 + \end{scope} + \begin{scope}[rotate=108] + #5 + \end{scope} + \begin{scope}[shift={(108:\tikz@lib@fold@length)},rotate=36] + #6 + \end{scope} +} + + +\def\tikz@lib@fold@path{\draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt);} +\def\tikz@lib@fold@cut@path{\draw[every cut](0,0) -- (\tikz@lib@fold@length,0pt);} +\def\tikz@lib@fold@ear@path{ + \draw[every fold](0,0) -- (\tikz@lib@fold@length,0pt); + \draw[every cut] (0,0) -- (.5\tikz@lib@fold@length,.2\tikz@lib@fold@length) --(\tikz@lib@fold@length,0pt);} + +\tikzstyle{every cut}=[] +\tikzstyle{every fold}=[help lines] + +\tikzoption{face 1}{\def\tikz@lib@fold@face@A{#1}} +\tikzoption{face 2}{\def\tikz@lib@fold@face@B{#1}} +\tikzoption{face 3}{\def\tikz@lib@fold@face@C{#1}} +\tikzoption{face 4}{\def\tikz@lib@fold@face@D{#1}} +\tikzoption{face 5}{\def\tikz@lib@fold@face@E{#1}} +\tikzoption{face 6}{\def\tikz@lib@fold@face@F{#1}} +\tikzoption{face 7}{\def\tikz@lib@fold@face@G{#1}} +\tikzoption{face 8}{\def\tikz@lib@fold@face@H{#1}} +\tikzoption{face 9}{\def\tikz@lib@fold@face@I{#1}} +\tikzoption{face 10}{\def\tikz@lib@fold@face@J{#1}} +\tikzoption{face 11}{\def\tikz@lib@fold@face@K{#1}} +\tikzoption{face 12}{\def\tikz@lib@fold@face@L{#1}} + +\let\tikz@lib@fold@face@A=\pgfutil@empty +\let\tikz@lib@fold@face@B=\pgfutil@empty +\let\tikz@lib@fold@face@C=\pgfutil@empty +\let\tikz@lib@fold@face@D=\pgfutil@empty +\let\tikz@lib@fold@face@E=\pgfutil@empty +\let\tikz@lib@fold@face@F=\pgfutil@empty +\let\tikz@lib@fold@face@G=\pgfutil@empty +\let\tikz@lib@fold@face@H=\pgfutil@empty +\let\tikz@lib@fold@face@I=\pgfutil@empty +\let\tikz@lib@fold@face@J=\pgfutil@empty +\let\tikz@lib@fold@face@K=\pgfutil@empty +\let\tikz@lib@fold@face@L=\pgfutil@empty + +\def\tikzfoldingdodecahedron#1[#2]#3;{% + \begingroup% + \tikz@setkeys{#2}% + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@A} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@B} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@C}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@path}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@ear@path} + } + {\tikz@lib@fold@ear@path} + {\tikz@lib@fold@path} + {\tikz@lib@fold@ear@path} + {\tikz@lib@fold@ear@path} + } + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@D} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@E}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@path}{\tikz@lib@fold@cut@path}{\tikz@lib@fold@ear@path} + } + {\tikz@lib@fold@ear@path} + {\tikz@lib@fold@path} + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@cut@path} + } + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@F} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@G}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@path}{\tikz@lib@fold@cut@path}{\tikz@lib@fold@ear@path} + } + {\tikz@lib@fold@ear@path} + {\tikz@lib@fold@path} + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@cut@path} + } + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@H} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@I}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@ear@path}{\tikz@lib@fold@path}{\tikz@lib@fold@cut@path}{\tikz@lib@fold@ear@path} + } + {\tikz@lib@fold@ear@path} + {\tikz@lib@fold@path} + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@cut@path} + } + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@J} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@K} + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@path} + {\tikz@lib@fold@cut@path} + { + \tikz@lib@fold@pentagon{\tikz@lib@fold@face@L}{\tikz@lib@fold@cut@path}{\tikz@lib@fold@cut@path}{\tikz@lib@fold@path}{\tikz@lib@fold@cut@path}{\tikz@lib@fold@cut@path} + } + } + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@path} + {\tikz@lib@fold@cut@path} + {\tikz@lib@fold@cut@path} + } + \endgroup +} + + diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmatrix.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmatrix.code.tex new file mode 100644 index 00000000000..afb1393dffe --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmatrix.code.tex @@ -0,0 +1,129 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzmatrix.code.tex,v 1.5 2007/01/08 10:42:19 tantau Exp $ + + +% A matrix of nodes contains a node in each cell. + +\tikzstyle{matrix of nodes}=[% + matrix,% + cells={anchor=base},% + nodes={% + execute at begin node=,% + execute at end node=, + name=\tikzmatrixname-\the\pgfmatrixcurrentrow-\the\pgfmatrixcurrentcolumn% + }, + execute at begin cell=\tikz@lib@matrix@start@cell,% + execute at end cell=\tikz@lib@matrix@end@cell,% + execute at empty cell=\tikz@lib@matrix@empty@cell +] + +\def\tikz@lib@matrix@empty@cell{\iftikz@lib@matrix@empty\node{};\fi} + +\newif\iftikz@lib@matrix@plain + +\def\tikz@lib@matrix@start@cell{% + \pgfutil@ifnextchar|{\tikz@lib@matrix@with@options}{\tikz@lib@matrix@normal@start@cell}} + +\def\tikz@lib@matrix@with@options|#1|{\tikz@lib@matrix@plainfalse\node#1\bgroup} + + +\def\tikz@lib@matrix@normal@start@cell{\pgfutil@ifnextchar\let{\tikz@lib@matrix@check}{\tikz@lib@matrix@plainfalse\node\bgroup}}% + +\def\tikz@lib@matrix@check#1{% evil hackery to find out about start of path + \pgfutil@ifnextchar\tikz@signal@path{\tikz@lib@matrix@plaintrue\let}{\tikz@lib@matrix@plainfalse\node\bgroup\let}% +} + +\def\tikz@lib@matrix@end@cell{% + \iftikz@lib@matrix@plain% + \else% + \expandafter\egroup\expandafter;% + \fi% +} + +% Fill empty nodes in a matrix of nodes + +\newif\iftikz@lib@matrix@empty + +\tikzoption{nodes in empty cells}[true]{\csname tikz@lib@matrix@empty#1\endcsname} + + +% Same as a matrix of nodes, but switch on math mode in each cell +\tikzstyle{matrix of math nodes}=[% + matrix of nodes, + nodes={% + execute at begin node=$,% + execute at end node=$% + }% +] + + + +% Provide a delimiter + +\tikzoption{left delimiter}{\tikz@add@after@node@path{\tikz@delimiter% + {south east}% + {south west}% + {every delimiter,every left delimiter}% + {south}% + {north}% + {#1}% + {.}% + {\pgf@y}}} + +\tikzoption{right delimiter}{\tikz@add@after@node@path{\tikz@delimiter% + {south west}% + {south east}% + {every delimiter,every right delimiter}% + {south}% + {north}% + {.}% + {#1}% + {\pgf@y}}} + +\tikzoption{above delimiter}{\tikz@add@after@node@path{\tikz@delimiter% + {south east}% + {north west}% + {every delimiter,every above delimiter,rotate=-90}% + {west}% + {east}% + {#1}% + {.}% + {\pgf@x}}} + +\tikzoption{below delimiter}{\tikz@add@after@node@path{\tikz@delimiter% + {south west}% + {south west}% + {every delimiter,every below delimiter,rotate=-90}% + {west}% + {east}% + {.}% + {#1}% + {\pgf@x}}} + +\def\tikz@delimiter#1#2#3#4#5#6#7#8{% + \bgroup + \pgfextra{\let\tikz@save@last@fig@name=\tikz@last@fig@name}% + node[outer sep=0pt,inner sep=0pt,draw=none,fill=none,anchor=#1,at=(\tikz@last@fig@name.#2),#3] + {% + {\nullfont\pgf@process{\pgfpointdiff{\pgfpointanchor{\tikz@last@fig@name}{#4}}{\pgfpointanchor{\tikz@last@fig@name}{#5}}}}% + $\left#6\vcenter{\hrule height .5#8 depth .5#8 width0pt}\right#7$% + } + \pgfextra{\global\let\tikz@last@fig@name=\tikz@save@last@fig@name}% + \egroup% +} + +\tikzstyle{every delimiter}=[] +\tikzstyle{every left delimiter}=[] +\tikzstyle{every right delimiter}=[] +\tikzstyle{every above delimiter}=[] +\tikzstyle{every below delimiter}=[] + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex index b7ec179de63..a370789d2f0 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex,v 1.17 2006/10/17 18:57:25 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzmindmap.code.tex,v 1.21 2007/06/07 07:41:11 tantau Exp $ @@ -24,36 +24,36 @@ \pgftransformxshift{-\pgfsnakecirclestartradius}% \pgfpathmoveto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecirclestartradius} - \@tempcnta=-\pgfsnakesegmentangle\relax - \advance\@tempcnta by90\relax - \setlength\@tempdima{\pgfsnakecirclestartradius} - \setlength\@tempdimb{\pgfsnakesegmentamplitude} + \pgfutil@tempcnta=-\pgfsnakesegmentangle\relax + \advance\pgfutil@tempcnta by90\relax + \pgfmathsetlength\pgfutil@tempdima{\pgfsnakecirclestartradius} + \pgfmathsetlength\pgfutil@tempdimb{\pgfsnakesegmentamplitude} \pgfpathcurveto {\pgfpointadd {\pgfpointpolar{-\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} - {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} - {\pgfpoint{1.25\@tempdima}{-.5\@tempdimb}} - {\pgfpoint{1.5\@tempdima}{-.5\@tempdimb}} - \pgfpathlineto{\pgfpoint{1.5\@tempdima}{.5\@tempdimb}} - \@tempcnta=\pgfsnakesegmentangle\relax - \advance\@tempcnta by-90\relax + {\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}} + {\pgfqpoint{1.25\pgfutil@tempdima}{-.5\pgfutil@tempdimb}} + {\pgfqpoint{1.5\pgfutil@tempdima}{-.5\pgfutil@tempdimb}} + \pgfpathlineto{\pgfpoint{1.5\pgfutil@tempdima}{.5\pgfutil@tempdimb}} + \pgfutil@tempcnta=\pgfsnakesegmentangle\relax + \advance\pgfutil@tempcnta by-90\relax \pgfpathcurveto - {\pgfpoint{1.25\@tempdima}{.5\@tempdimb}} + {\pgfpoint{1.25\pgfutil@tempdima}{.5\pgfutil@tempdimb}} {\pgfpointadd {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} - {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} + {\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}} {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecirclestartradius}} \pgfpathclose } } \state{bar}[width=0pt,next state=end] { - \setlength\@tempdima{\pgfsnakecirclestartradius}% - \setlength\@tempdimb{\pgfsnakecircleendradius}% - \setlength\pgf@xc{\pgfsnakesegmentamplitude}% + \pgfmathsetlength\pgfutil@tempdima{\pgfsnakecirclestartradius}% + \pgfmathsetlength\pgfutil@tempdimb{\pgfsnakecircleendradius}% + \pgfmathsetlength\pgf@xc{\pgfsnakesegmentamplitude}% \pgfpathrectangle - {\pgfpoint{.5\@tempdima}{-.5\pgf@xc}} - {\pgfpoint{\pgfsnakeremainingdistance+-.5\@tempdimb+-.5\@tempdima}{\pgf@xc}} + {\pgfqpoint{.5\pgfutil@tempdima}{-.5\pgf@xc}} + {\pgfpoint{\pgfsnakeremainingdistance+-.5\pgfutil@tempdimb+-.5\pgfutil@tempdima}{\pgf@xc}} } \state{end}[width=0pt,next state=final] { @@ -63,24 +63,24 @@ \pgftransformxshift{-\pgfsnakecircleendradius}% \pgfpathmoveto{\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} \pgfpatharc{\pgfsnakesegmentangle}{-\pgfsnakesegmentangle}{\pgfsnakecircleendradius} - \@tempcnta=-\pgfsnakesegmentangle\relax - \advance\@tempcnta by90\relax - \setlength\@tempdima{\pgfsnakecircleendradius} - \setlength\@tempdimb{\pgfsnakesegmentamplitude}% + \pgfutil@tempcnta=-\pgfsnakesegmentangle\relax + \advance\pgfutil@tempcnta by90\relax + \pgfmathsetlength\pgfutil@tempdima{\pgfsnakecircleendradius} + \pgfmathsetlength\pgfutil@tempdimb{\pgfsnakesegmentamplitude}% \pgfpathcurveto {\pgfpointadd {\pgfpointpolar{-\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} - {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} - {\pgfpoint{1.25\@tempdima}{-.5\@tempdimb}} - {\pgfpoint{1.5\@tempdima}{-.5\@tempdimb}} - \pgfpathlineto{\pgfpoint{1.5\@tempdima}{.5\@tempdimb}} - \@tempcnta=\pgfsnakesegmentangle\relax - \advance\@tempcnta by-90\relax + {\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}} + {\pgfqpoint{1.25\pgfutil@tempdima}{-.5\pgfutil@tempdimb}} + {\pgfqpoint{1.5\pgfutil@tempdima}{-.5\pgfutil@tempdimb}} + \pgfpathlineto{\pgfpoint{1.5\pgfutil@tempdima}{.5\pgfutil@tempdimb}} + \pgfutil@tempcnta=\pgfsnakesegmentangle\relax + \advance\pgfutil@tempcnta by-90\relax \pgfpathcurveto - {\pgfpoint{1.25\@tempdima}{.5\@tempdimb}} + {\pgfpoint{1.25\pgfutil@tempdima}{.5\pgfutil@tempdimb}} {\pgfpointadd {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} - {\pgfpointpolar{\the\@tempcnta}{.25\@tempdima}}} + {\pgfpointpolar{\the\pgfutil@tempcnta}{.25\pgfutil@tempdima}}} {\pgfpointpolar{\pgfsnakesegmentangle}{\pgfsnakecircleendradius}} \pgfpathclose } @@ -316,5 +316,36 @@ every annotation] \tikzstyle{every annotation}=[] + + +\tikz@orig@define@key{tikz@mm@anno}{title}{\def\tikzmindmapinserttitle{#1}} +\tikz@orig@define@key{tikz@mm@anno}{number}{\def\tikzmindmapinsertnumber{#1}} +\tikz@orig@define@key{tikz@mm@anno}{url}{\def\tikz@mm@url{#1}} +\tikz@orig@define@key{tikz@mm@anno}{date}{\def\tikz@mm@date{#1}} + +\def\tikz@mindmap@annotation[#1]{% + {% + \let\tikz@mm@at=\pgfutil@empty% + \let\tikz@mm@name=\pgfutil@empty% + \let\tikzmindmapinserttitle=\pgfutil@empty% + \let\tikzmindmapinsertnumber=\pgfutil@empty% + \tikz@orig@setkeys*{tikz@mm@anno}{#1}% + \edef\tikz@marshal{% + \noexpand\node% + [% + \XKV@rm,% + annotation,% + ]% + {% + \ifx\tikz@mm@url\pgfutil@empty\else% + \fi% + }% + }% + % + }% + \pgfutil@ifnextchar;{\pgfutil@gobble}{}% +} + + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex index 375713fa933..172f9b991d1 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzpetri.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzpetri.code.tex,v 1.4 2006/10/17 08:16:28 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzpetri.code.tex,v 1.5 2007/03/09 17:49:32 tantau Exp $ % Styles for places: @@ -64,8 +64,8 @@ \def\tikz@grow@tokens{% - \setlength{\pgf@xa}{\tikz@token@distance}% - \setlength{\pgf@ya}{\tikz@token@distance}% + \pgfmathsetlength{\pgf@xa}{\tikz@token@distance}% + \pgfmathsetlength{\pgf@ya}{\tikz@token@distance}% \pgf@xc=0pt% \pgf@yc=0pt% \csname tikz@grow@tokens@placer@\the\tikznumberofchildren @\the\tikznumberofcurrentchild\endcsname% diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.arrows.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.arrows.code.tex new file mode 100644 index 00000000000..d96884ab716 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.arrows.code.tex @@ -0,0 +1,14 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.arrows.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\usepgflibrary{shapes.arrows} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex index ef4dcca2a7b..0ad52cfb429 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.code.tex @@ -7,8 +7,12 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.code.tex,v 1.2 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.code.tex,v 1.3 2007/06/08 11:24:59 tantau Exp $ -\usepgflibrary{shapes} +\usetikzlibrary{shapes.geometric} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{shapes.symbols} +\usetikzlibrary{shapes.arrows} +\usetikzlibrary{shapes.multipart} \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.geometric.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.geometric.code.tex new file mode 100644 index 00000000000..76e2e2967b9 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.geometric.code.tex @@ -0,0 +1,23 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.geometric.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + + +\tikzoption{star points}{\pgfsetstarpoints{#1}} +\tikzoption{star rotate}{\pgfsetstarrotate{#1}} +\tikzoption{star point height}{\pgfsetstarpointheight{#1}} +\tikzoption{star point ratio}{\pgfsetstarpointratio{#1}} + +\tikzoption{regular polygon sides}{\pgfsetpolygonsides{#1}} +\tikzoption{regular polygon rotate}{\pgfsetpolygonrotate{#1}} + +\usepgflibrary{shapes.geometric} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.misc.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.misc.code.tex new file mode 100644 index 00000000000..92d9102c986 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.misc.code.tex @@ -0,0 +1,14 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.misc.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\usepgflibrary{shapes.misc} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.multipart.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.multipart.code.tex new file mode 100644 index 00000000000..f9f29dbaea3 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.multipart.code.tex @@ -0,0 +1,14 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.multipart.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\usepgflibrary{shapes.multipart} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.symbols.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.symbols.code.tex new file mode 100644 index 00000000000..9760b07fc8b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikzshapes.symbols.code.tex @@ -0,0 +1,14 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikzshapes.symbols.code.tex,v 1.1 2007/06/08 11:24:59 tantau Exp $ + +\usepgflibrary{shapes.symbols} + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex index 6e8cf9e0690..6c720fdc95f 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztopaths.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztopaths.code.tex,v 1.5 2006/10/16 22:32:59 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztopaths.code.tex,v 1.7 2007/06/07 07:41:11 tantau Exp $ % Straight to @@ -177,7 +177,7 @@ % % Calculate length of second to first vector: % - \pgf@process{\pgfpointnormalised{\pgfpoint{\pgf@xa}{\pgf@ya}}}% + \pgf@process{\pgfpointnormalised{\pgfqpoint{\pgf@xa}{\pgf@ya}}}% \ifdim\pgf@x>\pgf@y% \c@pgf@counta=\pgf@x% \ifnum\c@pgf@counta=0\relax% @@ -201,19 +201,19 @@ \pgf@xa=\tikz@to@out@looseness\pgf@x% \pgf@xb=\tikz@to@in@looseness\pgf@x% % Adjust as necessary - \setlength{\pgf@ya}{\tikz@to@out@min} + \pgfmathsetlength{\pgf@ya}{\tikz@to@out@min} \ifdim\pgf@xa<\pgf@ya% \pgf@xa=\pgf@ya% \fi% - \setlength{\pgf@ya}{\tikz@to@out@max} + \pgfmathsetlength{\pgf@ya}{\tikz@to@out@max} \ifdim\pgf@xa>\pgf@ya% \pgf@xa=\pgf@ya% \fi% - \setlength{\pgf@ya}{\tikz@to@in@min} + \pgfmathsetlength{\pgf@ya}{\tikz@to@in@min} \ifdim\pgf@xb<\pgf@ya% \pgf@xb=\pgf@ya% \fi% - \setlength{\pgf@ya}{\tikz@to@in@max} + \pgfmathsetlength{\pgf@ya}{\tikz@to@in@max} \ifdim\pgf@xb>\pgf@ya% \pgf@xb=\pgf@ya% \fi% @@ -275,7 +275,7 @@ \pgf@xc=\pgf@x% \pgf@yc=\pgf@y% \pgfpointshapeborder{\tikztostart}{\pgfqpoint{\pgf@xc}{\pgf@yc}}% - \xdef\tikz@tofrom@smuggle{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}} + \xdef\tikz@tofrom@smuggle{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}} }% \let\tikz@first@point=\tikz@tofrom@smuggle% \tikz@first@point% @@ -302,7 +302,7 @@ \pgf@xc=\pgf@x% \pgf@yc=\pgf@y% \pgfpointshapeborder{\tikztotarget}{\pgfqpoint{\pgf@xc}{\pgf@yc}}% - \xdef\tikz@toto@smuggle{\noexpand\pgfpoint{\the\pgf@x}{\the\pgf@y}} + \xdef\tikz@toto@smuggle{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}} }% \let\tikz@second@point=\tikz@toto@smuggle% }% diff --git a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex index 841b534fed3..cba3a725ad1 100644 --- a/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/libraries/pgflibrarytikztrees.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztrees.code.tex,v 1.7 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/libraries/pgflibrarytikztrees.code.tex,v 1.8 2007/03/09 17:49:32 tantau Exp $ @@ -49,7 +49,7 @@ \advance\pgf@xa by\pgf@xc% \advance\pgf@ya by\pgf@yb% \advance\pgf@ya by\pgf@yc% - \edef\pgf@temp{\noexpand\pgftransformshift{\noexpand\pgfpoint{\the\pgf@xa}{\the\pgf@ya}}}% + \edef\pgf@temp{\noexpand\pgftransformshift{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}% \pgf@temp% } diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex new file mode 100644 index 00000000000..e4c83128140 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex @@ -0,0 +1,10 @@ +% Copyright 2007 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. + +\input pgfmathcalc.code.tex diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex new file mode 100644 index 00000000000..8228c389c7c --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathbase.code.tex @@ -0,0 +1,263 @@ +% Copyright 2007 by Mark Wibrow +% +% 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. +% +% This file provides basic macros for converting between bases. +% +% Version 0.0 08/03/2007 + +% \pgfmathbasetodec +% +% Convert a representation of an integer from +% the spcified base to base 10. +% +% #1 - a macro to store the result. +% #2 - the representation of a number (i.e. not a register) +% #3 - the current base. +% +% e.g. +% +% \pgfmathbasetodec\mynumber{10111}{2} +% +% \mynumber <- 23 +% +\def\pgfmathbasetodec#1#2#3{% + \pgfmath@checknumber{#2}% + \pgfmath@checkbase{#3}% + \def\pgfmath@base{#3}% + \def\pgfmath@macro{#1}% + \c@pgfmath@counta1\relax% + \def\pgfmath@reversed{}% + \expandafter\pgfmathbasetodec@#2\pgfmathbasetodec} + +\def\pgfmathbasetodec@#1{% + \ifx\pgfmathbasetodec#1% + \c@pgfmath@countb0% + \divide\c@pgfmath@counta by\pgfmath@base\relax% + \expandafter\pgfmathbasetodec@@% + \else% + \edef\pgfmath@reversed{\pgfmath@reversed#1}% + \expandafter\multiply\expandafter\c@pgfmath@counta\pgfmath@base\relax% + \expandafter\pgfmathbasetodec@% + \fi} + +\def\pgfmathbasetodec@@{\expandafter\pgfmathbasetodec@@@\pgfmath@reversed\pgfmathbasetodec} + +\def\pgfmathbasetodec@@@#1{% + \ifx\pgfmathbasetodec#1\relax% + \expandafter\edef\pgfmath@macro{\the\c@pgfmath@countb}% + \let\pgfmath@next\pgfmathbasetodec@@@@% + \else% + \chardef\pgfmath@charnum`#1\relax% + \c@pgfmath@countc\pgfmath@charnum% + \ifnum\c@pgfmath@countc>96\relax% + \advance\c@pgfmath@countc-87\relax% + \else + \ifnum\c@pgfmath@countc>64\relax% + \advance\c@pgfmath@countc-55\relax% + \else + \advance\c@pgfmath@countc-48\relax% + \fi\fi% + \ifnum\c@pgfmath@countc<\pgfmath@base\relax% + \multiply\c@pgfmath@countc\c@pgfmath@counta\relax% + \advance\c@pgfmath@countb\c@pgfmath@countc% + \divide\c@pgfmath@counta by\pgfmath@base\relax% + \let\pgfmath@next\pgfmathbasetodec@@@% + \else + \pgfmath@error{Digit `#1' invalid for base \pgfmath@base}% + \let\pgfmath@next\relax% + \fi% + \fi% + \pgfmath@next} +\def\pgfmathbasetodec@@@@{% + \expandafter\pgfmath@ensurenumberlength\expandafter{\pgfmath@macro}% +} + +% \pgfmathdectobase +% +% Convert a representation of an integer from +% base 10 to the spcified base. Letters for bases +% greater than 10 are in lowercase. +% +% #1 - a macro to store the result. +% #2 - a number in base 10 (in a macro, not a register) +% #3 - the required base. +% +% e.g. +% +% \pgfmathdectobase\mynumber{127}{16} +% +% \mynumber <- 7f +% +\def\pgfmathdectobase#1#2#3{% + \pgfmath@checknumber{#2}% + \pgfmath@checkbase{#3}% + \c@pgfmath@counta#2\relax% + \def#1{}% + \pgfmathloop + \ifnum\c@pgfmath@counta>0\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb#3\relax% + \multiply\c@pgfmath@countb-#3\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \edef#1{\csname pgfmath@lowercase digit@\the\c@pgfmath@countb\endcsname#1}% + \divide\c@pgfmath@counta#3\relax% + \repeatpgfmathloop% + \pgfmath@ensurenumberlength{#1}} + +% \pgfmathdectoBase +% +% Convert a representation of an integer from +% base 10 to the spcified base. Letters for bases +% greater than 10 are in uppercase. +% +% #1 - a macro to store the result. +% #2 - a number in base 10 (in a macro, not a register) +% #3 - the required base. +% +% e.g. +% +% \pgfmathdectoBase\mynumber{127}{16} +% +% \mynumber <- 7F +% +\def\pgfmathdectoBase#1#2#3{% + \pgfmath@checkbase{#3}% + \pgfmath@checknumber{#2}% + \c@pgfmath@counta#2\relax% + \def#1{}% + \pgfmathloop + \ifnum\c@pgfmath@counta>0\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb#3\relax% + \multiply\c@pgfmath@countb-#3\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \edef#1{\csname pgfmath@uppercase digit@\the\c@pgfmath@countb\endcsname#1}% + \divide\c@pgfmath@counta#3\relax% + \repeatpgfmathloop% + \pgfmath@ensurenumberlength{#1}} + +\def\pgfmath@createdigits{% + \def\pgfmath@digitstyle{lowercase digit}% + \c@pgfmath@counta0\relax% + \pgfmath@createdigits@0123456789abcdefghijklmnopqrstuvwxyz\pgfmath@createdigits% + \def\pgfmath@digitstyle{uppercase digit}% + \c@pgfmath@counta0\relax% + \pgfmath@createdigits@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\pgfmath@createdigits} + +\def\pgfmath@createdigits@#1{% + \ifx\pgfmath@createdigits#1\relax% + \else% + \expandafter\pgfmath@def\expandafter{\pgfmath@digitstyle}{\the\c@pgfmath@counta}{#1}% + \advance\c@pgfmath@counta1\relax% + \expandafter\pgfmath@createdigits@% + \fi} +\pgfmath@createdigits + +% \pgfmathbasetobase +% +% Convert a representation of an integer from +% between the specified bases. Letters for target +% bases greater than 10 are in lppercase. +% +% #1 - a macro to store the result. +% #2 - a number (in a macro, not a register) +% #3 - the source base. +% #4 - the target base. +% +% e.g. +% +% \pgfmathbasetobase\mynumber{4321}{5}{9} +% +% \mynumber <- 721 +% +\def\pgfmathbasetobase#1#2#3#4{% + \pgfmathbasetodec{\pgfmath@temp}{#2}{#3}% + \pgfmathdectobase{#1}{\pgfmath@temp}{#4} +} + +% \pgfmathbasetobase +% +% Convert a representation of an integer from +% between the specified bases. Letters for target +% bases greater than 10 are in lppercase. +% +% #1 - a macro to store the result. +% #2 - a number (in a macro, not a register) +% #3 - the source base. +% #4 - the target base. +% +% e.g. +% +% \pgfmathbasetobase\mynumber{1234}{5}{12} +% +% \mynumber <- 142 +% +\def\pgfmathbasetoBase#1#2#3#4{% + \pgfmathbasetodec{\pgfmath@temp}{#2}{#3}% + \pgfmathdectoBase{#1}{\pgfmath@temp}{#4} +} + +\def\pgfmath@checkbase#1{% + \ifnum#1<2\relax% + \pgfmath@error{Cannot process numbers in base `#1'.}% + \else% + \ifnum#1>36\relax% + \pgfmath@error{Cannot process numbers in base `#1'.}% + \fi\fi} + +\def\pgfmath@checknumber#1{% + \expandafter\pgfmath@checknumber@#1\pgfmath@} +\def\pgfmath@checknumber@#1#2\pgfmath@{% + \ifx#1-% + \pgfmath@error{Cannot process negative numbers.}% + \fi} + + +% \pgfmath@ensurenumberlength +% +% Internal macro for making a representation of a number have +% a specific length, byt prefixing zeros to the number. +% +% #1 - a macro contatining a representation of an integer. +% #2 - the number of digits to ensure. +% +% e.g. +% +% \foo <- 7FF +% +% \pgfmathsetnumberlength{8}% +% \pgfmath@ensurenumberlength\foo +% +% \foo <- 000007FF +% +\def\pgfmath@ensurenumberlength#1{% + \def\pgfmath@tempa{#1}% + \expandafter\c@pgfmath@counta\pgfmath@basenumberlength\relax% + \expandafter\pgfmath@ensurenumberlength@#1\pgfmath@ensurenumberlength} +\def\pgfmath@ensurenumberlength@#1{% + \ifx\pgfmath@ensurenumberlength#1\relax% + \expandafter\pgfmath@ensurenumberlength@@% + \else% + \advance\c@pgfmath@counta-1\relax% + \expandafter\pgfmath@ensurenumberlength@ + \fi} + +\def\pgfmath@ensurenumberlength@@{% + \edef\pgfmath@tempb{\pgfmath@tempa}% + \pgfmath@ensurenumberlength@@@} +\def\pgfmath@ensurenumberlength@@@{% + \ifnum\c@pgfmath@counta>0\relax% + \advance\c@pgfmath@counta-1\relax% + \edef\pgfmath@tempb{0\pgfmath@tempb}% + \expandafter\pgfmath@ensurenumberlength@@@% + \fi% + \expandafter\edef\pgfmath@tempa{\pgfmath@tempb}} + +\def\pgfmathsetbasenumberlength#1{\def\pgfmath@basenumberlength{#1}} +\pgfmathsetbasenumberlength{1}% \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex new file mode 100644 index 00000000000..8cf9bbd26b5 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex @@ -0,0 +1,194 @@ +% Copyright 2007 by Mark Wibrow +% +% 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. + +% This file loads all the parsing, functions and operator stuff +% +% Version 0.0 08/03/2007 + +\input pgfmathutil.code.tex +\input pgfmathparser.code.tex +\input pgfmathoperations.code.tex +\input pgfmathbase.code.tex + + +% \pgfmathsetlength, \pgfmathaddtolength +% +% #1 = dimension register +% #2 = expression +% +% Description: +% +% These functions work similar to \setlength and \addtolength. Only, +% they allow #2 to contain an expression, which is evaluated before +% assignment. Furthermore, the font is setup before the assignment is +% done, so that dimensions like 1em are evaluated correctly. +% +% If #2 starts with "+", then a simple assignment is done (but the +% font is still setup). This is orders of magnitude faster than a +% parsed assignment. + +\def\pgfmathsetlength#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + % Ok, quick version: + \begingroup% + \pgfutil@selectfont% + \pgfmath@x#2\unskip% + \pgfmath@returnone\pgfmath@x% + \endgroup% + #1\pgfmathresult pt\relax% + }% + {% + \pgfmathparse{#2}#1\pgfmathresult pt\relax% +}% +} +\def\pgfmathaddtolength#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \begingroup% + \pgfutil@selectfont% + \pgfmath@x#1\relax% + \advance\pgfmath@x#2\unskip% + \pgfmath@returnone\pgfmath@x% + \endgroup% + #1\pgfmathresult pt\relax% + }% + {\pgfmathparse{#2}\advance#1\pgfmathresult pt\relax}% +} + +% Not really needed and does not work in plain TeX: +%\def\pgfmathnewcounter#1{% +% \expandafter\let\expandafter\pgfmath@register\csname c@#1\endcsname% +% \expandafter\ifx\pgfmath@register\relax% +% \expandafter\newcount\csname c@#1\endcsname% +% \csname c@#1\endcsname0\relax% +% \expandafter\def\csname the#1\endcsname{\expandafter\the\csname c@#1\endcsname}% +% \else% Do nothing. +% \fi}% + +% \pgfmathsetcounter, \pgfmathaddtocounter +% +% Results of parsing are truncated. +% +\def\pgfmathsetcounter#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \csname c@#1\endcsname=#2\relax% + }% + {% + \pgfmath@ifundefined{c@#1}{\pgfmath@error{No counter named '#1' is known}{}}{% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + \csname c@#1\endcsname\pgfmathresult\relax\pgfmath@% + }% + }% +} + +\def\pgfmathaddtocounter#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \advance\csname c@#1\endcsname by#2\relax% + }% + {% + \pgfmath@ifundefined{c@#1}{\pgfmath@error{No counter named '#1' is known}{}}{% + \edef\pgfmath@addtocountertemp{\expandafter\the\csname c@#1\endcsname}% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + \csname c@#1\endcsname\pgfmathresult\relax\pgfmath@% + \expandafter\advance\csname c@#1\endcsname\pgfmath@addtocountertemp% + }% + }% +} + +% \pgfmathsetcount, \pgfmathaddtocount +% +% Results of parsing are truncated. +% +\def\pgfmathsetcount#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + #1#2\relax% + }% + {% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + #1\pgfmathresult\relax\pgfmath@% + }% +} + +\def\pgfmathaddtocount#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \advance#1 by#2\relax% + }% + {% + \edef\pgfmath@addtocounttemp{\the#1}% + \pgfmathparse{#2}% + \afterassignment\pgfmath@gobbletilpgfmath@% + #1\pgfmathresult\relax\pgfmath@% + \advance#1\pgfmath@addtocounttemp% + }% +} + +\def\pgfmathsetmacro#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \begingroup% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#2pt\relax\pgfmath@% + \edef#1{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmath@smuggleone{#1} + \endgroup% + }% + {% + \pgfmathparse{#2}% + \edef#1{\pgfmathresult}% + }% +} + +\def\pgfmathtruncatemacro#1#2{% + \expandafter\pgfmath@onquick#2\pgfmath@% + {% + \begingroup% + \afterassignment\pgfmath@gobbletilpgfmath@% + \c@pgfmath@counta#2\relax\pgfmath@% + \edef#1{\the\c@pgfmath@counta}% + \pgfmath@smuggleone{#1} + \endgroup% + }% + {% + \pgfmathparse{#2}% + \edef#1{\pgfmathresult}% + }% +} + +% Check whether a given parameter starts with quick. +% +% The command should be followed by nonempty text, ending with +% \pgfmath@ as a stop-token. Then should follow +% +% #1 = code to execute if text starts with + +% #2 = code to execute if text does not +% +% Example: +% +% \pgfmath@onquick+0pt\pgfmath@{is quick}{is slow} + +\def\pgfmath@onquick{% + \afterassignment\pgfmath@afterquick% + \let\pgfmath@next=% +} + +\def\pgfmath@afterquick#1\pgfmath@{% + \ifx\pgfmath@next+% + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex new file mode 100644 index 00000000000..e5d1be605c1 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathoperations.code.tex @@ -0,0 +1,781 @@ +% Copyright 2007 by Mark Wibrow +% +% 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. + +% This file defines the mathematical functions and operators. +% +% Version 0.0 08/03/2007 + +% This file defines the mathematical functions and operators. +% +% Adding/redefining extra operators/functions: +% +% Each operator/function XXX has two forms: +% +% +% \pgfmathXXX#1... a public version which evaluates any +% arguments passed to it and passes the +% results on to... +% +% \pgfmathXXX@#1... a non-public version which performs +% required calculation on arguments which +% must have already been evaluated (i.e. +% *without* dimensions). +% +% If a function XXX is to be included in the parser, it is +% recommended, for consistency, that where possible, the +% pgfmathparser file should define the macro \pgfmath@parseXXX. +% The parser should (ideally) then call \pgfmathXXX@. +% +% It is recommend that the pgfmath versions of the pgf dimension +% and count registers be used, i.e., \pgfmath@x for \pgfmath@x, +% \c@pgfmath@counta for c@pgfmath@counta, and so on. These are currently +% \let to their pgf equivalents, but it may be necessary to change +% this. +% +% It is also recommened that all calculations (where necessary) +% take place within a TeX group. \pgfmath@returnone#1 makes and +% expanded version of #1 global and stores this in \pgfmathresult +% after the group is ended. +% + +\input pgfmathtrig.code.tex% Load the trig. stuff. +\input pgfmathrnd.code.tex% Load the random stuff. + + +% \pgfmathadd +% +% Add #1 and #2. +% +\def\pgfmathadd#1#2{% + \pgfmathparse{#1}\edef\pgfmath@adda{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@addb{\pgfmathresult}% + \pgfmathadd@{\pgfmath@adda}{\pgfmath@addb}} +\def\pgfmathadd@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x by\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathsubtract +% +% Subtract #2 from #1. +% +\def\pgfmathsubtract#1#2{% + \pgfmathparse{#1}\edef\pgfmath@subtracta{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@subtractb{\pgfmathresult}% + \pgfmathsubtract@{\pgfmath@subtracta}{\pgfmath@subtractb}} + +\def\pgfmathsubtract@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x by-\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathmultiply +% +% Multiply #1 by #2. +% +\def\pgfmathmultiply#1#2{% + \pgfmathparse{#1}\edef\pgfmath@multiplya{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@multiplyb{\pgfmathresult}% + \pgfmathmultiply@{\pgfmath@multiplya}{\pgfmath@multiplyb}} +\def\pgfmathmultiply@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@x#2\pgfmath@x% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathdivide +% +% Divide #1 by #2. +% +\def\pgfmathdivide#1#2{% + \pgfmathparse{#1}\edef\pgfmath@dividea{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@divideb{\pgfmathresult}% + \pgfmathdivide@{\pgfmath@dividea}{\pgfmath@divideb}} +\def\pgfmathdivide@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + % If #2 is an integer use TeX arithmatic. + \expandafter\pgfmath@xa#2pt\relax% + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@xa\relax% + \ifdim\pgfmath@xa=0pt\relax% + \ifnum\c@pgfmath@counta=0\relax% + \pgfmath@error{Division by zero.}{}% + \fi% + \divide\pgfmath@x\c@pgfmath@counta% + \else% + \pgfmathreciprocal@{#2}% + \pgfmath@x=\pgfmathresult\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathgreaterthan +% +% 1.0 if #1 > #2. Otherwise 0.0 +% +\def\pgfmathgreaterthan#1#2{% + \pgfmathparse{#1}\edef\pgfmath@greaterthana{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@greaterthanb{\pgfmathresult}% + \pgfmathgreaterthan@{\pgfmath@greaterthana}{\pgfmath@greaterthanb}} +\def\pgfmathgreaterthan@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x-\pgfmath@y% + \ifdim\pgfmath@x>0pt\relax% + \pgfmath@x1pt\relax% + \else% + \pgfmath@x0pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathlessthan +% +% 1.0 if #1< #2. Otherwise 0.0 +% +\def\pgfmathlessthan#1#2{% + \pgfmathparse{#1}\edef\pgfmath@lessthana{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@lessthanb{\pgfmathresult}% + \pgfmathlessthan@{\pgfmath@lessthana}{\pgfmath@lessthanb}} +\def\pgfmathlessthan@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x-\pgfmath@y\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x1pt\relax% + \else% + \pgfmath@x0pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathequalto +% +% 1.0 if #1 = #2. Otherwise 0.0 +% +\def\pgfmathequalto#1#2{% + \pgfmathparse{#1}\edef\pgfmath@equaltoa{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@equaltob{\pgfmathresult}% + \pgfmathadd@{\pgfmath@equaltoa}{\pgfmath@equaltob}} +\def\pgfmathequalto@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \advance\pgfmath@x-\pgfmath@y% + \ifdim\pgfmath@x=0pt\relax% + \pgfmath@x1pt\relax% + \else% + \pgfmath@x0pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathreciprocal +% +% 1 / #1 +% +\def\pgfmathreciprocal#1{% + \pgfmathparse{#1}% + \pgfmathreciprocal@{\pgfmathresult}} +\def\pgfmathreciprocal@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x=0pt\relax% + \pgfmath@error{Division by zero.}{}% + \fi% + \edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}% + \expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp00000\pgfmath@} +\def\pgfmathreciprocal@@#1.#2#3#4#5#6#7\pgfmath@{% + \c@pgfmath@counta#2#3#4#5#6\relax% + % If the number is an integer, use TeX arithmatic. + \ifnum\c@pgfmath@counta=0\relax% + \pgfmath@x1pt\relax% + \divide\pgfmath@x#1\relax% + \else% + \c@pgfmath@counta#1#2#3#4#5#6\relax% + \c@pgfmath@countb1000000000\relax% + \divide\c@pgfmath@countb\c@pgfmath@counta% + \c@pgfmath@counta\c@pgfmath@countb% + \divide\c@pgfmath@counta10000\relax% + \pgfmath@x\c@pgfmath@counta pt\relax% + \multiply\c@pgfmath@counta-10000\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \pgfmath@y\c@pgfmath@countb pt\relax% + \pgfmath@y.1\pgfmath@y% Yes! This way is more accurate. Go figure... + \pgfmath@y.1\pgfmath@y% + \pgfmath@y.1\pgfmath@y% + \pgfmath@y.1\pgfmath@y% + \advance\pgfmath@x\pgfmath@y% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup +} + + +% \pgfmathabs +% +% Calculate |#1| +% +\def\pgfmathabs#1{% + \pgfmathparse{#1}% + \pgfmathabsolute@{\pgfmathresult}} +\def\pgfmathabs@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x=-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathmod +% +% Calculate #1 mod #2. +% +\def\pgfmathmod#1#2{% + \pgfmathparse{#1}\edef\pgfmath@moda{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@modb{\pgfmathresult}% + \pgfmathmod@{\pgfmath@mod@a}{\pgfmath@modb}% +} +\def\pgfmathmod@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \expandafter\pgfmath@xb#2pt\relax% + \c@pgfmath@counta=\pgfmath@xa% + \c@pgfmath@countb=\pgfmath@xb% + \divide\c@pgfmath@counta\c@pgfmath@countb% + \multiply\pgfmath@xb\c@pgfmath@counta% + \advance\pgfmath@x-\pgfmath@xb% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathsqrt +% +% Square-root of #1. +% +% +\def\pgfmathsqrt#1{% + \pgfmathparse{#1}% + \pgfmathsqrt{\pgfmathresult}} +\def\pgfmathsqrt@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \ifdim\pgfmath@x>9999pt\relax% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{3}% + \else% + \ifdim\pgfmath@x>999pt\relax% + \def\pgfmath@zeros{}% + \def\pgfmath@targetiterations{2}% + \else% + \ifdim\pgfmath@x>99pt\relax% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{2}% + \else% + \ifdim\pgfmath@x>9pt\relax% + \def\pgfmath@zeros{}% + \def\pgfmath@targetiterations{1}% + \else% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@error{Cannot calculate the square-root of the negative number `#1'}{}% + \else% + \def\pgfmath@zeros{0}% + \def\pgfmath@targetiterations{1}% + \fi\fi\fi\fi\fi% + \edef\pgfmath@temp{\pgfmath@zeros\pgfmath@tonumber{\pgfmath@x}}% + \expandafter\pgfmath@sqrt@\pgfmath@temp\pgfmath@% +} +\def\pgfmath@sqrt@#1.#2\pgfmath@{\pgfmath@@sqrt@#1#2\pgfmath@empty\pgfmath@empty\pgfmath@} + +\def\pgfmath@@sqrt@#1#2{% + \c@pgfmath@countb#1#2\relax% + \ifnum\c@pgfmath@countb>35\relax% + \ifnum\c@pgfmath@countb>63\relax% + \ifnum\c@pgfmath@countb>80\relax% + \c@pgfmath@counta9\relax% + \else% + \c@pgfmath@counta8\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>48\relax% + \c@pgfmath@counta7\relax% + \else% + \c@pgfmath@counta6\relax% + \fi% + \fi% + \else% + \ifnum\c@pgfmath@countb>15\relax% + \ifnum\c@pgfmath@countb>24\relax% + \c@pgfmath@counta5\relax% + \else% + \c@pgfmath@counta4\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>3\relax% + \ifnum\c@pgfmath@countb>8\relax% + \c@pgfmath@counta3\relax% + \else% + \c@pgfmath@counta2\relax% + \fi% + \else% + \ifnum\c@pgfmath@countb>0\relax% + \c@pgfmath@counta1\relax% + \else% + \c@pgfmath@counta0\relax% + \fi% + \fi% + \fi% + \fi% + \edef\pgfmath@root{\the\c@pgfmath@counta}% + \edef\pgfmath@rootspecial{\the\c@pgfmath@counta}% + \multiply\c@pgfmath@counta-\c@pgfmath@counta\relax% + \advance\c@pgfmath@counta#1#2\relax% + \edef\pgfmath@remainder{\the\c@pgfmath@counta}% + \pgfmath@@@sqrt@% +} + +\def\pgfmath@@@sqrt@#1#2{% + \ifx\pgfmath@empty#1% + \edef\pgfmath@remainder{\pgfmath@remainder00}% + \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}% + \else% + \ifx\pgfmath@empty#2% + \edef\pgfmath@remainder{\pgfmath@remainder#10}% + \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}% + \else% + \edef\pgfmath@remainder{\pgfmath@remainder#1#2}% + \def\pgfmath@tokens{}% + \fi\fi% + \c@pgfmath@counta\pgfmath@rootspecial\relax% + \multiply\c@pgfmath@counta20\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \multiply\c@pgfmath@countb6\relax% + \advance\c@pgfmath@countb36\relax% + \c@pgfmath@countc\c@pgfmath@counta\relax% + \multiply\c@pgfmath@countc2\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@countc% + \advance\c@pgfmath@countb-20\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@countc% + \advance\c@pgfmath@countb-12\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@counta% + \advance\c@pgfmath@countb-3\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{0}% + \else% + \def\pgfmath@digit{1}% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb5\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{2}% + \else% + \def\pgfmath@digit{3}% + \fi% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb9\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{4}% + \else% + \def\pgfmath@digit{5}% + \fi% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@countc% + \advance\c@pgfmath@countb28\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \advance\c@pgfmath@countb-\c@pgfmath@counta% + \advance\c@pgfmath@countb-15\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{6}% + \else% + \def\pgfmath@digit{7}% + \fi% + \else% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb17\relax% + \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax% + \def\pgfmath@digit{8}% + \else% + \def\pgfmath@digit{9}% + \fi% + \fi% + \fi% + \edef\pgfmath@rootspecial{\pgfmath@rootspecial\pgfmath@digit}% + \advance\c@pgfmath@counta\pgfmath@digit\relax% + \multiply\c@pgfmath@counta-\pgfmath@digit\relax% + \advance\c@pgfmath@counta\pgfmath@remainder\relax% + \edef\pgfmath@remainder{\the\c@pgfmath@counta}% + \c@pgfmath@counta\pgfmath@targetiterations\relax% + \advance\c@pgfmath@counta-1\relax% + \edef\pgfmath@targetiterations{\the\c@pgfmath@counta}% + \ifnum\c@pgfmath@counta=0\relax% + \edef\pgfmath@root{\pgfmath@root.\pgfmath@digit}% + \else% + \edef\pgfmath@root{\pgfmath@root\pgfmath@digit}% + \fi% + \ifnum\c@pgfmath@counta=-4\relax% + \let\pgfmath@next\pgfmath@sqrt@end% + \else% + \let\pgfmath@next\pgfmath@@@sqrt@% + \fi% + \expandafter\pgfmath@next\pgfmath@tokens% +} + +\def\pgfmath@sqrt@end#1\pgfmath@{% + \edef\pgfmathresult{\pgfmath@root}% + \pgfmath@smuggleone\pgfmathresult% + \endgroup} + +% \pgfmathpow +% +% Calculates #1 ^ #2 +% +% #2 is expected to be an integer. +% +\def\pgfmathpow#1#2{% + \pgfmathparse{#1}\edef\pgfmath@powera{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@powerb{\pgfmathresult}% + \pgfmathpow@{\pgfmath@powera}{\pgfmath@powerb}} +\def\pgfmathpow@#1#2{% + \begingroup% + \expandafter\pgfmath@xa#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta#2\relax\pgfmath@ + % If #2 is negative, take the reciprocal of #1 + % and the absolute value of #2, and carry on. + % + \ifnum\c@pgfmath@counta<0\relax% + \c@pgfmath@counta-\c@pgfmath@counta% + \pgfmathreciprocal@{#1}% + \pgfmath@xa\pgfmathresult pt\relax% + \fi% + \pgfmath@x=1pt\relax% + \pgfmathloop% + \ifnum\c@pgfmath@counta>0\relax% + \ifodd\c@pgfmath@counta% + \pgfmath@x\pgfmath@tonumber{\pgfmath@x}\pgfmath@xa% + \fi + \ifnum\c@pgfmath@counta>1\relax% + \pgfmath@xa=\pgfmath@tonumber{\pgfmath@xa}\pgfmath@xa% + \fi% + \divide\c@pgfmath@counta by 2\relax% + \repeatpgfmathloop% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +% \pgfmathround +% +% Half-up rounding. +% +\def\pgfmathround#1{% + \pgfmathparse{#1}% + \pgfmathround@{\pgfmathresult}} +\def\pgfmathround@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + \pgfmath@xb\pgfmath@x% + \ifdim\pgfmath@xb<0pt\relax% + \ifdim\pgfmath@xa<0.5pt\relax% + \else% + \advance\c@pgfmath@counta-1\relax% + \fi% + \else% + \ifdim\pgfmath@xa<0.5pt\relax% + \else% + \advance\c@pgfmath@counta1\relax% + \fi% + \fi% + \pgfmath@returnone\c@pgfmath@counta% + \endgroup% +}% + +% \pgfmathfloor +% +% Floor function. +% +\def\pgfmathfloor#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathfloor@\expandafter{\pgfmathresult}} +\def\pgfmathfloor@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \pgfmath@x\c@pgfmath@counta pt\relax% + \pgfmath@returnone\pgfmath@x% + \endgroup +}% + +% \pgfmathceil +% +% Ceiling function. +% +\def\pgfmathceil#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathceil@\expandafter{\pgfmathresult}} +\def\pgfmathceil@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \pgfmath@y\pgfmath@x% + \advance\pgfmath@y-\c@pgfmath@counta pt\relax% + \pgfmath@x\c@pgfmath@counta pt\relax% + \ifdim\pgfmath@y>0pt\relax% + \advance\pgfmath@x1pt\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathexp +% +% A Maclaurens expansion for e^#1. +% 0 <= #1 < ln(16384). +% +\def\pgfmathexp#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathexp@\expandafter{\pgfmathresult}} +\def\pgfmathexp@#1{% + \begingroup% + \pgfmath@x1pt\relax% + \pgfmath@xa1pt\relax% + \pgfmath@xb\pgfmath@x% + \pgfmathloop% + \pgfmath@xc\pgfmathcounter pt\relax% + \c@pgfmath@counta\pgfmath@xc% + \divide\c@pgfmath@counta65536\relax% + \pgfmath@xc1pt\relax% + \divide\pgfmath@xc\c@pgfmath@counta% + \pgfmath@xa\pgfmath@tonumber{\pgfmath@xc}\pgfmath@xa% + \expandafter\pgfmath@xa#1\pgfmath@xa% + \advance\pgfmath@x\pgfmath@xa% + \ifdim\pgfmath@x=\pgfmath@xb% + \else% + \pgfmath@xb\pgfmath@x% + \repeatpgfmathloop% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + + +% \pgfmathvectorlength +% +% Calcluate the Eulidean length of a 2D vector. +% +% This based on polynomial approximation co-efficents +% contributed by Rouben Rostamian. +% +% #1 - the x component of the vector. +% #2 - the y component of the vector. +% +% P(x) = c0 + x^2 * (c1 + x^2 * (c2 + x^2 * ( c3 + c4 * x^2))) +\def\pgfmath@cE{-0.01019} +\def\pgfmath@cD{0.04453} +\def\pgfmath@cC{-0.11951} +\def\pgfmath@cB{0.49936} +\def\pgfmath@cA{1.00001} + +\def\pgfmathveclen#1#2{% + \pgfmathparse{#1}\edef\pgfmath@vecx{\pgfmathresult}% + \pgfmathparse{#2}\edef\pgfmath@vecy{\pgfmathresult}% + \pgfmathveclen@{\pgfmath@vecx}{\pgfmath@vecy}% +} +\def\pgfmathveclen@#1#2{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@xa=0pt\relax% + \pgfmath@xa\pgfmath@y% + \fi% + \ifdim\pgfmath@xa=0pt\relax% + \else% + \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi% + \ifdim\pgfmath@y<0pt\relax\pgfmath@y-\pgfmath@y\fi% + \ifdim\pgfmath@x>\pgfmath@y% + \pgfmath@xa\pgfmath@x% + \pgfmath@x\pgfmath@y% + \pgfmath@y\pgfmath@xa% + \fi% + % We use a scaling factor to reduce errors. + \ifdim\pgfmath@y>10000pt\relax% + \c@pgfmath@counta1500\relax% + \else% + \ifdim\pgfmath@y>1000pt\relax% + \c@pgfmath@counta150\relax% + \else% + \ifdim\pgfmath@y>100pt\relax% + \c@pgfmath@counta50\relax% + \else% + \c@pgfmath@counta1\relax% + \fi% + \fi% + \fi% + \divide\pgfmath@x by\c@pgfmath@counta\relax% + \divide\pgfmath@y by\c@pgfmath@counta\relax% + \pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}% + \pgfmath@x=\pgfmathresult\pgfmath@x% + \pgfmath@xa=\pgfmath@tonumber{\pgfmath@x}\pgfmath@x% + \edef\pgfmath@xsq{\pgfmath@tonumber{\pgfmath@xa}}% + \pgfmath@x=\pgfmath@cE\pgfmath@xa% + \advance\pgfmath@x by\pgfmath@cD pt\relax% + \pgfmath@x=\pgfmath@xsq\pgfmath@x% + \advance\pgfmath@x by\pgfmath@cC pt\relax% + \pgfmath@x=\pgfmath@xsq\pgfmath@x% + \advance\pgfmath@x by\pgfmath@cB pt\relax% + \pgfmath@x=\pgfmath@xsq\pgfmath@x% + \advance\pgfmath@x by\pgfmath@cA pt\relax% + \ifdim\pgfmath@y<0pt\relax% + \pgfmath@y=-\pgfmath@y% + \fi% + \pgfmath@x=\pgfmath@tonumber{\pgfmath@y}\pgfmath@x% + % Invert the scaling factor. + \multiply\pgfmath@x by\c@pgfmath@counta\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathmax +% +% Return the maximum of #1 or #2 +% +\def\pgfmathmax#1#2{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \pgfmathparse@{#2}\edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmax@{\pgfmath@firstoperand}{\pgfmath@secondoperand}} +\def\pgfmathmax@#1#2{% + \begingroup + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \ifdim\pgfmath@x>\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \else% + \pgfmath@returnone\pgfmath@y% + \fi% + \endgroup} + +% \pgfmathmax +% +% Return the minimim of #1 or #2 +% +\def\pgfmathmin#1#2{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \pgfmathparse@{#2}\edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmin@{\pgfmath@firstoperand}{\pgfmath@secondoperand}} +\def\pgfmathmin@#1#2{% + \begingroup + \expandafter\pgfmath@x#1pt\relax% + \expandafter\pgfmath@y#2pt\relax% + \ifdim\pgfmath@x<\pgfmath@y% + \pgfmath@returnone\pgfmath@x% + \else% + \pgfmath@returnone\pgfmath@y% + \fi% + \endgroup% +} + +% \pgfmathscientific +% +% Return the value of #1e#2 +% +% e.g. \pgfmathscientific{1.23456789123}{4} +% +% defines \pgfmathresult as 12345.67891 +% +% NB This arguments *are not parsed*, as the long mantissa would be lost. +% +\def\pgfmathscientific#1#2{% + \begingroup% + \edef\pgfmath@sci@exponent{#2}% + \pgfmath@x#1pt\relax% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \edef\pgfmath@sci@sign{-}% + \edef\pgfmath@temp{\pgfmath@gobbleone#1}% + \else% + \edef\pgfmath@sci@sign{+}% + \edef\pgfmath@temp{#1}% + \fi% + \expandafter\pgfmath@scientific@@\pgfmath@temp00000000000\pgfmath@} + +\def\pgfmath@scientific@@#1.#2#3#4#5#6{% + \edef\pgfmath@sci@int{#1}% + \edef\pgfmath@sci@mantissaA{#2#3#4#5#6}% + \pgfmath@scientific@@@} + +\def\pgfmath@scientific@@@#1#2#3#4#5#6\pgfmath@{% + \edef\pgfmath@sci@mantissaB{#1#2#3#4#5}% + \c@pgfmath@counta\pgfmath@sci@exponent\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \ifnum\c@pgfmath@counta<0\relax% + \c@pgfmath@counta-\c@pgfmath@counta% + \fi% + \pgfmathpow@{10}{\the\c@pgfmath@counta}% + \afterassignment\pgfmath@gobbletilpgfmath@ + \c@pgfmath@countc\pgfmathresult\relax\pgfmath@ + \edef\pgfmath@sci@factor{\the\c@pgfmath@countc}% + \ifnum\c@pgfmath@countb<0\relax% + % xE-y: easy... + \pgfmath@x\pgfmath@sci@int.\pgfmath@sci@mantissaA pt\relax% + \divide\pgfmath@x\pgfmath@sci@factor\relax% + \else% + % xE+y: + % Must do this way so as not lose digits in a long mantissa. Sigh... + \c@pgfmath@counta\pgfmath@sci@int% + \c@pgfmath@countb\pgfmath@sci@mantissaA% + \multiply\c@pgfmath@counta\pgfmath@sci@factor\relax% + \multiply\c@pgfmath@countb\pgfmath@sci@factor\relax% + \c@pgfmath@countc\c@pgfmath@countb% + \divide\c@pgfmath@countb100000\relax% + \advance\c@pgfmath@counta\c@pgfmath@countb% + \multiply\c@pgfmath@countb100000\relax% + \advance\c@pgfmath@countc-\c@pgfmath@countb% + \c@pgfmath@countb\pgfmath@sci@mantissaB\relax% + \multiply\c@pgfmath@countb\pgfmath@sci@factor\relax% + \divide\c@pgfmath@countb100000\relax% + \advance\c@pgfmath@countc\c@pgfmath@countb% + \advance\c@pgfmath@countc100000\relax% + \edef\pgfmath@sci@result{\pgfmath@sci@sign\the\c@pgfmath@counta.\expandafter\pgfmath@gobbleone\the\c@pgfmath@countc pt}% + \pgfmath@x\pgfmath@sci@result\relax% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup} \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex new file mode 100644 index 00000000000..809de3879ff --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex @@ -0,0 +1,912 @@ +% This file parses/evaluates a decimal expression. +% +% (c) 2007 Mark Wibrow +% +% but subject to the LaTeX Project Public License, +% (http://www.latex-project.org/lppl.txt) +% +% and the GNU Public License, +% (http://www.gnu.org/licenses/gpl.txt) + +% \pgfmathparse, \pgfmathqparse +% +% Evaluates a decimal expression. +% +% #1 - the expression. +% +% returns +% +% x = the result as a dimension. +% +% E.g. +% \pgfmathparse{3pt*2cm+1.5} +% \pgfmathqparse{3pt*2cm+1.5pt} +% +% Every number in \pgfmathqparse *must* +% specify a unit. +% +\newif\ifpgfmath@quickparse + +\def\pgfmathparse{% + \pgfmath@quickparsefalse% + \pgfmathparse@} + +\def\pgfmathqparse{% + \pgfmath@quickparsetrue% + \pgfmathparse@} + +\def\pgfmathparse@#1{% + \begingroup% + % Reinstall correct font, so that dimensions like 1em are correct + \pgfutil@selectfont% + \edef\pgfmath@temp{#1}% + \pgfmath@resetparsingparameters% + \global\pgfmathunitsdeclaredfalse% + \ifpgfmath@quickparse% + \let\pgfmath@parseoperand\pgfmath@quickparseoperand% + \else% + \let\pgfmath@parseoperand\pgfmath@parseoperand% + \fi% + \let\pgfmath@parsepostgroup\pgfmath@parseoperator% + \expandafter\pgfmath@parse@\pgfmath@temp @@@@@@@@@@@\pgfmath@empty} + + +% \pgfmath@resetparsingparameters +% +% Reset the stack at the begining of the parse/group. +% +\def\pgfmath@resetparsingparameters{% + \pgfmath@stack{\pgfmath@empty\pgfmath@empty\pgfmath@empty\pgfmath@empty}% + \def\pgfmath@stacknextoperator{\pgfmath@empty}% Will not work with \let +} +% \pgfmath@parse@ +% +% Start parsing. Expect one of +% 1) the end of the parse +% 2) the start of a group +% 3) a (possible) operand. +% +\def\pgfmath@parse@#1{% + \def\pgfmath@token{}% + \ifx#1@% + \let\pgfmath@parsenext\pgfmath@endparse% + \else% + \ifx#1(% + \let\pgfmath@parsenext\pgfmath@startparsegroup% + \else% + \edef\pgfmath@token{#1}% + \let\pgfmath@parsenext\pgfmath@parseoperand% + \fi\fi% + \pgfmath@parsenext% +} + +% If no TeX units are declared *at any point* in the parse +% the result is scaled by \pgfmathresultunitscale. +\newif\ifpgfmathunitsdeclared +\def\pgfmathsetresultunitscale#1{\def\pgfmathresultunitscale{#1}} +\def\pgfmathresultunitscale{1} + +% \pgfmath@endparse +% +% Everything stops here. +% +\def\pgfmath@endparse#1\pgfmath@empty{% + \pgfmath@processalloperations% + \pgfmath@stackpop{\pgfmathresult}% + \begingroup% + \ifpgfmathunitsdeclared% + \pgfmath@x1pt\relax% + \else% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x\pgfmathresultunitscale pt\relax\pgfmath@% + \fi% + \expandafter\pgfmath@x\pgfmathresult\pgfmath@x% + \pgfmath@returnone\pgfmath@x% + \endgroup% + \pgfmath@smuggleone{\pgfmathresult}% + \endgroup% +} + +% \pgfmath@startparsegroup +% +% When opening ( is scanned start a new group. +% +\def\pgfmath@startparsegroup{% + \begingroup% + \let\pgfmath@parsepostgroup\pgfmath@parseoperator% + \pgfmath@resetparsingparameters% + \pgfmath@parse@} + +% \pgfmath@endparsegroup +% +% When closing ) is scanned, processes all waiting +% operations (within the group) and close the group. +% +\def\pgfmath@endparsegroup{% + \pgfmath@processalloperations% + \pgfmath@stackpop{\pgfmathresult}% + \expandafter\pgfmath@x\pgfmathresult pt\relax% + \pgfmath@returnone\pgfmath@x% + \endgroup% + \pgfmath@parsepostgroup% +} + +% \pgfmath@parseoperator +% +% An operator is expected here. +% Or the end of the parse or parse group. +% +\def\pgfmath@parseoperator#1{% + \def\pgfmath@token{}% + % Push the operand in \pgfmathresult on to the stack. + \expandafter\pgfmath@stackpushoperand\expandafter{\pgfmathresult}% + \ifx#1@% + \let\pgfmath@parsenext\pgfmath@endparse% + \else% + \ifx#1+% + \let\pgfmath@parsenext\pgfmath@parseadd% + \else% + \ifx#1-% + \let\pgfmath@parsenext\pgfmath@parsesubtract% + \else% + \ifx#1*% + \let\pgfmath@parsenext\pgfmath@parsemultiply% + \else% + \ifx#1/% + \let\pgfmath@parsenext\pgfmath@parsedivide% + \else + \ifx#1)% + \let\pgfmath@parsenext\pgfmath@endparsegroup% + \else% + \ifx#1r% + \let\pgfmath@parsenext\pgfmath@parseradians% + \else% + \ifx#1>% + \let\pgfmath@parsenext\pgfmath@parsegreaterthan% + \else% + \ifx#1<% + \let\pgfmath@parsenext\pgfmath@parselessthan% + \else% + \if#1=% + \let\pgfmath@parsenext\pgfmath@parseequalto% + \else% + \if#1^% + \let\pgfmath@parsenext\pgfmath@parsepower% + \else% + \pgfmath@error{Unknown operator `#1'}% + \let\pgfmath@parsenext\relax% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% + \pgfmath@parsenext% +} + +% Use a \toks register as a stack. +\newtoks\pgfmath@stack + +% \pgfmath@stackpushoperator +% +% Push an operator (actually its macro e.g., \pgfmathadd@) +% on to the stack. And keep track of it using the macro +% \pgfmath@stacknextoperator. +% +\def\pgfmath@stackpushoperator#1{% + \edef\pgfmath@temp{\noexpand#1\the\pgfmath@stack}% + \expandafter\pgfmath@stack\expandafter{\pgfmath@temp}% + \def\pgfmath@stacknextoperator{#1}}% <- Must \def. Cannot \let. + +% \pgfmath@stackpushoperand +% +% Push an operand (i.e. a number) on the stack. It is +% put within a TeX group to make popping a lot simpler. +% +\def\pgfmath@stackpushoperand#1{% + \edef\pgfmath@temp{{#1}\the\pgfmath@stack}% + \expandafter\pgfmath@stack\expandafter{\pgfmath@temp}% +} + +% \pgfmath@stackpeek +% +% Peek (i.e. without removal) at the top of the stack. +% +\def\pgfmath@stackpeek{\expandafter\pgfmath@stackpeek@\the\pgfmath@stack\pgfmath@} +\def\pgfmath@stackpeek@#1#2\pgfmath@{#1}% + +% \pgfmath@stackpop +% +% Pop (i.e. remove) the top of the stack into #1. +% +\def\pgfmath@stackpop#1{\expandafter\pgfmath@stackpop@\expandafter#1\the\pgfmath@stack\pgfmath@} +\def\pgfmath@stackpop@#1#2#3\pgfmath@{\edef#1{#2}\pgfmath@stack{#3}}% + +% \pgfmath@stackpopoperation +% +% Remove and perform an operation from the stack. +% +\def\pgfmath@stackpopoperation{% + \expandafter\pgfmath@stackpopoperation@\the\pgfmath@stack\pgfmath@% +} +\def\pgfmath@stackpopoperation@#1#2#3#4#5\pgfmath@{% + \ifx\pgfmath@empty#1\relax% + \pgfmath@stack{\pgfmath@empty\pgfmath@empty\pgfmath@empty\pgfmath@empty}% + \else% + \ifx\pgfmath@empty#2\relax% + \pgfmath@stack{{#1}\pgfmath@empty\pgfmath@empty\pgfmath@empty\pgfmath@empty}% + \else% + #2{#3}{#1}% + \pgfmath@stack{#4#5}% + \expandafter\pgfmath@stackpushoperand\expandafter{\pgfmathresult}% + \fi\fi% + \def\pgfmath@stacknextoperator{#4}} + +% \pgfmath@processalloperations +% +% Process all operation in the stack. The +% overall result is at the top of the stack. +% +\def\pgfmath@processalloperations{% + \expandafter\pgfutil@in@\pgfmath@stacknextoperator{\pgfmath@empty}% + \ifpgfutil@in@% + \let\pgfmath@processnext\relax% + \else% + \pgfmath@stackpopoperation% + \let\pgfmath@processnext\pgfmath@processalloperations% + \fi% + \pgfmath@processnext} + +% \pgfmath@processoperationsuntil +% +% Process operations in the stack, until the specified +% operation/s is/are encountered. The overall result is +% at the top of the stack. +% +\def\pgfmath@processoperationsuntil#1{% + \expandafter\pgfutil@in@\pgfmath@stacknextoperator{#1\pgfmath@empty}% + \ifpgfutil@in@% + \let\pgfmath@processnext\pgfmath@processoperationsuntil@end% + \else% + \pgfmath@stackpopoperation% + \let\pgfmath@processnext\pgfmath@processoperationsuntil% + \fi% + \pgfmath@processnext{#1}} +\def\pgfmath@processoperationsuntil@end#1{} + + +% OK. Now the operators are parsed. +% These correspond to the + - / * ^ < > = mod and r operators +% +\def\pgfmath@parseadd{% + % If no operator has been assigned (i.e. + is the first operator scanned), + % do nothing, except add addition to the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Empty the process stack up to any inequalities. + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathadd@}% + \pgfmath@parse@} + +\def\pgfmath@parsesubtract{% + % If no operator has been assigned (i.e. - is the first operator scanned), + % do nothing, except add subtract to the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Empty the process stack up to any inequalities. + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathsubtract@}% + \pgfmath@parse@} + + +\def\pgfmath@parsemultiply{% + % If no operator has been assigned (i.e. * is the first operator scanned), + % do nothing, except push multiply onto the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Process all operations up to inequalites or addition/subtraction + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@% + \pgfmathadd@\pgfmathsubtract@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathmultiply@}% + \pgfmath@parse@} + +\def\pgfmath@parsedivide{% + % If no operator has been assigned (i.e. / is the first operator scanned), + % do nothing, except push divide onto the stack. + \ifx\pgfmath@stacknextoperator\pgfmath@empty% + \else% + % Process all operations up to inequalites or addition/subtraction + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@% + \pgfmathadd@\pgfmathsubtract@}% + \fi% + \pgfmath@stackpushoperator{\pgfmathdivide@}% + \pgfmath@parse@} + +\def\pgfmath@parsegreaterthan{% + % On scanning an equality/inequality operator everything up to + % (but not including) the operator is evaluated... + \pgfmath@processalloperations% + % ...and the operation pushed onto the stack. + \pgfmath@stackpushoperator{\pgfmathgreaterthan@}% + \pgfmath@parse@} + +\def\pgfmath@parselessthan{% + \pgfmath@processalloperations% + \pgfmath@stackpushoperator{\pgfmathlessthan@}% + \pgfmath@parse@} + +\def\pgfmath@parseequalto={% + \pgfmath@processalloperations% + \pgfmath@stackpushoperator{\pgfmathequalto@}% + \pgfmath@parse@} + +\def\pgfmath@parsepower{% + % Easy, just push power onto the stack. + \pgfmath@stackpushoperator{\pgfmathpow@}% + \pgfmath@parse@} + +\def\pgfmath@parseradians{% + % Actually this is a post-fix function... + \ifx\pgfmath@primaryoperation\pgfmath@empty% + \else% + \pgfmath@processoperationsuntil{\pgfmathequalto@\pgfmathlessthan@\pgfmathgreaterthan@% + \pgfmathadd@\pgfmathsubtract@}% + \fi% + \pgfmath@stackpop{\pgfmath@temp}% + \pgfmathdeg@{\pgfmath@temp}% + % ...so processing returns to \pgfmath@parseoperator + \pgfmath@parseoperator} + +\newcount\c@pgfmath@parsecounta +\newcount\c@pgfmath@parsecountb +\newcount\c@pgfmath@parsecountc +\newdimen\pgfmath@parsex + +% \pgfmath@quickparseoperand +% +% An operand can *only* be a dimension. +% +\def\pgfmath@quickparseoperand{% + \afterassignment\pgfmath@quickparseoperand@% + \pgfmath@parsex\pgfmath@token} +\def\pgfmath@quickparseoperand@{% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}} + \pgfmath@parseoperator% +} + +% \pgfmath@parseoperand +% +% An operand can be an ASCII number (with or without dimensions, with +% or without a decimal point), a TeX register (count, dimen or skip, +% which may have expanded with \the), or a function e.g. sin(X). +% +% It is assumed that after \edef-ing, the only unexpanded tokens are registers. +% +\def\pgfmath@parseoperand{% + \def\pgfmath@sign{}% + \expandafter\pgfmath@parseoperandsign\pgfmath@token} +\def\pgfmath@parseoperandsign#1{% + \pgfmath@in@#1{-+}% + \ifpgfmath@in@ + % I suppose there are (silly) people who might complain if + % they can't say 2---5, or 3+-----7. Just for them... + \edef\pgfmath@sign{\pgfmath@sign#1}% + \expandafter\pgfmath@parseoperandsign% + \else% + \expandafter\pgfmath@parsenumberorfunction\expandafter#1% + \fi% +} + + +\newif\ifpgfmath@dimen@ + +\def\pgfmath@ifregisterdimen@#1\pgfmath@{% + \pgfmath@in@{p}{#1}% + \ifpgfmath@in@% + \pgfmath@dimen@true% + \else% + \pgfmath@dimen@false% + \fi} + + +\def\pgfmath@parsenumberorfunction#1{% + \let\pgfmath@parsenext\pgfmath@parsenumberorfunction@simple% + \ifx#1\wd\let\pgfmath@parsenext\pgfmath@boxdimen\fi% + \ifx#1\ht\let\pgfmath@parsenext\pgfmath@boxdimen\fi% + \ifx#1\dp\let\pgfmath@parsenext\pgfmath@boxdimen\fi% + \pgfmath@parsenext#1% +} + +\def\pgfmath@boxdimen#1#2{% + \pgfmath@parsex=#1#2% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \global\pgfmathunitsdeclaredtrue% a dimension has units + \pgfmath@parseoperator% +} + +\def\pgfmath@parsenumberorfunction@simple#1{% + \expandafter\ifcat#1\relax% + % So, a TeX register. + \afterassignment\pgfmath@ifregisterdimen@% + \pgfmath@parsex\pgfmath@sign#1pt\relax\pgfmath@% + \ifpgfmath@dimen@% + % A dimension! So stop scanning operand here. + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \global\pgfmathunitsdeclaredtrue% a dimension has units + \def\pgfmath@temp{}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else% + % A count! Expand it, but carry on as usual as it might + % be immediately followed by a dimension. + \ifdim\pgfmath@parsex<0pt\relax% + \edef\pgfmath@sign{\pgfmath@sign-}% + \pgfmath@parsex-\pgfmath@parsex% + \fi% + \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@parsex}}% + \let\pgfmath@parsenext\pgfmath@parsenumberorfunction@% + \fi% + \else% + % Could be a number or a function...? + \edef\pgfmath@temp{#1}% + \let\pgfmath@parsenext\pgfmath@parsenumberorfunction@% + \fi% + \expandafter\pgfmath@parsenext\pgfmath@temp% +}% + +\def\pgfmath@parsenumberorfunction@#1{% + \pgfmath@in@{#1}{.0123456789}% + \ifpgfmath@in@% + \let\pgfmath@parsenext\pgfmath@parsenumber% + \else% + \let\pgfmath@parsenext\pgfmath@parsefunction% + \fi% + \pgfmath@parsenext#1% +}% + +\def\pgfmath@parsenumber{% + % Consider the number 3.14159 + % 3 is parsed by assignment to a, then '.' is absorbed and 14159 + % parsed by assignement to b (actually b=114159, see below). + \c@pgfmath@parsecountc0\relax% + \afterassignment\pgfmath@parsedecimalpoint% + \c@pgfmath@parsecounta0} + +\def\pgfmath@parsedecimalpoint#1{% + \ifx#1.% Is there a decimal point? If not, see if there are any units. + \let\pgfmath@parsenext\pgfmath@parsemantissa% + \else% + \c@pgfmath@parsecountb10\relax% The first digit of b is gobbled (see below). + \let\pgfmath@parsenext\pgfmath@parseunits% + \fi% + \pgfmath@parsenext#1} + + + +% We would like to assign the following number (which is the mantisse) +% to a number. However, for a very long mantisse as in 3.141592653589793238462643 +% this will fail since the number becomes too large. +% +% Because of this, we have to do some ``magic'': We scan 9 tokens and +% then do an assignment with a guard after 9 tokens so that the +% assigment cannot fail. +% +\def\pgfmath@parsemantissa.#1#2#3#4#5#6#7#8#9{% + \afterassignment\pgfmath@checkforguard% + % Consider the number: 2.005 + % 2 is assigned to a, but b will be assigned 5, which is *not right*. + % So using 1 here hereresults in b=1005. The first digit is then + % gobbled later, when expanded with \the. + \c@pgfmath@parsecountb1#1#2#3#4#5#6#7#8#9\relax}% + +\def\pgfmath@checkforguard{% + \pgfutil@ifnextchar\relax% + {% + % Ok, this is a looong mantisse. Start gobbling all following + % numbers + \pgfmath@gobblemantisse% + }% + {% + \pgfmath@removeguard% + }% +} + +\def\pgfmath@gobblemantisse\relax#1#2#3#4#5#6#7#8#9{% + \afterassignment\pgfmath@checkforguard% + \c@pgfmath@parsecountc0#1#2#3#4#5#6#7#8#9\relax% these digits are ignored +} + +\def\pgfmath@removeguard#1\relax{\pgfmath@parseunits#1} + + + + +\def\pgfmath@parseunits#1{% + % Here the extra first digit in b is gobbled. + \edef\pgfmath@resulttemp{% + \pgfmath@sign\the\c@pgfmath@parsecounta.\expandafter\pgfmath@gobbleone\the\c@pgfmath@parsecountb}% + % Check whether #1 is a \dp, \wd, or \ht + \let\pgfmath@parsenext=\pgfmath@parseunits@simple% + \ifx#1\wd\let\pgfmath@parsenext=\pgfmath@parseunits@boxdimen\fi% + \ifx#1\ht\let\pgfmath@parsenext=\pgfmath@parseunits@boxdimen\fi% + \ifx#1\dp\let\pgfmath@parsenext=\pgfmath@parseunits@boxdimen\fi% + \pgfmath@parsenext#1% +} + +\def\pgfmath@parseunits@boxdimen#1#2{% + \pgfmath@parsex=#1#2% + \pgfmath@parsex\pgfmath@resulttemp\pgfmath@parsex% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \global\pgfmathunitsdeclaredtrue% a dimension has units + \pgfmath@parseoperator% +} + +\def\pgfmath@parseunits@simple#1{% + % Now check if #1 is actually a register. + \ifcat#1\relax% + \afterassignment\pgfmath@ifregisterdimen@% + \pgfmath@parsex#1pt\relax\pgfmath@% + \pgfmath@parsex\pgfmath@resulttemp\pgfmath@parsex% + \ifpgfmath@dimen@% If it's a dimen stop scanning operand here. + \global\pgfmathunitsdeclaredtrue% a dimension has units + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else + \edef\pgfmath@resulttemp{\pgfmath@tonumber{\pgfmath@parsex}}% + \let\pgfmath@parsenext\pgfmath@parseunits@% + \fi% + \expandafter\pgfmath@parsenext% + \else% + \expandafter\pgfmath@parseunits@\expandafter#1% + \fi} + +\def\pgfmath@parseunits@#1#2{% + % Check if #1 is an operator, or the character `@' indicating the end of the parse. + \pgfmath@in@#1{@+-*/^r<>=()}% + \ifpgfmath@in@% + \edef\pgfmath@tokens{#1#2}% + \edef\pgfmathresult{\pgfmath@resulttemp}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else% + \pgfmath@in@#1{Ee}% e+0X + \ifpgfmath@in@% + % Oh no! It might be and em or an ex... + \pgfmath@in@#2{mx}% + \ifpgfmath@in@% + \global\pgfmathunitsdeclaredtrue% + \pgfmath@parsex\pgfmath@resulttemp#1#2\relax% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \edef\pgfmath@tokens{}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \else% + \edef\pgfmath@tokens{#2}% + \let\pgfmath@parsenext\pgfmath@parsescientific% + \fi% + \else + % Anything else *should* be a TeX unit. + \global\pgfmathunitsdeclaredtrue% + \pgfmath@parsex\pgfmath@resulttemp#1#2\relax% + \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@parsex}}% + \edef\pgfmath@tokens{}% + \let\pgfmath@parsenext\pgfmath@parseoperator% + \fi\fi% + \expandafter\pgfmath@parsenext\pgfmath@tokens% +} + +% Parse 'Scientific' notation in the form xEyy +% +\def\pgfmath@parsescientific{% + \afterassignment\pgfmath@parsescientific@% + \c@pgfmath@parsecounta} + +\def\pgfmath@parsescientific@{% + \edef\pgfmath@parsesci@temp{\pgfmath@resulttemp\the\c@pgfmath@parsecountc}% + \expandafter\pgfmathscientific\expandafter{\pgfmath@parsesci@temp}% + {\the\c@pgfmath@parsecounta}% + \edef\pgfmath@resulttemp{\pgfmathresult}% + \pgfmath@parseunits@} + + +% OK. Now the fun stuff. We parse functions here. Note that +% *no* calulations are done in the following macros. All the +% mathematics is done in pgfmathoperations.code and friends. +% +% Functions dealt with here are: +% +% round(X) 'half-up' rounding. +% floor(X) floor function. +% ciel(X) ceiling function. +% abs(X) absolute function. +% +% exp(X) e^X (0 <= X <~= 9.7). +% +% sin(X) sine function. +% cos(X) cosine function. +% tan(X) tan function. +% asin(X) arcsine of X (in radians) -1 <= X <= 1 +% acos(X) arccosine of X (in radians) -1 <= X <= 1 +% atan(X) arctangent of X (in radians) -1 <= X <= 1 +% veclen(X,Y) the length Z where Z^2 = X^2 + Y^2 +% mod(X,Y) X modulo Y +% max(X,Y) the maximum of X or Y +% min(X,Y) the minimum of X or Y +% +% NB veclen, mod, max, and min *cannot* be nested. +% +% deg(X) converts X to degrees (X in radians) +% rad(X) converts X to radians (X in degrees) +% +% rnd generate pseudo-random number X (0 <= X <= 1). +% rand generate pseudo-random number X (1 <= X <= -1). +% sqrt(X) square root. +% +% pi the constant PI. + +\def\pgfmath@parsefunction{% + \def\pgfmath@parsedfunctionname{}% + \futurelet\pgfmath@parsetoken\pgfmath@parsefunction@@} +\def\pgfmath@parsefunction@@#1{% + \pgfmath@in@#1{()@+-*/^<>=}% A function name ends with one of these... + \ifpgfmath@in@% + \let\pgfmath@parsefunctionnext\pgfmath@parsefunction@end% + \else% + \ifx\pgfmath@parsetoken\pgfutil@sptoken% ...or a space. + \let\pgfmath@parsefunctionnext\pgfmath@parsefunction@end% + \else% + \let\pgfmath@parsefunctionnext\pgfmath@parsefunction@continue% + \fi\fi% + \pgfmath@parsefunctionnext#1} + +\def\pgfmath@parsefunction@end#1{% + \expandafter\ifx\csname pgfmath@parsefunction@\pgfmath@parsedfunctionname\endcsname\relax% + \pgfmath@reportunknownfunction% + \let\pgfmath@parsefunctionnext\relax% + \else% + \let\pgfmath@parsefunctionnext\pgfmath@executeparsefunction@% + \fi% + \pgfmath@parsefunctionnext#1} + +\def\pgfmath@parsefunction@continue#1{% + \edef\pgfmath@parsedfunctionname{\pgfmath@parsedfunctionname#1}% + \futurelet\pgfmath@parsetoken\pgfmath@parsefunction@@} + +\def\pgfmath@executeparsefunction@{\csname pgfmath@parsefunction@\pgfmath@parsedfunctionname\endcsname} + + +\def\pgfmath@reportunknownfunction{% + \pgfmath@error{Unknown function `\pgfmath@parsedfunctionname'}{}% +} + +% \pgfmath@postfunction +% +% In scanning a function e.g. sin(40), we subvert the normal parsing +% group mechanism by messing around with \pgfmath@parsepostgroup, so +% that after scanning ), the parser doesn't scan for an operator, but +% returns to the macros scanning the function. +% Here the mechanism is restored, and the value of the function is +% stored along with the approprate sign, which was saved earlier. +% +\def\pgfmath@postfunction{% + \let\pgfmath@parsepostgroup\pgfmath@parseoperator% + \edef\pgfmathresult{\pgfmath@sign\pgfmathresult}% + \pgfmath@parseoperator} + + +% \pgfmath@parsefunction@abs +% +\def\pgfmath@parsefunction@abs{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@abs@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@abs@{% + \expandafter\pgfmathabs@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@sqrt +% +\def\pgfmath@parsefunction@sqrt{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@sqrt@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@sqrt@{% + \expandafter\pgfmathsqrt@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@round +% +\def\pgfmath@parsefunction@round{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@round@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@round@{% + \expandafter\pgfmathround@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@floor +% +\def\pgfmath@parsefunction@floor{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@floor@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@floor@{% + \expandafter\pgfmathfloor@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@ceil +% +\def\pgfmath@parsefunction@ceil{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@ceil@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@ceil@{% + \expandafter\pgfmathceil@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@sin +% +\def\pgfmath@parsefunction@sin{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@sin@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@sin@{% + \expandafter\pgfmathsin@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@cos +% +\def\pgfmath@parsefunction@cos{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@cos@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@cos@{% + \expandafter\pgfmathcos@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@asin +% +\def\pgfmath@parsefunction@asin{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@asin@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@asin@{% + \expandafter\pgfmathasin@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@acos +% +\def\pgfmath@parsefunction@acos{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@acos@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@acos@{% + \expandafter\pgfmathacos@\expandafter{\pgfmathresult}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@atan +% +\def\pgfmath@parsefunction@atan{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@atan@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@atan@{% + \expandafter\pgfmathatan@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@tan +% +\def\pgfmath@parsefunction@tan{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@tan@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@tan@{% + \expandafter\pgfmathtan@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@rad +% +\def\pgfmath@parsefunction@rad{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@rad@% + \pgfmath@parse@} +\def\pgfmath@parsefunction@rad@{% + \expandafter\pgfmathrad@\expandafter{\pgfmathresult}% + \pgfmath@postfunction}% + +% \pgfmath@parsefunction@rad +% +\def\pgfmath@parsefunction@deg{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@deg@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@deg@{% + \expandafter\pgfmathdeg@\expandafter{\pgfmathresult}% + \pgfmath@postfunction}% + +% \pgfmath@parsefunction@rnd +% +\def\pgfmath@parsefunction@rnd{% + \expandafter\pgfmathrnd% + \expandafter\pgfmath@postfunction} + +% \pgfmath@parsefunction@rand +% +\def\pgfmath@parsefunction@rand{% + \expandafter\pgfmathrand% + \expandafter\pgfmath@postfunction}% + +% \pgfmath@parsefunction@exp +% +\def\pgfmath@parsefunction@exp{% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@exp@% + \expandafter\pgfmath@parse@} +\def\pgfmath@parsefunction@exp@{% + \expandafter\pgfmathexp@\expandafter{\pgfmathresult}% + \pgfmath@postfunction% +} + +% \pgfmath@parsefunction@pi +% +\def\pgfmath@parsefunction@pi{% + \pgfmathpi% + \pgfmath@postfunction% +} + + +% \pgfmath@parsefunction@veclen +% +\def\pgfmath@parsefunction@veclen{% + \expandafter\pgfmath@parsefunction@veclen@} +\def\pgfmath@parsefunction@veclen@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@veclen@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@veclen@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathveclen@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@mod +% +\def\pgfmath@parsefunction@mod{% + \expandafter\pgfmath@parsefunction@mod@} +\def\pgfmath@parsefunction@mod@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@mod@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@mod@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmod@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@max +% +\def\pgfmath@parsefunction@max{% + \expandafter\pgfmath@parsefunction@max@} +\def\pgfmath@parsefunction@max@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@max@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@max@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmax@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@min +% +\def\pgfmath@parsefunction@min{% + \expandafter\pgfmath@parsefunction@min@} +\def\pgfmath@parsefunction@min@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@min@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@min@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathmin@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} + +% \pgfmath@parsefunction@pow +% +\def\pgfmath@parsefunction@pow{% + \expandafter\pgfmath@parsefunction@pow@} +\def\pgfmath@parsefunction@pow@(#1,{% + \pgfmathparse@{#1}\edef\pgfmath@firstoperand{\pgfmathresult}% + \let\pgfmath@parsepostgroup\pgfmath@parsefunction@pow@@ + \pgfmath@startparsegroup} +\def\pgfmath@parsefunction@pow@@{% + \edef\pgfmath@secondoperand{\pgfmathresult}% + \pgfmathpow@{\pgfmath@firstoperand}{\pgfmath@secondoperand}% + \pgfmath@postfunction} \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex new file mode 100644 index 00000000000..ba54bfd6cdb --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathrnd.code.tex @@ -0,0 +1,213 @@ +% Copyright 2007 by Mark Wibrow +% +% 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. + +% This file defines the pesudorandom numbers. +% +% Version 0.0 08/03/2007 + +% Pseudo-random number generation. +% +% See: +% \book@{pressetal1992, +% author = {William H. Press and Brian P. Flannery and Saul A. +% Teukolsky and William T. Vetterling}, +% title = {Numerical Recipies in C}, +% edition = {Second}, +% publisher = {Cambridge University Press} +% } +% +% See also, the documentation for the lcg package by Erich Janka: +% (http://www.ctan.org/tex-archive/macros/latex/contrib/lcg/lcg.pdf) +% +\def\pgfmath@rnd@m{2147483647}% LaTeX Maximum. + +\begingroup +\c@pgfmath@counta=\time% +\multiply\c@pgfmath@counta by\year% +\xdef\pgfmath@rnd@z{\the\c@pgfmath@counta}% The seed. +\endgroup + +% \pgfmathsetseed +% +% Explictly set the seed for the generator +% +% #1 -> the new seed. +% + +\def\pgfmathsetseed#1{\pgfmathparse{#1}\expandafter\pgfmath@setseed\pgfmathresult\relax}% +\def\pgfmath@setseed#1.#2\relax{\def\pgfmath@rnd@z{#1}}% + +% Alternative paramaters - see Press et al (1992) p278-279, +% for discussion. +% +% a=16807 q=127773 r=2836 +% a=48271 q=4488 r=3399 +% +\def\pgfmath@rnd@a{69621} +\def\pgfmath@rnd@r{23902} +\def\pgfmath@rnd@q{30845} + +% \pgfmathgeneratepseudorandomnumber +% +% A linear congruency generator for generating +% pseudo-random numbers. Generates numbers in +% the range 1 - 2^31-1. +% +\def\pgfmathgeneratepseudorandomnumber{% + \begingroup% + \c@pgfmath@counta=\pgfmath@rnd@z% + \c@pgfmath@countb=\pgfmath@rnd@z% + \c@pgfmath@countc=\pgfmath@rnd@q% + \divide\c@pgfmath@counta by\c@pgfmath@countc% + \multiply\c@pgfmath@counta by-\c@pgfmath@countc% + \advance\c@pgfmath@counta by\c@pgfmath@countb + \c@pgfmath@countc=\pgfmath@rnd@a% + \multiply\c@pgfmath@counta by\c@pgfmath@countc% + \c@pgfmath@countc=\pgfmath@rnd@q% + \divide\c@pgfmath@countb by\c@pgfmath@countc% + \c@pgfmath@countc=\pgfmath@rnd@r% + \multiply\c@pgfmath@countb by\c@pgfmath@countc% + \advance\c@pgfmath@counta by-\c@pgfmath@countb% + \ifnum\c@pgfmath@counta<0\relax% + \c@pgfmath@countb=\pgfmath@rnd@m% + \advance\c@pgfmath@counta by\c@pgfmath@countb% + \fi% + \xdef\pgfmath@rnd@z{\the\c@pgfmath@counta}% + \endgroup% + \edef\pgfmathresult{\pgfmath@rnd@z}% +} + +% \pgfmathrnd +% +% Generates a pseudo-random number between 0 and 1. +% +\def\pgfmathrnd{% + \begingroup% + \pgfmathgeneratepseudorandomnumber% + \c@pgfmath@counta\pgfmathresult% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb100001\relax% To get one. + \multiply\c@pgfmath@countb-100001\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb1000000\relax% + \expandafter\pgfmathrnd@\the\c@pgfmath@countb\pgfmath@% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +\def\pgfmathrnd@#1#2#3\pgfmath@{% + \edef\pgfmath@temp{#2.#3}% + \pgfmath@x=\pgfmath@temp pt\relax% +}% + +% \pgfmathrand +% +% Generates a pseudo-random number between -1 and 1. +% +\def\pgfmathrand{% + \begingroup% + \pgfmathgeneratepseudorandomnumber% + \c@pgfmath@counta\pgfmathresult% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb200001\relax% + \multiply\c@pgfmath@countb-200001\relax% + \advance\c@pgfmath@countb\c@pgfmath@counta% + \advance\c@pgfmath@countb-100000\relax% + \ifnum\c@pgfmath@countb<0\relax% + \advance\c@pgfmath@countb-1000000\relax% + \else% + \advance\c@pgfmath@countb1000000\relax% + \fi% + \expandafter\pgfmathrand@\the\c@pgfmath@countb\pgfmath@% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +\def\pgfmathrand@#1#2#3#4\pgfmath@{% + \ifx#1-% + \edef\pgfmath@temp{-#3.#4}% + \else% + \edef\pgfmath@temp{#2.#3#4}% + \fi% + \pgfmath@x=\pgfmath@temp pt\relax% +}% + +% \pgfmathrandominteger +% +% Return a 'randomly' selected integer in the range #2 - #3 (inclusive). +% +% #1 - a macro to store the integer (not a count register). +% #2 - the lower limit of the range. +% #3 - the upper limit of the range. +% +\def\pgfmathrandominteger#1#2#3{% + \begingroup% + \pgfmathgeneratepseudorandomnumber% + \c@pgfmath@counta#2\relax% + \c@pgfmath@countb#3\relax% + \c@pgfmath@countc\c@pgfmath@countb% + % OK. Maybe #2 > #3. + \ifnum\c@pgfmath@counta>\c@pgfmath@countb\relax% + \c@pgfmath@countc\c@pgfmath@countb% + \c@pgfmath@countb\c@pgfmath@counta% + \c@pgfmath@counta\c@pgfmath@countc% + \fi% + \advance\c@pgfmath@countc1\relax% + \advance\c@pgfmath@countc-\c@pgfmath@counta% + \c@pgfmath@counta\pgfmathresult\relax% + \c@pgfmath@countb\c@pgfmath@counta% + \divide\c@pgfmath@countb\c@pgfmath@countc% + \multiply\c@pgfmath@countb-\c@pgfmath@countc% + \advance\c@pgfmath@counta\c@pgfmath@countb% + \advance\c@pgfmath@counta#2\relax% + \edef\pgfmathresult{\the\c@pgfmath@counta}% + \pgfmath@smuggleone{\pgfmathresult}% + \endgroup% + \edef#1{\pgfmathresult}% +} + +% \pgfmathdeclarerandomlist +% +% Create a list to be used with \pgfmathrandomelement. +% +% #1 - the name of the list +% #2 - a list of comma separated elements. +% +\def\pgfmathdeclarerandomlist#1#2{% + \def\pgfmath@randomlistname{#1}% + \begingroup% + \c@pgfmath@counta=1\relax% + % {} is a possible random element so (locally) + % redefine \pgfmath@empty. + \def\pgfmath@empty{pgfmath@empty}% + \expandafter\pgfmath@scanrandomlist#2{pgfmath@empty}} +\def\pgfmath@scanrandomlist#1{% + \def\pgfmath@scanneditem{#1}% + \ifx\pgfmath@scanneditem\pgfmath@empty% + \advance\c@pgfmath@counta-1\relax% + \expandafter\xdef\csname pgfmath@randomlist@\pgfmath@randomlistname\endcsname{\the\c@pgfmath@counta}% + \endgroup% + \else% + \expandafter\gdef\csname pgfmath@randomlist@\pgfmath@randomlistname @\the\c@pgfmath@counta\endcsname{#1}% + \advance\c@pgfmath@counta1\relax% + \expandafter\pgfmath@scanrandomlist% + \fi} + +% \pgfmathrandomitem +% +% Return a 'randomly' selected element from a list. +% +% #1 - a macro to store the item. +% #2 - the name of the list. +% +\def\pgfmathrandomitem#1#2{% + \pgfmath@ifundefined{pgfmath@randomlist@#2}{\pgfmath@error{Unknown random list `#2'}}{% + \edef\pgfmath@randomlistlength{\csname pgfmath@randomlist@#2\endcsname}% + \pgfmathrandominteger{\pgfmath@randomtemp}{1}{\pgfmath@randomlistlength}% + \def#1{\csname pgfmath@randomlist@#2@\pgfmath@randomtemp\endcsname}}} \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex new file mode 100644 index 00000000000..dd38f36f37b --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathtrig.code.tex @@ -0,0 +1,1932 @@ +% Copyright 2007 by Mark Wibrow +% +% 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. + +% This file defines the trigonometric functions/operations. +% +% Much of this file is based on ideas and code (particularly +% \pgfcoremath.code.tex) due to Till Tantau +% +% Version 0.0 08/03/2007 + +% \pgfmathpi +% +\def\pgfmathpi{\edef\pgfmathresult{\pgfmath@pi}} +\def\pgfmath@pi{3.14159} + +% \pgfmathradians +% +% Convert #1 from radians to degrees (accurate to 1 deg). +% +\def\pgfmathradians#1{% + \pgfmathparse{#1}% + \pgfmathradians@{\pgfmathresult}} +\def\pgfmathradians@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@x57.29577\pgfmath@x\relax% 57.29577 = 360/(2*pi) + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathdeg +% +% Convert #1 from radians to degrees. +% +\def\pgfmathdeg#1{% + \pgfmathparse{#1}% + \pgfmathdeg@{\pgfmathresult}} +\def\pgfmathdeg@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@x57.29577\pgfmath@x\relax% 57.29577 = 360/(2*pi) + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathrad +% +% Convert #1 from degrees to radians. +% +\def\pgfmathrad#1{% + \pgfmathparse{#1}% + \pgfmathrad@{\pgfmathresult}} +\def\pgfmathrad@#1{% + \begingroup% + \expandafter\pgfmath@x#1pt\relax% + \pgfmath@x3.14159\pgfmath@x% + \divide\pgfmath@x180\relax% + \pgfmath@returnone\pgfmath@x% + \endgroup% +}% + +% \pgfmathsin +% +% Calculate the sine of #1 (in degrees). +% +\def\pgfmathsin#1{% + \pgfmathparse{#1}% + \pgfmathsin@{\pgfmathresult}} +\def\pgfmathsin@#1{% + % Let #1 = a.b + % Then sin(#1) \approx (1-b)*cos(a) + b*cos(a+1) + % + \begingroup% + \pgfmath@x#1pt\relax% + \advance\pgfmath@x-90pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@ + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@ + \divide\c@pgfmath@counta360\relax% + \multiply\c@pgfmath@counta-360\relax% + \advance\pgfmath@x\c@pgfmath@counta pt\relax% + \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi% + \ifdim\pgfmath@x<180pt\relax% + \else + \pgfmath@x-\pgfmath@x% + \advance\pgfmath@x360pt\relax% + \fi% + % Now 0 <= x < 179. So split x into integer and decimal... + % + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + % + % ...if #1 is an integer, don't do anything fancy. + \ifdim\pgfmath@xa=0pt% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt\relax% + \else% + \pgfmath@x-\pgfmath@xa% + \advance\pgfmath@x1pt\relax% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x% + \advance\c@pgfmath@counta1\relax% + \expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup +} + +% \pgfmathcos +% +% Calculate the cosine of #1 (in degrees). +% +\def\pgfmathcos#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathcos@\expandafter{\pgfmathresult}} +\def\pgfmathcos@#1{% + % Let x = a.b + % Then cos(x) \approx (1-b)*cos(a) + b*cos(a+1) + % + \begingroup% + \pgfmath@x#1pt\relax% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \divide\c@pgfmath@counta360\relax% + \multiply\c@pgfmath@counta-360\relax% + \advance\pgfmath@x\c@pgfmath@counta pt\relax% + \ifdim\pgfmath@x<0pt\relax\pgfmath@x-\pgfmath@x\fi% + \ifdim\pgfmath@x<180pt\relax% + \else% + \pgfmath@x-\pgfmath@x% + \advance\pgfmath@x360pt\relax% + \fi% + % Now 0 <= x < 179. So split x into integer and decimal... + % + \afterassignment\pgfmath@xa% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + % + % ...if #1 is an integer, don't do anything fancy. + \ifdim\pgfmath@xa=0pt% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname pt% + \else% + \pgfmath@x-\pgfmath@xa% + \advance\pgfmath@x1pt\relax% + \expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@x% + \advance\c@pgfmath@counta1\relax% + \ifnum\c@pgfmath@counta=181\relax\c@pgfmath@counta179\relax\fi% + \expandafter\advance\expandafter\pgfmath@x\csname pgfmath@cos@\the\c@pgfmath@counta\endcsname\pgfmath@xa% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +% \pgfmathsincos +% +% Calculate the sin and cosine of #1 (in degrees). +% +\def\pgfmathsincos#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathcos@\expandafter{\pgfmathresult}} +\def\pgfmathsincos@#1{% + \pgfmathsin@{#1}\edef\pgfmathresulty{\pgfmathresult}% + \pgfmathcos@{#1}\edef\pgfmathresultx{\pgfmathresult}% +} +% \pgfmathtan +% +% Calculate the cotangent of #1 (in degrees). +% +\def\pgfmathtan#1{% + \pgfmathparse{#1}% + \pgfmathtan@{\pgfmathresult}} +\def\pgfmathtan@#1{% + \begingroup% + \pgfmathcos@{#1}% + \expandafter\pgfmathreciprocal@\expandafter{\pgfmathresult}% + \edef\pgfmath@tantemp{\pgfmathresult}% + \pgfmathsin@{#1}% + \pgfmath@x\pgfmathresult pt\relax% + \pgfmath@x\pgfmath@tantemp\pgfmath@x% + % Adjust to 4 decimal places. This gets rid of some annoyingly tiny errors. + \afterassignment\pgfmath@x% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax% + \ifdim\pgfmath@x<.0001pt\relax% + \pgfmath@x0pt\relax% + \fi% + \advance\pgfmath@x\c@pgfmath@counta pt% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +% \pgfmathasin +% +% The asin of #1 +% +\def\pgfmathasin#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathasin@\expandafter{\pgfmathresult}} +\def\pgfmathasin@#1{% + \begingroup% + \pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@x1000\pgfmath@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \expandafter\pgfmath@x\csname pgfmath@asin@\the\c@pgfmath@counta\endcsname pt\relax% + \ifdim\pgfmath@xa<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathacos +% +% The acos of #1 +% +\def\pgfmathacos#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathacos@\expandafter{\pgfmathresult}} +\def\pgfmathacos@#1{% + \begingroup% + \pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@x1000\pgfmath@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \expandafter\pgfmath@x\csname pgfmath@acos@\the\c@pgfmath@counta\endcsname pt\relax% + \ifdim\pgfmath@xa<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + +% \pgfmathasin +% +% The atan of #1 +% +\def\pgfmathatan#1{% + \pgfmathparse{#1}% + \expandafter\pgfmathatan@\expandafter{\pgfmathresult}} +\def\pgfmathatan@#1{% + \begingroup% + \pgfmath@x#1pt\relax% + \pgfmath@xa\pgfmath@x% + \ifdim\pgfmath@x<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@xb\pgfmath@x% + \ifdim\pgfmath@x>1pt\relax% + \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}% + \pgfmathreciprocal@{\pgfmath@temp}% + \pgfmath@x\pgfmathresult pt\relax% + \fi% + \pgfmath@x1000\pgfmath@x% + \afterassignment\pgfmath@gobbletilpgfmath@% + \expandafter\c@pgfmath@counta\the\pgfmath@x\relax\pgfmath@% + \ifdim\pgfmath@xb>1pt\relax% + \expandafter\pgfmath@x\expandafter-\csname pgfmath@atan@\the\c@pgfmath@counta\endcsname pt\relax% + \advance\pgfmath@x90pt% + \else% + \expandafter\pgfmath@x\csname pgfmath@atan@\the\c@pgfmath@counta\endcsname pt\relax% + \fi% + \ifdim\pgfmath@xa<0pt\relax% + \pgfmath@x-\pgfmath@x% + \fi% + \pgfmath@returnone\pgfmath@x% + \endgroup% +} + + +\def\pgfmath@def#1#2#3{\expandafter\def\csname pgfmath@#1@#2\endcsname{#3}} +\pgfmath@def{cos}{0}{1.00000} \pgfmath@def{cos}{1}{0.99985} +\pgfmath@def{cos}{2}{0.99939} \pgfmath@def{cos}{3}{0.99863} +\pgfmath@def{cos}{4}{0.99756} \pgfmath@def{cos}{5}{0.99619} +\pgfmath@def{cos}{6}{0.99452} \pgfmath@def{cos}{7}{0.99255} +\pgfmath@def{cos}{8}{0.99027} \pgfmath@def{cos}{9}{0.98769} +\pgfmath@def{cos}{10}{0.98481} \pgfmath@def{cos}{11}{0.98163} +\pgfmath@def{cos}{12}{0.97815} \pgfmath@def{cos}{13}{0.97437} +\pgfmath@def{cos}{14}{0.97030} \pgfmath@def{cos}{15}{0.96593} +\pgfmath@def{cos}{16}{0.96126} \pgfmath@def{cos}{17}{0.95630} +\pgfmath@def{cos}{18}{0.95106} \pgfmath@def{cos}{19}{0.94552} +\pgfmath@def{cos}{20}{0.93969} \pgfmath@def{cos}{21}{0.93358} +\pgfmath@def{cos}{22}{0.92718} \pgfmath@def{cos}{23}{0.92050} +\pgfmath@def{cos}{24}{0.91355} \pgfmath@def{cos}{25}{0.90631} +\pgfmath@def{cos}{26}{0.89879} \pgfmath@def{cos}{27}{0.89101} +\pgfmath@def{cos}{28}{0.88295} \pgfmath@def{cos}{29}{0.87462} +\pgfmath@def{cos}{30}{0.86603} \pgfmath@def{cos}{31}{0.85717} +\pgfmath@def{cos}{32}{0.84805} \pgfmath@def{cos}{33}{0.83867} +\pgfmath@def{cos}{34}{0.82904} \pgfmath@def{cos}{35}{0.81915} +\pgfmath@def{cos}{36}{0.80902} \pgfmath@def{cos}{37}{0.79864} +\pgfmath@def{cos}{38}{0.78801} \pgfmath@def{cos}{39}{0.77715} +\pgfmath@def{cos}{40}{0.76604} \pgfmath@def{cos}{41}{0.75471} +\pgfmath@def{cos}{42}{0.74314} \pgfmath@def{cos}{43}{0.73135} +\pgfmath@def{cos}{44}{0.71934} \pgfmath@def{cos}{45}{0.70711} +\pgfmath@def{cos}{46}{0.69466} \pgfmath@def{cos}{47}{0.68200} +\pgfmath@def{cos}{48}{0.66913} \pgfmath@def{cos}{49}{0.65606} +\pgfmath@def{cos}{50}{0.64279} \pgfmath@def{cos}{51}{0.62932} +\pgfmath@def{cos}{52}{0.61566} \pgfmath@def{cos}{53}{0.60182} +\pgfmath@def{cos}{54}{0.58779} \pgfmath@def{cos}{55}{0.57358} +\pgfmath@def{cos}{56}{0.55919} \pgfmath@def{cos}{57}{0.54464} +\pgfmath@def{cos}{58}{0.52992} \pgfmath@def{cos}{59}{0.51504} +\pgfmath@def{cos}{60}{0.50000} \pgfmath@def{cos}{61}{0.48481} +\pgfmath@def{cos}{62}{0.46947} \pgfmath@def{cos}{63}{0.45399} +\pgfmath@def{cos}{64}{0.43837} \pgfmath@def{cos}{65}{0.42262} +\pgfmath@def{cos}{66}{0.40674} \pgfmath@def{cos}{67}{0.39073} +\pgfmath@def{cos}{68}{0.37461} \pgfmath@def{cos}{69}{0.35837} +\pgfmath@def{cos}{70}{0.34202} \pgfmath@def{cos}{71}{0.32557} +\pgfmath@def{cos}{72}{0.30902} \pgfmath@def{cos}{73}{0.29237} +\pgfmath@def{cos}{74}{0.27564} \pgfmath@def{cos}{75}{0.25882} +\pgfmath@def{cos}{76}{0.24192} \pgfmath@def{cos}{77}{0.22495} +\pgfmath@def{cos}{78}{0.20791} \pgfmath@def{cos}{79}{0.19081} +\pgfmath@def{cos}{80}{0.17365} \pgfmath@def{cos}{81}{0.15643} +\pgfmath@def{cos}{82}{0.13917} \pgfmath@def{cos}{83}{0.12187} +\pgfmath@def{cos}{84}{0.10453} \pgfmath@def{cos}{85}{0.08716} +\pgfmath@def{cos}{86}{0.06976} \pgfmath@def{cos}{87}{0.05234} +\pgfmath@def{cos}{88}{0.03490} \pgfmath@def{cos}{89}{0.01745} +\pgfmath@def{cos}{90}{0.00000} \pgfmath@def{cos}{91}{-0.01745} +\pgfmath@def{cos}{92}{-0.03490} \pgfmath@def{cos}{93}{-0.05234} +\pgfmath@def{cos}{94}{-0.06976} \pgfmath@def{cos}{95}{-0.08716} +\pgfmath@def{cos}{96}{-0.10453} \pgfmath@def{cos}{97}{-0.12187} +\pgfmath@def{cos}{98}{-0.13917} \pgfmath@def{cos}{99}{-0.15643} +\pgfmath@def{cos}{100}{-0.17365} \pgfmath@def{cos}{101}{-0.19081} +\pgfmath@def{cos}{102}{-0.20791} \pgfmath@def{cos}{103}{-0.22495} +\pgfmath@def{cos}{104}{-0.24192} \pgfmath@def{cos}{105}{-0.25882} +\pgfmath@def{cos}{106}{-0.27564} \pgfmath@def{cos}{107}{-0.29237} +\pgfmath@def{cos}{108}{-0.30902} \pgfmath@def{cos}{109}{-0.32557} +\pgfmath@def{cos}{110}{-0.34202} \pgfmath@def{cos}{111}{-0.35837} +\pgfmath@def{cos}{112}{-0.37461} \pgfmath@def{cos}{113}{-0.39073} +\pgfmath@def{cos}{114}{-0.40674} \pgfmath@def{cos}{115}{-0.42262} +\pgfmath@def{cos}{116}{-0.43837} \pgfmath@def{cos}{117}{-0.45399} +\pgfmath@def{cos}{118}{-0.46947} \pgfmath@def{cos}{119}{-0.48481} +\pgfmath@def{cos}{120}{-0.50000} \pgfmath@def{cos}{121}{-0.51504} +\pgfmath@def{cos}{122}{-0.52992} \pgfmath@def{cos}{123}{-0.54464} +\pgfmath@def{cos}{124}{-0.55919} \pgfmath@def{cos}{125}{-0.57358} +\pgfmath@def{cos}{126}{-0.58779} \pgfmath@def{cos}{127}{-0.60182} +\pgfmath@def{cos}{128}{-0.61566} \pgfmath@def{cos}{129}{-0.62932} +\pgfmath@def{cos}{130}{-0.64279} \pgfmath@def{cos}{131}{-0.65606} +\pgfmath@def{cos}{132}{-0.66913} \pgfmath@def{cos}{133}{-0.68200} +\pgfmath@def{cos}{134}{-0.69466} \pgfmath@def{cos}{135}{-0.70711} +\pgfmath@def{cos}{136}{-0.71934} \pgfmath@def{cos}{137}{-0.73135} +\pgfmath@def{cos}{138}{-0.74314} \pgfmath@def{cos}{139}{-0.75471} +\pgfmath@def{cos}{140}{-0.76604} \pgfmath@def{cos}{141}{-0.77715} +\pgfmath@def{cos}{142}{-0.78801} \pgfmath@def{cos}{143}{-0.79864} +\pgfmath@def{cos}{144}{-0.80902} \pgfmath@def{cos}{145}{-0.81915} +\pgfmath@def{cos}{146}{-0.82904} \pgfmath@def{cos}{147}{-0.83867} +\pgfmath@def{cos}{148}{-0.84805} \pgfmath@def{cos}{149}{-0.85717} +\pgfmath@def{cos}{150}{-0.86603} \pgfmath@def{cos}{151}{-0.87462} +\pgfmath@def{cos}{152}{-0.88295} \pgfmath@def{cos}{153}{-0.89101} +\pgfmath@def{cos}{154}{-0.89879} \pgfmath@def{cos}{155}{-0.90631} +\pgfmath@def{cos}{156}{-0.91355} \pgfmath@def{cos}{157}{-0.92050} +\pgfmath@def{cos}{158}{-0.92718} \pgfmath@def{cos}{159}{-0.93358} +\pgfmath@def{cos}{160}{-0.93969} \pgfmath@def{cos}{161}{-0.94552} +\pgfmath@def{cos}{162}{-0.95106} \pgfmath@def{cos}{163}{-0.95630} +\pgfmath@def{cos}{164}{-0.96126} \pgfmath@def{cos}{165}{-0.96593} +\pgfmath@def{cos}{166}{-0.97030} \pgfmath@def{cos}{167}{-0.97437} +\pgfmath@def{cos}{168}{-0.97815} \pgfmath@def{cos}{169}{-0.98163} +\pgfmath@def{cos}{170}{-0.98481} \pgfmath@def{cos}{171}{-0.98769} +\pgfmath@def{cos}{172}{-0.99027} \pgfmath@def{cos}{173}{-0.99255} +\pgfmath@def{cos}{174}{-0.99452} \pgfmath@def{cos}{175}{-0.99619} +\pgfmath@def{cos}{176}{-0.99756} \pgfmath@def{cos}{177}{-0.99863} +\pgfmath@def{cos}{178}{-0.99939} \pgfmath@def{cos}{179}{-0.99985} +\pgfmath@def{cos}{180}{-1.00000} \pgfmath@def{cos}{181}{-0.99985} + +\pgfmath@def{cosfrac}{0}{1.00000} \pgfmath@def{cosfrac}{1}{0.99995} +\pgfmath@def{cosfrac}{2}{0.99980} \pgfmath@def{cosfrac}{3}{0.99955} +\pgfmath@def{cosfrac}{4}{0.99920} \pgfmath@def{cosfrac}{5}{0.99875} +\pgfmath@def{cosfrac}{6}{0.99820} \pgfmath@def{cosfrac}{7}{0.99755} +\pgfmath@def{cosfrac}{8}{0.99681} \pgfmath@def{cosfrac}{9}{0.99597} +\pgfmath@def{cosfrac}{10}{0.99503} \pgfmath@def{cosfrac}{11}{0.99400} +\pgfmath@def{cosfrac}{12}{0.99287} \pgfmath@def{cosfrac}{13}{0.99165} +\pgfmath@def{cosfrac}{14}{0.99034} \pgfmath@def{cosfrac}{15}{0.98893} +\pgfmath@def{cosfrac}{16}{0.98744} \pgfmath@def{cosfrac}{17}{0.98585} +\pgfmath@def{cosfrac}{18}{0.98418} \pgfmath@def{cosfrac}{19}{0.98242} +\pgfmath@def{cosfrac}{20}{0.98058} \pgfmath@def{cosfrac}{21}{0.97865} +\pgfmath@def{cosfrac}{22}{0.97664} \pgfmath@def{cosfrac}{23}{0.97455} +\pgfmath@def{cosfrac}{24}{0.97238} \pgfmath@def{cosfrac}{25}{0.97014} +\pgfmath@def{cosfrac}{26}{0.96782} \pgfmath@def{cosfrac}{27}{0.96542} +\pgfmath@def{cosfrac}{28}{0.96296} \pgfmath@def{cosfrac}{29}{0.96042} +\pgfmath@def{cosfrac}{30}{0.95782} \pgfmath@def{cosfrac}{31}{0.95515} +\pgfmath@def{cosfrac}{32}{0.95242} \pgfmath@def{cosfrac}{33}{0.94962} +\pgfmath@def{cosfrac}{34}{0.94677} \pgfmath@def{cosfrac}{35}{0.94385} +\pgfmath@def{cosfrac}{36}{0.94088} \pgfmath@def{cosfrac}{37}{0.93786} +\pgfmath@def{cosfrac}{38}{0.93478} \pgfmath@def{cosfrac}{39}{0.93165} +\pgfmath@def{cosfrac}{40}{0.92847} \pgfmath@def{cosfrac}{41}{0.92525} +\pgfmath@def{cosfrac}{42}{0.92198} \pgfmath@def{cosfrac}{43}{0.91866} +\pgfmath@def{cosfrac}{44}{0.91531} \pgfmath@def{cosfrac}{45}{0.91192} +\pgfmath@def{cosfrac}{46}{0.90849} \pgfmath@def{cosfrac}{47}{0.90502} +\pgfmath@def{cosfrac}{48}{0.90152} \pgfmath@def{cosfrac}{49}{0.89799} +\pgfmath@def{cosfrac}{50}{0.89442} \pgfmath@def{cosfrac}{51}{0.89083} +\pgfmath@def{cosfrac}{52}{0.88721} \pgfmath@def{cosfrac}{53}{0.88357} +\pgfmath@def{cosfrac}{54}{0.87990} \pgfmath@def{cosfrac}{55}{0.87621} +\pgfmath@def{cosfrac}{56}{0.87250} \pgfmath@def{cosfrac}{57}{0.86877} +\pgfmath@def{cosfrac}{58}{0.86503} \pgfmath@def{cosfrac}{59}{0.86126} +\pgfmath@def{cosfrac}{60}{0.85749} \pgfmath@def{cosfrac}{61}{0.85370} +\pgfmath@def{cosfrac}{62}{0.84990} \pgfmath@def{cosfrac}{63}{0.84609} +\pgfmath@def{cosfrac}{64}{0.84227} \pgfmath@def{cosfrac}{65}{0.83844} +\pgfmath@def{cosfrac}{66}{0.83460} \pgfmath@def{cosfrac}{67}{0.83077} +\pgfmath@def{cosfrac}{68}{0.82692} \pgfmath@def{cosfrac}{69}{0.82308} +\pgfmath@def{cosfrac}{70}{0.81923} \pgfmath@def{cosfrac}{71}{0.81538} +\pgfmath@def{cosfrac}{72}{0.81153} \pgfmath@def{cosfrac}{73}{0.80768} +\pgfmath@def{cosfrac}{74}{0.80384} \pgfmath@def{cosfrac}{75}{0.80000} +\pgfmath@def{cosfrac}{76}{0.79616} \pgfmath@def{cosfrac}{77}{0.79232} +\pgfmath@def{cosfrac}{78}{0.78850} \pgfmath@def{cosfrac}{79}{0.78468} +\pgfmath@def{cosfrac}{80}{0.78086} \pgfmath@def{cosfrac}{81}{0.77706} +\pgfmath@def{cosfrac}{82}{0.77326} \pgfmath@def{cosfrac}{83}{0.76948} +\pgfmath@def{cosfrac}{84}{0.76570} \pgfmath@def{cosfrac}{85}{0.76193} +\pgfmath@def{cosfrac}{86}{0.75818} \pgfmath@def{cosfrac}{87}{0.75444} +\pgfmath@def{cosfrac}{88}{0.75071} \pgfmath@def{cosfrac}{89}{0.74699} +\pgfmath@def{cosfrac}{90}{0.74329} \pgfmath@def{cosfrac}{91}{0.73960} +\pgfmath@def{cosfrac}{92}{0.73593} \pgfmath@def{cosfrac}{93}{0.73227} +\pgfmath@def{cosfrac}{94}{0.72862} \pgfmath@def{cosfrac}{95}{0.72499} +\pgfmath@def{cosfrac}{96}{0.72138} \pgfmath@def{cosfrac}{97}{0.71779} +\pgfmath@def{cosfrac}{98}{0.71421} \pgfmath@def{cosfrac}{99}{0.71065} +\pgfmath@def{cosfrac}{100}{0.70710} + +% Oh No! Some really loooooong tables. +\pgfmath@def{atan}{0}{0.00000} \pgfmath@def{atan}{1}{0.05729} +\pgfmath@def{atan}{2}{0.11459} \pgfmath@def{atan}{3}{0.17188} +\pgfmath@def{atan}{4}{0.22918} \pgfmath@def{atan}{5}{0.28647} +\pgfmath@def{atan}{6}{0.34377} \pgfmath@def{atan}{7}{0.40106} +\pgfmath@def{atan}{8}{0.45835} \pgfmath@def{atan}{9}{0.51564} +\pgfmath@def{atan}{10}{0.57293} \pgfmath@def{atan}{11}{0.63022} +\pgfmath@def{atan}{12}{0.68751} \pgfmath@def{atan}{13}{0.74480} +\pgfmath@def{atan}{14}{0.80208} \pgfmath@def{atan}{15}{0.85937} +\pgfmath@def{atan}{16}{0.91665} \pgfmath@def{atan}{17}{0.97393} +\pgfmath@def{atan}{18}{1.03121} \pgfmath@def{atan}{19}{1.08848} +\pgfmath@def{atan}{20}{1.14576} \pgfmath@def{atan}{21}{1.20303} +\pgfmath@def{atan}{22}{1.26030} \pgfmath@def{atan}{23}{1.31757} +\pgfmath@def{atan}{24}{1.37483} \pgfmath@def{atan}{25}{1.43209} +\pgfmath@def{atan}{26}{1.48935} \pgfmath@def{atan}{27}{1.54661} +\pgfmath@def{atan}{28}{1.60386} \pgfmath@def{atan}{29}{1.66111} +\pgfmath@def{atan}{30}{1.71835} \pgfmath@def{atan}{31}{1.77560} +\pgfmath@def{atan}{32}{1.83284} \pgfmath@def{atan}{33}{1.89007} +\pgfmath@def{atan}{34}{1.94730} \pgfmath@def{atan}{35}{2.00453} +\pgfmath@def{atan}{36}{2.06175} \pgfmath@def{atan}{37}{2.11897} +\pgfmath@def{atan}{38}{2.17619} \pgfmath@def{atan}{39}{2.23340} +\pgfmath@def{atan}{40}{2.29061} \pgfmath@def{atan}{41}{2.34781} +\pgfmath@def{atan}{42}{2.40500} \pgfmath@def{atan}{43}{2.46220} +\pgfmath@def{atan}{44}{2.51938} \pgfmath@def{atan}{45}{2.57657} +\pgfmath@def{atan}{46}{2.63374} \pgfmath@def{atan}{47}{2.69092} +\pgfmath@def{atan}{48}{2.74808} \pgfmath@def{atan}{49}{2.80524} +\pgfmath@def{atan}{50}{2.86240} \pgfmath@def{atan}{51}{2.91955} +\pgfmath@def{atan}{52}{2.97669} \pgfmath@def{atan}{53}{3.03383} +\pgfmath@def{atan}{54}{3.09097} \pgfmath@def{atan}{55}{3.14809} +\pgfmath@def{atan}{56}{3.20521} \pgfmath@def{atan}{57}{3.26232} +\pgfmath@def{atan}{58}{3.31943} \pgfmath@def{atan}{59}{3.37653} +\pgfmath@def{atan}{60}{3.43363} \pgfmath@def{atan}{61}{3.49071} +\pgfmath@def{atan}{62}{3.54779} \pgfmath@def{atan}{63}{3.60487} +\pgfmath@def{atan}{64}{3.66193} \pgfmath@def{atan}{65}{3.71899} +\pgfmath@def{atan}{66}{3.77604} \pgfmath@def{atan}{67}{3.83308} +\pgfmath@def{atan}{68}{3.89012} \pgfmath@def{atan}{69}{3.94715} +\pgfmath@def{atan}{70}{4.00417} \pgfmath@def{atan}{71}{4.06118} +\pgfmath@def{atan}{72}{4.11819} \pgfmath@def{atan}{73}{4.17518} +\pgfmath@def{atan}{74}{4.23217} \pgfmath@def{atan}{75}{4.28915} +\pgfmath@def{atan}{76}{4.34612} \pgfmath@def{atan}{77}{4.40308} +\pgfmath@def{atan}{78}{4.46004} \pgfmath@def{atan}{79}{4.51698} +\pgfmath@def{atan}{80}{4.57392} \pgfmath@def{atan}{81}{4.63084} +\pgfmath@def{atan}{82}{4.68776} \pgfmath@def{atan}{83}{4.74467} +\pgfmath@def{atan}{84}{4.80157} \pgfmath@def{atan}{85}{4.85846} +\pgfmath@def{atan}{86}{4.91534} \pgfmath@def{atan}{87}{4.97221} +\pgfmath@def{atan}{88}{5.02907} \pgfmath@def{atan}{89}{5.08592} +\pgfmath@def{atan}{90}{5.14276} \pgfmath@def{atan}{91}{5.19959} +\pgfmath@def{atan}{92}{5.25641} \pgfmath@def{atan}{93}{5.31322} +\pgfmath@def{atan}{94}{5.37002} \pgfmath@def{atan}{95}{5.42681} +\pgfmath@def{atan}{96}{5.48359} \pgfmath@def{atan}{97}{5.54035} +\pgfmath@def{atan}{98}{5.59711} \pgfmath@def{atan}{99}{5.65385} +\pgfmath@def{atan}{100}{5.71059} \pgfmath@def{atan}{101}{5.76731} +\pgfmath@def{atan}{102}{5.82402} \pgfmath@def{atan}{103}{5.88072} +\pgfmath@def{atan}{104}{5.93741} \pgfmath@def{atan}{105}{5.99409} +\pgfmath@def{atan}{106}{6.05075} \pgfmath@def{atan}{107}{6.10741} +\pgfmath@def{atan}{108}{6.16405} \pgfmath@def{atan}{109}{6.22068} +\pgfmath@def{atan}{110}{6.27729} \pgfmath@def{atan}{111}{6.33390} +\pgfmath@def{atan}{112}{6.39049} \pgfmath@def{atan}{113}{6.44707} +\pgfmath@def{atan}{114}{6.50364} \pgfmath@def{atan}{115}{6.56019} +\pgfmath@def{atan}{116}{6.61673} \pgfmath@def{atan}{117}{6.67326} +\pgfmath@def{atan}{118}{6.72978} \pgfmath@def{atan}{119}{6.78628} +\pgfmath@def{atan}{120}{6.84277} \pgfmath@def{atan}{121}{6.89924} +\pgfmath@def{atan}{122}{6.95571} \pgfmath@def{atan}{123}{7.01216} +\pgfmath@def{atan}{124}{7.06859} \pgfmath@def{atan}{125}{7.12501} +\pgfmath@def{atan}{126}{7.18142} \pgfmath@def{atan}{127}{7.23781} +\pgfmath@def{atan}{128}{7.29419} \pgfmath@def{atan}{129}{7.35056} +\pgfmath@def{atan}{130}{7.40691} \pgfmath@def{atan}{131}{7.46324} +\pgfmath@def{atan}{132}{7.51957} \pgfmath@def{atan}{133}{7.57587} +\pgfmath@def{atan}{134}{7.63217} \pgfmath@def{atan}{135}{7.68844} +\pgfmath@def{atan}{136}{7.74471} \pgfmath@def{atan}{137}{7.80095} +\pgfmath@def{atan}{138}{7.85719} \pgfmath@def{atan}{139}{7.91340} +\pgfmath@def{atan}{140}{7.96961} \pgfmath@def{atan}{141}{8.02579} +\pgfmath@def{atan}{142}{8.08196} \pgfmath@def{atan}{143}{8.13812} +\pgfmath@def{atan}{144}{8.19426} \pgfmath@def{atan}{145}{8.25038} +\pgfmath@def{atan}{146}{8.30649} \pgfmath@def{atan}{147}{8.36258} +\pgfmath@def{atan}{148}{8.41866} \pgfmath@def{atan}{149}{8.47472} +\pgfmath@def{atan}{150}{8.53076} \pgfmath@def{atan}{151}{8.58679} +\pgfmath@def{atan}{152}{8.64280} \pgfmath@def{atan}{153}{8.69879} +\pgfmath@def{atan}{154}{8.75477} \pgfmath@def{atan}{155}{8.81073} +\pgfmath@def{atan}{156}{8.86667} \pgfmath@def{atan}{157}{8.92260} +\pgfmath@def{atan}{158}{8.97851} \pgfmath@def{atan}{159}{9.03440} +\pgfmath@def{atan}{160}{9.09027} \pgfmath@def{atan}{161}{9.14613} +\pgfmath@def{atan}{162}{9.20197} \pgfmath@def{atan}{163}{9.25779} +\pgfmath@def{atan}{164}{9.31359} \pgfmath@def{atan}{165}{9.36938} +\pgfmath@def{atan}{166}{9.42515} \pgfmath@def{atan}{167}{9.48090} +\pgfmath@def{atan}{168}{9.53663} \pgfmath@def{atan}{169}{9.59235} +\pgfmath@def{atan}{170}{9.64804} \pgfmath@def{atan}{171}{9.70372} +\pgfmath@def{atan}{172}{9.75938} \pgfmath@def{atan}{173}{9.81502} +\pgfmath@def{atan}{174}{9.87064} \pgfmath@def{atan}{175}{9.92624} +\pgfmath@def{atan}{176}{9.98182} \pgfmath@def{atan}{177}{10.03739} +\pgfmath@def{atan}{178}{10.09294} \pgfmath@def{atan}{179}{10.14846} +\pgfmath@def{atan}{180}{10.20397} \pgfmath@def{atan}{181}{10.25946} +\pgfmath@def{atan}{182}{10.31493} \pgfmath@def{atan}{183}{10.37037} +\pgfmath@def{atan}{184}{10.42580} \pgfmath@def{atan}{185}{10.48121} +\pgfmath@def{atan}{186}{10.53660} \pgfmath@def{atan}{187}{10.59197} +\pgfmath@def{atan}{188}{10.64732} \pgfmath@def{atan}{189}{10.70265} +\pgfmath@def{atan}{190}{10.75796} \pgfmath@def{atan}{191}{10.81325} +\pgfmath@def{atan}{192}{10.86852} \pgfmath@def{atan}{193}{10.92377} +\pgfmath@def{atan}{194}{10.97900} \pgfmath@def{atan}{195}{11.03420} +\pgfmath@def{atan}{196}{11.08939} \pgfmath@def{atan}{197}{11.14456} +\pgfmath@def{atan}{198}{11.19970} \pgfmath@def{atan}{199}{11.25483} +\pgfmath@def{atan}{200}{11.30993} \pgfmath@def{atan}{201}{11.36501} +\pgfmath@def{atan}{202}{11.42007} \pgfmath@def{atan}{203}{11.47511} +\pgfmath@def{atan}{204}{11.53013} \pgfmath@def{atan}{205}{11.58512} +\pgfmath@def{atan}{206}{11.64010} \pgfmath@def{atan}{207}{11.69505} +\pgfmath@def{atan}{208}{11.74998} \pgfmath@def{atan}{209}{11.80489} +\pgfmath@def{atan}{210}{11.85977} \pgfmath@def{atan}{211}{11.91464} +\pgfmath@def{atan}{212}{11.96948} \pgfmath@def{atan}{213}{12.02430} +\pgfmath@def{atan}{214}{12.07910} \pgfmath@def{atan}{215}{12.13388} +\pgfmath@def{atan}{216}{12.18863} \pgfmath@def{atan}{217}{12.24336} +\pgfmath@def{atan}{218}{12.29807} \pgfmath@def{atan}{219}{12.35275} +\pgfmath@def{atan}{220}{12.40741} \pgfmath@def{atan}{221}{12.46205} +\pgfmath@def{atan}{222}{12.51667} \pgfmath@def{atan}{223}{12.57126} +\pgfmath@def{atan}{224}{12.62583} \pgfmath@def{atan}{225}{12.68038} +\pgfmath@def{atan}{226}{12.73490} \pgfmath@def{atan}{227}{12.78940} +\pgfmath@def{atan}{228}{12.84388} \pgfmath@def{atan}{229}{12.89833} +\pgfmath@def{atan}{230}{12.95276} \pgfmath@def{atan}{231}{13.00717} +\pgfmath@def{atan}{232}{13.06155} \pgfmath@def{atan}{233}{13.11590} +\pgfmath@def{atan}{234}{13.17024} \pgfmath@def{atan}{235}{13.22455} +\pgfmath@def{atan}{236}{13.27883} \pgfmath@def{atan}{237}{13.33309} +\pgfmath@def{atan}{238}{13.38733} \pgfmath@def{atan}{239}{13.44154} +\pgfmath@def{atan}{240}{13.49573} \pgfmath@def{atan}{241}{13.54989} +\pgfmath@def{atan}{242}{13.60403} \pgfmath@def{atan}{243}{13.65814} +\pgfmath@def{atan}{244}{13.71223} \pgfmath@def{atan}{245}{13.76630} +\pgfmath@def{atan}{246}{13.82034} \pgfmath@def{atan}{247}{13.87435} +\pgfmath@def{atan}{248}{13.92834} \pgfmath@def{atan}{249}{13.98230} +\pgfmath@def{atan}{250}{14.03624} \pgfmath@def{atan}{251}{14.09015} +\pgfmath@def{atan}{252}{14.14404} \pgfmath@def{atan}{253}{14.19790} +\pgfmath@def{atan}{254}{14.25174} \pgfmath@def{atan}{255}{14.30555} +\pgfmath@def{atan}{256}{14.35933} \pgfmath@def{atan}{257}{14.41309} +\pgfmath@def{atan}{258}{14.46682} \pgfmath@def{atan}{259}{14.52053} +\pgfmath@def{atan}{260}{14.57421} \pgfmath@def{atan}{261}{14.62787} +\pgfmath@def{atan}{262}{14.68149} \pgfmath@def{atan}{263}{14.73510} +\pgfmath@def{atan}{264}{14.78867} \pgfmath@def{atan}{265}{14.84222} +\pgfmath@def{atan}{266}{14.89575} \pgfmath@def{atan}{267}{14.94924} +\pgfmath@def{atan}{268}{15.00271} \pgfmath@def{atan}{269}{15.05615} +\pgfmath@def{atan}{270}{15.10957} \pgfmath@def{atan}{271}{15.16296} +\pgfmath@def{atan}{272}{15.21632} \pgfmath@def{atan}{273}{15.26966} +\pgfmath@def{atan}{274}{15.32297} \pgfmath@def{atan}{275}{15.37625} +\pgfmath@def{atan}{276}{15.42950} \pgfmath@def{atan}{277}{15.48273} +\pgfmath@def{atan}{278}{15.53593} \pgfmath@def{atan}{279}{15.58910} +\pgfmath@def{atan}{280}{15.64224} \pgfmath@def{atan}{281}{15.69536} +\pgfmath@def{atan}{282}{15.74845} \pgfmath@def{atan}{283}{15.80151} +\pgfmath@def{atan}{284}{15.85454} \pgfmath@def{atan}{285}{15.90755} +\pgfmath@def{atan}{286}{15.96052} \pgfmath@def{atan}{287}{16.01347} +\pgfmath@def{atan}{288}{16.06640} \pgfmath@def{atan}{289}{16.11929} +\pgfmath@def{atan}{290}{16.17215} \pgfmath@def{atan}{291}{16.22499} +\pgfmath@def{atan}{292}{16.27780} \pgfmath@def{atan}{293}{16.33058} +\pgfmath@def{atan}{294}{16.38333} \pgfmath@def{atan}{295}{16.43605} +\pgfmath@def{atan}{296}{16.48875} \pgfmath@def{atan}{297}{16.54142} +\pgfmath@def{atan}{298}{16.59405} \pgfmath@def{atan}{299}{16.64666} +\pgfmath@def{atan}{300}{16.69924} \pgfmath@def{atan}{301}{16.75179} +\pgfmath@def{atan}{302}{16.80431} \pgfmath@def{atan}{303}{16.85680} +\pgfmath@def{atan}{304}{16.90927} \pgfmath@def{atan}{305}{16.96170} +\pgfmath@def{atan}{306}{17.01411} \pgfmath@def{atan}{307}{17.06648} +\pgfmath@def{atan}{308}{17.11883} \pgfmath@def{atan}{309}{17.17114} +\pgfmath@def{atan}{310}{17.22343} \pgfmath@def{atan}{311}{17.27569} +\pgfmath@def{atan}{312}{17.32792} \pgfmath@def{atan}{313}{17.38012} +\pgfmath@def{atan}{314}{17.43228} \pgfmath@def{atan}{315}{17.48442} +\pgfmath@def{atan}{316}{17.53653} \pgfmath@def{atan}{317}{17.58861} +\pgfmath@def{atan}{318}{17.64066} \pgfmath@def{atan}{319}{17.69268} +\pgfmath@def{atan}{320}{17.74467} \pgfmath@def{atan}{321}{17.79663} +\pgfmath@def{atan}{322}{17.84855} \pgfmath@def{atan}{323}{17.90045} +\pgfmath@def{atan}{324}{17.95232} \pgfmath@def{atan}{325}{18.00416} +\pgfmath@def{atan}{326}{18.05596} \pgfmath@def{atan}{327}{18.10774} +\pgfmath@def{atan}{328}{18.15949} \pgfmath@def{atan}{329}{18.21120} +\pgfmath@def{atan}{330}{18.26289} \pgfmath@def{atan}{331}{18.31454} +\pgfmath@def{atan}{332}{18.36616} \pgfmath@def{atan}{333}{18.41775} +\pgfmath@def{atan}{334}{18.46931} \pgfmath@def{atan}{335}{18.52084} +\pgfmath@def{atan}{336}{18.57234} \pgfmath@def{atan}{337}{18.62381} +\pgfmath@def{atan}{338}{18.67525} \pgfmath@def{atan}{339}{18.72665} +\pgfmath@def{atan}{340}{18.77803} \pgfmath@def{atan}{341}{18.82937} +\pgfmath@def{atan}{342}{18.88068} \pgfmath@def{atan}{343}{18.93196} +\pgfmath@def{atan}{344}{18.98321} \pgfmath@def{atan}{345}{19.03443} +\pgfmath@def{atan}{346}{19.08562} \pgfmath@def{atan}{347}{19.13677} +\pgfmath@def{atan}{348}{19.18789} \pgfmath@def{atan}{349}{19.23898} +\pgfmath@def{atan}{350}{19.29004} \pgfmath@def{atan}{351}{19.34107} +\pgfmath@def{atan}{352}{19.39206} \pgfmath@def{atan}{353}{19.44303} +\pgfmath@def{atan}{354}{19.49396} \pgfmath@def{atan}{355}{19.54486} +\pgfmath@def{atan}{356}{19.59572} \pgfmath@def{atan}{357}{19.64656} +\pgfmath@def{atan}{358}{19.69736} \pgfmath@def{atan}{359}{19.74813} +\pgfmath@def{atan}{360}{19.79887} \pgfmath@def{atan}{361}{19.84958} +\pgfmath@def{atan}{362}{19.90025} \pgfmath@def{atan}{363}{19.95089} +\pgfmath@def{atan}{364}{20.00150} \pgfmath@def{atan}{365}{20.05208} +\pgfmath@def{atan}{366}{20.10262} \pgfmath@def{atan}{367}{20.15313} +\pgfmath@def{atan}{368}{20.20361} \pgfmath@def{atan}{369}{20.25406} +\pgfmath@def{atan}{370}{20.30447} \pgfmath@def{atan}{371}{20.35485} +\pgfmath@def{atan}{372}{20.40520} \pgfmath@def{atan}{373}{20.45551} +\pgfmath@def{atan}{374}{20.50579} \pgfmath@def{atan}{375}{20.55604} +\pgfmath@def{atan}{376}{20.60626} \pgfmath@def{atan}{377}{20.65644} +\pgfmath@def{atan}{378}{20.70659} \pgfmath@def{atan}{379}{20.75670} +\pgfmath@def{atan}{380}{20.80679} \pgfmath@def{atan}{381}{20.85684} +\pgfmath@def{atan}{382}{20.90685} \pgfmath@def{atan}{383}{20.95684} +\pgfmath@def{atan}{384}{21.00678} \pgfmath@def{atan}{385}{21.05670} +\pgfmath@def{atan}{386}{21.10658} \pgfmath@def{atan}{387}{21.15643} +\pgfmath@def{atan}{388}{21.20625} \pgfmath@def{atan}{389}{21.25603} +\pgfmath@def{atan}{390}{21.30578} \pgfmath@def{atan}{391}{21.35549} +\pgfmath@def{atan}{392}{21.40517} \pgfmath@def{atan}{393}{21.45482} +\pgfmath@def{atan}{394}{21.50444} \pgfmath@def{atan}{395}{21.55402} +\pgfmath@def{atan}{396}{21.60356} \pgfmath@def{atan}{397}{21.65307} +\pgfmath@def{atan}{398}{21.70255} \pgfmath@def{atan}{399}{21.75200} +\pgfmath@def{atan}{400}{21.80140} \pgfmath@def{atan}{401}{21.85078} +\pgfmath@def{atan}{402}{21.90012} \pgfmath@def{atan}{403}{21.94943} +\pgfmath@def{atan}{404}{21.99870} \pgfmath@def{atan}{405}{22.04794} +\pgfmath@def{atan}{406}{22.09715} \pgfmath@def{atan}{407}{22.14632} +\pgfmath@def{atan}{408}{22.19546} \pgfmath@def{atan}{409}{22.24456} +\pgfmath@def{atan}{410}{22.29362} \pgfmath@def{atan}{411}{22.34266} +\pgfmath@def{atan}{412}{22.39166} \pgfmath@def{atan}{413}{22.44062} +\pgfmath@def{atan}{414}{22.48955} \pgfmath@def{atan}{415}{22.53845} +\pgfmath@def{atan}{416}{22.58731} \pgfmath@def{atan}{417}{22.63613} +\pgfmath@def{atan}{418}{22.68492} \pgfmath@def{atan}{419}{22.73368} +\pgfmath@def{atan}{420}{22.78240} \pgfmath@def{atan}{421}{22.83109} +\pgfmath@def{atan}{422}{22.87974} \pgfmath@def{atan}{423}{22.92836} +\pgfmath@def{atan}{424}{22.97694} \pgfmath@def{atan}{425}{23.02549} +\pgfmath@def{atan}{426}{23.07400} \pgfmath@def{atan}{427}{23.12248} +\pgfmath@def{atan}{428}{23.17092} \pgfmath@def{atan}{429}{23.21933} +\pgfmath@def{atan}{430}{23.26770} \pgfmath@def{atan}{431}{23.31604} +\pgfmath@def{atan}{432}{23.36434} \pgfmath@def{atan}{433}{23.41261} +\pgfmath@def{atan}{434}{23.46084} \pgfmath@def{atan}{435}{23.50904} +\pgfmath@def{atan}{436}{23.55720} \pgfmath@def{atan}{437}{23.60532} +\pgfmath@def{atan}{438}{23.65341} \pgfmath@def{atan}{439}{23.70147} +\pgfmath@def{atan}{440}{23.74949} \pgfmath@def{atan}{441}{23.79747} +\pgfmath@def{atan}{442}{23.84542} \pgfmath@def{atan}{443}{23.89334} +\pgfmath@def{atan}{444}{23.94122} \pgfmath@def{atan}{445}{23.98906} +\pgfmath@def{atan}{446}{24.03687} \pgfmath@def{atan}{447}{24.08464} +\pgfmath@def{atan}{448}{24.13238} \pgfmath@def{atan}{449}{24.18008} +\pgfmath@def{atan}{450}{24.22774} \pgfmath@def{atan}{451}{24.27537} +\pgfmath@def{atan}{452}{24.32296} \pgfmath@def{atan}{453}{24.37052} +\pgfmath@def{atan}{454}{24.41804} \pgfmath@def{atan}{455}{24.46553} +\pgfmath@def{atan}{456}{24.51298} \pgfmath@def{atan}{457}{24.56040} +\pgfmath@def{atan}{458}{24.60778} \pgfmath@def{atan}{459}{24.65512} +\pgfmath@def{atan}{460}{24.70243} \pgfmath@def{atan}{461}{24.74970} +\pgfmath@def{atan}{462}{24.79693} \pgfmath@def{atan}{463}{24.84413} +\pgfmath@def{atan}{464}{24.89130} \pgfmath@def{atan}{465}{24.93842} +\pgfmath@def{atan}{466}{24.98551} \pgfmath@def{atan}{467}{25.03257} +\pgfmath@def{atan}{468}{25.07959} \pgfmath@def{atan}{469}{25.12657} +\pgfmath@def{atan}{470}{25.17352} \pgfmath@def{atan}{471}{25.22043} +\pgfmath@def{atan}{472}{25.26731} \pgfmath@def{atan}{473}{25.31414} +\pgfmath@def{atan}{474}{25.36095} \pgfmath@def{atan}{475}{25.40771} +\pgfmath@def{atan}{476}{25.45444} \pgfmath@def{atan}{477}{25.50114} +\pgfmath@def{atan}{478}{25.54780} \pgfmath@def{atan}{479}{25.59442} +\pgfmath@def{atan}{480}{25.64100} \pgfmath@def{atan}{481}{25.68755} +\pgfmath@def{atan}{482}{25.73406} \pgfmath@def{atan}{483}{25.78054} +\pgfmath@def{atan}{484}{25.82698} \pgfmath@def{atan}{485}{25.87338} +\pgfmath@def{atan}{486}{25.91975} \pgfmath@def{atan}{487}{25.96608} +\pgfmath@def{atan}{488}{26.01237} \pgfmath@def{atan}{489}{26.05863} +\pgfmath@def{atan}{490}{26.10485} \pgfmath@def{atan}{491}{26.15103} +\pgfmath@def{atan}{492}{26.19718} \pgfmath@def{atan}{493}{26.24329} +\pgfmath@def{atan}{494}{26.28937} \pgfmath@def{atan}{495}{26.33541} +\pgfmath@def{atan}{496}{26.38141} \pgfmath@def{atan}{497}{26.42737} +\pgfmath@def{atan}{498}{26.47330} \pgfmath@def{atan}{499}{26.51919} +\pgfmath@def{atan}{500}{26.56505} \pgfmath@def{atan}{501}{26.61086} +\pgfmath@def{atan}{502}{26.65665} \pgfmath@def{atan}{503}{26.70239} +\pgfmath@def{atan}{504}{26.74810} \pgfmath@def{atan}{505}{26.79377} +\pgfmath@def{atan}{506}{26.83941} \pgfmath@def{atan}{507}{26.88500} +\pgfmath@def{atan}{508}{26.93057} \pgfmath@def{atan}{509}{26.97609} +\pgfmath@def{atan}{510}{27.02158} \pgfmath@def{atan}{511}{27.06703} +\pgfmath@def{atan}{512}{27.11244} \pgfmath@def{atan}{513}{27.15782} +\pgfmath@def{atan}{514}{27.20316} \pgfmath@def{atan}{515}{27.24846} +\pgfmath@def{atan}{516}{27.29373} \pgfmath@def{atan}{517}{27.33896} +\pgfmath@def{atan}{518}{27.38415} \pgfmath@def{atan}{519}{27.42931} +\pgfmath@def{atan}{520}{27.47443} \pgfmath@def{atan}{521}{27.51951} +\pgfmath@def{atan}{522}{27.56455} \pgfmath@def{atan}{523}{27.60956} +\pgfmath@def{atan}{524}{27.65453} \pgfmath@def{atan}{525}{27.69947} +\pgfmath@def{atan}{526}{27.74437} \pgfmath@def{atan}{527}{27.78923} +\pgfmath@def{atan}{528}{27.83405} \pgfmath@def{atan}{529}{27.87884} +\pgfmath@def{atan}{530}{27.92359} \pgfmath@def{atan}{531}{27.96830} +\pgfmath@def{atan}{532}{28.01297} \pgfmath@def{atan}{533}{28.05761} +\pgfmath@def{atan}{534}{28.10221} \pgfmath@def{atan}{535}{28.14678} +\pgfmath@def{atan}{536}{28.19130} \pgfmath@def{atan}{537}{28.23579} +\pgfmath@def{atan}{538}{28.28025} \pgfmath@def{atan}{539}{28.32466} +\pgfmath@def{atan}{540}{28.36904} \pgfmath@def{atan}{541}{28.41338} +\pgfmath@def{atan}{542}{28.45769} \pgfmath@def{atan}{543}{28.50196} +\pgfmath@def{atan}{544}{28.54619} \pgfmath@def{atan}{545}{28.59038} +\pgfmath@def{atan}{546}{28.63454} \pgfmath@def{atan}{547}{28.67865} +\pgfmath@def{atan}{548}{28.72274} \pgfmath@def{atan}{549}{28.76678} +\pgfmath@def{atan}{550}{28.81079} \pgfmath@def{atan}{551}{28.85476} +\pgfmath@def{atan}{552}{28.89869} \pgfmath@def{atan}{553}{28.94259} +\pgfmath@def{atan}{554}{28.98645} \pgfmath@def{atan}{555}{29.03027} +\pgfmath@def{atan}{556}{29.07405} \pgfmath@def{atan}{557}{29.11780} +\pgfmath@def{atan}{558}{29.16151} \pgfmath@def{atan}{559}{29.20519} +\pgfmath@def{atan}{560}{29.24882} \pgfmath@def{atan}{561}{29.29242} +\pgfmath@def{atan}{562}{29.33598} \pgfmath@def{atan}{563}{29.37951} +\pgfmath@def{atan}{564}{29.42299} \pgfmath@def{atan}{565}{29.46644} +\pgfmath@def{atan}{566}{29.50986} \pgfmath@def{atan}{567}{29.55323} +\pgfmath@def{atan}{568}{29.59657} \pgfmath@def{atan}{569}{29.63987} +\pgfmath@def{atan}{570}{29.68314} \pgfmath@def{atan}{571}{29.72636} +\pgfmath@def{atan}{572}{29.76955} \pgfmath@def{atan}{573}{29.81270} +\pgfmath@def{atan}{574}{29.85582} \pgfmath@def{atan}{575}{29.89890} +\pgfmath@def{atan}{576}{29.94194} \pgfmath@def{atan}{577}{29.98494} +\pgfmath@def{atan}{578}{30.02791} \pgfmath@def{atan}{579}{30.07084} +\pgfmath@def{atan}{580}{30.11373} \pgfmath@def{atan}{581}{30.15658} +\pgfmath@def{atan}{582}{30.19940} \pgfmath@def{atan}{583}{30.24218} +\pgfmath@def{atan}{584}{30.28492} \pgfmath@def{atan}{585}{30.32763} +\pgfmath@def{atan}{586}{30.37030} \pgfmath@def{atan}{587}{30.41293} +\pgfmath@def{atan}{588}{30.45552} \pgfmath@def{atan}{589}{30.49808} +\pgfmath@def{atan}{590}{30.54060} \pgfmath@def{atan}{591}{30.58308} +\pgfmath@def{atan}{592}{30.62553} \pgfmath@def{atan}{593}{30.66794} +\pgfmath@def{atan}{594}{30.71031} \pgfmath@def{atan}{595}{30.75264} +\pgfmath@def{atan}{596}{30.79494} \pgfmath@def{atan}{597}{30.83720} +\pgfmath@def{atan}{598}{30.87942} \pgfmath@def{atan}{599}{30.92160} +\pgfmath@def{atan}{600}{30.96375} \pgfmath@def{atan}{601}{31.00586} +\pgfmath@def{atan}{602}{31.04794} \pgfmath@def{atan}{603}{31.08997} +\pgfmath@def{atan}{604}{31.13197} \pgfmath@def{atan}{605}{31.17393} +\pgfmath@def{atan}{606}{31.21586} \pgfmath@def{atan}{607}{31.25775} +\pgfmath@def{atan}{608}{31.29960} \pgfmath@def{atan}{609}{31.34141} +\pgfmath@def{atan}{610}{31.38319} \pgfmath@def{atan}{611}{31.42493} +\pgfmath@def{atan}{612}{31.46663} \pgfmath@def{atan}{613}{31.50829} +\pgfmath@def{atan}{614}{31.54992} \pgfmath@def{atan}{615}{31.59151} +\pgfmath@def{atan}{616}{31.63306} \pgfmath@def{atan}{617}{31.67458} +\pgfmath@def{atan}{618}{31.71606} \pgfmath@def{atan}{619}{31.75750} +\pgfmath@def{atan}{620}{31.79891} \pgfmath@def{atan}{621}{31.84028} +\pgfmath@def{atan}{622}{31.88161} \pgfmath@def{atan}{623}{31.92290} +\pgfmath@def{atan}{624}{31.96416} \pgfmath@def{atan}{625}{32.00538} +\pgfmath@def{atan}{626}{32.04656} \pgfmath@def{atan}{627}{32.08771} +\pgfmath@def{atan}{628}{32.12882} \pgfmath@def{atan}{629}{32.16989} +\pgfmath@def{atan}{630}{32.21092} \pgfmath@def{atan}{631}{32.25192} +\pgfmath@def{atan}{632}{32.29288} \pgfmath@def{atan}{633}{32.33381} +\pgfmath@def{atan}{634}{32.37469} \pgfmath@def{atan}{635}{32.41554} +\pgfmath@def{atan}{636}{32.45636} \pgfmath@def{atan}{637}{32.49713} +\pgfmath@def{atan}{638}{32.53787} \pgfmath@def{atan}{639}{32.57857} +\pgfmath@def{atan}{640}{32.61924} \pgfmath@def{atan}{641}{32.65987} +\pgfmath@def{atan}{642}{32.70046} \pgfmath@def{atan}{643}{32.74101} +\pgfmath@def{atan}{644}{32.78153} \pgfmath@def{atan}{645}{32.82201} +\pgfmath@def{atan}{646}{32.86246} \pgfmath@def{atan}{647}{32.90286} +\pgfmath@def{atan}{648}{32.94323} \pgfmath@def{atan}{649}{32.98357} +\pgfmath@def{atan}{650}{33.02386} \pgfmath@def{atan}{651}{33.06412} +\pgfmath@def{atan}{652}{33.10435} \pgfmath@def{atan}{653}{33.14453} +\pgfmath@def{atan}{654}{33.18468} \pgfmath@def{atan}{655}{33.22479} +\pgfmath@def{atan}{656}{33.26487} \pgfmath@def{atan}{657}{33.30491} +\pgfmath@def{atan}{658}{33.34491} \pgfmath@def{atan}{659}{33.38488} +\pgfmath@def{atan}{660}{33.42481} \pgfmath@def{atan}{661}{33.46470} +\pgfmath@def{atan}{662}{33.50455} \pgfmath@def{atan}{663}{33.54437} +\pgfmath@def{atan}{664}{33.58416} \pgfmath@def{atan}{665}{33.62390} +\pgfmath@def{atan}{666}{33.66361} \pgfmath@def{atan}{667}{33.70328} +\pgfmath@def{atan}{668}{33.74292} \pgfmath@def{atan}{669}{33.78252} +\pgfmath@def{atan}{670}{33.82208} \pgfmath@def{atan}{671}{33.86161} +\pgfmath@def{atan}{672}{33.90110} \pgfmath@def{atan}{673}{33.94055} +\pgfmath@def{atan}{674}{33.97997} \pgfmath@def{atan}{675}{34.01935} +\pgfmath@def{atan}{676}{34.05869} \pgfmath@def{atan}{677}{34.09800} +\pgfmath@def{atan}{678}{34.13727} \pgfmath@def{atan}{679}{34.17650} +\pgfmath@def{atan}{680}{34.21570} \pgfmath@def{atan}{681}{34.25486} +\pgfmath@def{atan}{682}{34.29398} \pgfmath@def{atan}{683}{34.33307} +\pgfmath@def{atan}{684}{34.37212} \pgfmath@def{atan}{685}{34.41114} +\pgfmath@def{atan}{686}{34.45012} \pgfmath@def{atan}{687}{34.48906} +\pgfmath@def{atan}{688}{34.52797} \pgfmath@def{atan}{689}{34.56684} +\pgfmath@def{atan}{690}{34.60567} \pgfmath@def{atan}{691}{34.64447} +\pgfmath@def{atan}{692}{34.68323} \pgfmath@def{atan}{693}{34.72195} +\pgfmath@def{atan}{694}{34.76064} \pgfmath@def{atan}{695}{34.79930} +\pgfmath@def{atan}{696}{34.83791} \pgfmath@def{atan}{697}{34.87649} +\pgfmath@def{atan}{698}{34.91504} \pgfmath@def{atan}{699}{34.95354} +\pgfmath@def{atan}{700}{34.99202} \pgfmath@def{atan}{701}{35.03045} +\pgfmath@def{atan}{702}{35.06885} \pgfmath@def{atan}{703}{35.10721} +\pgfmath@def{atan}{704}{35.14554} \pgfmath@def{atan}{705}{35.18383} +\pgfmath@def{atan}{706}{35.22209} \pgfmath@def{atan}{707}{35.26031} +\pgfmath@def{atan}{708}{35.29849} \pgfmath@def{atan}{709}{35.33664} +\pgfmath@def{atan}{710}{35.37475} \pgfmath@def{atan}{711}{35.41282} +\pgfmath@def{atan}{712}{35.45086} \pgfmath@def{atan}{713}{35.48886} +\pgfmath@def{atan}{714}{35.52683} \pgfmath@def{atan}{715}{35.56476} +\pgfmath@def{atan}{716}{35.60266} \pgfmath@def{atan}{717}{35.64052} +\pgfmath@def{atan}{718}{35.67834} \pgfmath@def{atan}{719}{35.71613} +\pgfmath@def{atan}{720}{35.75388} \pgfmath@def{atan}{721}{35.79160} +\pgfmath@def{atan}{722}{35.82928} \pgfmath@def{atan}{723}{35.86692} +\pgfmath@def{atan}{724}{35.90453} \pgfmath@def{atan}{725}{35.94211} +\pgfmath@def{atan}{726}{35.97965} \pgfmath@def{atan}{727}{36.01715} +\pgfmath@def{atan}{728}{36.05461} \pgfmath@def{atan}{729}{36.09204} +\pgfmath@def{atan}{730}{36.12944} \pgfmath@def{atan}{731}{36.16680} +\pgfmath@def{atan}{732}{36.20412} \pgfmath@def{atan}{733}{36.24141} +\pgfmath@def{atan}{734}{36.27866} \pgfmath@def{atan}{735}{36.31588} +\pgfmath@def{atan}{736}{36.35306} \pgfmath@def{atan}{737}{36.39021} +\pgfmath@def{atan}{738}{36.42732} \pgfmath@def{atan}{739}{36.46440} +\pgfmath@def{atan}{740}{36.50144} \pgfmath@def{atan}{741}{36.53844} +\pgfmath@def{atan}{742}{36.57541} \pgfmath@def{atan}{743}{36.61234} +\pgfmath@def{atan}{744}{36.64924} \pgfmath@def{atan}{745}{36.68611} +\pgfmath@def{atan}{746}{36.72293} \pgfmath@def{atan}{747}{36.75973} +\pgfmath@def{atan}{748}{36.79648} \pgfmath@def{atan}{749}{36.83321} +\pgfmath@def{atan}{750}{36.86989} \pgfmath@def{atan}{751}{36.90654} +\pgfmath@def{atan}{752}{36.94316} \pgfmath@def{atan}{753}{36.97974} +\pgfmath@def{atan}{754}{37.01629} \pgfmath@def{atan}{755}{37.05280} +\pgfmath@def{atan}{756}{37.08928} \pgfmath@def{atan}{757}{37.12572} +\pgfmath@def{atan}{758}{37.16212} \pgfmath@def{atan}{759}{37.19849} +\pgfmath@def{atan}{760}{37.23483} \pgfmath@def{atan}{761}{37.27113} +\pgfmath@def{atan}{762}{37.30740} \pgfmath@def{atan}{763}{37.34363} +\pgfmath@def{atan}{764}{37.37982} \pgfmath@def{atan}{765}{37.41598} +\pgfmath@def{atan}{766}{37.45211} \pgfmath@def{atan}{767}{37.48820} +\pgfmath@def{atan}{768}{37.52426} \pgfmath@def{atan}{769}{37.56028} +\pgfmath@def{atan}{770}{37.59627} \pgfmath@def{atan}{771}{37.63222} +\pgfmath@def{atan}{772}{37.66814} \pgfmath@def{atan}{773}{37.70402} +\pgfmath@def{atan}{774}{37.73987} \pgfmath@def{atan}{775}{37.77568} +\pgfmath@def{atan}{776}{37.81146} \pgfmath@def{atan}{777}{37.84720} +\pgfmath@def{atan}{778}{37.88291} \pgfmath@def{atan}{779}{37.91859} +\pgfmath@def{atan}{780}{37.95423} \pgfmath@def{atan}{781}{37.98983} +\pgfmath@def{atan}{782}{38.02540} \pgfmath@def{atan}{783}{38.06094} +\pgfmath@def{atan}{784}{38.09644} \pgfmath@def{atan}{785}{38.13191} +\pgfmath@def{atan}{786}{38.16734} \pgfmath@def{atan}{787}{38.20274} +\pgfmath@def{atan}{788}{38.23811} \pgfmath@def{atan}{789}{38.27344} +\pgfmath@def{atan}{790}{38.30873} \pgfmath@def{atan}{791}{38.34399} +\pgfmath@def{atan}{792}{38.37922} \pgfmath@def{atan}{793}{38.41441} +\pgfmath@def{atan}{794}{38.44957} \pgfmath@def{atan}{795}{38.48469} +\pgfmath@def{atan}{796}{38.51979} \pgfmath@def{atan}{797}{38.55484} +\pgfmath@def{atan}{798}{38.58986} \pgfmath@def{atan}{799}{38.62485} +\pgfmath@def{atan}{800}{38.65980} \pgfmath@def{atan}{801}{38.69472} +\pgfmath@def{atan}{802}{38.72961} \pgfmath@def{atan}{803}{38.76446} +\pgfmath@def{atan}{804}{38.79928} \pgfmath@def{atan}{805}{38.83406} +\pgfmath@def{atan}{806}{38.86881} \pgfmath@def{atan}{807}{38.90353} +\pgfmath@def{atan}{808}{38.93821} \pgfmath@def{atan}{809}{38.97285} +\pgfmath@def{atan}{810}{39.00747} \pgfmath@def{atan}{811}{39.04205} +\pgfmath@def{atan}{812}{39.07659} \pgfmath@def{atan}{813}{39.11111} +\pgfmath@def{atan}{814}{39.14558} \pgfmath@def{atan}{815}{39.18003} +\pgfmath@def{atan}{816}{39.21444} \pgfmath@def{atan}{817}{39.24882} +\pgfmath@def{atan}{818}{39.28316} \pgfmath@def{atan}{819}{39.31747} +\pgfmath@def{atan}{820}{39.35175} \pgfmath@def{atan}{821}{39.38599} +\pgfmath@def{atan}{822}{39.42020} \pgfmath@def{atan}{823}{39.45438} +\pgfmath@def{atan}{824}{39.48852} \pgfmath@def{atan}{825}{39.52263} +\pgfmath@def{atan}{826}{39.55670} \pgfmath@def{atan}{827}{39.59074} +\pgfmath@def{atan}{828}{39.62475} \pgfmath@def{atan}{829}{39.65873} +\pgfmath@def{atan}{830}{39.69267} \pgfmath@def{atan}{831}{39.72658} +\pgfmath@def{atan}{832}{39.76045} \pgfmath@def{atan}{833}{39.79429} +\pgfmath@def{atan}{834}{39.82810} \pgfmath@def{atan}{835}{39.86188} +\pgfmath@def{atan}{836}{39.89562} \pgfmath@def{atan}{837}{39.92933} +\pgfmath@def{atan}{838}{39.96300} \pgfmath@def{atan}{839}{39.99665} +\pgfmath@def{atan}{840}{40.03025} \pgfmath@def{atan}{841}{40.06383} +\pgfmath@def{atan}{842}{40.09737} \pgfmath@def{atan}{843}{40.13088} +\pgfmath@def{atan}{844}{40.16436} \pgfmath@def{atan}{845}{40.19781} +\pgfmath@def{atan}{846}{40.23122} \pgfmath@def{atan}{847}{40.26459} +\pgfmath@def{atan}{848}{40.29794} \pgfmath@def{atan}{849}{40.33125} +\pgfmath@def{atan}{850}{40.36453} \pgfmath@def{atan}{851}{40.39778} +\pgfmath@def{atan}{852}{40.43099} \pgfmath@def{atan}{853}{40.46417} +\pgfmath@def{atan}{854}{40.49732} \pgfmath@def{atan}{855}{40.53044} +\pgfmath@def{atan}{856}{40.56352} \pgfmath@def{atan}{857}{40.59657} +\pgfmath@def{atan}{858}{40.62959} \pgfmath@def{atan}{859}{40.66257} +\pgfmath@def{atan}{860}{40.69553} \pgfmath@def{atan}{861}{40.72845} +\pgfmath@def{atan}{862}{40.76133} \pgfmath@def{atan}{863}{40.79419} +\pgfmath@def{atan}{864}{40.82701} \pgfmath@def{atan}{865}{40.85980} +\pgfmath@def{atan}{866}{40.89256} \pgfmath@def{atan}{867}{40.92528} +\pgfmath@def{atan}{868}{40.95798} \pgfmath@def{atan}{869}{40.99064} +\pgfmath@def{atan}{870}{41.02326} \pgfmath@def{atan}{871}{41.05586} +\pgfmath@def{atan}{872}{41.08842} \pgfmath@def{atan}{873}{41.12095} +\pgfmath@def{atan}{874}{41.15345} \pgfmath@def{atan}{875}{41.18592} +\pgfmath@def{atan}{876}{41.21836} \pgfmath@def{atan}{877}{41.25076} +\pgfmath@def{atan}{878}{41.28313} \pgfmath@def{atan}{879}{41.31547} +\pgfmath@def{atan}{880}{41.34777} \pgfmath@def{atan}{881}{41.38005} +\pgfmath@def{atan}{882}{41.41229} \pgfmath@def{atan}{883}{41.44450} +\pgfmath@def{atan}{884}{41.47668} \pgfmath@def{atan}{885}{41.50882} +\pgfmath@def{atan}{886}{41.54094} \pgfmath@def{atan}{887}{41.57302} +\pgfmath@def{atan}{888}{41.60507} \pgfmath@def{atan}{889}{41.63709} +\pgfmath@def{atan}{890}{41.66908} \pgfmath@def{atan}{891}{41.70103} +\pgfmath@def{atan}{892}{41.73296} \pgfmath@def{atan}{893}{41.76485} +\pgfmath@def{atan}{894}{41.79671} \pgfmath@def{atan}{895}{41.82854} +\pgfmath@def{atan}{896}{41.86034} \pgfmath@def{atan}{897}{41.89210} +\pgfmath@def{atan}{898}{41.92383} \pgfmath@def{atan}{899}{41.95554} +\pgfmath@def{atan}{900}{41.98721} \pgfmath@def{atan}{901}{42.01885} +\pgfmath@def{atan}{902}{42.05046} \pgfmath@def{atan}{903}{42.08203} +\pgfmath@def{atan}{904}{42.11358} \pgfmath@def{atan}{905}{42.14509} +\pgfmath@def{atan}{906}{42.17657} \pgfmath@def{atan}{907}{42.20802} +\pgfmath@def{atan}{908}{42.23944} \pgfmath@def{atan}{909}{42.27083} +\pgfmath@def{atan}{910}{42.30219} \pgfmath@def{atan}{911}{42.33352} +\pgfmath@def{atan}{912}{42.36481} \pgfmath@def{atan}{913}{42.39607} +\pgfmath@def{atan}{914}{42.42731} \pgfmath@def{atan}{915}{42.45851} +\pgfmath@def{atan}{916}{42.48968} \pgfmath@def{atan}{917}{42.52082} +\pgfmath@def{atan}{918}{42.55193} \pgfmath@def{atan}{919}{42.58300} +\pgfmath@def{atan}{920}{42.61405} \pgfmath@def{atan}{921}{42.64507} +\pgfmath@def{atan}{922}{42.67605} \pgfmath@def{atan}{923}{42.70701} +\pgfmath@def{atan}{924}{42.73793} \pgfmath@def{atan}{925}{42.76882} +\pgfmath@def{atan}{926}{42.79968} \pgfmath@def{atan}{927}{42.83051} +\pgfmath@def{atan}{928}{42.86131} \pgfmath@def{atan}{929}{42.89208} +\pgfmath@def{atan}{930}{42.92282} \pgfmath@def{atan}{931}{42.95353} +\pgfmath@def{atan}{932}{42.98421} \pgfmath@def{atan}{933}{43.01485} +\pgfmath@def{atan}{934}{43.04547} \pgfmath@def{atan}{935}{43.07605} +\pgfmath@def{atan}{936}{43.10661} \pgfmath@def{atan}{937}{43.13713} +\pgfmath@def{atan}{938}{43.16763} \pgfmath@def{atan}{939}{43.19809} +\pgfmath@def{atan}{940}{43.22853} \pgfmath@def{atan}{941}{43.25893} +\pgfmath@def{atan}{942}{43.28930} \pgfmath@def{atan}{943}{43.31964} +\pgfmath@def{atan}{944}{43.34996} \pgfmath@def{atan}{945}{43.38024} +\pgfmath@def{atan}{946}{43.41049} \pgfmath@def{atan}{947}{43.44071} +\pgfmath@def{atan}{948}{43.47090} \pgfmath@def{atan}{949}{43.50106} +\pgfmath@def{atan}{950}{43.53119} \pgfmath@def{atan}{951}{43.56130} +\pgfmath@def{atan}{952}{43.59137} \pgfmath@def{atan}{953}{43.62141} +\pgfmath@def{atan}{954}{43.65142} \pgfmath@def{atan}{955}{43.68140} +\pgfmath@def{atan}{956}{43.71135} \pgfmath@def{atan}{957}{43.74127} +\pgfmath@def{atan}{958}{43.77116} \pgfmath@def{atan}{959}{43.80102} +\pgfmath@def{atan}{960}{43.83086} \pgfmath@def{atan}{961}{43.86066} +\pgfmath@def{atan}{962}{43.89043} \pgfmath@def{atan}{963}{43.92017} +\pgfmath@def{atan}{964}{43.94988} \pgfmath@def{atan}{965}{43.97957} +\pgfmath@def{atan}{966}{44.00922} \pgfmath@def{atan}{967}{44.03884} +\pgfmath@def{atan}{968}{44.06844} \pgfmath@def{atan}{969}{44.09800} +\pgfmath@def{atan}{970}{44.12754} \pgfmath@def{atan}{971}{44.15704} +\pgfmath@def{atan}{972}{44.18652} \pgfmath@def{atan}{973}{44.21597} +\pgfmath@def{atan}{974}{44.24538} \pgfmath@def{atan}{975}{44.27477} +\pgfmath@def{atan}{976}{44.30413} \pgfmath@def{atan}{977}{44.33346} +\pgfmath@def{atan}{978}{44.36276} \pgfmath@def{atan}{979}{44.39203} +\pgfmath@def{atan}{980}{44.42127} \pgfmath@def{atan}{981}{44.45048} +\pgfmath@def{atan}{982}{44.47966} \pgfmath@def{atan}{983}{44.50882} +\pgfmath@def{atan}{984}{44.53794} \pgfmath@def{atan}{985}{44.56704} +\pgfmath@def{atan}{986}{44.59610} \pgfmath@def{atan}{987}{44.62514} +\pgfmath@def{atan}{988}{44.65415} \pgfmath@def{atan}{989}{44.68313} +\pgfmath@def{atan}{990}{44.71208} \pgfmath@def{atan}{991}{44.74100} +\pgfmath@def{atan}{992}{44.76989} \pgfmath@def{atan}{993}{44.79876} +\pgfmath@def{atan}{994}{44.82759} \pgfmath@def{atan}{995}{44.85640} +\pgfmath@def{atan}{996}{44.88517} \pgfmath@def{atan}{997}{44.91392} +\pgfmath@def{atan}{998}{44.94264} \pgfmath@def{atan}{999}{44.97133} +\pgfmath@def{atan}{1000}{45.00000} + +\pgfmath@def{asin}{0}{0.00000} \pgfmath@def{asin}{1}{0.05729} +\pgfmath@def{asin}{2}{0.11459} \pgfmath@def{asin}{3}{0.17188} +\pgfmath@def{asin}{4}{0.22918} \pgfmath@def{asin}{5}{0.28648} +\pgfmath@def{asin}{6}{0.34377} \pgfmath@def{asin}{7}{0.40107} +\pgfmath@def{asin}{8}{0.45837} \pgfmath@def{asin}{9}{0.51566} +\pgfmath@def{asin}{10}{0.57296} \pgfmath@def{asin}{11}{0.63026} +\pgfmath@def{asin}{12}{0.68756} \pgfmath@def{asin}{13}{0.74486} +\pgfmath@def{asin}{14}{0.80216} \pgfmath@def{asin}{15}{0.85946} +\pgfmath@def{asin}{16}{0.91677} \pgfmath@def{asin}{17}{0.97407} +\pgfmath@def{asin}{18}{1.03138} \pgfmath@def{asin}{19}{1.08868} +\pgfmath@def{asin}{20}{1.14599} \pgfmath@def{asin}{21}{1.20330} +\pgfmath@def{asin}{22}{1.26060} \pgfmath@def{asin}{23}{1.31791} +\pgfmath@def{asin}{24}{1.37523} \pgfmath@def{asin}{25}{1.43254} +\pgfmath@def{asin}{26}{1.48985} \pgfmath@def{asin}{27}{1.54717} +\pgfmath@def{asin}{28}{1.60449} \pgfmath@def{asin}{29}{1.66181} +\pgfmath@def{asin}{30}{1.71913} \pgfmath@def{asin}{31}{1.77645} +\pgfmath@def{asin}{32}{1.83377} \pgfmath@def{asin}{33}{1.89110} +\pgfmath@def{asin}{34}{1.94843} \pgfmath@def{asin}{35}{2.00576} +\pgfmath@def{asin}{36}{2.06309} \pgfmath@def{asin}{37}{2.12042} +\pgfmath@def{asin}{38}{2.17776} \pgfmath@def{asin}{39}{2.23510} +\pgfmath@def{asin}{40}{2.29244} \pgfmath@def{asin}{41}{2.34978} +\pgfmath@def{asin}{42}{2.40713} \pgfmath@def{asin}{43}{2.46447} +\pgfmath@def{asin}{44}{2.52182} \pgfmath@def{asin}{45}{2.57918} +\pgfmath@def{asin}{46}{2.63653} \pgfmath@def{asin}{47}{2.69389} +\pgfmath@def{asin}{48}{2.75125} \pgfmath@def{asin}{49}{2.80861} +\pgfmath@def{asin}{50}{2.86598} \pgfmath@def{asin}{51}{2.92335} +\pgfmath@def{asin}{52}{2.98072} \pgfmath@def{asin}{53}{3.03810} +\pgfmath@def{asin}{54}{3.09547} \pgfmath@def{asin}{55}{3.15285} +\pgfmath@def{asin}{56}{3.21024} \pgfmath@def{asin}{57}{3.26763} +\pgfmath@def{asin}{58}{3.32502} \pgfmath@def{asin}{59}{3.38241} +\pgfmath@def{asin}{60}{3.43981} \pgfmath@def{asin}{61}{3.49721} +\pgfmath@def{asin}{62}{3.55461} \pgfmath@def{asin}{63}{3.61202} +\pgfmath@def{asin}{64}{3.66943} \pgfmath@def{asin}{65}{3.72685} +\pgfmath@def{asin}{66}{3.78427} \pgfmath@def{asin}{67}{3.84169} +\pgfmath@def{asin}{68}{3.89912} \pgfmath@def{asin}{69}{3.95655} +\pgfmath@def{asin}{70}{4.01398} \pgfmath@def{asin}{71}{4.07142} +\pgfmath@def{asin}{72}{4.12886} \pgfmath@def{asin}{73}{4.18631} +\pgfmath@def{asin}{74}{4.24376} \pgfmath@def{asin}{75}{4.30122} +\pgfmath@def{asin}{76}{4.35868} \pgfmath@def{asin}{77}{4.41614} +\pgfmath@def{asin}{78}{4.47361} \pgfmath@def{asin}{79}{4.53108} +\pgfmath@def{asin}{80}{4.58856} \pgfmath@def{asin}{81}{4.64604} +\pgfmath@def{asin}{82}{4.70353} \pgfmath@def{asin}{83}{4.76102} +\pgfmath@def{asin}{84}{4.81852} \pgfmath@def{asin}{85}{4.87602} +\pgfmath@def{asin}{86}{4.93353} \pgfmath@def{asin}{87}{4.99104} +\pgfmath@def{asin}{88}{5.04855} \pgfmath@def{asin}{89}{5.10608} +\pgfmath@def{asin}{90}{5.16360} \pgfmath@def{asin}{91}{5.22113} +\pgfmath@def{asin}{92}{5.27867} \pgfmath@def{asin}{93}{5.33621} +\pgfmath@def{asin}{94}{5.39376} \pgfmath@def{asin}{95}{5.45132} +\pgfmath@def{asin}{96}{5.50887} \pgfmath@def{asin}{97}{5.56644} +\pgfmath@def{asin}{98}{5.62401} \pgfmath@def{asin}{99}{5.68158} +\pgfmath@def{asin}{100}{5.73917} \pgfmath@def{asin}{101}{5.79675} +\pgfmath@def{asin}{102}{5.85435} \pgfmath@def{asin}{103}{5.91195} +\pgfmath@def{asin}{104}{5.96955} \pgfmath@def{asin}{105}{6.02716} +\pgfmath@def{asin}{106}{6.08478} \pgfmath@def{asin}{107}{6.14240} +\pgfmath@def{asin}{108}{6.20003} \pgfmath@def{asin}{109}{6.25767} +\pgfmath@def{asin}{110}{6.31531} \pgfmath@def{asin}{111}{6.37296} +\pgfmath@def{asin}{112}{6.43062} \pgfmath@def{asin}{113}{6.48828} +\pgfmath@def{asin}{114}{6.54595} \pgfmath@def{asin}{115}{6.60362} +\pgfmath@def{asin}{116}{6.66130} \pgfmath@def{asin}{117}{6.71899} +\pgfmath@def{asin}{118}{6.77669} \pgfmath@def{asin}{119}{6.83439} +\pgfmath@def{asin}{120}{6.89210} \pgfmath@def{asin}{121}{6.94981} +\pgfmath@def{asin}{122}{7.00754} \pgfmath@def{asin}{123}{7.06527} +\pgfmath@def{asin}{124}{7.12301} \pgfmath@def{asin}{125}{7.18075} +\pgfmath@def{asin}{126}{7.23850} \pgfmath@def{asin}{127}{7.29626} +\pgfmath@def{asin}{128}{7.35403} \pgfmath@def{asin}{129}{7.41181} +\pgfmath@def{asin}{130}{7.46959} \pgfmath@def{asin}{131}{7.52738} +\pgfmath@def{asin}{132}{7.58518} \pgfmath@def{asin}{133}{7.64298} +\pgfmath@def{asin}{134}{7.70079} \pgfmath@def{asin}{135}{7.75862} +\pgfmath@def{asin}{136}{7.81644} \pgfmath@def{asin}{137}{7.87428} +\pgfmath@def{asin}{138}{7.93213} \pgfmath@def{asin}{139}{7.98998} +\pgfmath@def{asin}{140}{8.04784} \pgfmath@def{asin}{141}{8.10571} +\pgfmath@def{asin}{142}{8.16359} \pgfmath@def{asin}{143}{8.22148} +\pgfmath@def{asin}{144}{8.27937} \pgfmath@def{asin}{145}{8.33727} +\pgfmath@def{asin}{146}{8.39519} \pgfmath@def{asin}{147}{8.45311} +\pgfmath@def{asin}{148}{8.51104} \pgfmath@def{asin}{149}{8.56898} +\pgfmath@def{asin}{150}{8.62692} \pgfmath@def{asin}{151}{8.68488} +\pgfmath@def{asin}{152}{8.74284} \pgfmath@def{asin}{153}{8.80082} +\pgfmath@def{asin}{154}{8.85880} \pgfmath@def{asin}{155}{8.91679} +\pgfmath@def{asin}{156}{8.97479} \pgfmath@def{asin}{157}{9.03280} +\pgfmath@def{asin}{158}{9.09082} \pgfmath@def{asin}{159}{9.14885} +\pgfmath@def{asin}{160}{9.20689} \pgfmath@def{asin}{161}{9.26494} +\pgfmath@def{asin}{162}{9.32300} \pgfmath@def{asin}{163}{9.38107} +\pgfmath@def{asin}{164}{9.43914} \pgfmath@def{asin}{165}{9.49723} +\pgfmath@def{asin}{166}{9.55533} \pgfmath@def{asin}{167}{9.61343} +\pgfmath@def{asin}{168}{9.67155} \pgfmath@def{asin}{169}{9.72968} +\pgfmath@def{asin}{170}{9.78781} \pgfmath@def{asin}{171}{9.84596} +\pgfmath@def{asin}{172}{9.90412} \pgfmath@def{asin}{173}{9.96229} +\pgfmath@def{asin}{174}{10.02047} \pgfmath@def{asin}{175}{10.07865} +\pgfmath@def{asin}{176}{10.13685} \pgfmath@def{asin}{177}{10.19506} +\pgfmath@def{asin}{178}{10.25328} \pgfmath@def{asin}{179}{10.31151} +\pgfmath@def{asin}{180}{10.36976} \pgfmath@def{asin}{181}{10.42801} +\pgfmath@def{asin}{182}{10.48627} \pgfmath@def{asin}{183}{10.54455} +\pgfmath@def{asin}{184}{10.60283} \pgfmath@def{asin}{185}{10.66113} +\pgfmath@def{asin}{186}{10.71944} \pgfmath@def{asin}{187}{10.77775} +\pgfmath@def{asin}{188}{10.83608} \pgfmath@def{asin}{189}{10.89443} +\pgfmath@def{asin}{190}{10.95278} \pgfmath@def{asin}{191}{11.01114} +\pgfmath@def{asin}{192}{11.06952} \pgfmath@def{asin}{193}{11.12791} +\pgfmath@def{asin}{194}{11.18631} \pgfmath@def{asin}{195}{11.24472} +\pgfmath@def{asin}{196}{11.30314} \pgfmath@def{asin}{197}{11.36158} +\pgfmath@def{asin}{198}{11.42002} \pgfmath@def{asin}{199}{11.47848} +\pgfmath@def{asin}{200}{11.53695} \pgfmath@def{asin}{201}{11.59544} +\pgfmath@def{asin}{202}{11.65393} \pgfmath@def{asin}{203}{11.71244} +\pgfmath@def{asin}{204}{11.77096} \pgfmath@def{asin}{205}{11.82949} +\pgfmath@def{asin}{206}{11.88804} \pgfmath@def{asin}{207}{11.94660} +\pgfmath@def{asin}{208}{12.00517} \pgfmath@def{asin}{209}{12.06375} +\pgfmath@def{asin}{210}{12.12235} \pgfmath@def{asin}{211}{12.18096} +\pgfmath@def{asin}{212}{12.23958} \pgfmath@def{asin}{213}{12.29821} +\pgfmath@def{asin}{214}{12.35686} \pgfmath@def{asin}{215}{12.41552} +\pgfmath@def{asin}{216}{12.47420} \pgfmath@def{asin}{217}{12.53288} +\pgfmath@def{asin}{218}{12.59159} \pgfmath@def{asin}{219}{12.65030} +\pgfmath@def{asin}{220}{12.70903} \pgfmath@def{asin}{221}{12.76777} +\pgfmath@def{asin}{222}{12.82653} \pgfmath@def{asin}{223}{12.88529} +\pgfmath@def{asin}{224}{12.94408} \pgfmath@def{asin}{225}{13.00287} +\pgfmath@def{asin}{226}{13.06168} \pgfmath@def{asin}{227}{13.12051} +\pgfmath@def{asin}{228}{13.17935} \pgfmath@def{asin}{229}{13.23820} +\pgfmath@def{asin}{230}{13.29707} \pgfmath@def{asin}{231}{13.35595} +\pgfmath@def{asin}{232}{13.41484} \pgfmath@def{asin}{233}{13.47375} +\pgfmath@def{asin}{234}{13.53268} \pgfmath@def{asin}{235}{13.59162} +\pgfmath@def{asin}{236}{13.65057} \pgfmath@def{asin}{237}{13.70954} +\pgfmath@def{asin}{238}{13.76852} \pgfmath@def{asin}{239}{13.82752} +\pgfmath@def{asin}{240}{13.88654} \pgfmath@def{asin}{241}{13.94556} +\pgfmath@def{asin}{242}{14.00461} \pgfmath@def{asin}{243}{14.06367} +\pgfmath@def{asin}{244}{14.12274} \pgfmath@def{asin}{245}{14.18183} +\pgfmath@def{asin}{246}{14.24093} \pgfmath@def{asin}{247}{14.30005} +\pgfmath@def{asin}{248}{14.35919} \pgfmath@def{asin}{249}{14.41834} +\pgfmath@def{asin}{250}{14.47751} \pgfmath@def{asin}{251}{14.53669} +\pgfmath@def{asin}{252}{14.59589} \pgfmath@def{asin}{253}{14.65510} +\pgfmath@def{asin}{254}{14.71433} \pgfmath@def{asin}{255}{14.77358} +\pgfmath@def{asin}{256}{14.83284} \pgfmath@def{asin}{257}{14.89212} +\pgfmath@def{asin}{258}{14.95142} \pgfmath@def{asin}{259}{15.01073} +\pgfmath@def{asin}{260}{15.07006} \pgfmath@def{asin}{261}{15.12940} +\pgfmath@def{asin}{262}{15.18876} \pgfmath@def{asin}{263}{15.24814} +\pgfmath@def{asin}{264}{15.30754} \pgfmath@def{asin}{265}{15.36695} +\pgfmath@def{asin}{266}{15.42638} \pgfmath@def{asin}{267}{15.48582} +\pgfmath@def{asin}{268}{15.54529} \pgfmath@def{asin}{269}{15.60477} +\pgfmath@def{asin}{270}{15.66426} \pgfmath@def{asin}{271}{15.72378} +\pgfmath@def{asin}{272}{15.78331} \pgfmath@def{asin}{273}{15.84286} +\pgfmath@def{asin}{274}{15.90243} \pgfmath@def{asin}{275}{15.96201} +\pgfmath@def{asin}{276}{16.02161} \pgfmath@def{asin}{277}{16.08123} +\pgfmath@def{asin}{278}{16.14087} \pgfmath@def{asin}{279}{16.20053} +\pgfmath@def{asin}{280}{16.26020} \pgfmath@def{asin}{281}{16.31989} +\pgfmath@def{asin}{282}{16.37960} \pgfmath@def{asin}{283}{16.43933} +\pgfmath@def{asin}{284}{16.49908} \pgfmath@def{asin}{285}{16.55884} +\pgfmath@def{asin}{286}{16.61863} \pgfmath@def{asin}{287}{16.67843} +\pgfmath@def{asin}{288}{16.73825} \pgfmath@def{asin}{289}{16.79809} +\pgfmath@def{asin}{290}{16.85795} \pgfmath@def{asin}{291}{16.91783} +\pgfmath@def{asin}{292}{16.97773} \pgfmath@def{asin}{293}{17.03764} +\pgfmath@def{asin}{294}{17.09758} \pgfmath@def{asin}{295}{17.15753} +\pgfmath@def{asin}{296}{17.21751} \pgfmath@def{asin}{297}{17.27750} +\pgfmath@def{asin}{298}{17.33751} \pgfmath@def{asin}{299}{17.39755} +\pgfmath@def{asin}{300}{17.45760} \pgfmath@def{asin}{301}{17.51767} +\pgfmath@def{asin}{302}{17.57776} \pgfmath@def{asin}{303}{17.63788} +\pgfmath@def{asin}{304}{17.69801} \pgfmath@def{asin}{305}{17.75816} +\pgfmath@def{asin}{306}{17.81833} \pgfmath@def{asin}{307}{17.87852} +\pgfmath@def{asin}{308}{17.93874} \pgfmath@def{asin}{309}{17.99897} +\pgfmath@def{asin}{310}{18.05923} \pgfmath@def{asin}{311}{18.11950} +\pgfmath@def{asin}{312}{18.17980} \pgfmath@def{asin}{313}{18.24011} +\pgfmath@def{asin}{314}{18.30045} \pgfmath@def{asin}{315}{18.36081} +\pgfmath@def{asin}{316}{18.42119} \pgfmath@def{asin}{317}{18.48159} +\pgfmath@def{asin}{318}{18.54201} \pgfmath@def{asin}{319}{18.60246} +\pgfmath@def{asin}{320}{18.66292} \pgfmath@def{asin}{321}{18.72341} +\pgfmath@def{asin}{322}{18.78392} \pgfmath@def{asin}{323}{18.84445} +\pgfmath@def{asin}{324}{18.90500} \pgfmath@def{asin}{325}{18.96557} +\pgfmath@def{asin}{326}{19.02617} \pgfmath@def{asin}{327}{19.08678} +\pgfmath@def{asin}{328}{19.14742} \pgfmath@def{asin}{329}{19.20809} +\pgfmath@def{asin}{330}{19.26877} \pgfmath@def{asin}{331}{19.32948} +\pgfmath@def{asin}{332}{19.39021} \pgfmath@def{asin}{333}{19.45096} +\pgfmath@def{asin}{334}{19.51174} \pgfmath@def{asin}{335}{19.57253} +\pgfmath@def{asin}{336}{19.63335} \pgfmath@def{asin}{337}{19.69420} +\pgfmath@def{asin}{338}{19.75507} \pgfmath@def{asin}{339}{19.81596} +\pgfmath@def{asin}{340}{19.87687} \pgfmath@def{asin}{341}{19.93781} +\pgfmath@def{asin}{342}{19.99877} \pgfmath@def{asin}{343}{20.05975} +\pgfmath@def{asin}{344}{20.12076} \pgfmath@def{asin}{345}{20.18179} +\pgfmath@def{asin}{346}{20.24285} \pgfmath@def{asin}{347}{20.30393} +\pgfmath@def{asin}{348}{20.36503} \pgfmath@def{asin}{349}{20.42616} +\pgfmath@def{asin}{350}{20.48731} \pgfmath@def{asin}{351}{20.54849} +\pgfmath@def{asin}{352}{20.60969} \pgfmath@def{asin}{353}{20.67091} +\pgfmath@def{asin}{354}{20.73216} \pgfmath@def{asin}{355}{20.79344} +\pgfmath@def{asin}{356}{20.85474} \pgfmath@def{asin}{357}{20.91607} +\pgfmath@def{asin}{358}{20.97742} \pgfmath@def{asin}{359}{21.03879} +\pgfmath@def{asin}{360}{21.10019} \pgfmath@def{asin}{361}{21.16162} +\pgfmath@def{asin}{362}{21.22307} \pgfmath@def{asin}{363}{21.28455} +\pgfmath@def{asin}{364}{21.34605} \pgfmath@def{asin}{365}{21.40758} +\pgfmath@def{asin}{366}{21.46913} \pgfmath@def{asin}{367}{21.53071} +\pgfmath@def{asin}{368}{21.59232} \pgfmath@def{asin}{369}{21.65395} +\pgfmath@def{asin}{370}{21.71561} \pgfmath@def{asin}{371}{21.77730} +\pgfmath@def{asin}{372}{21.83901} \pgfmath@def{asin}{373}{21.90075} +\pgfmath@def{asin}{374}{21.96252} \pgfmath@def{asin}{375}{22.02431} +\pgfmath@def{asin}{376}{22.08613} \pgfmath@def{asin}{377}{22.14797} +\pgfmath@def{asin}{378}{22.20985} \pgfmath@def{asin}{379}{22.27175} +\pgfmath@def{asin}{380}{22.33368} \pgfmath@def{asin}{381}{22.39563} +\pgfmath@def{asin}{382}{22.45762} \pgfmath@def{asin}{383}{22.51963} +\pgfmath@def{asin}{384}{22.58167} \pgfmath@def{asin}{385}{22.64374} +\pgfmath@def{asin}{386}{22.70583} \pgfmath@def{asin}{387}{22.76795} +\pgfmath@def{asin}{388}{22.83011} \pgfmath@def{asin}{389}{22.89229} +\pgfmath@def{asin}{390}{22.95449} \pgfmath@def{asin}{391}{23.01673} +\pgfmath@def{asin}{392}{23.07900} \pgfmath@def{asin}{393}{23.14129} +\pgfmath@def{asin}{394}{23.20362} \pgfmath@def{asin}{395}{23.26597} +\pgfmath@def{asin}{396}{23.32835} \pgfmath@def{asin}{397}{23.39076} +\pgfmath@def{asin}{398}{23.45320} \pgfmath@def{asin}{399}{23.51567} +\pgfmath@def{asin}{400}{23.57817} \pgfmath@def{asin}{401}{23.64070} +\pgfmath@def{asin}{402}{23.70326} \pgfmath@def{asin}{403}{23.76585} +\pgfmath@def{asin}{404}{23.82847} \pgfmath@def{asin}{405}{23.89112} +\pgfmath@def{asin}{406}{23.95380} \pgfmath@def{asin}{407}{24.01651} +\pgfmath@def{asin}{408}{24.07926} \pgfmath@def{asin}{409}{24.14203} +\pgfmath@def{asin}{410}{24.20483} \pgfmath@def{asin}{411}{24.26766} +\pgfmath@def{asin}{412}{24.33053} \pgfmath@def{asin}{413}{24.39343} +\pgfmath@def{asin}{414}{24.45635} \pgfmath@def{asin}{415}{24.51931} +\pgfmath@def{asin}{416}{24.58230} \pgfmath@def{asin}{417}{24.64532} +\pgfmath@def{asin}{418}{24.70838} \pgfmath@def{asin}{419}{24.77146} +\pgfmath@def{asin}{420}{24.83458} \pgfmath@def{asin}{421}{24.89773} +\pgfmath@def{asin}{422}{24.96092} \pgfmath@def{asin}{423}{25.02413} +\pgfmath@def{asin}{424}{25.08738} \pgfmath@def{asin}{425}{25.15066} +\pgfmath@def{asin}{426}{25.21397} \pgfmath@def{asin}{427}{25.27732} +\pgfmath@def{asin}{428}{25.34070} \pgfmath@def{asin}{429}{25.40411} +\pgfmath@def{asin}{430}{25.46756} \pgfmath@def{asin}{431}{25.53103} +\pgfmath@def{asin}{432}{25.59455} \pgfmath@def{asin}{433}{25.65809} +\pgfmath@def{asin}{434}{25.72167} \pgfmath@def{asin}{435}{25.78529} +\pgfmath@def{asin}{436}{25.84894} \pgfmath@def{asin}{437}{25.91262} +\pgfmath@def{asin}{438}{25.97634} \pgfmath@def{asin}{439}{26.04009} +\pgfmath@def{asin}{440}{26.10388} \pgfmath@def{asin}{441}{26.16770} +\pgfmath@def{asin}{442}{26.23155} \pgfmath@def{asin}{443}{26.29545} +\pgfmath@def{asin}{444}{26.35937} \pgfmath@def{asin}{445}{26.42333} +\pgfmath@def{asin}{446}{26.48733} \pgfmath@def{asin}{447}{26.55136} +\pgfmath@def{asin}{448}{26.61543} \pgfmath@def{asin}{449}{26.67954} +\pgfmath@def{asin}{450}{26.74368} \pgfmath@def{asin}{451}{26.80786} +\pgfmath@def{asin}{452}{26.87207} \pgfmath@def{asin}{453}{26.93632} +\pgfmath@def{asin}{454}{27.00061} \pgfmath@def{asin}{455}{27.06493} +\pgfmath@def{asin}{456}{27.12929} \pgfmath@def{asin}{457}{27.19369} +\pgfmath@def{asin}{458}{27.25812} \pgfmath@def{asin}{459}{27.32259} +\pgfmath@def{asin}{460}{27.38710} \pgfmath@def{asin}{461}{27.45165} +\pgfmath@def{asin}{462}{27.51623} \pgfmath@def{asin}{463}{27.58086} +\pgfmath@def{asin}{464}{27.64552} \pgfmath@def{asin}{465}{27.71022} +\pgfmath@def{asin}{466}{27.77496} \pgfmath@def{asin}{467}{27.83973} +\pgfmath@def{asin}{468}{27.90455} \pgfmath@def{asin}{469}{27.96940} +\pgfmath@def{asin}{470}{28.03429} \pgfmath@def{asin}{471}{28.09922} +\pgfmath@def{asin}{472}{28.16419} \pgfmath@def{asin}{473}{28.22921} +\pgfmath@def{asin}{474}{28.29426} \pgfmath@def{asin}{475}{28.35935} +\pgfmath@def{asin}{476}{28.42448} \pgfmath@def{asin}{477}{28.48965} +\pgfmath@def{asin}{478}{28.55486} \pgfmath@def{asin}{479}{28.62011} +\pgfmath@def{asin}{480}{28.68540} \pgfmath@def{asin}{481}{28.75073} +\pgfmath@def{asin}{482}{28.81610} \pgfmath@def{asin}{483}{28.88152} +\pgfmath@def{asin}{484}{28.94697} \pgfmath@def{asin}{485}{29.01247} +\pgfmath@def{asin}{486}{29.07801} \pgfmath@def{asin}{487}{29.14359} +\pgfmath@def{asin}{488}{29.20921} \pgfmath@def{asin}{489}{29.27487} +\pgfmath@def{asin}{490}{29.34058} \pgfmath@def{asin}{491}{29.40633} +\pgfmath@def{asin}{492}{29.47212} \pgfmath@def{asin}{493}{29.53795} +\pgfmath@def{asin}{494}{29.60383} \pgfmath@def{asin}{495}{29.66975} +\pgfmath@def{asin}{496}{29.73571} \pgfmath@def{asin}{497}{29.80171} +\pgfmath@def{asin}{498}{29.86776} \pgfmath@def{asin}{499}{29.93386} +\pgfmath@def{asin}{500}{30.00000} \pgfmath@def{asin}{501}{30.06618} +\pgfmath@def{asin}{502}{30.13240} \pgfmath@def{asin}{503}{30.19867} +\pgfmath@def{asin}{504}{30.26499} \pgfmath@def{asin}{505}{30.33135} +\pgfmath@def{asin}{506}{30.39775} \pgfmath@def{asin}{507}{30.46420} +\pgfmath@def{asin}{508}{30.53070} \pgfmath@def{asin}{509}{30.59724} +\pgfmath@def{asin}{510}{30.66383} \pgfmath@def{asin}{511}{30.73046} +\pgfmath@def{asin}{512}{30.79714} \pgfmath@def{asin}{513}{30.86386} +\pgfmath@def{asin}{514}{30.93063} \pgfmath@def{asin}{515}{30.99745} +\pgfmath@def{asin}{516}{31.06432} \pgfmath@def{asin}{517}{31.13123} +\pgfmath@def{asin}{518}{31.19819} \pgfmath@def{asin}{519}{31.26519} +\pgfmath@def{asin}{520}{31.33225} \pgfmath@def{asin}{521}{31.39935} +\pgfmath@def{asin}{522}{31.46650} \pgfmath@def{asin}{523}{31.53370} +\pgfmath@def{asin}{524}{31.60094} \pgfmath@def{asin}{525}{31.66824} +\pgfmath@def{asin}{526}{31.73558} \pgfmath@def{asin}{527}{31.80298} +\pgfmath@def{asin}{528}{31.87042} \pgfmath@def{asin}{529}{31.93791} +\pgfmath@def{asin}{530}{32.00545} \pgfmath@def{asin}{531}{32.07304} +\pgfmath@def{asin}{532}{32.14068} \pgfmath@def{asin}{533}{32.20837} +\pgfmath@def{asin}{534}{32.27611} \pgfmath@def{asin}{535}{32.34391} +\pgfmath@def{asin}{536}{32.41175} \pgfmath@def{asin}{537}{32.47964} +\pgfmath@def{asin}{538}{32.54759} \pgfmath@def{asin}{539}{32.61559} +\pgfmath@def{asin}{540}{32.68363} \pgfmath@def{asin}{541}{32.75173} +\pgfmath@def{asin}{542}{32.81989} \pgfmath@def{asin}{543}{32.88809} +\pgfmath@def{asin}{544}{32.95635} \pgfmath@def{asin}{545}{33.02466} +\pgfmath@def{asin}{546}{33.09302} \pgfmath@def{asin}{547}{33.16144} +\pgfmath@def{asin}{548}{33.22991} \pgfmath@def{asin}{549}{33.29843} +\pgfmath@def{asin}{550}{33.36701} \pgfmath@def{asin}{551}{33.43564} +\pgfmath@def{asin}{552}{33.50433} \pgfmath@def{asin}{553}{33.57307} +\pgfmath@def{asin}{554}{33.64186} \pgfmath@def{asin}{555}{33.71071} +\pgfmath@def{asin}{556}{33.77962} \pgfmath@def{asin}{557}{33.84858} +\pgfmath@def{asin}{558}{33.91759} \pgfmath@def{asin}{559}{33.98666} +\pgfmath@def{asin}{560}{34.05579} \pgfmath@def{asin}{561}{34.12498} +\pgfmath@def{asin}{562}{34.19422} \pgfmath@def{asin}{563}{34.26352} +\pgfmath@def{asin}{564}{34.33287} \pgfmath@def{asin}{565}{34.40229} +\pgfmath@def{asin}{566}{34.47176} \pgfmath@def{asin}{567}{34.54129} +\pgfmath@def{asin}{568}{34.61087} \pgfmath@def{asin}{569}{34.68052} +\pgfmath@def{asin}{570}{34.75022} \pgfmath@def{asin}{571}{34.81998} +\pgfmath@def{asin}{572}{34.88981} \pgfmath@def{asin}{573}{34.95969} +\pgfmath@def{asin}{574}{35.02963} \pgfmath@def{asin}{575}{35.09963} +\pgfmath@def{asin}{576}{35.16969} \pgfmath@def{asin}{577}{35.23981} +\pgfmath@def{asin}{578}{35.30999} \pgfmath@def{asin}{579}{35.38023} +\pgfmath@def{asin}{580}{35.45054} \pgfmath@def{asin}{581}{35.52090} +\pgfmath@def{asin}{582}{35.59133} \pgfmath@def{asin}{583}{35.66182} +\pgfmath@def{asin}{584}{35.73237} \pgfmath@def{asin}{585}{35.80299} +\pgfmath@def{asin}{586}{35.87366} \pgfmath@def{asin}{587}{35.94440} +\pgfmath@def{asin}{588}{36.01521} \pgfmath@def{asin}{589}{36.08607} +\pgfmath@def{asin}{590}{36.15700} \pgfmath@def{asin}{591}{36.22800} +\pgfmath@def{asin}{592}{36.29906} \pgfmath@def{asin}{593}{36.37018} +\pgfmath@def{asin}{594}{36.44137} \pgfmath@def{asin}{595}{36.51263} +\pgfmath@def{asin}{596}{36.58395} \pgfmath@def{asin}{597}{36.65533} +\pgfmath@def{asin}{598}{36.72679} \pgfmath@def{asin}{599}{36.79831} +\pgfmath@def{asin}{600}{36.86989} \pgfmath@def{asin}{601}{36.94155} +\pgfmath@def{asin}{602}{37.01327} \pgfmath@def{asin}{603}{37.08506} +\pgfmath@def{asin}{604}{37.15691} \pgfmath@def{asin}{605}{37.22884} +\pgfmath@def{asin}{606}{37.30083} \pgfmath@def{asin}{607}{37.37289} +\pgfmath@def{asin}{608}{37.44503} \pgfmath@def{asin}{609}{37.51723} +\pgfmath@def{asin}{610}{37.58950} \pgfmath@def{asin}{611}{37.66184} +\pgfmath@def{asin}{612}{37.73425} \pgfmath@def{asin}{613}{37.80674} +\pgfmath@def{asin}{614}{37.87929} \pgfmath@def{asin}{615}{37.95192} +\pgfmath@def{asin}{616}{38.02461} \pgfmath@def{asin}{617}{38.09738} +\pgfmath@def{asin}{618}{38.17023} \pgfmath@def{asin}{619}{38.24314} +\pgfmath@def{asin}{620}{38.31613} \pgfmath@def{asin}{621}{38.38919} +\pgfmath@def{asin}{622}{38.46233} \pgfmath@def{asin}{623}{38.53554} +\pgfmath@def{asin}{624}{38.60882} \pgfmath@def{asin}{625}{38.68218} +\pgfmath@def{asin}{626}{38.75562} \pgfmath@def{asin}{627}{38.82913} +\pgfmath@def{asin}{628}{38.90272} \pgfmath@def{asin}{629}{38.97638} +\pgfmath@def{asin}{630}{39.05012} \pgfmath@def{asin}{631}{39.12393} +\pgfmath@def{asin}{632}{39.19783} \pgfmath@def{asin}{633}{39.27180} +\pgfmath@def{asin}{634}{39.34585} \pgfmath@def{asin}{635}{39.41998} +\pgfmath@def{asin}{636}{39.49419} \pgfmath@def{asin}{637}{39.56847} +\pgfmath@def{asin}{638}{39.64284} \pgfmath@def{asin}{639}{39.71729} +\pgfmath@def{asin}{640}{39.79181} \pgfmath@def{asin}{641}{39.86642} +\pgfmath@def{asin}{642}{39.94111} \pgfmath@def{asin}{643}{40.01588} +\pgfmath@def{asin}{644}{40.09074} \pgfmath@def{asin}{645}{40.16567} +\pgfmath@def{asin}{646}{40.24069} \pgfmath@def{asin}{647}{40.31579} +\pgfmath@def{asin}{648}{40.39098} \pgfmath@def{asin}{649}{40.46624} +\pgfmath@def{asin}{650}{40.54160} \pgfmath@def{asin}{651}{40.61704} +\pgfmath@def{asin}{652}{40.69256} \pgfmath@def{asin}{653}{40.76817} +\pgfmath@def{asin}{654}{40.84386} \pgfmath@def{asin}{655}{40.91965} +\pgfmath@def{asin}{656}{40.99551} \pgfmath@def{asin}{657}{41.07147} +\pgfmath@def{asin}{658}{41.14751} \pgfmath@def{asin}{659}{41.22365} +\pgfmath@def{asin}{660}{41.29987} \pgfmath@def{asin}{661}{41.37618} +\pgfmath@def{asin}{662}{41.45258} \pgfmath@def{asin}{663}{41.52907} +\pgfmath@def{asin}{664}{41.60565} \pgfmath@def{asin}{665}{41.68232} +\pgfmath@def{asin}{666}{41.75908} \pgfmath@def{asin}{667}{41.83594} +\pgfmath@def{asin}{668}{41.91289} \pgfmath@def{asin}{669}{41.98993} +\pgfmath@def{asin}{670}{42.06706} \pgfmath@def{asin}{671}{42.14429} +\pgfmath@def{asin}{672}{42.22161} \pgfmath@def{asin}{673}{42.29903} +\pgfmath@def{asin}{674}{42.37654} \pgfmath@def{asin}{675}{42.45415} +\pgfmath@def{asin}{676}{42.53185} \pgfmath@def{asin}{677}{42.60965} +\pgfmath@def{asin}{678}{42.68755} \pgfmath@def{asin}{679}{42.76554} +\pgfmath@def{asin}{680}{42.84364} \pgfmath@def{asin}{681}{42.92183} +\pgfmath@def{asin}{682}{43.00012} \pgfmath@def{asin}{683}{43.07852} +\pgfmath@def{asin}{684}{43.15701} \pgfmath@def{asin}{685}{43.23560} +\pgfmath@def{asin}{686}{43.31430} \pgfmath@def{asin}{687}{43.39310} +\pgfmath@def{asin}{688}{43.47199} \pgfmath@def{asin}{689}{43.55100} +\pgfmath@def{asin}{690}{43.63010} \pgfmath@def{asin}{691}{43.70932} +\pgfmath@def{asin}{692}{43.78863} \pgfmath@def{asin}{693}{43.86805} +\pgfmath@def{asin}{694}{43.94758} \pgfmath@def{asin}{695}{44.02721} +\pgfmath@def{asin}{696}{44.10695} \pgfmath@def{asin}{697}{44.18680} +\pgfmath@def{asin}{698}{44.26676} \pgfmath@def{asin}{699}{44.34682} +\pgfmath@def{asin}{700}{44.42700} \pgfmath@def{asin}{701}{44.50728} +\pgfmath@def{asin}{702}{44.58768} \pgfmath@def{asin}{703}{44.66819} +\pgfmath@def{asin}{704}{44.74881} \pgfmath@def{asin}{705}{44.82954} +\pgfmath@def{asin}{706}{44.91038} \pgfmath@def{asin}{707}{44.99134} +\pgfmath@def{asin}{708}{45.07242} \pgfmath@def{asin}{709}{45.15361} +\pgfmath@def{asin}{710}{45.23491} \pgfmath@def{asin}{711}{45.31633} +\pgfmath@def{asin}{712}{45.39787} \pgfmath@def{asin}{713}{45.47953} +\pgfmath@def{asin}{714}{45.56130} \pgfmath@def{asin}{715}{45.64319} +\pgfmath@def{asin}{716}{45.72521} \pgfmath@def{asin}{717}{45.80734} +\pgfmath@def{asin}{718}{45.88960} \pgfmath@def{asin}{719}{45.97198} +\pgfmath@def{asin}{720}{46.05448} \pgfmath@def{asin}{721}{46.13710} +\pgfmath@def{asin}{722}{46.21985} \pgfmath@def{asin}{723}{46.30272} +\pgfmath@def{asin}{724}{46.38572} \pgfmath@def{asin}{725}{46.46884} +\pgfmath@def{asin}{726}{46.55210} \pgfmath@def{asin}{727}{46.63548} +\pgfmath@def{asin}{728}{46.71898} \pgfmath@def{asin}{729}{46.80262} +\pgfmath@def{asin}{730}{46.88639} \pgfmath@def{asin}{731}{46.97029} +\pgfmath@def{asin}{732}{47.05432} \pgfmath@def{asin}{733}{47.13848} +\pgfmath@def{asin}{734}{47.22278} \pgfmath@def{asin}{735}{47.30721} +\pgfmath@def{asin}{736}{47.39178} \pgfmath@def{asin}{737}{47.47648} +\pgfmath@def{asin}{738}{47.56132} \pgfmath@def{asin}{739}{47.64630} +\pgfmath@def{asin}{740}{47.73141} \pgfmath@def{asin}{741}{47.81667} +\pgfmath@def{asin}{742}{47.90206} \pgfmath@def{asin}{743}{47.98760} +\pgfmath@def{asin}{744}{48.07327} \pgfmath@def{asin}{745}{48.15909} +\pgfmath@def{asin}{746}{48.24506} \pgfmath@def{asin}{747}{48.33117} +\pgfmath@def{asin}{748}{48.41742} \pgfmath@def{asin}{749}{48.50382} +\pgfmath@def{asin}{750}{48.59037} \pgfmath@def{asin}{751}{48.67707} +\pgfmath@def{asin}{752}{48.76392} \pgfmath@def{asin}{753}{48.85092} +\pgfmath@def{asin}{754}{48.93806} \pgfmath@def{asin}{755}{49.02537} +\pgfmath@def{asin}{756}{49.11282} \pgfmath@def{asin}{757}{49.20043} +\pgfmath@def{asin}{758}{49.28819} \pgfmath@def{asin}{759}{49.37611} +\pgfmath@def{asin}{760}{49.46419} \pgfmath@def{asin}{761}{49.55243} +\pgfmath@def{asin}{762}{49.64083} \pgfmath@def{asin}{763}{49.72939} +\pgfmath@def{asin}{764}{49.81810} \pgfmath@def{asin}{765}{49.90699} +\pgfmath@def{asin}{766}{49.99603} \pgfmath@def{asin}{767}{50.08525} +\pgfmath@def{asin}{768}{50.17462} \pgfmath@def{asin}{769}{50.26417} +\pgfmath@def{asin}{770}{50.35388} \pgfmath@def{asin}{771}{50.44377} +\pgfmath@def{asin}{772}{50.53382} \pgfmath@def{asin}{773}{50.62405} +\pgfmath@def{asin}{774}{50.71445} \pgfmath@def{asin}{775}{50.80503} +\pgfmath@def{asin}{776}{50.89578} \pgfmath@def{asin}{777}{50.98671} +\pgfmath@def{asin}{778}{51.07782} \pgfmath@def{asin}{779}{51.16910} +\pgfmath@def{asin}{780}{51.26057} \pgfmath@def{asin}{781}{51.35222} +\pgfmath@def{asin}{782}{51.44406} \pgfmath@def{asin}{783}{51.53607} +\pgfmath@def{asin}{784}{51.62828} \pgfmath@def{asin}{785}{51.72067} +\pgfmath@def{asin}{786}{51.81326} \pgfmath@def{asin}{787}{51.90603} +\pgfmath@def{asin}{788}{51.99899} \pgfmath@def{asin}{789}{52.09215} +\pgfmath@def{asin}{790}{52.18551} \pgfmath@def{asin}{791}{52.27906} +\pgfmath@def{asin}{792}{52.37280} \pgfmath@def{asin}{793}{52.46675} +\pgfmath@def{asin}{794}{52.56090} \pgfmath@def{asin}{795}{52.65525} +\pgfmath@def{asin}{796}{52.74981} \pgfmath@def{asin}{797}{52.84457} +\pgfmath@def{asin}{798}{52.93953} \pgfmath@def{asin}{799}{53.03471} +\pgfmath@def{asin}{800}{53.13010} \pgfmath@def{asin}{801}{53.22570} +\pgfmath@def{asin}{802}{53.32151} \pgfmath@def{asin}{803}{53.41754} +\pgfmath@def{asin}{804}{53.51379} \pgfmath@def{asin}{805}{53.61025} +\pgfmath@def{asin}{806}{53.70694} \pgfmath@def{asin}{807}{53.80385} +\pgfmath@def{asin}{808}{53.90098} \pgfmath@def{asin}{809}{53.99834} +\pgfmath@def{asin}{810}{54.09593} \pgfmath@def{asin}{811}{54.19374} +\pgfmath@def{asin}{812}{54.29180} \pgfmath@def{asin}{813}{54.39008} +\pgfmath@def{asin}{814}{54.48860} \pgfmath@def{asin}{815}{54.58736} +\pgfmath@def{asin}{816}{54.68636} \pgfmath@def{asin}{817}{54.78560} +\pgfmath@def{asin}{818}{54.88508} \pgfmath@def{asin}{819}{54.98481} +\pgfmath@def{asin}{820}{55.08479} \pgfmath@def{asin}{821}{55.18502} +\pgfmath@def{asin}{822}{55.28550} \pgfmath@def{asin}{823}{55.38624} +\pgfmath@def{asin}{824}{55.48723} \pgfmath@def{asin}{825}{55.58849} +\pgfmath@def{asin}{826}{55.69000} \pgfmath@def{asin}{827}{55.79178} +\pgfmath@def{asin}{828}{55.89383} \pgfmath@def{asin}{829}{55.99615} +\pgfmath@def{asin}{830}{56.09873} \pgfmath@def{asin}{831}{56.20160} +\pgfmath@def{asin}{832}{56.30473} \pgfmath@def{asin}{833}{56.40815} +\pgfmath@def{asin}{834}{56.51185} \pgfmath@def{asin}{835}{56.61583} +\pgfmath@def{asin}{836}{56.72010} \pgfmath@def{asin}{837}{56.82467} +\pgfmath@def{asin}{838}{56.92952} \pgfmath@def{asin}{839}{57.03467} +\pgfmath@def{asin}{840}{57.14012} \pgfmath@def{asin}{841}{57.24586} +\pgfmath@def{asin}{842}{57.35192} \pgfmath@def{asin}{843}{57.45828} +\pgfmath@def{asin}{844}{57.56495} \pgfmath@def{asin}{845}{57.67193} +\pgfmath@def{asin}{846}{57.77923} \pgfmath@def{asin}{847}{57.88685} +\pgfmath@def{asin}{848}{57.99480} \pgfmath@def{asin}{849}{58.10307} +\pgfmath@def{asin}{850}{58.21166} \pgfmath@def{asin}{851}{58.32060} +\pgfmath@def{asin}{852}{58.42987} \pgfmath@def{asin}{853}{58.53948} +\pgfmath@def{asin}{854}{58.64943} \pgfmath@def{asin}{855}{58.75973} +\pgfmath@def{asin}{856}{58.87038} \pgfmath@def{asin}{857}{58.98139} +\pgfmath@def{asin}{858}{59.09275} \pgfmath@def{asin}{859}{59.20448} +\pgfmath@def{asin}{860}{59.31658} \pgfmath@def{asin}{861}{59.42904} +\pgfmath@def{asin}{862}{59.54189} \pgfmath@def{asin}{863}{59.65511} +\pgfmath@def{asin}{864}{59.76871} \pgfmath@def{asin}{865}{59.88270} +\pgfmath@def{asin}{866}{59.99708} \pgfmath@def{asin}{867}{60.11187} +\pgfmath@def{asin}{868}{60.22705} \pgfmath@def{asin}{869}{60.34264} +\pgfmath@def{asin}{870}{60.45863} \pgfmath@def{asin}{871}{60.57505} +\pgfmath@def{asin}{872}{60.69189} \pgfmath@def{asin}{873}{60.80915} +\pgfmath@def{asin}{874}{60.92684} \pgfmath@def{asin}{875}{61.04497} +\pgfmath@def{asin}{876}{61.16354} \pgfmath@def{asin}{877}{61.28256} +\pgfmath@def{asin}{878}{61.40203} \pgfmath@def{asin}{879}{61.52196} +\pgfmath@def{asin}{880}{61.64236} \pgfmath@def{asin}{881}{61.76322} +\pgfmath@def{asin}{882}{61.88457} \pgfmath@def{asin}{883}{62.00639} +\pgfmath@def{asin}{884}{62.12871} \pgfmath@def{asin}{885}{62.25152} +\pgfmath@def{asin}{886}{62.37483} \pgfmath@def{asin}{887}{62.49865} +\pgfmath@def{asin}{888}{62.62299} \pgfmath@def{asin}{889}{62.74785} +\pgfmath@def{asin}{890}{62.87324} \pgfmath@def{asin}{891}{62.99917} +\pgfmath@def{asin}{892}{63.12565} \pgfmath@def{asin}{893}{63.25268} +\pgfmath@def{asin}{894}{63.38027} \pgfmath@def{asin}{895}{63.50843} +\pgfmath@def{asin}{896}{63.63716} \pgfmath@def{asin}{897}{63.76649} +\pgfmath@def{asin}{898}{63.89640} \pgfmath@def{asin}{899}{64.02693} +\pgfmath@def{asin}{900}{64.15806} \pgfmath@def{asin}{901}{64.28982} +\pgfmath@def{asin}{902}{64.42221} \pgfmath@def{asin}{903}{64.55524} +\pgfmath@def{asin}{904}{64.68893} \pgfmath@def{asin}{905}{64.82328} +\pgfmath@def{asin}{906}{64.95830} \pgfmath@def{asin}{907}{65.09401} +\pgfmath@def{asin}{908}{65.23041} \pgfmath@def{asin}{909}{65.36752} +\pgfmath@def{asin}{910}{65.50535} \pgfmath@def{asin}{911}{65.64391} +\pgfmath@def{asin}{912}{65.78321} \pgfmath@def{asin}{913}{65.92327} +\pgfmath@def{asin}{914}{66.06411} \pgfmath@def{asin}{915}{66.20572} +\pgfmath@def{asin}{916}{66.34814} \pgfmath@def{asin}{917}{66.49136} +\pgfmath@def{asin}{918}{66.63542} \pgfmath@def{asin}{919}{66.78032} +\pgfmath@def{asin}{920}{66.92608} \pgfmath@def{asin}{921}{67.07271} +\pgfmath@def{asin}{922}{67.22024} \pgfmath@def{asin}{923}{67.36867} +\pgfmath@def{asin}{924}{67.51804} \pgfmath@def{asin}{925}{67.66835} +\pgfmath@def{asin}{926}{67.81963} \pgfmath@def{asin}{927}{67.97189} +\pgfmath@def{asin}{928}{68.12516} \pgfmath@def{asin}{929}{68.27946} +\pgfmath@def{asin}{930}{68.43481} \pgfmath@def{asin}{931}{68.59123} +\pgfmath@def{asin}{932}{68.74875} \pgfmath@def{asin}{933}{68.90739} +\pgfmath@def{asin}{934}{69.06718} \pgfmath@def{asin}{935}{69.22814} +\pgfmath@def{asin}{936}{69.39030} \pgfmath@def{asin}{937}{69.55369} +\pgfmath@def{asin}{938}{69.71835} \pgfmath@def{asin}{939}{69.88429} +\pgfmath@def{asin}{940}{70.05155} \pgfmath@def{asin}{941}{70.22017} +\pgfmath@def{asin}{942}{70.39018} \pgfmath@def{asin}{943}{70.56162} +\pgfmath@def{asin}{944}{70.73453} \pgfmath@def{asin}{945}{70.90894} +\pgfmath@def{asin}{946}{71.08490} \pgfmath@def{asin}{947}{71.26245} +\pgfmath@def{asin}{948}{71.44164} \pgfmath@def{asin}{949}{71.62251} +\pgfmath@def{asin}{950}{71.80512} \pgfmath@def{asin}{951}{71.98952} +\pgfmath@def{asin}{952}{72.17576} \pgfmath@def{asin}{953}{72.36390} +\pgfmath@def{asin}{954}{72.55401} \pgfmath@def{asin}{955}{72.74614} +\pgfmath@def{asin}{956}{72.94037} \pgfmath@def{asin}{957}{73.13678} +\pgfmath@def{asin}{958}{73.33542} \pgfmath@def{asin}{959}{73.53640} +\pgfmath@def{asin}{960}{73.73979} \pgfmath@def{asin}{961}{73.94569} +\pgfmath@def{asin}{962}{74.15419} \pgfmath@def{asin}{963}{74.36540} +\pgfmath@def{asin}{964}{74.57942} \pgfmath@def{asin}{965}{74.79639} +\pgfmath@def{asin}{966}{75.01642} \pgfmath@def{asin}{967}{75.23966} +\pgfmath@def{asin}{968}{75.46625} \pgfmath@def{asin}{969}{75.69635} +\pgfmath@def{asin}{970}{75.93013} \pgfmath@def{asin}{971}{76.16778} +\pgfmath@def{asin}{972}{76.40950} \pgfmath@def{asin}{973}{76.65552} +\pgfmath@def{asin}{974}{76.90607} \pgfmath@def{asin}{975}{77.16143} +\pgfmath@def{asin}{976}{77.42188} \pgfmath@def{asin}{977}{77.68774} +\pgfmath@def{asin}{978}{77.95939} \pgfmath@def{asin}{979}{78.23721} +\pgfmath@def{asin}{980}{78.52165} \pgfmath@def{asin}{981}{78.81323} +\pgfmath@def{asin}{982}{79.11251} \pgfmath@def{asin}{983}{79.42015} +\pgfmath@def{asin}{984}{79.73690} \pgfmath@def{asin}{985}{80.06363} +\pgfmath@def{asin}{986}{80.40136} \pgfmath@def{asin}{987}{80.75129} +\pgfmath@def{asin}{988}{81.11487} \pgfmath@def{asin}{989}{81.49385} +\pgfmath@def{asin}{990}{81.89038} \pgfmath@def{asin}{991}{82.30718} +\pgfmath@def{asin}{992}{82.74775} \pgfmath@def{asin}{993}{83.21671} +\pgfmath@def{asin}{994}{83.72041} \pgfmath@def{asin}{995}{84.26803} +\pgfmath@def{asin}{996}{84.87360} \pgfmath@def{asin}{997}{85.56077} +\pgfmath@def{asin}{998}{86.37569} \pgfmath@def{asin}{999}{87.43744} +\pgfmath@def{asin}{1000}{90.00000} + +\pgfmath@def{acos}{0}{90.00000} \pgfmath@def{acos}{1}{89.94270} +\pgfmath@def{acos}{2}{89.88540} \pgfmath@def{acos}{3}{89.82811} +\pgfmath@def{acos}{4}{89.77081} \pgfmath@def{acos}{5}{89.71352} +\pgfmath@def{acos}{6}{89.65622} \pgfmath@def{acos}{7}{89.59892} +\pgfmath@def{acos}{8}{89.54162} \pgfmath@def{acos}{9}{89.48433} +\pgfmath@def{acos}{10}{89.42703} \pgfmath@def{acos}{11}{89.36973} +\pgfmath@def{acos}{12}{89.31243} \pgfmath@def{acos}{13}{89.25513} +\pgfmath@def{acos}{14}{89.19783} \pgfmath@def{acos}{15}{89.14053} +\pgfmath@def{acos}{16}{89.08322} \pgfmath@def{acos}{17}{89.02592} +\pgfmath@def{acos}{18}{88.96862} \pgfmath@def{acos}{19}{88.91131} +\pgfmath@def{acos}{20}{88.85400} \pgfmath@def{acos}{21}{88.79670} +\pgfmath@def{acos}{22}{88.73939} \pgfmath@def{acos}{23}{88.68208} +\pgfmath@def{acos}{24}{88.62476} \pgfmath@def{acos}{25}{88.56745} +\pgfmath@def{acos}{26}{88.51014} \pgfmath@def{acos}{27}{88.45282} +\pgfmath@def{acos}{28}{88.39550} \pgfmath@def{acos}{29}{88.33818} +\pgfmath@def{acos}{30}{88.28086} \pgfmath@def{acos}{31}{88.22354} +\pgfmath@def{acos}{32}{88.16622} \pgfmath@def{acos}{33}{88.10889} +\pgfmath@def{acos}{34}{88.05156} \pgfmath@def{acos}{35}{87.99423} +\pgfmath@def{acos}{36}{87.93690} \pgfmath@def{acos}{37}{87.87957} +\pgfmath@def{acos}{38}{87.82223} \pgfmath@def{acos}{39}{87.76489} +\pgfmath@def{acos}{40}{87.70755} \pgfmath@def{acos}{41}{87.65021} +\pgfmath@def{acos}{42}{87.59286} \pgfmath@def{acos}{43}{87.53552} +\pgfmath@def{acos}{44}{87.47817} \pgfmath@def{acos}{45}{87.42081} +\pgfmath@def{acos}{46}{87.36346} \pgfmath@def{acos}{47}{87.30610} +\pgfmath@def{acos}{48}{87.24874} \pgfmath@def{acos}{49}{87.19138} +\pgfmath@def{acos}{50}{87.13401} \pgfmath@def{acos}{51}{87.07664} +\pgfmath@def{acos}{52}{87.01927} \pgfmath@def{acos}{53}{86.96190} +\pgfmath@def{acos}{54}{86.90452} \pgfmath@def{acos}{55}{86.84714} +\pgfmath@def{acos}{56}{86.78975} \pgfmath@def{acos}{57}{86.73237} +\pgfmath@def{acos}{58}{86.67497} \pgfmath@def{acos}{59}{86.61758} +\pgfmath@def{acos}{60}{86.56018} \pgfmath@def{acos}{61}{86.50278} +\pgfmath@def{acos}{62}{86.44538} \pgfmath@def{acos}{63}{86.38797} +\pgfmath@def{acos}{64}{86.33056} \pgfmath@def{acos}{65}{86.27314} +\pgfmath@def{acos}{66}{86.21572} \pgfmath@def{acos}{67}{86.15830} +\pgfmath@def{acos}{68}{86.10087} \pgfmath@def{acos}{69}{86.04344} +\pgfmath@def{acos}{70}{85.98601} \pgfmath@def{acos}{71}{85.92857} +\pgfmath@def{acos}{72}{85.87113} \pgfmath@def{acos}{73}{85.81368} +\pgfmath@def{acos}{74}{85.75623} \pgfmath@def{acos}{75}{85.69877} +\pgfmath@def{acos}{76}{85.64131} \pgfmath@def{acos}{77}{85.58385} +\pgfmath@def{acos}{78}{85.52638} \pgfmath@def{acos}{79}{85.46891} +\pgfmath@def{acos}{80}{85.41143} \pgfmath@def{acos}{81}{85.35395} +\pgfmath@def{acos}{82}{85.29646} \pgfmath@def{acos}{83}{85.23897} +\pgfmath@def{acos}{84}{85.18147} \pgfmath@def{acos}{85}{85.12397} +\pgfmath@def{acos}{86}{85.06646} \pgfmath@def{acos}{87}{85.00895} +\pgfmath@def{acos}{88}{84.95144} \pgfmath@def{acos}{89}{84.89392} +\pgfmath@def{acos}{90}{84.83639} \pgfmath@def{acos}{91}{84.77886} +\pgfmath@def{acos}{92}{84.72132} \pgfmath@def{acos}{93}{84.66378} +\pgfmath@def{acos}{94}{84.60623} \pgfmath@def{acos}{95}{84.54868} +\pgfmath@def{acos}{96}{84.49112} \pgfmath@def{acos}{97}{84.43355} +\pgfmath@def{acos}{98}{84.37598} \pgfmath@def{acos}{99}{84.31841} +\pgfmath@def{acos}{100}{84.26083} \pgfmath@def{acos}{101}{84.20324} +\pgfmath@def{acos}{102}{84.14564} \pgfmath@def{acos}{103}{84.08805} +\pgfmath@def{acos}{104}{84.03044} \pgfmath@def{acos}{105}{83.97283} +\pgfmath@def{acos}{106}{83.91521} \pgfmath@def{acos}{107}{83.85759} +\pgfmath@def{acos}{108}{83.79996} \pgfmath@def{acos}{109}{83.74232} +\pgfmath@def{acos}{110}{83.68468} \pgfmath@def{acos}{111}{83.62703} +\pgfmath@def{acos}{112}{83.56938} \pgfmath@def{acos}{113}{83.51171} +\pgfmath@def{acos}{114}{83.45405} \pgfmath@def{acos}{115}{83.39637} +\pgfmath@def{acos}{116}{83.33869} \pgfmath@def{acos}{117}{83.28100} +\pgfmath@def{acos}{118}{83.22330} \pgfmath@def{acos}{119}{83.16560} +\pgfmath@def{acos}{120}{83.10789} \pgfmath@def{acos}{121}{83.05018} +\pgfmath@def{acos}{122}{82.99245} \pgfmath@def{acos}{123}{82.93472} +\pgfmath@def{acos}{124}{82.87698} \pgfmath@def{acos}{125}{82.81924} +\pgfmath@def{acos}{126}{82.76149} \pgfmath@def{acos}{127}{82.70373} +\pgfmath@def{acos}{128}{82.64596} \pgfmath@def{acos}{129}{82.58819} +\pgfmath@def{acos}{130}{82.53040} \pgfmath@def{acos}{131}{82.47261} +\pgfmath@def{acos}{132}{82.41482} \pgfmath@def{acos}{133}{82.35701} +\pgfmath@def{acos}{134}{82.29920} \pgfmath@def{acos}{135}{82.24138} +\pgfmath@def{acos}{136}{82.18355} \pgfmath@def{acos}{137}{82.12571} +\pgfmath@def{acos}{138}{82.06786} \pgfmath@def{acos}{139}{82.01001} +\pgfmath@def{acos}{140}{81.95215} \pgfmath@def{acos}{141}{81.89428} +\pgfmath@def{acos}{142}{81.83640} \pgfmath@def{acos}{143}{81.77851} +\pgfmath@def{acos}{144}{81.72062} \pgfmath@def{acos}{145}{81.66272} +\pgfmath@def{acos}{146}{81.60480} \pgfmath@def{acos}{147}{81.54688} +\pgfmath@def{acos}{148}{81.48895} \pgfmath@def{acos}{149}{81.43102} +\pgfmath@def{acos}{150}{81.37307} \pgfmath@def{acos}{151}{81.31511} +\pgfmath@def{acos}{152}{81.25715} \pgfmath@def{acos}{153}{81.19917} +\pgfmath@def{acos}{154}{81.14119} \pgfmath@def{acos}{155}{81.08320} +\pgfmath@def{acos}{156}{81.02520} \pgfmath@def{acos}{157}{80.96719} +\pgfmath@def{acos}{158}{80.90917} \pgfmath@def{acos}{159}{80.85114} +\pgfmath@def{acos}{160}{80.79310} \pgfmath@def{acos}{161}{80.73505} +\pgfmath@def{acos}{162}{80.67699} \pgfmath@def{acos}{163}{80.61893} +\pgfmath@def{acos}{164}{80.56085} \pgfmath@def{acos}{165}{80.50276} +\pgfmath@def{acos}{166}{80.44466} \pgfmath@def{acos}{167}{80.38656} +\pgfmath@def{acos}{168}{80.32844} \pgfmath@def{acos}{169}{80.27031} +\pgfmath@def{acos}{170}{80.21218} \pgfmath@def{acos}{171}{80.15403} +\pgfmath@def{acos}{172}{80.09587} \pgfmath@def{acos}{173}{80.03770} +\pgfmath@def{acos}{174}{79.97953} \pgfmath@def{acos}{175}{79.92134} +\pgfmath@def{acos}{176}{79.86314} \pgfmath@def{acos}{177}{79.80493} +\pgfmath@def{acos}{178}{79.74671} \pgfmath@def{acos}{179}{79.68848} +\pgfmath@def{acos}{180}{79.63024} \pgfmath@def{acos}{181}{79.57198} +\pgfmath@def{acos}{182}{79.51372} \pgfmath@def{acos}{183}{79.45545} +\pgfmath@def{acos}{184}{79.39716} \pgfmath@def{acos}{185}{79.33886} +\pgfmath@def{acos}{186}{79.28056} \pgfmath@def{acos}{187}{79.22224} +\pgfmath@def{acos}{188}{79.16391} \pgfmath@def{acos}{189}{79.10556} +\pgfmath@def{acos}{190}{79.04721} \pgfmath@def{acos}{191}{78.98885} +\pgfmath@def{acos}{192}{78.93047} \pgfmath@def{acos}{193}{78.87208} +\pgfmath@def{acos}{194}{78.81368} \pgfmath@def{acos}{195}{78.75527} +\pgfmath@def{acos}{196}{78.69685} \pgfmath@def{acos}{197}{78.63841} +\pgfmath@def{acos}{198}{78.57997} \pgfmath@def{acos}{199}{78.52151} +\pgfmath@def{acos}{200}{78.46304} \pgfmath@def{acos}{201}{78.40455} +\pgfmath@def{acos}{202}{78.34606} \pgfmath@def{acos}{203}{78.28755} +\pgfmath@def{acos}{204}{78.22903} \pgfmath@def{acos}{205}{78.17050} +\pgfmath@def{acos}{206}{78.11195} \pgfmath@def{acos}{207}{78.05339} +\pgfmath@def{acos}{208}{77.99482} \pgfmath@def{acos}{209}{77.93624} +\pgfmath@def{acos}{210}{77.87764} \pgfmath@def{acos}{211}{77.81903} +\pgfmath@def{acos}{212}{77.76041} \pgfmath@def{acos}{213}{77.70178} +\pgfmath@def{acos}{214}{77.64313} \pgfmath@def{acos}{215}{77.58447} +\pgfmath@def{acos}{216}{77.52579} \pgfmath@def{acos}{217}{77.46711} +\pgfmath@def{acos}{218}{77.40841} \pgfmath@def{acos}{219}{77.34969} +\pgfmath@def{acos}{220}{77.29096} \pgfmath@def{acos}{221}{77.23222} +\pgfmath@def{acos}{222}{77.17347} \pgfmath@def{acos}{223}{77.11470} +\pgfmath@def{acos}{224}{77.05591} \pgfmath@def{acos}{225}{76.99712} +\pgfmath@def{acos}{226}{76.93831} \pgfmath@def{acos}{227}{76.87948} +\pgfmath@def{acos}{228}{76.82064} \pgfmath@def{acos}{229}{76.76179} +\pgfmath@def{acos}{230}{76.70292} \pgfmath@def{acos}{231}{76.64404} +\pgfmath@def{acos}{232}{76.58515} \pgfmath@def{acos}{233}{76.52624} +\pgfmath@def{acos}{234}{76.46731} \pgfmath@def{acos}{235}{76.40837} +\pgfmath@def{acos}{236}{76.34942} \pgfmath@def{acos}{237}{76.29045} +\pgfmath@def{acos}{238}{76.23147} \pgfmath@def{acos}{239}{76.17247} +\pgfmath@def{acos}{240}{76.11346} \pgfmath@def{acos}{241}{76.05443} +\pgfmath@def{acos}{242}{75.99538} \pgfmath@def{acos}{243}{75.93632} +\pgfmath@def{acos}{244}{75.87725} \pgfmath@def{acos}{245}{75.81816} +\pgfmath@def{acos}{246}{75.75906} \pgfmath@def{acos}{247}{75.69994} +\pgfmath@def{acos}{248}{75.64080} \pgfmath@def{acos}{249}{75.58165} +\pgfmath@def{acos}{250}{75.52248} \pgfmath@def{acos}{251}{75.46330} +\pgfmath@def{acos}{252}{75.40410} \pgfmath@def{acos}{253}{75.34489} +\pgfmath@def{acos}{254}{75.28566} \pgfmath@def{acos}{255}{75.22641} +\pgfmath@def{acos}{256}{75.16715} \pgfmath@def{acos}{257}{75.10787} +\pgfmath@def{acos}{258}{75.04857} \pgfmath@def{acos}{259}{74.98926} +\pgfmath@def{acos}{260}{74.92993} \pgfmath@def{acos}{261}{74.87059} +\pgfmath@def{acos}{262}{74.81123} \pgfmath@def{acos}{263}{74.75185} +\pgfmath@def{acos}{264}{74.69245} \pgfmath@def{acos}{265}{74.63304} +\pgfmath@def{acos}{266}{74.57361} \pgfmath@def{acos}{267}{74.51417} +\pgfmath@def{acos}{268}{74.45471} \pgfmath@def{acos}{269}{74.39523} +\pgfmath@def{acos}{270}{74.33573} \pgfmath@def{acos}{271}{74.27621} +\pgfmath@def{acos}{272}{74.21668} \pgfmath@def{acos}{273}{74.15713} +\pgfmath@def{acos}{274}{74.09757} \pgfmath@def{acos}{275}{74.03798} +\pgfmath@def{acos}{276}{73.97838} \pgfmath@def{acos}{277}{73.91876} +\pgfmath@def{acos}{278}{73.85912} \pgfmath@def{acos}{279}{73.79946} +\pgfmath@def{acos}{280}{73.73979} \pgfmath@def{acos}{281}{73.68010} +\pgfmath@def{acos}{282}{73.62039} \pgfmath@def{acos}{283}{73.56066} +\pgfmath@def{acos}{284}{73.50091} \pgfmath@def{acos}{285}{73.44115} +\pgfmath@def{acos}{286}{73.38136} \pgfmath@def{acos}{287}{73.32156} +\pgfmath@def{acos}{288}{73.26174} \pgfmath@def{acos}{289}{73.20190} +\pgfmath@def{acos}{290}{73.14204} \pgfmath@def{acos}{291}{73.08216} +\pgfmath@def{acos}{292}{73.02226} \pgfmath@def{acos}{293}{72.96235} +\pgfmath@def{acos}{294}{72.90241} \pgfmath@def{acos}{295}{72.84246} +\pgfmath@def{acos}{296}{72.78248} \pgfmath@def{acos}{297}{72.72249} +\pgfmath@def{acos}{298}{72.66248} \pgfmath@def{acos}{299}{72.60244} +\pgfmath@def{acos}{300}{72.54239} \pgfmath@def{acos}{301}{72.48232} +\pgfmath@def{acos}{302}{72.42223} \pgfmath@def{acos}{303}{72.36212} +\pgfmath@def{acos}{304}{72.30198} \pgfmath@def{acos}{305}{72.24183} +\pgfmath@def{acos}{306}{72.18166} \pgfmath@def{acos}{307}{72.12147} +\pgfmath@def{acos}{308}{72.06125} \pgfmath@def{acos}{309}{72.00102} +\pgfmath@def{acos}{310}{71.94077} \pgfmath@def{acos}{311}{71.88049} +\pgfmath@def{acos}{312}{71.82019} \pgfmath@def{acos}{313}{71.75988} +\pgfmath@def{acos}{314}{71.69954} \pgfmath@def{acos}{315}{71.63918} +\pgfmath@def{acos}{316}{71.57880} \pgfmath@def{acos}{317}{71.51840} +\pgfmath@def{acos}{318}{71.45798} \pgfmath@def{acos}{319}{71.39754} +\pgfmath@def{acos}{320}{71.33707} \pgfmath@def{acos}{321}{71.27658} +\pgfmath@def{acos}{322}{71.21608} \pgfmath@def{acos}{323}{71.15555} +\pgfmath@def{acos}{324}{71.09499} \pgfmath@def{acos}{325}{71.03442} +\pgfmath@def{acos}{326}{70.97382} \pgfmath@def{acos}{327}{70.91321} +\pgfmath@def{acos}{328}{70.85257} \pgfmath@def{acos}{329}{70.79190} +\pgfmath@def{acos}{330}{70.73122} \pgfmath@def{acos}{331}{70.67051} +\pgfmath@def{acos}{332}{70.60978} \pgfmath@def{acos}{333}{70.54903} +\pgfmath@def{acos}{334}{70.48826} \pgfmath@def{acos}{335}{70.42746} +\pgfmath@def{acos}{336}{70.36664} \pgfmath@def{acos}{337}{70.30579} +\pgfmath@def{acos}{338}{70.24493} \pgfmath@def{acos}{339}{70.18404} +\pgfmath@def{acos}{340}{70.12312} \pgfmath@def{acos}{341}{70.06218} +\pgfmath@def{acos}{342}{70.00122} \pgfmath@def{acos}{343}{69.94024} +\pgfmath@def{acos}{344}{69.87923} \pgfmath@def{acos}{345}{69.81820} +\pgfmath@def{acos}{346}{69.75714} \pgfmath@def{acos}{347}{69.69606} +\pgfmath@def{acos}{348}{69.63496} \pgfmath@def{acos}{349}{69.57383} +\pgfmath@def{acos}{350}{69.51268} \pgfmath@def{acos}{351}{69.45150} +\pgfmath@def{acos}{352}{69.39030} \pgfmath@def{acos}{353}{69.32908} +\pgfmath@def{acos}{354}{69.26783} \pgfmath@def{acos}{355}{69.20655} +\pgfmath@def{acos}{356}{69.14525} \pgfmath@def{acos}{357}{69.08393} +\pgfmath@def{acos}{358}{69.02258} \pgfmath@def{acos}{359}{68.96120} +\pgfmath@def{acos}{360}{68.89980} \pgfmath@def{acos}{361}{68.83837} +\pgfmath@def{acos}{362}{68.77692} \pgfmath@def{acos}{363}{68.71544} +\pgfmath@def{acos}{364}{68.65394} \pgfmath@def{acos}{365}{68.59241} +\pgfmath@def{acos}{366}{68.53086} \pgfmath@def{acos}{367}{68.46928} +\pgfmath@def{acos}{368}{68.40767} \pgfmath@def{acos}{369}{68.34604} +\pgfmath@def{acos}{370}{68.28438} \pgfmath@def{acos}{371}{68.22269} +\pgfmath@def{acos}{372}{68.16098} \pgfmath@def{acos}{373}{68.09924} +\pgfmath@def{acos}{374}{68.03748} \pgfmath@def{acos}{375}{67.97568} +\pgfmath@def{acos}{376}{67.91386} \pgfmath@def{acos}{377}{67.85202} +\pgfmath@def{acos}{378}{67.79014} \pgfmath@def{acos}{379}{67.72824} +\pgfmath@def{acos}{380}{67.66631} \pgfmath@def{acos}{381}{67.60436} +\pgfmath@def{acos}{382}{67.54237} \pgfmath@def{acos}{383}{67.48036} +\pgfmath@def{acos}{384}{67.41832} \pgfmath@def{acos}{385}{67.35626} +\pgfmath@def{acos}{386}{67.29416} \pgfmath@def{acos}{387}{67.23204} +\pgfmath@def{acos}{388}{67.16988} \pgfmath@def{acos}{389}{67.10770} +\pgfmath@def{acos}{390}{67.04550} \pgfmath@def{acos}{391}{66.98326} +\pgfmath@def{acos}{392}{66.92099} \pgfmath@def{acos}{393}{66.85870} +\pgfmath@def{acos}{394}{66.79637} \pgfmath@def{acos}{395}{66.73402} +\pgfmath@def{acos}{396}{66.67164} \pgfmath@def{acos}{397}{66.60923} +\pgfmath@def{acos}{398}{66.54679} \pgfmath@def{acos}{399}{66.48432} +\pgfmath@def{acos}{400}{66.42182} \pgfmath@def{acos}{401}{66.35929} +\pgfmath@def{acos}{402}{66.29673} \pgfmath@def{acos}{403}{66.23414} +\pgfmath@def{acos}{404}{66.17152} \pgfmath@def{acos}{405}{66.10887} +\pgfmath@def{acos}{406}{66.04619} \pgfmath@def{acos}{407}{65.98348} +\pgfmath@def{acos}{408}{65.92074} \pgfmath@def{acos}{409}{65.85796} +\pgfmath@def{acos}{410}{65.79516} \pgfmath@def{acos}{411}{65.73233} +\pgfmath@def{acos}{412}{65.66946} \pgfmath@def{acos}{413}{65.60657} +\pgfmath@def{acos}{414}{65.54364} \pgfmath@def{acos}{415}{65.48068} +\pgfmath@def{acos}{416}{65.41769} \pgfmath@def{acos}{417}{65.35467} +\pgfmath@def{acos}{418}{65.29161} \pgfmath@def{acos}{419}{65.22853} +\pgfmath@def{acos}{420}{65.16541} \pgfmath@def{acos}{421}{65.10226} +\pgfmath@def{acos}{422}{65.03908} \pgfmath@def{acos}{423}{64.97586} +\pgfmath@def{acos}{424}{64.91261} \pgfmath@def{acos}{425}{64.84933} +\pgfmath@def{acos}{426}{64.78602} \pgfmath@def{acos}{427}{64.72267} +\pgfmath@def{acos}{428}{64.65929} \pgfmath@def{acos}{429}{64.59588} +\pgfmath@def{acos}{430}{64.53244} \pgfmath@def{acos}{431}{64.46896} +\pgfmath@def{acos}{432}{64.40544} \pgfmath@def{acos}{433}{64.34190} +\pgfmath@def{acos}{434}{64.27832} \pgfmath@def{acos}{435}{64.21470} +\pgfmath@def{acos}{436}{64.15105} \pgfmath@def{acos}{437}{64.08737} +\pgfmath@def{acos}{438}{64.02365} \pgfmath@def{acos}{439}{63.95990} +\pgfmath@def{acos}{440}{63.89611} \pgfmath@def{acos}{441}{63.83229} +\pgfmath@def{acos}{442}{63.76844} \pgfmath@def{acos}{443}{63.70455} +\pgfmath@def{acos}{444}{63.64062} \pgfmath@def{acos}{445}{63.57666} +\pgfmath@def{acos}{446}{63.51266} \pgfmath@def{acos}{447}{63.44863} +\pgfmath@def{acos}{448}{63.38456} \pgfmath@def{acos}{449}{63.32045} +\pgfmath@def{acos}{450}{63.25631} \pgfmath@def{acos}{451}{63.19213} +\pgfmath@def{acos}{452}{63.12792} \pgfmath@def{acos}{453}{63.06367} +\pgfmath@def{acos}{454}{62.99938} \pgfmath@def{acos}{455}{62.93506} +\pgfmath@def{acos}{456}{62.87070} \pgfmath@def{acos}{457}{62.80630} +\pgfmath@def{acos}{458}{62.74187} \pgfmath@def{acos}{459}{62.67740} +\pgfmath@def{acos}{460}{62.61289} \pgfmath@def{acos}{461}{62.54834} +\pgfmath@def{acos}{462}{62.48376} \pgfmath@def{acos}{463}{62.41913} +\pgfmath@def{acos}{464}{62.35447} \pgfmath@def{acos}{465}{62.28977} +\pgfmath@def{acos}{466}{62.22504} \pgfmath@def{acos}{467}{62.16026} +\pgfmath@def{acos}{468}{62.09545} \pgfmath@def{acos}{469}{62.03059} +\pgfmath@def{acos}{470}{61.96570} \pgfmath@def{acos}{471}{61.90077} +\pgfmath@def{acos}{472}{61.83580} \pgfmath@def{acos}{473}{61.77079} +\pgfmath@def{acos}{474}{61.70574} \pgfmath@def{acos}{475}{61.64065} +\pgfmath@def{acos}{476}{61.57552} \pgfmath@def{acos}{477}{61.51035} +\pgfmath@def{acos}{478}{61.44514} \pgfmath@def{acos}{479}{61.37988} +\pgfmath@def{acos}{480}{61.31459} \pgfmath@def{acos}{481}{61.24926} +\pgfmath@def{acos}{482}{61.18389} \pgfmath@def{acos}{483}{61.11847} +\pgfmath@def{acos}{484}{61.05302} \pgfmath@def{acos}{485}{60.98752} +\pgfmath@def{acos}{486}{60.92199} \pgfmath@def{acos}{487}{60.85641} +\pgfmath@def{acos}{488}{60.79078} \pgfmath@def{acos}{489}{60.72512} +\pgfmath@def{acos}{490}{60.65941} \pgfmath@def{acos}{491}{60.59367} +\pgfmath@def{acos}{492}{60.52787} \pgfmath@def{acos}{493}{60.46204} +\pgfmath@def{acos}{494}{60.39616} \pgfmath@def{acos}{495}{60.33025} +\pgfmath@def{acos}{496}{60.26428} \pgfmath@def{acos}{497}{60.19828} +\pgfmath@def{acos}{498}{60.13223} \pgfmath@def{acos}{499}{60.06613} +\pgfmath@def{acos}{500}{60.00000} \pgfmath@def{acos}{501}{59.93381} +\pgfmath@def{acos}{502}{59.86759} \pgfmath@def{acos}{503}{59.80132} +\pgfmath@def{acos}{504}{59.73500} \pgfmath@def{acos}{505}{59.66864} +\pgfmath@def{acos}{506}{59.60224} \pgfmath@def{acos}{507}{59.53579} +\pgfmath@def{acos}{508}{59.46929} \pgfmath@def{acos}{509}{59.40275} +\pgfmath@def{acos}{510}{59.33617} \pgfmath@def{acos}{511}{59.26953} +\pgfmath@def{acos}{512}{59.20285} \pgfmath@def{acos}{513}{59.13613} +\pgfmath@def{acos}{514}{59.06936} \pgfmath@def{acos}{515}{59.00254} +\pgfmath@def{acos}{516}{58.93568} \pgfmath@def{acos}{517}{58.86876} +\pgfmath@def{acos}{518}{58.80180} \pgfmath@def{acos}{519}{58.73480} +\pgfmath@def{acos}{520}{58.66774} \pgfmath@def{acos}{521}{58.60064} +\pgfmath@def{acos}{522}{58.53349} \pgfmath@def{acos}{523}{58.46629} +\pgfmath@def{acos}{524}{58.39905} \pgfmath@def{acos}{525}{58.33175} +\pgfmath@def{acos}{526}{58.26441} \pgfmath@def{acos}{527}{58.19702} +\pgfmath@def{acos}{528}{58.12957} \pgfmath@def{acos}{529}{58.06208} +\pgfmath@def{acos}{530}{57.99454} \pgfmath@def{acos}{531}{57.92695} +\pgfmath@def{acos}{532}{57.85931} \pgfmath@def{acos}{533}{57.79162} +\pgfmath@def{acos}{534}{57.72388} \pgfmath@def{acos}{535}{57.65608} +\pgfmath@def{acos}{536}{57.58824} \pgfmath@def{acos}{537}{57.52035} +\pgfmath@def{acos}{538}{57.45240} \pgfmath@def{acos}{539}{57.38441} +\pgfmath@def{acos}{540}{57.31636} \pgfmath@def{acos}{541}{57.24826} +\pgfmath@def{acos}{542}{57.18010} \pgfmath@def{acos}{543}{57.11190} +\pgfmath@def{acos}{544}{57.04364} \pgfmath@def{acos}{545}{56.97533} +\pgfmath@def{acos}{546}{56.90697} \pgfmath@def{acos}{547}{56.83855} +\pgfmath@def{acos}{548}{56.77008} \pgfmath@def{acos}{549}{56.70156} +\pgfmath@def{acos}{550}{56.63298} \pgfmath@def{acos}{551}{56.56435} +\pgfmath@def{acos}{552}{56.49567} \pgfmath@def{acos}{553}{56.42693} +\pgfmath@def{acos}{554}{56.35813} \pgfmath@def{acos}{555}{56.28928} +\pgfmath@def{acos}{556}{56.22038} \pgfmath@def{acos}{557}{56.15141} +\pgfmath@def{acos}{558}{56.08240} \pgfmath@def{acos}{559}{56.01333} +\pgfmath@def{acos}{560}{55.94420} \pgfmath@def{acos}{561}{55.87501} +\pgfmath@def{acos}{562}{55.80577} \pgfmath@def{acos}{563}{55.73647} +\pgfmath@def{acos}{564}{55.66712} \pgfmath@def{acos}{565}{55.59770} +\pgfmath@def{acos}{566}{55.52823} \pgfmath@def{acos}{567}{55.45871} +\pgfmath@def{acos}{568}{55.38912} \pgfmath@def{acos}{569}{55.31947} +\pgfmath@def{acos}{570}{55.24977} \pgfmath@def{acos}{571}{55.18001} +\pgfmath@def{acos}{572}{55.11019} \pgfmath@def{acos}{573}{55.04030} +\pgfmath@def{acos}{574}{54.97036} \pgfmath@def{acos}{575}{54.90036} +\pgfmath@def{acos}{576}{54.83030} \pgfmath@def{acos}{577}{54.76018} +\pgfmath@def{acos}{578}{54.69000} \pgfmath@def{acos}{579}{54.61976} +\pgfmath@def{acos}{580}{54.54945} \pgfmath@def{acos}{581}{54.47909} +\pgfmath@def{acos}{582}{54.40866} \pgfmath@def{acos}{583}{54.33817} +\pgfmath@def{acos}{584}{54.26762} \pgfmath@def{acos}{585}{54.19701} +\pgfmath@def{acos}{586}{54.12633} \pgfmath@def{acos}{587}{54.05559} +\pgfmath@def{acos}{588}{53.98479} \pgfmath@def{acos}{589}{53.91392} +\pgfmath@def{acos}{590}{53.84299} \pgfmath@def{acos}{591}{53.77199} +\pgfmath@def{acos}{592}{53.70093} \pgfmath@def{acos}{593}{53.62981} +\pgfmath@def{acos}{594}{53.55862} \pgfmath@def{acos}{595}{53.48736} +\pgfmath@def{acos}{596}{53.41604} \pgfmath@def{acos}{597}{53.34466} +\pgfmath@def{acos}{598}{53.27320} \pgfmath@def{acos}{599}{53.20168} +\pgfmath@def{acos}{600}{53.13010} \pgfmath@def{acos}{601}{53.05844} +\pgfmath@def{acos}{602}{52.98672} \pgfmath@def{acos}{603}{52.91494} +\pgfmath@def{acos}{604}{52.84308} \pgfmath@def{acos}{605}{52.77115} +\pgfmath@def{acos}{606}{52.69916} \pgfmath@def{acos}{607}{52.62710} +\pgfmath@def{acos}{608}{52.55497} \pgfmath@def{acos}{609}{52.48276} +\pgfmath@def{acos}{610}{52.41049} \pgfmath@def{acos}{611}{52.33815} +\pgfmath@def{acos}{612}{52.26574} \pgfmath@def{acos}{613}{52.19326} +\pgfmath@def{acos}{614}{52.12070} \pgfmath@def{acos}{615}{52.04808} +\pgfmath@def{acos}{616}{51.97538} \pgfmath@def{acos}{617}{51.90261} +\pgfmath@def{acos}{618}{51.82976} \pgfmath@def{acos}{619}{51.75685} +\pgfmath@def{acos}{620}{51.68386} \pgfmath@def{acos}{621}{51.61080} +\pgfmath@def{acos}{622}{51.53766} \pgfmath@def{acos}{623}{51.46445} +\pgfmath@def{acos}{624}{51.39117} \pgfmath@def{acos}{625}{51.31781} +\pgfmath@def{acos}{626}{51.24437} \pgfmath@def{acos}{627}{51.17086} +\pgfmath@def{acos}{628}{51.09728} \pgfmath@def{acos}{629}{51.02361} +\pgfmath@def{acos}{630}{50.94987} \pgfmath@def{acos}{631}{50.87606} +\pgfmath@def{acos}{632}{50.80216} \pgfmath@def{acos}{633}{50.72819} +\pgfmath@def{acos}{634}{50.65414} \pgfmath@def{acos}{635}{50.58001} +\pgfmath@def{acos}{636}{50.50580} \pgfmath@def{acos}{637}{50.43152} +\pgfmath@def{acos}{638}{50.35715} \pgfmath@def{acos}{639}{50.28270} +\pgfmath@def{acos}{640}{50.20818} \pgfmath@def{acos}{641}{50.13357} +\pgfmath@def{acos}{642}{50.05888} \pgfmath@def{acos}{643}{49.98411} +\pgfmath@def{acos}{644}{49.90926} \pgfmath@def{acos}{645}{49.83432} +\pgfmath@def{acos}{646}{49.75930} \pgfmath@def{acos}{647}{49.68420} +\pgfmath@def{acos}{648}{49.60902} \pgfmath@def{acos}{649}{49.53375} +\pgfmath@def{acos}{650}{49.45839} \pgfmath@def{acos}{651}{49.38296} +\pgfmath@def{acos}{652}{49.30743} \pgfmath@def{acos}{653}{49.23182} +\pgfmath@def{acos}{654}{49.15613} \pgfmath@def{acos}{655}{49.08035} +\pgfmath@def{acos}{656}{49.00448} \pgfmath@def{acos}{657}{48.92852} +\pgfmath@def{acos}{658}{48.85248} \pgfmath@def{acos}{659}{48.77634} +\pgfmath@def{acos}{660}{48.70012} \pgfmath@def{acos}{661}{48.62381} +\pgfmath@def{acos}{662}{48.54741} \pgfmath@def{acos}{663}{48.47092} +\pgfmath@def{acos}{664}{48.39434} \pgfmath@def{acos}{665}{48.31767} +\pgfmath@def{acos}{666}{48.24091} \pgfmath@def{acos}{667}{48.16405} +\pgfmath@def{acos}{668}{48.08710} \pgfmath@def{acos}{669}{48.01006} +\pgfmath@def{acos}{670}{47.93293} \pgfmath@def{acos}{671}{47.85570} +\pgfmath@def{acos}{672}{47.77838} \pgfmath@def{acos}{673}{47.70096} +\pgfmath@def{acos}{674}{47.62345} \pgfmath@def{acos}{675}{47.54585} +\pgfmath@def{acos}{676}{47.46814} \pgfmath@def{acos}{677}{47.39034} +\pgfmath@def{acos}{678}{47.31244} \pgfmath@def{acos}{679}{47.23445} +\pgfmath@def{acos}{680}{47.15635} \pgfmath@def{acos}{681}{47.07816} +\pgfmath@def{acos}{682}{46.99987} \pgfmath@def{acos}{683}{46.92147} +\pgfmath@def{acos}{684}{46.84298} \pgfmath@def{acos}{685}{46.76439} +\pgfmath@def{acos}{686}{46.68569} \pgfmath@def{acos}{687}{46.60690} +\pgfmath@def{acos}{688}{46.52800} \pgfmath@def{acos}{689}{46.44899} +\pgfmath@def{acos}{690}{46.36989} \pgfmath@def{acos}{691}{46.29068} +\pgfmath@def{acos}{692}{46.21136} \pgfmath@def{acos}{693}{46.13194} +\pgfmath@def{acos}{694}{46.05241} \pgfmath@def{acos}{695}{45.97278} +\pgfmath@def{acos}{696}{45.89304} \pgfmath@def{acos}{697}{45.81319} +\pgfmath@def{acos}{698}{45.73323} \pgfmath@def{acos}{699}{45.65317} +\pgfmath@def{acos}{700}{45.57299} \pgfmath@def{acos}{701}{45.49271} +\pgfmath@def{acos}{702}{45.41231} \pgfmath@def{acos}{703}{45.33180} +\pgfmath@def{acos}{704}{45.25118} \pgfmath@def{acos}{705}{45.17045} +\pgfmath@def{acos}{706}{45.08961} \pgfmath@def{acos}{707}{45.00865} +\pgfmath@def{acos}{708}{44.92757} \pgfmath@def{acos}{709}{44.84638} +\pgfmath@def{acos}{710}{44.76508} \pgfmath@def{acos}{711}{44.68366} +\pgfmath@def{acos}{712}{44.60212} \pgfmath@def{acos}{713}{44.52046} +\pgfmath@def{acos}{714}{44.43869} \pgfmath@def{acos}{715}{44.35680} +\pgfmath@def{acos}{716}{44.27478} \pgfmath@def{acos}{717}{44.19265} +\pgfmath@def{acos}{718}{44.11039} \pgfmath@def{acos}{719}{44.02802} +\pgfmath@def{acos}{720}{43.94552} \pgfmath@def{acos}{721}{43.86289} +\pgfmath@def{acos}{722}{43.78014} \pgfmath@def{acos}{723}{43.69727} +\pgfmath@def{acos}{724}{43.61427} \pgfmath@def{acos}{725}{43.53115} +\pgfmath@def{acos}{726}{43.44790} \pgfmath@def{acos}{727}{43.36452} +\pgfmath@def{acos}{728}{43.28101} \pgfmath@def{acos}{729}{43.19737} +\pgfmath@def{acos}{730}{43.11360} \pgfmath@def{acos}{731}{43.02970} +\pgfmath@def{acos}{732}{42.94567} \pgfmath@def{acos}{733}{42.86151} +\pgfmath@def{acos}{734}{42.77721} \pgfmath@def{acos}{735}{42.69278} +\pgfmath@def{acos}{736}{42.60821} \pgfmath@def{acos}{737}{42.52351} +\pgfmath@def{acos}{738}{42.43867} \pgfmath@def{acos}{739}{42.35370} +\pgfmath@def{acos}{740}{42.26858} \pgfmath@def{acos}{741}{42.18333} +\pgfmath@def{acos}{742}{42.09793} \pgfmath@def{acos}{743}{42.01240} +\pgfmath@def{acos}{744}{41.92672} \pgfmath@def{acos}{745}{41.84090} +\pgfmath@def{acos}{746}{41.75493} \pgfmath@def{acos}{747}{41.66882} +\pgfmath@def{acos}{748}{41.58257} \pgfmath@def{acos}{749}{41.49617} +\pgfmath@def{acos}{750}{41.40962} \pgfmath@def{acos}{751}{41.32292} +\pgfmath@def{acos}{752}{41.23607} \pgfmath@def{acos}{753}{41.14908} +\pgfmath@def{acos}{754}{41.06193} \pgfmath@def{acos}{755}{40.97463} +\pgfmath@def{acos}{756}{40.88717} \pgfmath@def{acos}{757}{40.79956} +\pgfmath@def{acos}{758}{40.71180} \pgfmath@def{acos}{759}{40.62388} +\pgfmath@def{acos}{760}{40.53580} \pgfmath@def{acos}{761}{40.44756} +\pgfmath@def{acos}{762}{40.35916} \pgfmath@def{acos}{763}{40.27061} +\pgfmath@def{acos}{764}{40.18189} \pgfmath@def{acos}{765}{40.09300} +\pgfmath@def{acos}{766}{40.00396} \pgfmath@def{acos}{767}{39.91474} +\pgfmath@def{acos}{768}{39.82537} \pgfmath@def{acos}{769}{39.73582} +\pgfmath@def{acos}{770}{39.64611} \pgfmath@def{acos}{771}{39.55622} +\pgfmath@def{acos}{772}{39.46617} \pgfmath@def{acos}{773}{39.37594} +\pgfmath@def{acos}{774}{39.28554} \pgfmath@def{acos}{775}{39.19496} +\pgfmath@def{acos}{776}{39.10421} \pgfmath@def{acos}{777}{39.01328} +\pgfmath@def{acos}{778}{38.92218} \pgfmath@def{acos}{779}{38.83089} +\pgfmath@def{acos}{780}{38.73942} \pgfmath@def{acos}{781}{38.64777} +\pgfmath@def{acos}{782}{38.55594} \pgfmath@def{acos}{783}{38.46392} +\pgfmath@def{acos}{784}{38.37171} \pgfmath@def{acos}{785}{38.27932} +\pgfmath@def{acos}{786}{38.18673} \pgfmath@def{acos}{787}{38.09396} +\pgfmath@def{acos}{788}{38.00100} \pgfmath@def{acos}{789}{37.90784} +\pgfmath@def{acos}{790}{37.81448} \pgfmath@def{acos}{791}{37.72093} +\pgfmath@def{acos}{792}{37.62719} \pgfmath@def{acos}{793}{37.53324} +\pgfmath@def{acos}{794}{37.43909} \pgfmath@def{acos}{795}{37.34474} +\pgfmath@def{acos}{796}{37.25019} \pgfmath@def{acos}{797}{37.15542} +\pgfmath@def{acos}{798}{37.06046} \pgfmath@def{acos}{799}{36.96528} +\pgfmath@def{acos}{800}{36.86989} \pgfmath@def{acos}{801}{36.77429} +\pgfmath@def{acos}{802}{36.67848} \pgfmath@def{acos}{803}{36.58245} +\pgfmath@def{acos}{804}{36.48621} \pgfmath@def{acos}{805}{36.38974} +\pgfmath@def{acos}{806}{36.29305} \pgfmath@def{acos}{807}{36.19615} +\pgfmath@def{acos}{808}{36.09901} \pgfmath@def{acos}{809}{36.00165} +\pgfmath@def{acos}{810}{35.90406} \pgfmath@def{acos}{811}{35.80625} +\pgfmath@def{acos}{812}{35.70820} \pgfmath@def{acos}{813}{35.60991} +\pgfmath@def{acos}{814}{35.51139} \pgfmath@def{acos}{815}{35.41263} +\pgfmath@def{acos}{816}{35.31364} \pgfmath@def{acos}{817}{35.21440} +\pgfmath@def{acos}{818}{35.11491} \pgfmath@def{acos}{819}{35.01518} +\pgfmath@def{acos}{820}{34.91520} \pgfmath@def{acos}{821}{34.81497} +\pgfmath@def{acos}{822}{34.71449} \pgfmath@def{acos}{823}{34.61375} +\pgfmath@def{acos}{824}{34.51276} \pgfmath@def{acos}{825}{34.41150} +\pgfmath@def{acos}{826}{34.30999} \pgfmath@def{acos}{827}{34.20821} +\pgfmath@def{acos}{828}{34.10616} \pgfmath@def{acos}{829}{34.00385} +\pgfmath@def{acos}{830}{33.90126} \pgfmath@def{acos}{831}{33.79840} +\pgfmath@def{acos}{832}{33.69526} \pgfmath@def{acos}{833}{33.59184} +\pgfmath@def{acos}{834}{33.48814} \pgfmath@def{acos}{835}{33.38416} +\pgfmath@def{acos}{836}{33.27989} \pgfmath@def{acos}{837}{33.17533} +\pgfmath@def{acos}{838}{33.07047} \pgfmath@def{acos}{839}{32.96532} +\pgfmath@def{acos}{840}{32.85988} \pgfmath@def{acos}{841}{32.75413} +\pgfmath@def{acos}{842}{32.64807} \pgfmath@def{acos}{843}{32.54171} +\pgfmath@def{acos}{844}{32.43504} \pgfmath@def{acos}{845}{32.32806} +\pgfmath@def{acos}{846}{32.22076} \pgfmath@def{acos}{847}{32.11314} +\pgfmath@def{acos}{848}{32.00520} \pgfmath@def{acos}{849}{31.89693} +\pgfmath@def{acos}{850}{31.78833} \pgfmath@def{acos}{851}{31.67939} +\pgfmath@def{acos}{852}{31.57012} \pgfmath@def{acos}{853}{31.46051} +\pgfmath@def{acos}{854}{31.35056} \pgfmath@def{acos}{855}{31.24026} +\pgfmath@def{acos}{856}{31.12961} \pgfmath@def{acos}{857}{31.01860} +\pgfmath@def{acos}{858}{30.90724} \pgfmath@def{acos}{859}{30.79551} +\pgfmath@def{acos}{860}{30.68341} \pgfmath@def{acos}{861}{30.57095} +\pgfmath@def{acos}{862}{30.45811} \pgfmath@def{acos}{863}{30.34489} +\pgfmath@def{acos}{864}{30.23128} \pgfmath@def{acos}{865}{30.11729} +\pgfmath@def{acos}{866}{30.00291} \pgfmath@def{acos}{867}{29.88813} +\pgfmath@def{acos}{868}{29.77294} \pgfmath@def{acos}{869}{29.65736} +\pgfmath@def{acos}{870}{29.54136} \pgfmath@def{acos}{871}{29.42494} +\pgfmath@def{acos}{872}{29.30810} \pgfmath@def{acos}{873}{29.19084} +\pgfmath@def{acos}{874}{29.07315} \pgfmath@def{acos}{875}{28.95502} +\pgfmath@def{acos}{876}{28.83645} \pgfmath@def{acos}{877}{28.71743} +\pgfmath@def{acos}{878}{28.59796} \pgfmath@def{acos}{879}{28.47803} +\pgfmath@def{acos}{880}{28.35763} \pgfmath@def{acos}{881}{28.23677} +\pgfmath@def{acos}{882}{28.11542} \pgfmath@def{acos}{883}{27.99360} +\pgfmath@def{acos}{884}{27.87128} \pgfmath@def{acos}{885}{27.74847} +\pgfmath@def{acos}{886}{27.62516} \pgfmath@def{acos}{887}{27.50134} +\pgfmath@def{acos}{888}{27.37700} \pgfmath@def{acos}{889}{27.25214} +\pgfmath@def{acos}{890}{27.12675} \pgfmath@def{acos}{891}{27.00082} +\pgfmath@def{acos}{892}{26.87434} \pgfmath@def{acos}{893}{26.74731} +\pgfmath@def{acos}{894}{26.61973} \pgfmath@def{acos}{895}{26.49157} +\pgfmath@def{acos}{896}{26.36283} \pgfmath@def{acos}{897}{26.23351} +\pgfmath@def{acos}{898}{26.10359} \pgfmath@def{acos}{899}{25.97306} +\pgfmath@def{acos}{900}{25.84193} \pgfmath@def{acos}{901}{25.71017} +\pgfmath@def{acos}{902}{25.57778} \pgfmath@def{acos}{903}{25.44475} +\pgfmath@def{acos}{904}{25.31106} \pgfmath@def{acos}{905}{25.17671} +\pgfmath@def{acos}{906}{25.04169} \pgfmath@def{acos}{907}{24.90598} +\pgfmath@def{acos}{908}{24.76958} \pgfmath@def{acos}{909}{24.63247} +\pgfmath@def{acos}{910}{24.49464} \pgfmath@def{acos}{911}{24.35608} +\pgfmath@def{acos}{912}{24.21678} \pgfmath@def{acos}{913}{24.07672} +\pgfmath@def{acos}{914}{23.93588} \pgfmath@def{acos}{915}{23.79427} +\pgfmath@def{acos}{916}{23.65185} \pgfmath@def{acos}{917}{23.50863} +\pgfmath@def{acos}{918}{23.36457} \pgfmath@def{acos}{919}{23.21967} +\pgfmath@def{acos}{920}{23.07391} \pgfmath@def{acos}{921}{22.92728} +\pgfmath@def{acos}{922}{22.77975} \pgfmath@def{acos}{923}{22.63132} +\pgfmath@def{acos}{924}{22.48195} \pgfmath@def{acos}{925}{22.33164} +\pgfmath@def{acos}{926}{22.18036} \pgfmath@def{acos}{927}{22.02810} +\pgfmath@def{acos}{928}{21.87483} \pgfmath@def{acos}{929}{21.72053} +\pgfmath@def{acos}{930}{21.56518} \pgfmath@def{acos}{931}{21.40876} +\pgfmath@def{acos}{932}{21.25124} \pgfmath@def{acos}{933}{21.09260} +\pgfmath@def{acos}{934}{20.93281} \pgfmath@def{acos}{935}{20.77185} +\pgfmath@def{acos}{936}{20.60969} \pgfmath@def{acos}{937}{20.44630} +\pgfmath@def{acos}{938}{20.28165} \pgfmath@def{acos}{939}{20.11570} +\pgfmath@def{acos}{940}{19.94844} \pgfmath@def{acos}{941}{19.77982} +\pgfmath@def{acos}{942}{19.60981} \pgfmath@def{acos}{943}{19.43837} +\pgfmath@def{acos}{944}{19.26546} \pgfmath@def{acos}{945}{19.09105} +\pgfmath@def{acos}{946}{18.91509} \pgfmath@def{acos}{947}{18.73754} +\pgfmath@def{acos}{948}{18.55835} \pgfmath@def{acos}{949}{18.37748} +\pgfmath@def{acos}{950}{18.19487} \pgfmath@def{acos}{951}{18.01047} +\pgfmath@def{acos}{952}{17.82423} \pgfmath@def{acos}{953}{17.63609} +\pgfmath@def{acos}{954}{17.44598} \pgfmath@def{acos}{955}{17.25385} +\pgfmath@def{acos}{956}{17.05962} \pgfmath@def{acos}{957}{16.86322} +\pgfmath@def{acos}{958}{16.66457} \pgfmath@def{acos}{959}{16.46359} +\pgfmath@def{acos}{960}{16.26020} \pgfmath@def{acos}{961}{16.05430} +\pgfmath@def{acos}{962}{15.84580} \pgfmath@def{acos}{963}{15.63459} +\pgfmath@def{acos}{964}{15.42057} \pgfmath@def{acos}{965}{15.20360} +\pgfmath@def{acos}{966}{14.98357} \pgfmath@def{acos}{967}{14.76033} +\pgfmath@def{acos}{968}{14.53374} \pgfmath@def{acos}{969}{14.30364} +\pgfmath@def{acos}{970}{14.06986} \pgfmath@def{acos}{971}{13.83221} +\pgfmath@def{acos}{972}{13.59049} \pgfmath@def{acos}{973}{13.34447} +\pgfmath@def{acos}{974}{13.09392} \pgfmath@def{acos}{975}{12.83856} +\pgfmath@def{acos}{976}{12.57811} \pgfmath@def{acos}{977}{12.31225} +\pgfmath@def{acos}{978}{12.04060} \pgfmath@def{acos}{979}{11.76278} +\pgfmath@def{acos}{980}{11.47834} \pgfmath@def{acos}{981}{11.18676} +\pgfmath@def{acos}{982}{10.88748} \pgfmath@def{acos}{983}{10.57984} +\pgfmath@def{acos}{984}{10.26309} \pgfmath@def{acos}{985}{9.93636} +\pgfmath@def{acos}{986}{9.59863} \pgfmath@def{acos}{987}{9.24870} +\pgfmath@def{acos}{988}{8.88512} \pgfmath@def{acos}{989}{8.50614} +\pgfmath@def{acos}{990}{8.10961} \pgfmath@def{acos}{991}{7.69281} +\pgfmath@def{acos}{992}{7.25224} \pgfmath@def{acos}{993}{6.78328} +\pgfmath@def{acos}{994}{6.27958} \pgfmath@def{acos}{995}{5.73196} +\pgfmath@def{acos}{996}{5.12640} \pgfmath@def{acos}{997}{4.43922} +\pgfmath@def{acos}{998}{3.62430} \pgfmath@def{acos}{999}{2.56255} +\pgfmath@def{acos}{1000}{0.00000} \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex new file mode 100644 index 00000000000..07a573c54ba --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex @@ -0,0 +1,198 @@ +% This file defines utilities common to the \pgfmath files. +% +% (c) 2007 Mark Wibrow +% +% but subject to the LaTeX Project Public License +% (http://www.latex-project.org/lppl.txt) +% +% and the GNU Public License +% (http://www.gnu.org/licenses/gpl.txt) +% +% Version 0.0 08/03/2007 + +% Alias some pgf stuff, just in case it needs replacing later. +% +\let\pgfmath@x\pgf@x +\let\pgfmath@xa\pgf@xa +\let\pgfmath@xb\pgf@xb +\let\pgfmath@xc\pgf@xc + +\let\pgfmath@y\pgf@y +\let\pgfmath@ya\pgf@ya +\let\pgfmath@yb\pgf@yb +\let\pgfmath@yc\pgf@yc + +\let\c@pgfmath@counta\c@pgf@counta +\let\c@pgfmath@countb\c@pgf@countb +\let\c@pgfmath@countc\c@pgf@countc + +\let\pgfmath@ifnextchar\pgfutil@ifnextchar + +\let\pgfmath@tonumber\pgf@sys@tonumber + +\let\pgfmath@ifundefined\pgfutil@ifundefined + +\newif\ifpgfmath@in@ +\def\pgfmath@in@#1#2{% + \def\pgfmath@in@@##1#1##2##3\pgfmath@in@@{% + \ifx\pgfmath@in@##2\pgfmath@in@false\else\pgfmath@in@true\fi}% + \pgfmath@in@@#2#1\pgfmath@in@\pgfmath@in@@} + +% Need to redefine to something more appropriate...? +% +\def\pgfmath@error#1#2{\PackageError{PGF Math}{#1}{#2}} +\def\pgfmath@warning#1#2{\PackageWarning{PGF Math}{#1}{#2}} + +% \pgfmath@pt +% +% Needed to test for 'pt' resulting from +% expansion using \the. +% +{\catcode`\p=12\catcode`\t=12\gdef\PgfmaTh@PT{pt}} +\edef\pgfmath@pt{\PgfmaTh@PT}% + +% \pgfmath@ifin@ +% +% Interface for \pgfutil@in@ +% +\def\pgfmath@ifin@#1#2{% + \pgfutil@in@{#1}{#2}% + \ifpgfutil@in@% + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} + +% \pgfmath@empty +% +% A handy macro. +% +\def\pgfmath@empty{} + + +% \ifpgfmath@empty +% +% Has #1 been let to \pgf@empty? +% +\def\ifpgfmath@empty#1{% + \ifx#1\pgfmath@empty\relax + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} +\def\pgfmath@firstoftwo#1#2{#1} +\def\pgfmath@secondoftwo#1#2{#2} + +% \ifpgfmath@ifletto +% +% Has #1 been let to #2? +% +\def\pgfmath@ifletto#1#2{% + \ifx#1#2\relax% + \expandafter\pgfmath@firstoftwo% + \else% + \expandafter\pgfmath@secondoftwo% + \fi% +} + +% \ifpgfmath@iflettoeither +% +% Has #1 been let to #2 or #3? +% +\def\pgfmath@iflettoeither#1#2#3{% + \ifx#1#2\relax% + \let\pgfmath@equaltoeithernext\pgfmath@firstoftwo% + \else% + \ifx#1#3\relax% + \let\pgfmath@equaltoeithernext\pgfmath@firstoftwo% + \else% + \let\pgfmath@equaltoeithernext\pgfmath@secondoftwo% + \fi% + \fi% + \pgfmath@equaltoeithernext% +} + +% \pgfmath@gobbletilpgfmath@ +% +% Gobble stream until \pgfmath@ {which is undefined}. +% +\def\pgfmath@gobbletilpgfmath@#1\pgfmath@{} +\def\pgfmath@gobbleone#1{}% + + +% \pgfmathloop +% +% A version of the standard TeX and LaTeX +% \loop, with an additional macro \pgfmathcounter +% (which is *not* a TeX counter) which keeps +% track of the iterations. +% +\newif\ifpgfmathcontinueloop +\def\pgfmathloop#1\repeatpgfmathloop{% + \def\pgfmathcounter{1}% + \def\pgfmath@iterate{% + #1\relax% + {% Do this inside a group, just in case... + \c@pgfmath@counta=\pgfmathcounter% + \advance\c@pgfmath@counta by1\relax% + \xdef\pgfmathloop@temp{\the\c@pgfmath@counta}% + }% + \edef\pgfmathcounter{\pgfmathloop@temp}% + \expandafter\pgfmath@iterate\fi}% + \pgfmath@iterate\let\pgfmath@iterate=\relax} +\let\repeatpgfmathloop=\fi + + +% \pgfmath@returnone +% +% \edef \pfgmathresult to the value of #1 after the end +% of a group. +% +% #1 - a dimension/count/skip register or a macro +% representing a number or dimension. +% +\def\pgfmath@returnone#1{% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#1pt\relax\pgfmath@% + \xdef\pgfmath@resulttemp{\pgf@sys@tonumber{\pgfmath@x}}% + \gdef\pgfmath@returnone@{% + \edef\pgfmathresult{\pgfmath@resulttemp}% + }% + \aftergroup\pgfmath@returnone@} + + +% \pgfmath@returntwo +% +% \edef \pfgmathresultx to the value of #1, and +% \pgfmathresulty to the value of #2, after the end +% of a group. +% +% #1 - a dimension/count/skip register or a macro +% representing a number or dimension. +% +% #2 - a dimension/count/skip register or a macro +% representing a number or dimension. +% +\def\pgfmath@returntwo#1#2{% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#1pt\relax\pgfmath@% + \xdef\pgfmath@resulttempx{\pgf@sys@tonumber{\pgfmath@x}}% + \afterassignment\pgfmath@gobbletilpgfmath@% + \pgfmath@x#2pt\relax\pgfmath@% + \xdef\pgfmath@resulttempx{\pgf@sys@tonumber{\pgfmath@x}}% + \gdef\pgfmath@returntwo@{% + \edef\pgfmathresultx{\pgfmath@resulttempx}% + \edef\pgfmathresulty{\pgfmath@resulttempy}% + }% + \aftergroup\pgfmath@returntwo@} + +% \pgfmath@smuggleone +% +% Summgle a macro outside a group. +% +\def\pgfmath@smuggleone#1{% + \xdef\pgfmath@smuggleditem{#1}% + \gdef\pgfmath@@smuggleone{\edef#1{\pgfmath@smuggleditem}}% + \aftergroup\pgfmath@@smuggleone} \ No newline at end of file diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg index 0bed39c0541..b89169e5a1e 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg @@ -7,11 +7,20 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgf.cfg,v 1.2 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgf.cfg,v 1.4 2007/03/20 09:34:00 tantau Exp $ % Default driver: \ifx\pgfsysdriver\@undefined \def\pgfsysdriver{pgfsys-\Gin@driver} + + % Test for XeTeX and use dvipdfm in this case: + \ifx\XeTeXversion\@undefined + \else + \ifx\XeTeXversion\relax + \else + \def\pgfsysdriver{pgfsys-dvipdfm.def} + \fi + \fi \fi diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def index 0247df3d9ea..bb9dde9ea85 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-postscript.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-common-postscript.def,v 1.15 2006/10/16 22:32:59 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-common-postscript.def,v 1.16 2007/06/07 07:41:11 tantau Exp $ % Driver commands for postscript @@ -181,7 +181,7 @@ \def\pgfsys@horishading#1#2#3{% {% \pgf@parsefunc{#3}% - \setlength\pgf@x{#2}% + \pgfmathsetlength\pgf@x{#2}% \pgf@xa=\pgf@x% \pgf@sys@bp@correct{\pgf@x}% \pgf@y=\pgf@max% @@ -200,7 +200,7 @@ \def\pgfsys@vertshading#1#2#3{% {% \pgf@parsefunc{#3}% - \setlength\pgf@x{#2}% + \pgfmathsetlength\pgf@x{#2}% \pgf@xa=\pgf@x% \pgf@sys@bp@correct{\pgf@x}% \pgf@y=\pgf@max% diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-svg.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-svg.def index 5dffff8b17c..f1446ce894b 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-svg.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-svg.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-common-svg.def,v 1.18 2006/10/16 22:32:59 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-common-svg.def,v 1.19 2007/06/12 21:23:32 tantau Exp $ % Driver commands for svg @@ -30,6 +30,9 @@ } \newcount\pgf@sys@svg@objectcount \let\Hnewline=\pgfutil@empty +\catcode`\%=12 +\def\pgf@sys@svg@percentchar{%} +\catcode`\%=14 % Path construction: \def\pgfsys@lineto#1#2{\pgf@sys@addtosvgpath{L }\pgf@sys@svgnum{#1}\pgf@sys@svgnum{#2}} @@ -145,7 +148,7 @@ \pgf@xb=100\pgf@xb% \pgf@xc=#3pt% \pgf@xc=100\pgf@xc% - \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\%,\pgf@sys@tonumber\pgf@xb\%,\pgf@sys@tonumber\pgf@xc\%)}% + \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xb\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xc\pgf@sys@svg@percentchar)}% }% } \def\pgf@sys@svg@color@cmy#1,#2,#3\relax{% @@ -159,7 +162,7 @@ \pgf@xc=1pt% \advance\pgf@xc by-#3pt% \pgf@xc=100\pgf@xc% - \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\%,\pgf@sys@tonumber\pgf@xb\%,\pgf@sys@tonumber\pgf@xc\%)}% + \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xb\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xc\pgf@sys@svg@percentchar)}% }% } \def\pgf@sys@svg@color@cmyk#1,#2,#3,#4\relax{% @@ -182,14 +185,14 @@ \advance\pgf@xc by#4pt% \advance\pgf@xc by-1pt% \pgf@xc=-100\pgf@xc% - \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\%,\pgf@sys@tonumber\pgf@xb\%,\pgf@sys@tonumber\pgf@xc\%)}% + \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xb\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xc\pgf@sys@svg@percentchar)}% }% } \def\pgf@sys@svg@color@gray#1\relax{% {% \pgf@xa=#1pt% \pgf@xa=100\pgf@xa% - \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\%,\pgf@sys@tonumber\pgf@xa\%,\pgf@sys@tonumber\pgf@xa\%)}% + \xdef\pgf@sys@svg@prepared{rgb(\pgf@sys@tonumber\pgf@xa\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xa\pgf@sys@svg@percentchar,\pgf@sys@tonumber\pgf@xa\pgf@sys@svg@percentchar)}% }% } diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvi.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvi.def index 164efe6a01e..05f647fc796 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvi.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvi.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvi.def,v 1.3 2006/10/11 15:22:26 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvi.def,v 1.5 2007/06/07 07:41:11 tantau Exp $ % Driver commands for pure, ultra-portable dvi, in the tradition of % old-style LaTeX pictures. @@ -82,80 +82,80 @@ \pgf@xc=#7% \pgf@yc=#8% % Compute number of steps: - \@tempdima=\pgf@x% - \advance\@tempdima by-\pgf@xa% - \ifdim\@tempdima<0pt% - \@tempdimb=-\@tempdima% + \pgfutil@tempdima=\pgf@x% + \advance\pgfutil@tempdima by-\pgf@xa% + \ifdim\pgfutil@tempdima<0pt% + \pgfutil@tempdimb=-\pgfutil@tempdima% \else% - \@tempdimb=\@tempdima% + \pgfutil@tempdimb=\pgfutil@tempdima% \fi% - \@tempdima=\pgf@y% - \advance\@tempdima by-\pgf@ya% - \ifdim\@tempdima<0pt% - \@tempdima=-\@tempdima% + \pgfutil@tempdima=\pgf@y% + \advance\pgfutil@tempdima by-\pgf@ya% + \ifdim\pgfutil@tempdima<0pt% + \pgfutil@tempdima=-\pgfutil@tempdima% \fi% - \ifdim\@tempdima>\@tempdimb% - \@tempdimb=\@tempdima% + \ifdim\pgfutil@tempdima>\pgfutil@tempdimb% + \pgfutil@tempdimb=\pgfutil@tempdima% \fi% - \@tempdima=\pgf@xb% - \advance\@tempdima by-\pgf@xc% - \ifdim\@tempdima<0pt% - \@tempdima=-\@tempdima% + \pgfutil@tempdima=\pgf@xb% + \advance\pgfutil@tempdima by-\pgf@xc% + \ifdim\pgfutil@tempdima<0pt% + \pgfutil@tempdima=-\pgfutil@tempdima% \fi% - \ifdim\@tempdima>\@tempdimb% - \@tempdimb=\@tempdima% + \ifdim\pgfutil@tempdima>\pgfutil@tempdimb% + \pgfutil@tempdimb=\pgfutil@tempdima% \fi% - \@tempdima=\pgf@yb% - \advance\@tempdima by-\pgf@yc% - \ifdim\@tempdima<0pt% - \@tempdima=-\@tempdima% + \pgfutil@tempdima=\pgf@yb% + \advance\pgfutil@tempdima by-\pgf@yc% + \ifdim\pgfutil@tempdima<0pt% + \pgfutil@tempdima=-\pgfutil@tempdima% \fi% - \ifdim\@tempdima>\@tempdimb% - \@tempdimb=\@tempdima% + \ifdim\pgfutil@tempdima>\pgfutil@tempdimb% + \pgfutil@tempdimb=\pgfutil@tempdima% \fi% - \@tempdima=\pgf@x% - \advance\@tempdima by-\pgf@xc% - \ifdim\@tempdima<0pt% - \@tempdima=-\@tempdima% + \pgfutil@tempdima=\pgf@x% + \advance\pgfutil@tempdima by-\pgf@xc% + \ifdim\pgfutil@tempdima<0pt% + \pgfutil@tempdima=-\pgfutil@tempdima% \fi% - \ifdim\@tempdima>\@tempdimb% - \@tempdimb=\@tempdima% + \ifdim\pgfutil@tempdima>\pgfutil@tempdimb% + \pgfutil@tempdimb=\pgfutil@tempdima% \fi% - \@tempdima=\pgf@y% - \advance\@tempdima by-\pgf@yc% - \ifdim\@tempdima<0pt% - \@tempdima=-\@tempdima% + \pgfutil@tempdima=\pgf@y% + \advance\pgfutil@tempdima by-\pgf@yc% + \ifdim\pgfutil@tempdima<0pt% + \pgfutil@tempdima=-\pgfutil@tempdima% \fi% - \ifdim\@tempdima>\@tempdimb% - \@tempdimb=\@tempdima% + \ifdim\pgfutil@tempdima>\pgfutil@tempdimb% + \pgfutil@tempdimb=\pgfutil@tempdima% \fi% - \@tempcnta=\@tempdimb% + \pgfutil@tempcnta=\pgfutil@tempdimb% \ifdim\pgf@sys@dvi@linewidth>0.3pt% - \@tempdimb=0.15pt% + \pgfutil@tempdimb=0.15pt% \else% \ifdim\pgf@sys@dvi@linewidth<0.05pt% - \@tempdimb=.025pt% + \pgfutil@tempdimb=.025pt% \else% - \@tempdimb=.5\pgf@sys@dvi@linewidth% + \pgfutil@tempdimb=.5\pgf@sys@dvi@linewidth% \fi% \fi% - \@tempcntb=\@tempdimb% - \divide\@tempcnta by\@tempcntb\relax% - \ifnum\@tempcnta>0\relax% - \@tempcntb=0\relax% + \pgfutil@tempcntb=\pgfutil@tempdimb% + \divide\pgfutil@tempcnta by\pgfutil@tempcntb\relax% + \ifnum\pgfutil@tempcnta>0\relax% + \pgfutil@tempcntb=0\relax% \loop% {% - \@tempdima=\the\@tempcntb pt% - \@tempdimb=\the\@tempcnta pt% - \advance\@tempdimb by-\@tempdima\relax% - \divide\@tempdima by\@tempcnta\relax% - \divide\@tempdimb by\@tempcnta\relax% - \edef\pgf@time@t{\pgf@sys@tonumber{\@tempdima}}% - \edef\pgf@time@s{\pgf@sys@tonumber{\@tempdimb}}% + \pgfutil@tempdima=\the\pgfutil@tempcntb pt% + \pgfutil@tempdimb=\the\pgfutil@tempcnta pt% + \advance\pgfutil@tempdimb by-\pgfutil@tempdima\relax% + \divide\pgfutil@tempdima by\pgfutil@tempcnta\relax% + \divide\pgfutil@tempdimb by\pgfutil@tempcnta\relax% + \edef\pgf@time@t{\pgf@sys@tonumber{\pgfutil@tempdima}}% + \edef\pgf@time@s{\pgf@sys@tonumber{\pgfutil@tempdimb}}% \pgf@sys@dvi@bezier% }% - \advance\@tempcntb by1\relax - \ifnum\@tempcntb<\@tempcnta% + \advance\pgfutil@tempcntb by1\relax + \ifnum\pgfutil@tempcntb<\pgfutil@tempcnta% {\def\pgf@time@t{1}\def\pgf@time@s{0}\pgf@sys@dvi@bezier}% \repeat% \fi% diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfm.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfm.def index 4627ba048ce..b97cdc08515 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfm.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfm.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvipdfm.def,v 1.11 2006/10/26 17:19:42 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvipdfm.def,v 1.14 2007/06/07 07:41:11 tantau Exp $ % Driver commands for dvipdfm @@ -23,10 +23,11 @@ \def\pgfsys@hbox#1{% \special{pdf: content Q q -1 0 0 -1 0 0 cm q}% - \special{pdf: content -1 0 0 -1 0 0 cm q}% translate to original coordinate system - \special{pdf: content 0 0 m W n q}% clip next stuff - {\hbox to 0pt{\pgf@selectfontorig.\hss}}% enforce font change - \special{pdf: content Q}% end of font change enforcement. + \special{pdf: content -1 0 0 -1 0 0 cm 3 Tr q}% translate to + % original coordinate system and do + % not show anything + {\hbox to 0pt{\pgfutil@font@normalfont\pgfutil@selectfont.\hss}}% enforce font change + \special{pdf: content Q 0 Tr q}% end of font change enforcement. \wd#1=0pt% \ht#1=0pt% \dp#1=0pt% @@ -34,9 +35,9 @@ \special{pdf: content Q n Q}% } \def\pgfsys@beginpicture{% - \pgfsys@invoke{1 0 0 1 2000 2000 cm}% - \hbox to 0pt{\selectfont.\hss}% - \pgfsys@invoke{1 0 0 1 -2000 -2000 cm}% + \special{pdf: content Q 3 Tr q}% do not show anything + \hbox to 0pt{\pgfutil@font@normalfont\pgfutil@selectfont.\hss}% enforce font change + \special{pdf: content Q 0 Tr q}% end of font change enforcement. \special{pdf: content q}} \def\pgfsys@endpicture{% \special{pdf: content n Q}% @@ -106,8 +107,8 @@ \pgf@sys@bp@correct{\pgf@y}% \pgf@sys@bp@correct{\pgf@xa}% \pgf@sys@bp@correct{\pgf@ya}% - \@tempdima=2\pgf@max\relax% - \edef\@temp{\noexpand\pgf@sys@atbeginpage{\special{pdf: beginxobj @pgfshade#1 width \the\@tempdima\space height \the\@tempdima}}}\@temp% + \pgfutil@tempdima=2\pgf@max\relax% + \edef\@temp{\noexpand\pgf@sys@atbeginpage{\special{pdf: beginxobj @pgfshade#1 width \the\pgfutil@tempdima\space height \the\pgfutil@tempdima}}}\@temp% \edef\@temp{\noexpand\pgf@sys@atbeginpage{\special{pdf: put @resources << /Shading << /Sh << /ShadingType 3 /ColorSpace /DeviceRGB @@ -118,14 +119,14 @@ \pgf@sys@atbeginpage{\special{pdf: content /Sh sh}% \special{pdf: endxobj}}% \expandafter\xdef\csname @pgfshading#1!\endcsname{% - \hbox to\the\@tempdima{\vbox to\the\@tempdima{\vfil\special{pdf: usexobj @pgfshade#1}}\hfil}}% + \hbox to\the\pgfutil@tempdima{\vbox to\the\pgfutil@tempdima{\vfil\special{pdf: usexobj @pgfshade#1}}\hfil}}% }% }% \def\pgf@sys@atbeginpage#1{\AtBeginDvi{#1}} \AtBeginDocument{% hyperref hack - \providecommand\HyPL@EveryPage{} + \ifx\HyPL@EveryPage\@undefined\def\HyPL@EveryPage{}\fi \def\@begindvi{\unvbox\@begindvibox\HyPL@EveryPage} } diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def index c66aca7b4d8..ba01eda368f 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvips.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvips.def,v 1.15 2006/10/26 17:19:43 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-dvips.def,v 1.17 2007/05/28 18:39:57 tantau Exp $ % Driver commands for dvips @@ -75,7 +75,7 @@ /.setopacityalpha where {pop} {/.setopacityalpha{pop}def} ifelse % install .setopacityalpha /.pgfsetfillopacityalpha{/pgffoa exch def /pgffill{gsave pgffoa .setopacityalpha fill 1 .setopacityalpha newpath fill grestore}B - /pgfeofill{gsave pgffoa .setopacityalpha eofill1 .setopacityalpha newpath eofill grestore}B}B + /pgfeofill{gsave pgffoa .setopacityalpha eofill 1 .setopacityalpha newpath eofill grestore}B}B /.pgfsetstrokeopacityalpha{/pgfsoa exch def /pgfstr{gsave pgfsoa .setopacityalpha stroke grestore}B}B /pgffoa 1 def @@ -86,13 +86,13 @@ \AtBeginDocument{ % needed for plain TeX \pgfsys@atbegindocument - \let\pgfsys@atbegindocument=\relax + \let\pgfsys@atbegindocument=\pgfutil@empty } % -% Position tracking (needs pdftex >= 1.40.0-alpha-20051205 in dvi mode) +% Position tracking (needs pdftex >= 1.40 in dvi mode) % \ifx\pdftexversion\@undefined \else diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def index be4d4d2fd3b..1f14326ad1f 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-pdftex.def,v 1.14 2006/10/23 08:38:18 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-pdftex.def,v 1.15 2007/06/07 07:41:11 tantau Exp $ % Driver commands for pdf @@ -85,9 +85,9 @@ \PackageWarning{pgf}{Page selection not supported. Ignoring page selection}% \fi% - \setbox\@tempboxa=\hbox{% + \setbox\pgfutil@tempboxa=\hbox{% \pdfimage \pgf@imageheight \pgf@imagewidth {\pgf@filename}}% - \pdfform\@tempboxa% + \pdfform\pgfutil@tempboxa% \edef\pgf@image{\noexpand\pdfrefform\the\pdflastform}% \else% new version {\pdfximage \pgf@imageheight \pgf@imagewidth attr @@ -108,7 +108,7 @@ \def\pgfsys@horishading#1#2#3{% {% \pgf@parsefunc{#3}% - \setbox\@tempboxa=\hbox to\pgf@max{\vbox to#2{\vfil\pdfliteral{/Sh sh}}\hfil}% + \setbox\pgfutil@tempboxa=\hbox to\pgf@max{\vbox to#2{\vfil\pdfliteral{/Sh sh}}\hfil}% \pgf@process{\pgfpoint{\pgf@max}{#2}}% \pdfxform resources {% /Shading << /Sh << /ShadingType 2 @@ -116,14 +116,14 @@ /Domain [\pgf@pdfparseddomain] /Coords [\pgf@doma\space0 \pgf@domb\space0] /Function \pgf@pdfparsedfunction - /Extend [false false] >> >>}\@tempboxa% + /Extend [false false] >> >>}\pgfutil@tempboxa% \expandafter\xdef\csname @pgfshading#1!\endcsname{\leavevmode\noexpand\pdfrefxform\the\pdflastxform}% }% } \def\pgfsys@vertshading#1#2#3{% {% \pgf@parsefunc{#3}% - \setbox\@tempboxa=\hbox to#2{\vbox to\pgf@max{\vfil\pdfliteral{/Sh sh}}\hfil}% + \setbox\pgfutil@tempboxa=\hbox to#2{\vbox to\pgf@max{\vfil\pdfliteral{/Sh sh}}\hfil}% \pgf@process{\pgfpoint{#2}{\pgf@max}}% \pdfxform resources {% /Shading << /Sh << /ShadingType 2 @@ -131,14 +131,14 @@ /Domain [\pgf@pdfparseddomain] /Coords [0 \pgf@doma\space0 \pgf@domb] /Function \pgf@pdfparsedfunction - /Extend [false false] >> >>}\@tempboxa% + /Extend [false false] >> >>}\pgfutil@tempboxa% \expandafter\xdef\csname @pgfshading#1!\endcsname{\leavevmode\noexpand\pdfrefxform\the\pdflastxform}% }% } \def\pgfsys@radialshading#1#2#3{% {% \pgf@parsefunc{#3}% - \setbox\@tempboxa=\hbox to2\pgf@max{\vbox to2\pgf@max{\vfil\pdfliteral{/Sh sh}}\hfil}% + \setbox\pgfutil@tempboxa=\hbox to2\pgf@max{\vbox to2\pgf@max{\vfil\pdfliteral{/Sh sh}}\hfil}% \pgf@process{#2}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% @@ -155,7 +155,7 @@ /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] >> >>}\@tempboxa% + /Extend [true false] >> >>}\pgfutil@tempboxa% \expandafter\xdef\csname @pgfshading#1!\endcsname{\leavevmode\noexpand\pdfrefxform\the\pdflastxform}% }% }% diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-tex4ht.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-tex4ht.def index c2be445e31f..f332a046031 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-tex4ht.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-tex4ht.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-tex4ht.def,v 1.14 2006/10/16 22:32:59 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-tex4ht.def,v 1.15 2007/06/07 07:41:11 tantau Exp $ \RequirePackage{xcolor} @@ -91,7 +91,7 @@ \pgfsys@invoke{) scale(1,-1) translate(0,}% \pgf@sys@pt\pgf@ya\pgfsysprotocol@flushcurrentprotocol% \pgfsys@invoke{)">\Hnewline }% - \setlength\pgf@x{\pgf@shift@baseline}% + \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 diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex index b3cfbd76b75..37d370990ba 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex @@ -7,7 +7,7 @@ % % 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.19 2006/10/16 22:32:59 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys.code.tex,v 1.24 2007/06/07 07:41:11 tantau Exp $ % @@ -49,6 +49,12 @@ \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 @@ -668,6 +674,7 @@ \def\pgfsys@hbox#1{% \pgfsys@beginscope% + \setbox#1=\hbox{\box#1}% \wd#1=0pt% \ht#1=0pt% \dp#1=0pt% @@ -696,7 +703,7 @@ % Called at the end of a pgfpicture. \def\pgfsys@typesetpicturebox#1{% - \setlength\pgf@x{\pgf@shift@baseline}% + \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 @@ -831,12 +838,6 @@ -\AtBeginDocument{ - \pgfsys@atbegindocument - \let\pgfsys@atbegindocument=\relax -} - - % Discern the driver: @@ -846,4 +847,20 @@ \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 diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex index 2a5226b3668..943da39770c 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsyssoftpath.code.tex,v 1.4 2006/10/16 22:32:59 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsyssoftpath.code.tex,v 1.5 2007/02/19 13:18:57 tantau Exp $ % This package provides the pgf system path abstraction layer. This @@ -42,13 +42,18 @@ \def\pgfsyssoftpath@lastmoveto{{0pt}{0pt}} +\newif\ifpgfsyssoftpathmovetorelevant +\pgfsyssoftpathmovetorelevanttrue + % Add a moveto element to the current path \def\pgfsyssoftpath@moveto#1#2{% \edef\pgfsyssoftpath@temp{{% \noexpand\pgfsyssoftpath@movetotoken{#1}{#2}% }}% \expandafter\pgfutil@g@addto@macro\expandafter\pgfsyssoftpath@currentpath\pgfsyssoftpath@temp% - \xdef\pgfsyssoftpath@lastmoveto{{#1}{#2}}% + \ifpgfsyssoftpathmovetorelevant% + \xdef\pgfsyssoftpath@lastmoveto{{#1}{#2}}% + \fi% } % Add a lineto element to the current path diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfcalendar.code.tex b/Master/texmf-dist/tex/generic/pgf/utilities/pgfcalendar.code.tex new file mode 100644 index 00000000000..1542ac71204 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfcalendar.code.tex @@ -0,0 +1,723 @@ +% 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. + +\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/utilities/pgfcalendar.code.tex,v 1.9 2007/05/31 10:31:52 tantau Exp $ + + +% Translation stuff + +\ifx\translate\@undefined + \def\translate#1{#1} +\fi + +% Load month dictionary, if possible + +\ifx\usedictionary\@undefined +\else + \usedictionary{translator-months-dictionary} +\fi + + + + +% Typeset a calendar +% +% #1 = prefix for the calendar nodes +% #2 = begin date in ISO format +% #3 = end date in ISO format +% #4 = date rendering code +% +% Description: +% +% First note that this macro need not be called inside a pgfpicture +% (even though it often will be). You can use it to typeset +% calendars also using packages other than pgf. You do not even need +% to load pgf to use this file. +% +% A calendar is typeset as follows: You specify a range of dates (by +% providing a begin and an end date). Then, for each date the code #4 +% is executed. When the code is called, lots of information about the +% current date (like its day of week) is available. The job of +% #4 is to render the date. Typically, this is done by placing nodes +% somewhere, but the function could do other things as well. +% It is also the job of #4 to position the calendar correctly. +% +% The different calls of #4 are not surrounded by TeX groups (though +% you can do so yourself, of course). This means that settings can +% accumulate between different calls, which is often desirable and +% useful. +% +% Inside #4 code, different macros can be access: +% +% \pgfcalendarprefix +% The parameter #1. This prefix is recomended for nodes inside the +% calendar, but you have to use it yourself explicitly. +% +% \pgfcalendarbeginiso +% Start date of range being typeset in ISO format (like 2006-01-10) +% +% \pgfcalendarbeginjulian +% Julian day number of start date begin typeset +% +% \pgfcalendarendiso +% End date of range begin typeset +% +% \pgfcalendarendjulian +% Same as Julian day number +% +% \pgfcalendarcurrentjulian (a TeX-count) +% Julian day number of day to be rendered/considered +% +% \pgfcalendarcurrentweekday +% Weekday (0 = Monday) of day to be checked +% +% \pgfcalendarcurrentyear +% Year of day to be checked +% +% \pgfcalendarcurrentmonth +% Month of day to be chjeck +% +% \pgfcalendarcurrentday +% Day of monath of day to be checked +% +% +% Inside the \pgfcalendar macro the macro \ifdate is available, which +% has the same effect as \pgfcalendarifdate{\pgfcalendarcurrentjulian} +% (only faster). This means that you +% can write, say, \ifdate{Monday}{current date is a Monday}{Not a Monday}. +% +% Example: +% +% \begin{tikzpicture} +% \pgfcalendar{cal}{2007-01-20}{2007-02-10} +% {\node[anchor=base] {\pgfcalendaronday}; \pgftransformyshift{-1.5em}} +% \end{tikzpicture} +% +% \pgfcalendar{cal}{2007-01-20}{2007-02-10}{ \pgfcalendaronday\ } + +\long\def\pgfcalendar#1#2#3#4{% + \begingroup% + % Setup local \ifdate + \let\ifdate=\pgfcalendar@local@ifdate% + % Let's start with computing start and end dates... + \def\pgfcalendarprefix{#1}% + \pgfcalendardatetojulian{#2}{\pgfcalendarcurrentjulian}% + \edef\pgfcalendarbeginjulian{\the\pgfcalendarcurrentjulian}% + \edef\pgfcalendarbeginiso{#2}% + \pgfcalendardatetojulian{#3}{\pgfutil@tempcnta}% + \edef\pgfcalendarendjulian{\the\pgfutil@tempcnta}% + \advance\pgfutil@tempcnta by1\relax% + \edef\pgfcalendarendjulianplus{\the\pgfutil@tempcnta}% + \edef\pgfcalendarendiso{#3}% + % + % Start main loop + % + \loop% + \ifnum\pgfcalendarcurrentjulian<\pgfcalendarendjulianplus\relax% + % Setup information about current date + \pgfcalendarjuliantodate{\pgfcalendarcurrentjulian}% + {\pgfcalendarcurrentyear}{\pgfcalendarcurrentmonth}{\pgfcalendarcurrentday}% + \pgfcalendarjuliantoweekday{\pgfcalendarcurrentjulian}{\pgfutil@tempcntb}% + \edef\pgfcalendarcurrentweekday{\the\pgfutil@tempcntb}% + % Render: + #4% + % Advance day: + \advance\pgfcalendarcurrentjulian by1\relax% + \repeat% + \endgroup% +} + +\newcount\pgfcalendarcurrentjulian + +\def\pgfcalendar@local@ifdate{% + \let\pgfcalendarifdatejulian=\pgfcalendarcurrentjulian% + \let\pgfcalendarifdateyear=\pgfcalendarcurrentyear% + \let\pgfcalendarifdatemonth=\pgfcalendarcurrentmonth% + \let\pgfcalendarifdateday=\pgfcalendarcurrentday% + \let\pgfcalendarifdateweekday=\pgfcalendarcurrentweekday% + \pgfcalendar@launch@ifdate% +} + + + +% Execute on specific kinds of dates +% +% #1 = ISO-format date +% #2 = date specification +% #3 = code +% +% Description: +% +% The given code #3 is execute on every day that matches the date +% specification #2. This specification is a comma-separated list of +% key-value pairs of the kind pgfcalendar, defined in the usual way +% using \define@key. The code for a key-value should check whether the +% given day matches its specification. If so, it should set +% \pgfcalendarmatches to true. +% +% When the key-value code is executed, the following macros will have +% been setup: +% +% \pgfcalendarifdatejulian +% Julian day number of day to be checked +% +% \pgfcalendarifdateweekday +% Weekday (0 = Monday) of day to be checked +% +% \pgfcalendarifdateyear +% Year of day to be checked +% +% \pgfcalendarifdatemonth +% Month of day to be chjeck +% +% \pgfcalendarifdateday +% Day of month of day to be checked +% +% The setting of these macros will persist after the call, so a +% sideeffect of callling this macro is to setup these macros. +% +% By setting \ifpgfcalendar@do@not@recompute to false, the computation +% of the year, month etc. is suppressed. +% +% Examples: +% +% \pgfcalendarifdate{2007-01-10}{all}{} +% % Simply setup the macros +% +% \pgfcalendarifdate{2007-01-10}{mondays}{Is a monday} +% +% \pgfcalendarifdate{\mydate}{date=05-01}{\mydate is a Worker's Day} + +\def\pgfcalendarifdate#1#2#3#4{% + \pgfcalendardatetojulian{#1}{\pgfutil@tempcnta}% + \pgfcalendarjuliantodate{\pgfutil@tempcnta} + {\pgfcalendarifdateyear}{\pgfcalendarifdatemonth}{\pgfcalendarifdateday}% + \edef\pgfcalendarifdatejulian{\the\pgfutil@tempcnta}% + % Compute info about date + \pgfcalendarjuliantoweekday{\pgfutil@tempcnta}{\pgfutil@tempcntb}% + \edef\pgfcalendarifdateweekday{\the\pgfutil@tempcntb}% + % + \pgfcalendar@launch@ifdate{#2}{#3}{#4}% +} + + +\long\def\pgfcalendar@launch@ifdate#1#2#3{% + % When this macro is called, the pgfcalendarifdatexxxx macros must + % be setup correctly + % + % Set match to false + \pgfcalendarmatchesfalse% + \setkeys{pgfcalendar}{#1}% cleanup and change to \pgfutil@setkeys + \ifpgfcalendarmatches% + #2% + \else% + #3% + \fi% +} + +\newif\ifpgfcalendarmatches + + +% Keys for matching + +\define@key{pgfcalendar}{all}[]{\pgfcalendarmatchestrue} + +\define@key{pgfcalendar}{Monday}[]{\ifnum\pgfcalendarifdateweekday=0\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{Tuesday}[]{\ifnum\pgfcalendarifdateweekday=1\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{Wednesday}[]{\ifnum\pgfcalendarifdateweekday=2\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{Thursday}[]{\ifnum\pgfcalendarifdateweekday=3\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{Friday}[]{\ifnum\pgfcalendarifdateweekday=4\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{Saturday}[]{\ifnum\pgfcalendarifdateweekday=5\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{Sunday}[]{\ifnum\pgfcalendarifdateweekday=6\relax\pgfcalendarmatchestrue\fi} + +\define@key{pgfcalendar}{workday}[]{\ifnum\pgfcalendarifdateweekday<5\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{weekend}[]{\ifnum\pgfcalendarifdateweekday>4\relax\pgfcalendarmatchestrue\fi} + +\define@key{pgfcalendar}{equals}{% + \pgfcalendar@special@datetojulian{#1}% + \ifnum\pgfcalendarifdatejulian=\pgfutil@tempcnta\relax% + \pgfcalendarmatchestrue% + \fi% +} + +\define@key{pgfcalendar}{day of month}{\ifnum#1=\pgfcalendarifdateday\relax\pgfcalendarmatchestrue\fi} +\define@key{pgfcalendar}{end of month}[1]{% + % Tricky and expensive ... do only if necessary + \ifpgfcalendarmatches% + \else% sigh + {% + \pgfutil@tempcnta=\pgfcalendarifdatejulian\relax% + \advance\pgfutil@tempcnta by#1\relax% + \pgfcalendarjuliantodate{\pgfutil@tempcnta}{\pgf@dummy}{\pgf@dummy}{\pgf@cal@temp}% + \global\let\pgf@cal@temp=\pgf@cal@temp% + }% + \ifnum\pgf@cal@temp=1\relax\pgfcalendarmatchestrue\fi% + \fi% +} + +\define@key{pgfcalendar}{at least}{% + \pgfcalendar@special@datetojulian{#1}% + \ifnum\pgfcalendarifdatejulian<\pgfutil@tempcnta\relax% + \else% + \pgfcalendarmatchestrue% + \fi% +} +\define@key{pgfcalendar}{at most}{% + \pgfcalendar@special@datetojulian{#1}% + \ifnum\pgfcalendarifdatejulian>\pgfutil@tempcnta\relax% + \else% + \pgfcalendarmatchestrue% + \fi% +} +\define@key{pgfcalendar}{between}{% + \pgfcalendar@between#1\relax% + \pgfcalendar@special@datetojulian{\pgfcalendar@start}% + \ifnum\pgfcalendarifdatejulian<\pgfutil@tempcnta\relax% + \else% + \pgfcalendar@special@datetojulian{\pgfcalendar@end}% + \ifnum\pgfcalendarifdatejulian>\pgfutil@tempcnta\relax% + \else% + \pgfcalendarmatchestrue% + \fi% + \fi% +} + +\def\pgfcalendar@between#1and#2\relax{% + \def\pgfcalendar@start{#1}% + \def\pgfcalendar@end{#2}% +} + + +\def\pgfcalendar@special@datetojulian#1{% + \edef\pgf@temp{#1}% + \expandafter\pgfcalendar@special@split@test\pgf@temp-\relax{#1}% +} + +\def\pgfcalendar@special@split@test#1-#2-#3\relax#4{% + \def\pgf@temp{#3}% + \ifx\pgf@temp\pgfutil@empty% + \def\pgf@temp{\pgfcalendarifdateyear-#1-#2}% + \else% + \def\pgf@temp{#4}% + \fi% + \pgfcalendardatetojulian{\pgf@temp}{\pgfutil@tempcnta}% +} + + +% Suggested name for nodes inside a calendar +% +% Description: +% +% It is suggested that (main) nodes (if present) in a calendar should +% get this name. +% +% Example: +% +% \pgfcalendar{cal}{2007-01-20}{2007-02-10}{} +% { \node[anchor=base] (\pgfcalendarsuggestedname) {\pgfcalendarifdateday}; +% \pgftransformyshift{-1.5em} } +% +% \draw (cal-2007-01-30) -- (cal-2007-02-08); + +\def\pgfcalendarsuggestedname{% + \ifx\pgfcalendarprefix\pgfutil@empty\else\pgfcalendarprefix-% + \pgfcalendarcurrentyear-\pgfcalendarcurrentmonth-\pgfcalendarcurrentday\fi% +} + + + +% +% +% Date conversion functions +% +% + + + +% Convert a date to the Julian day number (number of days since +% January 1st, -4712) +% +% #1 = date specification +% #2 = counter that should be set to the number of days +% +% Description: +% +% The conversion is taken from the Wikipedia entry on Julian days. +% +% The date specification works as follows: +% +% - It starts with a year. Use \year for the current year (the year +% the file is being typeset). +% - Next comes a hyphen. +% - Next comes a month (number). Use \month for the current month. +% - Next comes a hyphen. +% - Next comes either a day of month (number, use \day for current +% day) or "last". The keyword "last" refers the last day of the +% month. Thus, 2006-01-last is the same as 2006-01-31 and +% 2000-02-last is the same as 2002-02-29. +% - Next may come a plus sign, followed by a number (positive or +% negative). This will adjust the date by the given number of +% days. Thus, 2006-01-31+1 is the same as 2006-02-01 and +% 2006-02-01+-2 is the same as 2006-01-30. And \year-\month-day+1 is +% tomorrow. You may add a space before the +. +% +% Example: +% +% \pgfcalendardatetojulian{2006-01-10}{\mycount} + +\def\pgfcalendardatetojulian#1#2{\edef\pgf@temp{#1}\expandafter\pgfcalendar@datetojulian\pgf@temp+/{#2}} +\def\pgfcalendar@datetojulian#1-#2-#3+#4/#5{% + {% + % + % Store year, month and days. + % + \count1=#1\relax% + \count2=#2\relax% + % If #3=="last", then calculate first day of next month + \edef\pgf@temp{#3}% + \ifx\pgf@temp\pgfcalendar@last@text% + \advance\count2 by1\relax% + \count3=1\relax% + \else% + \count3=#3\relax% + \fi% + % + % Store offset + % + \edef\pgf@@temp{#4}% + \ifx\pgf@@temp\pgfutil@empty% + \count8=0\relax% + \else% + \pgfcalendar@unpack#4% + \fi% + % + % + % 4) a = \lfloor (14-month) /12 \rfloor + % + \ifnum\count2<3\relax% + \count4=1\relax% + \else% + \count4=0\relax% + \fi% + % + % 5) y = year + 4800 - a + % + \count5=\count1\relax% + \advance\count5 by 4800\relax% + \advance\count5 by-\count4\relax% + % + % 6) m = month + 12a - 3 + % + \count6=\count2\relax% + \count0=\count4\relax% + \multiply\count0 by12\relax + \advance\count6 by\count0\relax% + \advance\count6 by-3\relax% + % + % 7) jdn = day + \floor{(153 m+2)/5} + 365y + \floor{y/4} - + % \floor{y/100} + \florr{y/400} - 32045 + % + \count7=\count3\relax% + % + \floor{(153 m+2)/5} : + \count0=\count6\relax% + \multiply\count0 by 153\relax% + \advance\count0 by 2\relax% + \divide\count0 by 5\relax% + \advance\count7 by \count0\relax% + % + 365y : + \count0=\count5% + \multiply\count0by365\relax% + \advance\count7 by\count0\relax% + % + \floor{y/4} + \count0=\count5\relax% + \divide\count0 by 4\relax% + \advance\count7 by\count0% + % - \floor{y/100} + \count0=\count5\relax% + \divide\count0 by 100\relax% + \advance\count7 by-\count0\relax% + % + \floor{y/400} + \count0=\count5\relax% + \divide\count0 by 400\relax% + \advance\count7 by\count0% + % - 32045 + \advance\count7 by-32045\relax% + % + % Undo "last" advance + \ifx\pgf@temp\pgfcalendar@last@text% + \advance\count7by-1\relax% + \fi% + % Add offset + \advance\count7by\count8\relax% + \xdef\pgf@temp{\the\count7}% + }% + #5=\pgf@temp\relax% +} +\def\pgfcalendar@last@text{last} +\def\pgfcalendar@unpack#1+{% + \count8=#1\relax% +} + +% Convert Julian day number date. +% +% #1 = the number of Julian days +% #2 = a macro in which the year should be stored. +% #3 = a macro in which the month should be stored. +% #4 = a macro in which the day should be stored. +% +% Formula used: +% +% 1) J = Julian day number +% 2) j = J + 32044 +% 3) g = j div 146097 +% 4) dg = j mod 146097 +% 5) c = (dg div 36524 + 1) * 3 div 4 +% 6) dc = dg - c * 36524 +% 7) b = dc div 1461 +% 8) db = dc mod 1461 +% 9) a = (db div 365 + 1) * 3 div 4 +% 10)da = db - a * 365 +% 11)y = g * 400 + c * 100 + b * 4 + a +% 12)m = (da * 5 + 308) div 153 - 2 +% 13)d = da - (m + 4) * 153 div 5 + 122 +% 14)Y = y - 4800 + (m + 2) div 12 +% 15)M = (m + 2) mod 12 + 1 +% 16)D = d + 1 +% +% Example +% +% \pgfcalendarjuliantodate{\mynumber}{\myyear}{\mymonth}{\myday} + +\def\pgfcalendarjuliantodate#1#2#3#4{% + {% + % 1) J = Julian day number + \count1=#1\relax% + % 2) j = J + 32044 + \count2=\count1\relax% + \advance\count2 by 32044\relax% + % 3) g = j div 146097 + \count3=\count2\relax% + \divide\count3 by 146097\relax% + % 4) dg = j mod 146097 + \count4=\count3\relax% + \multiply\count4 by-146097\relax% + \advance\count4 by\count2\relax% + % 5) c = (dg div 36524 + 1) * 3 div 4 + \count5=\count4\relax% + \divide\count5 by36524\relax% + \advance\count5 by1\relax% + \multiply\count5 by3\relax% + \divide\count5 by4\relax% + % 6) dc = dg - c * 36524 + \count6=\count4\relax% + \count0=\count5\relax% + \multiply\count0 by-36524\relax% + \advance\count6 by\count0\relax% + % 7) b = dc div 1461 + \count7=\count6\relax% + \divide\count7 by1461\relax% + % 8) db = dc mod 1461 + \count8=\count7\relax% + \multiply\count8 by-1461\relax% + \advance\count8 by\count6\relax% + % 9) a = (db div 365 + 1) * 3 div 4 + \count9=\count8\relax% + \divide\count9 by 365\relax% + \advance\count9 by 1\relax% + \multiply\count9 by3\relax% + \divide\count9 by4\relax% + % 10)da = db - a * 365 + \count10=\count8\relax% + \count0=\count9\relax% + \multiply\count0 by-365\relax% + \advance\count10 by\count0\relax% + % 11)y = g * 400 + c * 100 + b * 4 + a + \count11=\count3\relax% + \multiply\count11 by400\relax% + \count0=\count5\relax% + \multiply\count0 by100\relax% + \advance\count11 by\count0\relax% + \count0=\count7\relax% + \multiply\count0 by4\relax% + \advance\count11 by\count0\relax% + \advance\count11 by\count9\relax% + % 12)m = (da * 5 + 308) div 153 - 2 + \count12=\count10\relax% + \multiply\count12 by5\relax% + \advance\count12 by 308\relax% + \divide\count12 by 153\relax% + \advance\count12 by -2\relax% + % 13)d = - (m + 4) * 153 div 5 + 122 + da + \count13=\count12\relax% + \advance\count13 by 4\relax% + \multiply\count13 by153\relax% + \divide\count13 by5\relax% + \count13=-\count13\relax% + \advance\count13 by 122\relax% + \advance\count13 by \count10\relax% + % 14)Y = (m + 2) div 12 + y - 4800 + \count14=\count12\relax% + \advance\count14 by 2\relax% + \divide\count14 by12\relax% + \advance\count14 by\count11\relax% + \advance\count14 by-4800\relax% + % 15)M = (m + 2) mod 12 + 1 + \count15=\count12\relax% + \advance\count15 by2\relax% + \count0=\count15\relax% + \divide\count0 by12\relax% + \multiply\count0 by12\relax% + \advance\count15 by-\count0\relax% + \advance\count15 by1\relax% + % 16)D = d + 1 + \count16=\count13% + \advance\count16by 1\relax% + % + \xdef\pgf@temp@year{\the\count14}% + \xdef\pgf@temp@month{\ifnum\count15<10 0\fi\the\count15}% + \xdef\pgf@temp@day{\ifnum\count16<10 0\fi\the\count16}% + }% + \let#2=\pgf@temp@year% + \let#3=\pgf@temp@month% + \let#4=\pgf@temp@day% +} + + + +% Returns the day of week as a number between 0 = Monday and 6 = +% Sunday +% +% #1 = a Julian day number +% #2 = a counter into which the weekday should be put. +% +% Example: +% +% \pgfcalendardatetojulian{2006-01-10}{\mycount} +% \pgfcalendarjuliantoweekday{\mycount}{\myweekday} + +\def\pgfcalendarjuliantoweekday#1#2{% + {% + \pgfutil@tempcnta=#1\relax% + #2=\pgfutil@tempcnta% + \divide#2by7\relax% + \multiply#2by-7\relax% + \advance#2by\pgfutil@tempcnta\relax% + \xdef\pgf@temp{\the#2}% + }% + #2=\pgf@temp\relax% +} + + + +% Converts a day of week into a weekday name (long or short) +% +% #1 = a number representing a weekday (0=Monday) +% +% Example: +% +% \pgfcalendardatetojulian{2006-01-10}{\mycount} +% \pgfcalendarjuliantoweekday{\mycount}{\myweekday} +% October 1st, 2006 was a \pgfcalendarweekdayname{\myweekday} + +\def\pgfcalendarweekdayname#1{% + \translate{\ifcase#1Monday\or Tuesday\or Wednesday\or Thursday\or Friday\or Saturday\or Sunday\fi}% +} + +\def\pgfcalendarweekdayshortname#1{% + \translate{\ifcase#1Mon\or Tue\or Wed\or Thu\or Fri\or Sat\or Sun\fi}% +} + + +% Converts a month of year number into a month name (long or short) +% +% #1 = a number representing a month (1=January) +% +% Example: +% +% \pgfcalendarmonthname + +\def\pgfcalendarmonthname#1{% + \translate{\ifcase#1\or January\or February\or March\or April\or + May\or June\or July\or August\or September\or October\or + November\or December\fi}% +} + +\def\pgfcalendarmonthshortname#1{% + \translate{\ifcase#1\or Jan\or Feb\or Mar\or Apr\or + May\or Jun\or Jul\or Aug\or Sep\or Oct\or + Nov\or Dec\fi}% +} + + + + + + +% Macro for easy typesetting of days, etc. +% +% #1 = kind selection +% #2 = length and representation selection +% +% Description: +% +% Replaces the shorthand according to the following rules: The +% first letter of the shorthand describes the kind of +% shorthand. Possible kinds are: +% +% d = day of current date (in an invocation of \pgfcalendar) +% m = month of current date +% y = year of current date +% w = week day of current date +% +% The second parameter determines how the kind is represented: +% +% - = shortest possible numerical way (allowed only for d, m, y) +% = = same, but always of the same length (padded with blanks as +% needed, allowed only for d, m, y) +% 0 = numerical representation for d and m padded with leading zeros. +% t = textual representation (allowed only for d, m, w) +% . = abbreviated textual representation (allowed only for d, m, w) +% +% It is adivsed that you say, for example, +% \let\%=\pgfcalendarshorthand. +% +% With this setting, you can typeset an ISO-date by saying \%y0-\%m0-\%d0. +% For another example, on 2007-02-09, which is a +% Friday, you can write "\%wt, \%mt \%d-, \%y0" to get "Friday, February 9, 2007" + +\def\pgfcalendarshorthand#1#2{\csname pgfcalendar@shorthand@#1#2\endcsname} +\expandafter\def\csname pgfcalendar@shorthand@d-\endcsname{% + {\pgfutil@tempcnta=\pgfcalendarcurrentday\relax\the\pgfutil@tempcnta}} +\expandafter\def\csname pgfcalendar@shorthand@d=\endcsname{% + {\pgfutil@tempcnta=\pgfcalendarcurrentday\relax\ifnum\pgfutil@tempcnta<10\relax\setbox0=\hbox{1}\kern\wd0\relax\fi\the\pgfutil@tempcnta}} +\expandafter\def\csname pgfcalendar@shorthand@d0\endcsname{% + \pgfcalendarcurrentday} +\expandafter\def\csname pgfcalendar@shorthand@m-\endcsname{% + {\pgfutil@tempcnta=\pgfcalendarcurrentmonth\relax\the\pgfutil@tempcnta}} +\expandafter\def\csname pgfcalendar@shorthand@m=\endcsname{% + {\pgfutil@tempcnta=\pgfcalendarcurrentmonth\relax\ifnum\pgfutil@tempcnta<10\relax\setbox0=\hbox{1}\kern\wd0\relax\fi\the\pgfutil@tempcnta}} +\expandafter\def\csname pgfcalendar@shorthand@m0\endcsname{% + \pgfcalendarcurrentmonth} +\expandafter\def\csname pgfcalendar@shorthand@y-\endcsname{% + \pgfcalendarcurrentyear} +\expandafter\def\csname pgfcalendar@shorthand@y=\endcsname{% + \pgfcalendarcurrentyear} +\expandafter\def\csname pgfcalendar@shorthand@y0\endcsname{% + \pgfcalendarcurrentyear} +\expandafter\def\csname pgfcalendar@shorthand@w.\endcsname{% + \pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}} +\expandafter\def\csname pgfcalendar@shorthand@wt\endcsname{% + \pgfcalendarweekdayname{\pgfcalendarcurrentweekday}} +\expandafter\def\csname pgfcalendar@shorthand@m.\endcsname{% + \pgfcalendarmonthshortname{\pgfcalendarcurrentmonth}} +\expandafter\def\csname pgfcalendar@shorthand@mt\endcsname{% + \pgfcalendarmonthname{\pgfcalendarcurrentmonth}} + + +\endinput diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfexternal.tex b/Master/texmf-dist/tex/generic/pgf/utilities/pgfexternal.tex new file mode 100644 index 00000000000..ff53e5e182f --- /dev/null +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfexternal.tex @@ -0,0 +1,32 @@ +% Copyright 2007 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. +% +% In addition to the above licenses, this particular file may also be +% directly inlined into other documents and this copyright notice may +% be removed. Additionally, when you inline this file, you may modify +% it as needed and you may remove comments. +% +% This file is intended to be distributed or even inlined into a file +% when a document needs to be typeset on a system that does not have +% pgf/TikZ installed. + +% "environment" for reading an external graphic. Note that there are +% no (!) braces around the "name" of the environment +% +% #1 = name of the graphics file +% +% Example: +% +% \beginpgfgraphicnamed{mygraph} +% \begin{tikzpicture} +% ... +% \end{tikzpicture} +% \endpgfgraphicnamed + +\long\def\beginpgfgraphicnamed#1#2\endpgfgraphicnamed{\includegraphics{#1}} diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex b/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex index d3a6b4d6077..25aae47b840 100644 --- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex @@ -15,7 +15,7 @@ % prints out a message to the log. -\def\pgfversion{1.10} +\def\pgfversion{1.18} \ifx\pgfrcsloaded\undefined @@ -86,7 +86,7 @@ \def\ProvidesFile#1[#2]{\wlog{Loading file #1 version #2.}} \fi -\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/utilities/pgfrcs.code.tex,v 1.14 2006/10/26 16:07:01 tantau Exp $ +\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/utilities/pgfrcs.code.tex,v 1.16 2007/06/08 11:24:59 tantau Exp $ \catcode`\@=\pgfrcsatcode diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex index e134db7a099..0ead47d4fea 100644 --- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex @@ -35,6 +35,7 @@ \else \expandafter\pgfutil@secondoftwo \fi} +\def\pgfutil@firstofone#1{#1} \def\pgfutil@firstoftwo#1#2{#1} \def\pgfutil@secondoftwo#1#2{#2} \def\pgfutil@empty{} @@ -66,9 +67,10 @@ \fi \fi \pgfutil@reserved@c} -\def\:{\global\let\pgfutil@sptoken= } \: -\def\:{\pgfutil@xifnch} \expandafter\def\: {\futurelet\pgfutil@let@token\pgfutil@ifnch} - +{% + \def\:{\global\let\pgfutil@sptoken= } \: + \def\:{\pgfutil@xifnch} \expandafter\gdef\: {\futurelet\pgfutil@let@token\pgfutil@ifnch} +} % pgfutil@in@ @@ -115,5 +117,9 @@ \def\pgfutil@InputIfFileExists#1#2#3{\pgfutil@IfFileExists{#1}{\input #1\relax#2}{#3}}% +% aux-read-hook + +\let\pgfutil@aux@read@hook=\relax + \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-context.def b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-context.def index ebd9780372c..4cd975d6600 100644 --- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-context.def +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-context.def @@ -11,14 +11,11 @@ % The aux files, needed for reading back coordinates - -\newwrite\pgfutil@auxout -\pgfutil@IfFileExists{\jobname.aux}{\input \jobname.aux\relax}{} -\openout\pgfutil@auxout -% Hmm, is there a better file for use with ConTeXt? - - - +\def\pgfutil@aux@read@hook{ + \pgfutil@IfFileExists{\jobname.pgf}{\input \jobname.pgf\relax}{} + \csname newwrite\endcsname\pgfutil@auxout + \csname openout\endcsname\pgfutil@auxout\jobname.pgf +} % XColor-like support for ConTeXt @@ -207,6 +204,27 @@ \def\pgfutil@font@itshape{\it} \def\pgfutil@font@bfseries{\bf} +\let\pgfutil@font@normalfont=\rm + +\let\pgfutil@selectfont=\rm + + +% Extra counters, registers, boxes + +\newcount\pgfutil@tempcnta +\newcount\pgfutil@tempcntb + +\newbox\pgfutil@tempboxa + +\newdimen\pgfutil@tempdima +\newdimen\pgfutil@tempdimb + + +% Module stuff + +\def\pgfutil@usemodule#1{\usemodule[#1]} + + % The following is still messy and needs to be cleanup up (everything % prefixed by pgfutil@): @@ -216,27 +234,6 @@ \def\PackageError#1#2#3{\immediate\write-1{Package #1: Error! #2.}}% \long\def\AtBeginDocument#1{#1}% \long\def\AtBeginDvi#1{#1}% -\def\providecommand#1#2{\ifx#1\@undefined\def#1{#2}\fi} - -\def\pgflatex@setcounter#1#2{\global\csname c@#1\endcsname#2\relax}% - -\def\setlength#1#2{% - \pgf@length@skip=0pt% - \edef\pgf@temp{#2}% - \expandafter\pgfutil@parse@setlength\pgf@temp+\pgf@stop% - #1=\pgf@length@skip% -} -\def\pgfutil@parse@setlength#1+#2\pgf@stop{% - \advance\pgf@length@skip by#1\relax% - \def\pgf@test{#2}% - \ifx\pgf@test\pgfutil@empty% - \else% - \pgfutil@parse@setlength#2\pgf@stop% - \fi% -} -\def\addtolength#1#2{\setlength{\pgf@length@skip}{#2}\advance#1 \pgf@length@skip\relax} -\def\selectfont{\rm} -\def\applycolormixins#1{} \ifx\setkeys\@undefined \def\setkeys#1#2{% @@ -296,12 +293,5 @@ \newtoks\KV@toks@ -\newdimen\@tempdima -\newdimen\@tempdimb -\newcount\@tempcnta -\newcount\@tempcntb -\newbox\@tempboxa -\newskip\pgf@length@skip - \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def index 8d75746a663..5941eeb2b80 100644 --- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def @@ -11,6 +11,8 @@ \catcode`\@=11\relax \let\pgfutil@auxout=\@auxout +\let\pgfutil@tempcnta=\@tempcnta +\let\pgfutil@tempcntb=\@tempcntb \def\pgfutil@definecolor{\definecolor} \def\pgfutil@color{\color} @@ -21,8 +23,8 @@ \def\pgfutil@globalcolorsfalse{\let\ifglobalcolors\iffalse} \def\pgfutil@globalcolorstrue{\let\ifglobalcolors\iftrue} -\def\pgfutil@minipage{\minipage} -\def\pgfutil@endminipage{\endminipage} +\let\pgfutil@minipage=\minipage +\let\pgfutil@endminipage=\endminipage \def\pgfutil@doifcolorelse#1#2#3{% \expandafter\ifx\csname\string\color@#1\endcsname\relax% @@ -33,7 +35,6 @@ \pgf@next{#2}{#3}% } - \def\pgfutil@font@tiny{\tiny} \def\pgfutil@font@scriptsize{\scriptsize} \def\pgfutil@font@footnotesize{\footnotesize} @@ -47,5 +48,15 @@ \def\pgfutil@font@itshape{\itshape} \def\pgfutil@font@bfseries{\bfseries} +\def\pgfutil@font@normalfont{\normalfont} + +\def\pgfutil@usemodule#1{\usepackage{#1}} + +\let\pgfutil@selectfont=\selectfont + +\let\pgfutil@tempboxa=\@tempboxa + +\let\pgfutil@tempdima=\@tempdima +\let\pgfutil@tempdimb=\@tempdimb \endinput diff --git a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def index 474cdea9f1a..e69159cabb0 100644 --- a/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def +++ b/Master/texmf-dist/tex/generic/pgf/utilities/pgfutil-plain.def @@ -12,11 +12,11 @@ % The aux files, needed for reading back coordinates - -\newwrite\pgfutil@auxout -\pgfutil@IfFileExists{\jobname.aux}{\input \jobname.aux\relax}{} -\openout\pgfutil@auxout - +\def\pgfutil@aux@read@hook{ + \pgfutil@IfFileExists{\jobname.pgf}{\input \jobname.pgf\relax}{} + \csname newwrite\endcsname\pgfutil@auxout + \csname openout\endcsname\pgfutil@auxout\jobname.pgf +} % XColor-like support for plain TeX @@ -186,6 +186,25 @@ \def\pgfutil@font@itshape{\it} \def\pgfutil@font@bfseries{\bf} +\let\pgfutil@font@normalfont=\rm + +\let\pgfutil@selectfont=\rm + + +% Extra counters, registers, boxes + +\newcount\pgfutil@tempcnta +\newcount\pgfutil@tempcntb + +\newbox\pgfutil@tempboxa + +\newdimen\pgfutil@tempdima +\newdimen\pgfutil@tempdimb + + +% Module stuff + +\def\pgfutil@usemodule#1{\input #1.tex} @@ -197,25 +216,7 @@ \def\PackageError#1#2#3{\immediate\write-1{Package #1: Error! #2.}}% \long\def\AtBeginDocument#1{#1}% \long\def\AtBeginDvi#1{#1}% -\def\providecommand#1#2{\ifx#1\@undefined\def#1{#2}\fi} -\def\pgflatex@setcounter#1#2{\global\csname c@#1\endcsname#2\relax}% -\def\setlength#1#2{% - \pgf@length@skip=0pt% - \edef\pgf@temp{#2}% - \expandafter\pgfutil@parse@setlength\pgf@temp+\pgf@stop% - #1=\pgf@length@skip% -} -\def\pgfutil@parse@setlength#1+#2\pgf@stop{% - \advance\pgf@length@skip by#1\relax% - \def\pgf@test{#2}% - \ifx\pgf@test\pgfutil@empty% - \else% - \pgfutil@parse@setlength#2\pgf@stop% - \fi% -} -\def\addtolength#1#2{\setlength{\pgf@length@skip}{#2}\advance#1 \pgf@length@skip\relax} -\def\selectfont{\rm} -\def\applycolormixins#1{} + \ifx\setkeys\@undefined \def\setkeys#1#2{% \def\KV@prefix{KV@#1@}% @@ -274,13 +275,6 @@ \newtoks\KV@toks@ -\newdimen\@tempdima -\newdimen\@tempdimb -\newcount\@tempcnta -\newcount\@tempcntb -\newbox\@tempboxa -\newskip\pgf@length@skip - -- cgit v1.2.3