summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-03-12 22:32:50 +0000
committerKarl Berry <karl@freefriends.org>2014-03-12 22:32:50 +0000
commit44df6d09616942cb3a83276fba2978bc9cdee561 (patch)
tree25d8704f6242db91513074383de6c56a9bcb10fe /Master
parentb2f136b4ef89ad57771cb79327eb0745a7c93bd1 (diff)
pstricks (12mar14)
git-svn-id: svn://tug.org/texlive/trunk@33160 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/Changes.dvips1
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/Changes.generic3
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-news14.pdfbin54057 -> 65878 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pstricks/pst-news14.tex45
-rw-r--r--Master/texmf-dist/dvips/pstricks/pstricks.pro99
-rw-r--r--Master/texmf-dist/tex/generic/pstricks/pstricks.tex70
-rw-r--r--Master/texmf-dist/tex/latex/pstricks/pstricks.sty1
7 files changed, 197 insertions, 22 deletions
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.dvips b/Master/texmf-dist/doc/generic/pstricks/Changes.dvips
index 9cb27ba7e92..a5769f1a0b6 100644
--- a/Master/texmf-dist/doc/generic/pstricks/Changes.dvips
+++ b/Master/texmf-dist/doc/generic/pstricks/Changes.dvips
@@ -1,4 +1,5 @@
---- pstricks.pro
+1.22 2014-03-12 - added cubic spline stuff (Christoph Bersch)
1.21 2013-11-28 - deleted the overlay stuff
1.20 2013-11-26 - fix for Rand
1.19 2013-11-08 - do not put /Uput in a local dictionary
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.generic b/Master/texmf-dist/doc/generic/pstricks/Changes.generic
index 9e9e51e5f1b..c5bd29678d5 100644
--- a/Master/texmf-dist/doc/generic/pstricks/Changes.generic
+++ b/Master/texmf-dist/doc/generic/pstricks/Changes.generic
@@ -3,6 +3,9 @@ versions like 2.47a have only changes in other files, but not
in this main package.
+2.53 2014-03-12 - added cubic splines
+2.52 2014-03-01 - allow rot=.. for all elliptic macros
+ - enable \SpecialCoor as default
2.51 2014-02-03 - make strokeopacity available for dots
2.50 2014-01-16 - added experimental fillstyle oefill, the inverse of eofill
- allow PostScript notation for \pst@checknum
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news14.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news14.pdf
index ddc0a8131d1..1ee07cc9a07 100644
--- a/Master/texmf-dist/doc/generic/pstricks/pst-news14.pdf
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-news14.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news14.tex b/Master/texmf-dist/doc/generic/pstricks/pst-news14.tex
index 6ecca9b37a6..74c92823641 100644
--- a/Master/texmf-dist/doc/generic/pstricks/pst-news14.tex
+++ b/Master/texmf-dist/doc/generic/pstricks/pst-news14.tex
@@ -37,7 +37,7 @@ basic package \nxLFile{pstricks}}
%--------------------------------------------------------------------------------------
\section{\texttt{pstricks.tex} (\pstricksFV -- \pstricksFD)}
%--------------------------------------------------------------------------------------
-\section{Opacity}
+\subsection{Opacity}
The keyword \Lkeyword{strokeopacity} is now also valid for \Lcs{psdot}, \Lcs{psdots},
and the \Lkeyword{linestyle}/\Lkeyword{plotstyle}=\Lkeyval{dots}.
@@ -66,13 +66,11 @@ needs some tricky internal commands and may not work in all cases.
\begin{pspicture}[linewidth=2pt](12,4)
\pscustom[linestyle=none,fillstyle=eofill,fillcolor=blue!40]{%
\psellipse(4,2)(2,2)\psellipse(2,2)(2,2)}
-\psellipse[linecolor=red](4,2)(2,2)
-\psellipse[linecolor=green](2,2)(2,2)
+\psellipse[linecolor=red](4,2)(2,2)\psellipse[linecolor=green](2,2)(2,2)
%
\pscustom[linestyle=none,fillstyle=oefill,fillcolor=blue!40]{%
\psellipse(10,2)(2,2)\psellipse(8,2)(2,2)}
-\psellipse[linecolor=red](10,2)(2,2)
-\psellipse[linecolor=green](8,2)(2,2)
+\psellipse[linecolor=red](10,2)(2,2)\psellipse[linecolor=green](8,2)(2,2)
\end{pspicture}
\end{LTXexample}
@@ -104,6 +102,43 @@ needs some tricky internal commands and may not work in all cases.
\end{LTXexample}
+
+\subsection{New macro \nxLcs{pscspline} (by Christoph Bersch)}
+
+\begin{BDef}
+\LcsStar{pscspline}\OptArgs\Largr{$x_0,y_0$}\Largr{$x_1,y_1$}\ldots\Largr{\CAny}
+\end{BDef}
+
+
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](5,5)
+ \pscspline[arrows=|->, showpoints](0,0)(1,2)
+ \pscspline[arrows=->, showpoints](0,4)(2,3)(3,4)(5,0)
+ \pscspline(4,4)
+\end{pspicture}\par
+\begin{pspicture}[showgrid](5,5)
+ \pscspline[linestyle=symbol, symbol=U,
+ symbolStep=12pt](0,0)(1,2)
+ \pscspline[linestyle=symbol, symbol=a,
+ symbolStep=12pt](0,4)(2,3)(3,4)(5,0)
+\end{pspicture}
+\end{LTXexample}
+
+\bigskip
+\begin{LTXexample}[width=5cm]
+\begin{pspicture}[showgrid](5,5)
+ \pscustom[fillcolor=red!20, fillstyle=solid]{%
+ \pscspline(0,3)(4,2)(5,0)
+ \lineto(0,0)
+ \closepath}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{\nxLcs{Special Coor}}
+
+The Macro \Lcs{SpecialCoor} for scanning special coodinate expressions is now enabled by
+default. You can enable it with \Lcs{NormalCoor}.
+
\clearpage
\nocite{*}
\bibliographystyle{plain}
diff --git a/Master/texmf-dist/dvips/pstricks/pstricks.pro b/Master/texmf-dist/dvips/pstricks/pstricks.pro
index 0a60f8e4460..1349dc92d3e 100644
--- a/Master/texmf-dist/dvips/pstricks/pstricks.pro
+++ b/Master/texmf-dist/dvips/pstricks/pstricks.pro
@@ -1,7 +1,7 @@
-% $Id: pstricks.pro 856 2013-12-09 10:34:40Z herbert $
+% $Id: pstricks.pro 891 2014-02-03 10:05:33Z herbert $
%
%% PostScript prologue for pstricks.tex.
-%% Version 1.21, 2013/11/28
+%% Version 1.22, 2014/02/20
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -30,6 +30,7 @@ tx@Dict begin
/Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known
/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter)
/Div { dup 0 eq { pop } { div } ifelse } def % control the division
+/Log { dup 1e-20 lt { pop -1e30 }{ log } ifelse } def % control the log
/tan { dup cos abs 1.e-10 lt
{ pop 1.e10 } % return 1.e10 as infinit
{ dup sin exch cos div } ifelse % default sin/cos
@@ -731,6 +732,100 @@ gsave
CurvePath
} def
%
+/CalcBezierSpline {% Christoph Bersch
+ 10 dict begin
+ /getX { Points exch 2 mul get } def
+ /getY { Points exch 2 mul 1 add get } def
+ /n Points length 1 sub 2 idiv def
+ /GetFirstControlPoints {
+ /x n array def
+ /tmp n array def
+ /b 2 def
+ x 0 rhs 0 get b div put
+ 1 1 n 1 sub {
+ /i exch def
+ tmp i 1 b div dup 4 1 roll put
+ i n 1 sub lt { 4 }{ 3.5 } ifelse exch sub /b exch def
+ x i rhs i get x i 1 sub get sub b div put
+ } for
+ 1 1 n 1 sub {
+ n exch sub
+ dup dup x exch 1 sub 2 copy 6 2 roll
+ get 3 1 roll tmp exch get
+ exch x exch get mul sub
+ put
+ } for
+ x
+ } def
+ %
+ n 1 eq {
+ 0 getX 2 mul 1 getX add 3 div
+ 0 getY 2 mul 1 getY add 3 div
+ exch dup 3 1 roll 2 mul 0 getX sub
+ exch dup 3 1 roll 2 mul 0 getY sub
+ [ 0 getX 0 getY 7 3 roll 1 getX 1 getY ] /outPoints exch def
+ } {
+ /outPoints 6 n mul 2 add array def
+ 0 1 n {
+ dup dup 6 mul dup 1 add
+ outPoints exch 5 -1 roll getY put
+ outPoints exch 3 -1 roll getX put
+ } for
+ /rhs n array def
+ 1 1 n 2 sub {
+ rhs exch dup dup getX 4 mul exch 1 add getX 2 mul add put
+ } for
+ rhs 0 0 getX 1 getX 2 mul add put
+ rhs n 1 sub dup getX 8 mul n getX add 2 div put
+ GetFirstControlPoints
+ 1 1 n 2 sub {
+ rhs exch dup dup getY 4 mul exch 1 add getY 2 mul add put
+ } for
+ rhs 0 0 getY 1 getY 2 mul add put
+ rhs n 1 sub dup getY 8 mul n getY add 2 div put
+ GetFirstControlPoints
+ 0 1 n 1 sub {
+ /i exch def
+ 2 copy
+ i get outPoints 6 i mul 3 add 3 -1 roll put
+ i get outPoints 6 i mul 2 add 3 -1 roll put
+ 2 copy
+ i n 1 sub lt {
+ i 1 add get i 1 add getY 2 mul exch sub outPoints 6 i mul 5 add 3 -1 roll put
+ i 1 add get i 1 add getX 2 mul exch sub outPoints 6 i mul 4 add 3 -1 roll put
+ }{
+ n 1 sub get n getY add 2 div outPoints 6 n 1 sub mul 5 add 3 -1 roll put
+ n 1 sub get n getX add 2 div outPoints 6 n 1 sub mul 4 add 3 -1 roll put
+ } ifelse
+ } for
+ pop pop
+ } ifelse
+ outPoints
+ end
+} def
+/Spline {
+ /showpoints ED
+ counttomark 2 div dup cvi /n ED
+ n eq not { exch pop } if
+ ] /Points ED
+ n 1 gt {
+ CalcBezierSpline
+ mark exch aload pop
+ ArrowA
+ n 2 sub {
+ 6 2 roll 4 2 roll curveto
+ } repeat
+ 6 2 roll 4 2 roll ArrowB curveto
+ } if
+} def
+/OpenSymbolSpline {
+ Spline
+ 0.1 setflat
+ /Shift Symbol stringwidth pop 2 div def
+ CurvePath
+} def
+
+%
/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore } def
diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
index bf4e83c1847..243aa5ab387 100644
--- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
+++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex
@@ -109,8 +109,8 @@
\input pgffor.code.tex
\let\pgfforeach\foreach
%
-\def\fileversion{2.51}
-\def\filedate{2014/02/03}
+\def\fileversion{2.53}
+\def\filedate{2014/03/12}
\catcode`\@=11\relax
\pst@addfams{pstricks}
%
@@ -788,7 +788,7 @@
}%
\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}%
}
-\NormalCoor% set to normal read of coors, angles and lengths
+%\NormalCoor% set to normal read of coors, angles and lengths
%
\def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}}
\def\@degrees[#1]{%
@@ -831,6 +831,8 @@
}%
\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}%
}
+\SpecialCoor% set to special read of coors, angles and lengths
+%
\begingroup
\catcode`\|=13
\catcode`\;=13
@@ -2209,6 +2211,28 @@
\ifx\pslinestyle\psls@@symbol\def\pslinestyle{none}\fi%
\end@ClosedObj}
%
+\def\pscspline{\pst@object{pscspline}}% Christoph Bersch
+\def\pscspline@i{%
+ \pst@getarrows{%
+ \begin@OpenObj
+ \pst@getcoors[\pscspline@ii
+ }%
+}
+\def\tx@Spline{Spline }
+\def\pscspline@ii{%
+ \addto@pscode{
+ \ifPst@noCurrentPoint\else\pst@cp\fi
+ \tx@setlinejoin
+ \ifshowpoints true \else false \fi
+ \ifx\pslinestyle\psls@@symbol
+ \psls@symbol OpenSymbolSpline
+ \else
+ \tx@Spline
+ \fi
+ }%
+ \end@OpenObj
+}
+%
\define@key[psset]{pstricks}{dotsize}[2pt 2]{%
\pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil%
\edef\psk@@dotsize{\pst@number\pst@dimg}%
@@ -3182,7 +3206,12 @@ pop
\ifx D\pst@tempg 2 % Down
\else
\ifx L\pst@tempg 3 % Left
- \else 0 % Up
+ \else
+ \ifx l\pst@tempg 4 % |_
+ \else
+ \ifx r\pst@tempg 5 % _|
+ \else 0 \fi % Up
+ \fi
\fi
\fi
\fi}%
@@ -3208,10 +3237,19 @@ pop
\psline@iii
pop
0.5
- \pst@number\pst@dimc \pst@number\pst@dimd
- \ifodd\psk@trimode exch \fi
+ \pst@number\pst@dimc % Width
+ \pst@number\pst@dimd % Height
+ \ifcase\psk@trimode
+ \or %% 0
+ exch \or %% 1
+ \or %% 2
+ exch \or %% 3
+ \or %% 4
+ \or %% 5
+ \fi
\psk@trimode -90 mul
- \pst@number\pst@dima \pst@number\pst@dimb
+ \pst@number\pst@dima % x coor for text
+ \pst@number\pst@dimb % y coor for text
\tx@Triangle}%
\def\pst@linetype{2}%
\end@ClosedObj
@@ -3222,10 +3260,10 @@ pop
\pst@dimh=\pslinewidth
\advance\pst@dimh\psframesep
\pst@dimg=\ht\pst@hbox
- \advance\pst@dimg-\dp\pst@hbox
- \divide\pst@dimg 2
- \edef\pst@tempa{\number\pst@dimg sp}% For use by nodes.
- \ifodd\psk@trimode
+ \advance\pst@dimg-\dp\pst@hbox % totalheight
+ \divide\pst@dimg 2 % 0.5 totalheight
+ \edef\pst@tempa{\number\pst@dimg sp}% % For use by nodes.
+ \ifodd\psk@trimode %
\pst@dimb\pst@dimg
\else
\pst@dima=\wd\pst@hbox
@@ -3431,6 +3469,7 @@ pop
\pst@@getcoor{#2}%
\def\pst@linetype{1}%
\addto@pscode{%
+ \ifx\psk@rot\@empty \else \psk@rot\space rotate \fi
\pst@tempa \pst@tempb
\pst@coor
\pst@tempc moveto
@@ -3504,6 +3543,7 @@ pop
\end@OpenObj%
}
\def\psellipticarc@definearg{%
+ \ifx\psk@rot\@empty \else \psk@rot\space rotate \fi
\pst@tempa /yOrig ED /xOrig ED % Origin
\pst@tempb % radii. Now adjust:
\ifdim\psk@dimen\p@=\z@\else
@@ -3685,7 +3725,7 @@ pop
\end@ClosedObj
\ignorespaces}
%
-\def\pswedge{\pst@object{pswedge}}
+\def\pswedge{\def\pst@par{}\pst@object{pswedge}}
\def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}}
\def\pswedge@ii(#1)#2#3#4{%
\begin@ClosedObj%
@@ -3695,6 +3735,7 @@ pop
\pst@@getcoor{#1}%
\def\pst@linetype{1}%
\addto@pscode{
+ \ifx\psk@rot\@empty 0 \else \psk@rot \fi rotate
\pst@coor
2 copy
moveto
@@ -3707,9 +3748,8 @@ pop
\showpointsfalse%
\end@ClosedObj%
}
-\def\tx@Ellipse{
- \ifx\psk@rot\@empty 0 \else \psk@rot \fi
- Ellipse }
+\def\tx@Ellipse{ \ifx\psk@rot\@empty 0 \else \psk@rot \fi Ellipse }
+%
\def\psellipse{\def\pst@par{}\pst@object{psellipse}}
\def\psellipse@i(#1){\@ifnextchar({\psellipse@ii(#1)}{\psellipse@ii(0,0)(#1)}}
\def\psellipse@ii(#1)(#2){%
diff --git a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
index 17fc908ae80..03434925b16 100644
--- a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
+++ b/Master/texmf-dist/tex/latex/pstricks/pstricks.sty
@@ -41,6 +41,7 @@
\newif\ifpst@loadPDF \pst@loadPDFfalse
\DeclareOption{pdf}{\global\pst@loadPDFtrue}
%------------------------------------ PLAIN --------------------------------
+
\DeclareOption{plain}{%
\ifpst@OldVersion
\def\psDEBUG[#1]#2{}%