From c9824e70cb00718a2bfbd07aeb01669daf6d8951 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 3 Sep 2016 01:23:21 +0000 Subject: pstricks-add (2sep16) git-svn-id: svn://tug.org/texlive/trunk@41977 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pstricks-add/Changes | 3 +- .../doc/generic/pstricks-add/pstricks-add-doc.pdf | Bin 5188674 -> 5036867 bytes .../doc/generic/pstricks-add/pstricks-add-doc.tex | 803 +-------------------- .../tex/generic/pstricks-add/pstricks-add.tex | 591 +-------------- 4 files changed, 9 insertions(+), 1388 deletions(-) diff --git a/Master/texmf-dist/doc/generic/pstricks-add/Changes b/Master/texmf-dist/doc/generic/pstricks-add/Changes index 5c6f1456264..fb31bab1b3f 100644 --- a/Master/texmf-dist/doc/generic/pstricks-add/Changes +++ b/Master/texmf-dist/doc/generic/pstricks-add/Changes @@ -1,4 +1,4 @@ -%% $Id: Changes 315 2016-08-08 15:20:00Z herbert $ +%% $Id: Changes 331 2016-09-01 19:16:02Z herbert $ %% pstricks-add.pro ----------- 0.23 2009-12-17 - add RGBtoGRAY and WavelengthToGRAY @@ -39,6 +39,7 @@ pstricks-add.sty ----------- (hv) pstricks-add.tex ----------- (hv) + v 3.82 2016-09-01 - moved arrow macros to new package pst-arrow v 3.81 2016-08-08 - added \psOlympicRings v 3.80 2016-04-25 - moved node definitions into pst-node v 3.79 2016-02-09 - added optional argument randInit to intialize diff --git a/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf b/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf index 80ab440ddcb..0151c8c1775 100644 Binary files a/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf and b/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.tex b/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.tex index 7626dcc22a1..da2fa473375 100644 --- a/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.tex +++ b/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.tex @@ -1,8 +1,9 @@ -%% $Id: pstricks-add-doc.tex 318 2016-08-08 16:54:19Z herbert $ +%% $Id: pstricks-add-doc.tex 327 2016-09-01 18:59:35Z herbert $ \documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings, headexclude,footexclude,oneside]{pst-doc} \listfiles +\addbibresource{pstricks-add-doc.bib} \makeatletter %\RequirePackage{ltxcmds}[2010/01/28] %\@ifpackagelater{ltxcmds}{2010/03/09}{}{% @@ -3904,803 +3905,6 @@ lines. The number of arguments is no longer limited. -\clearpage -%-------------------------------------------------------------------------------------- -\section{Arrows} -%-------------------------------------------------------------------------------------- -\subsection{Definition} -%-------------------------------------------------------------------------------------- -\LPack{pstricks-add} defines the following "`arrows"': - -\begin{center} - \bgroup - \def\myline#1{\psline[linecolor=red,linewidth=0.5pt,arrowscale=1.5]{#1}(0,1ex)(1.3,1ex)}% - \psset{arrowscale=1.5} - \begin{tabular}{@{} c @{\qquad} p{3cm} l @{}}% - Value & Example & Name \\[2pt]\hline - \Lnotation{-} & \myline{-} & None\\ - \Lnotation{<->} & \myline{<->} & Arrowheads.\\ - \Lnotation{>-<} & \myline{>-<} & Reverse arrowheads.\\ - \Lnotation{<{<}-{>}>} & \myline{<<->>} & Double arrowheads.\\ - \Lnotation{{>}>-{<}<} & \myline{>>-<<} & Double reverse arrowheads.\\ - \Lnotation{{|}-{|}} & \myline{|-|} & T-bars, flush to endpoints.\\ - \Lnotation{{|}*-{|}*} & \myline{|*-|*} & T-bars, centered on endpoints.\\ - \Lnotation{[-]} & \myline{[-]} & Square brackets.\\ - \Lnotation{]-[} & \myline{]-[} & Reversed square brackets.\\ - \Lnotation{(-)} & \myline{(-)} & Rounded brackets.\\ - \Lnotation{)-(} & \myline{)-(} & Reversed rounded brackets.\\ - \Lnotation{o-o} & \myline{o-o} & Circles, centered on endpoints.\\ - \Lnotation{*-*} & \myline{*-*} & Disks, centered on endpoints.\\ - \Lnotation{oo-oo} & \myline{oo-oo} & Circles, flush to endpoints.\\ - \Lnotation{**-**} & \myline{**-**} & Disks, flush to endpoints.\\ - \Lnotation{{|}<->{|}} & \myline{|<->|} & T-bars and arrows.\\ - \Lnotation{{|}>-<{|}} & \myline{|>-<|} & T-bars and reverse arrows.\\ - \Lnotation{h-h{|}} & \myline{h-h} & left/right hook arrows.\\ - \Lnotation{H-H{|}} & \myline{H-H} & left/right hook arrows.\\ - \Lnotation{v-v|} & \myline{v-v} & left/right inside vee arrows.\\ - \Lnotation{V-V|} & \myline{V-V} & left/right outside vee arrows.\\ - \Lnotation{f-f|} & \myline{f-f} & left/right inside filled arrows.\\ - \Lnotation{F-F|} & \myline{F-F} & left/right outside filled arrows.\\ - \Lnotation{t-t|} & \myline{t-t} & left/right inside slash arrows.\\[5pt] - \Lnotation{T-T|} & \myline{T-T} & left/right outside slash arrows.\\ - \end{tabular} - \egroup -\end{center} - - - -You can also mix and match, e.g., \Lnotation{->}, \Lnotation{*-)} and \Lnotation{[->} are all valid values -of the \Lkeyword{arrows} parameter. The parameter can be set with - -\begin{BDef} -\Lcs{psset}\Largb{arrows=} -\end{BDef} - -\noindent or for some macros with a special option, like\\[5pt] -\noindent\verb|\psline[]{}(A)(B)|\\ -\noindent\verb/\psline[linecolor=red,linewidth=2pt]{|->}(0,0)(0,2)/ \ \psline[linecolor=red,linewidth=2pt]{|->}(0,0)(0,2) - -\subsection{Multiple arrows} -There are two new options which are only valid for the arrow type \verb+<<+ or \verb+>>+. -\verb+nArrow+ sets both, the \verb+nArrowA+ and the \verb+nArrowB+ parameter. The meaning -is declared in the following tables. Without setting one of these parameters the behaviour -is like the one described in the old PSTricks manual. - -\begin{center} -\begin{tabular}{@{}lc@{}}% - Value & Meaning \\[2pt]\hline - \Lnotation{-{>}>} & \ -A \\ - \Lnotation{{<}<-{>}>} & A-A\\ - \Lnotation{{<}<-} & A-\ \\ - \Lnotation{{>}>-} & B-\ \\ - \Lnotation{-{<}<} & \ -B\\ - \Lnotation{{>}>-{<}<} & B-B\\ - \Lnotation{{>}>-{>}>} & B-A\\ - \Lnotation{{<}<-{<}<} & A-B - \end{tabular} -\end{center} - - - - -\begin{center} - \bgroup - \psset{linecolor=red,linewidth=1pt,arrowscale=2}% - \begin{tabular}{lp{2.8cm}}% - Value & Example \\[2pt]\hline - \verb+\psline{->>}(0,1ex)(2.3,1ex)+ & \psline{->>}(0,1ex)(2.3,1ex) \\ - \verb+\psline[nArrowsA=3]{->>}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=3]{->>}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=5]{->>}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=5]{->>}(0,1ex)(2.3,1ex)\\ - \verb+\psline{<<-}(0,1ex)(2.3,1ex)+ & \psline{<<-}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=3]{<<-}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=3]{<<-}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=5]{<<-}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=5]{<<-}(0,1ex)(2.3,1ex)\\ - \verb+\psline{<<->>}(0,1ex)(2.3,1ex)+ & \psline{<<->>}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=3]{<<->>}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=3]{<<->>}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=5]{<<->>}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=5]{<<->>}(0,1ex)(2.3,1ex)\\ - \verb+\psline{<<-|}(0,1ex)(2.3,1ex)+ & \psline{<<-|}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=3]{<<-<<}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=3]{<<-<<}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=5]{<<-o}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=5]{<<-o}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=3,nArrowsB=4]{<<-<<}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=3,nArrowsB=4]{<<-<<}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=3,nArrowsB=4]{>>->>}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=3,nArrowsB=4]{>>->>}(0,1ex)(2.3,1ex)\\ - \verb+\psline[nArrowsA=1,nArrowsB=4]{>>->>}(0,1ex)(2.3,1ex)+ & \psline[nArrowsA=1,nArrowsB=4]{>>->>}(0,1ex)(2.3,1ex)\\ - \end{tabular} - \egroup -\end{center} - - - -\subsection{\texttt{hookarrow}} -%\begin{LTXexample} -\bgroup -\psset{arrowsize=8pt,arrowlength=1,linewidth=1pt,nodesep=2pt,shortput=tablr} -\large -\begin{psmatrix}[colsep=12mm,rowsep=10mm] - & & $R_2$ \\ - & & 0 & & $R_3$\\ -$e_b:S$ & 1 & & 1 & 0 \\ - & & 0 \\ - & & $R_1$ \\ -\end{psmatrix} -\ncline{h-}{1,3}{2,3}<{$e_{r2}$}>{$f_{r2}$} -\ncline{-h}{2,3}{3,2}<{$e_1$} -\ncline{-h}{3,1}{3,2}^{$e_s$}_{$f_{s}$} -\ncline{-h}{3,2}{4,3}>{$e_3$}<{$f_3$} -\ncline{-h}{4,3}{3,4}>{$e_4$}<{$f_4$} -\ncline{-h}{3,4}{2,3}>{$e_2$}<{$f_2$} -\ncline{-h}{3,4}{3,5}^{$e_5$} -\ncline{-h}{3,5}{2,5}<{$e_{r3}$}>{$f_{r3}$} -\ncline{-h}{4,3}{5,3}<{$e_{r1}$}>{$f_{r1}$} -%\end{LTXexample} -\egroup - -\begin{lstlisting} -\psset{arrowsize=8pt,arrowlength=1,linewidth=1pt,nodesep=2pt,shortput=tablr} -\large -\begin{psmatrix}[colsep=12mm,rowsep=10mm] - & & $R_2$ \\ - & & 0 & & $R_3$\\ -$e_b:S$ & 1 & & 1 & 0 \\ - & & 0 \\ - & & $R_1$ \\ -\end{psmatrix} -\ncline{h-}{1,3}{2,3}<{$e_{r2}$}>{$f_{r2}$}\ncline{-h}{2,3}{3,2}<{$e_1$} -\ncline{-h}{3,1}{3,2}^{$e_s$}_{$f_{s}$} \ncline{-h}{3,2}{4,3}>{$e_3$}<{$f_3$} -\ncline{-h}{4,3}{3,4}>{$e_4$}<{$f_4$} \ncline{-h}{3,4}{2,3}>{$e_2$}<{$f_2$} -\ncline{-h}{3,4}{3,5}^{$e_5$} -\ncline{-h}{3,5}{2,5}<{$e_{r3}$}>{$f_{r3}$} -\ncline{-h}{4,3}{5,3}<{$e_{r1}$}>{$f_{r1}$} -\end{lstlisting} - - - -\subsection{\texttt{hookrightarrow} and \texttt{hookleftarrow}} -This is another type of arrow and is abbreviated with \Lnotation{H}. -The length and width of the hook is set by the new options -\Lkeyword{hooklength} and \Lkeyword{hookwidth}, which are by default set -to -% -\begin{BDef} -\Lcs{psset}\Largb{hooklength=3mm,hookwidth=1mm} -\end{BDef} -% -If the line begins with a right hook then the line ends with a left hook and vice versa: - -\begin{LTXexample}[width=3cm] -\begin{pspicture}(3,4) -\psline[linewidth=5pt,linecolor=blue,hooklength=5mm,hookwidth=-3mm]{H->}(0,3.5)(3,3.5) -\psline[linewidth=5pt,linecolor=red,hooklength=5mm,hookwidth=3mm]{H->}(0,2.5)(3,2.5) -\psline[linewidth=5pt,hooklength=5mm,hookwidth=3mm]{H-H}(0,1.5)(3,1.5) -\psline[linewidth=1pt]{H-H}(0,0.5)(3,0.5) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=7.25cm] -$\begin{psmatrix} -E&W_i(X)&&Y\\ -&&W_j(X) -\psset{arrows=->,nodesep=3pt,linewidth=2pt} -\everypsbox{\scriptstyle} -\ncline[linecolor=red,arrows=H->,% - hooklength=4mm,hookwidth=2mm]{1,1}{1,2} -\ncline{1,2}{1,4}^{\tilde{t}} -\ncline{1,2}{2,3}<{W_{ij}} -\ncline{2,3}{1,4}>{\tilde{s}} -\end{psmatrix}$ -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsection{\nxLkeyword{ArrowInside} Option} -%-------------------------------------------------------------------------------------- - -It is now possible to have arrows inside lines and not only at the -beginning or the end. The new defined options - -\psset{arrowscale=2,linecolor=red,unit=1cm,linewidth=1.5pt} -\begin{longtable}{l|>{\RaggedRight}p{8.5cm}|p{2.2cm}} -Name & Example & Output\\\hline -\endfirsthead -Name & Example & Output\\\hline -\endhead -\Lkeyword{ArrowInside} & - \texttt{\textbackslash psline[ArrowInside=->](0,0)(2,0)} & - \psline[ArrowInside=->](0,0.1)(2,0.1) \\ -\Lkeyword{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=0.25](0,0)(2,0)} -& \psline[ArrowInside=->, ArrowInsidePos=0.25](0,0.1)(2,0.1) \\ -\Lkeyword{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=10](0,0)(2,0)} -& \psline[ArrowInside=->, ArrowInsidePos=10](0,0.1)(2,0.1) \\ -\Lkeyword{ArrowInsideNo} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2](0,0)(2,0)} -& \psline[ArrowInside=->, ArrowInsideNo=2](0,0.1)(2,0.1) \\ -\Lkeyword{ArrowInsideOffset} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2,\%}\newline - \hspace*{20pt}\texttt{ArrowInsideOffset=0.1](0,0)(2,0)} -& \psline[ArrowInside=->, ArrowInsideNo=2,ArrowInsideOffset=0.1](0,0.1)(2,0.1) \\ -% -\Lkeyword{ArrowInside} & \texttt{\textbackslash psline[ArrowInside=->]\{->\}(0,0)(2,0)} & - \psline[ArrowInside=->]{->}(0,0)(2,0)\\ -\Lkeyword{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=0.25]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsidePos=0.25]{->}(0,0)(2,0) \\ -\Lkeyword{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=10]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsidePos=10]{->}(0,0)(2,0) \\ -\Lkeyword{ArrowInsideNo} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsideNo=2]{->}(0,0)(2,0) \\ -\Lkeyword{ArrowInsideOffset} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2,\%}\newline - \hspace*{20pt}\texttt{ArrowInsideOffset=0.1]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsideNo=2,ArrowInsideOffset=0.1]{->}(0,0)(2,0) \\ -% -\Lkeyword{ArrowFill} & \texttt{\textbackslash psline[ArrowFill=false,\%} - \hspace*{20pt}\texttt{arrowinset=0]\{->\}(0,0)(2,0)} & - \psline[ArrowFill=false,arrowinset=0]{->}(0,0)(2,0)\\ -\Lkeyword{ArrowFill} & \texttt{\textbackslash psline[ArrowFill=false,\%} - \hspace*{20pt}\texttt{arrowinset=0]\{<<->>\}(0,0)(2,0)} & - \psline[ArrowFill=false,arrowinset=0]{<<->>}(0,0)(2,0)\\ -\Lkeyword{ArrowFill} & \texttt{\textbackslash psline[ArrowInside=->,\%}\newline - \hspace*{20pt}\texttt{arrowinset=0,\%}\newline - \hspace*{20pt}\texttt{ArrowFill=false,\%}\newline - \hspace*{20pt}\texttt{ArrowInsideNo=2,\%}\newline - \hspace*{20pt}\texttt{ArrowInsideOffset=0.1]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowFill=false,ArrowInsideNo=2,ArrowInsideOffset=0.1]{->}(0,0)(2,0) \\ -\end{longtable} - -\medskip -Without the default arrow definition there is only the one inside -the line, defined by the type and the position. The position is -relative to the length of the whole line. $0.25$ means at $25\%$ -of the line length. The peak of the arrow gets the coordinates -which are calculated by the macro. If you want arrows with an -absolute position difference, then choose a value greater than -\verb|1|, e.\,g. \verb|10| which places an arrow every 10~pt. The -default unit \verb|pt| cannot be changed. - -\medskip -\noindent -\begin{tabularx}{\linewidth}{@{\color{red}\vrule width 2pt}lX@{}} -& The \Lkeyword{ArrowInside} takes only arrow definitions like \Lnotation{->} into account. -Arrows from right to left (\Lnotation{<-}) are not possible and ignored. If you need -such arrows, change the order of the pairs of coordinates for the line or curve macro. -\end{tabularx} - -%-------------------------------------------------------------------------------------- -\subsection{\nxLkeyword{ArrowFill} Option} -%-------------------------------------------------------------------------------------- - -By default all arrows are filled polygons. With the option -\Lkeyset{ArrowFill=false} there are ''white`` arrows. Only for the -beginning/end arrows are they empty, the inside arrows are -overpainted by the line. - - -\psset{arrowscale=1} -\begin{LTXexample}[width=3.5cm] -\psset{arrowscale=2.5} -\psline[linecolor=red,arrowinset=0]{<->}(-1,0)(2,0) -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\psset{arrowscale=2.5} -\psline[linecolor=red,arrowinset=0,ArrowFill=false]{<->}(-1,0)(2,0) -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\psset{arrowscale=2.5} -\psline[linecolor=red,arrowinset=0,arrowsize=0.2, - ArrowFill=false]{<->}(-1,0)(2,0) -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\psline[linecolor=blue,arrowscale=4, - ArrowFill]{>>->>}(-1,0)(2,0) -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\psline[linecolor=blue,arrowscale=4, - ArrowFill=false]{>>->>}(-1,0)(2,0) -\rule{3cm}{0pt}\\[30pt] -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\psline[linecolor=blue,arrowscale=4, - ArrowFill]{>|->|}(-1,0)(2,0) -\end{LTXexample} - -\begin{LTXexample}[width=3.5cm] -\psline[linecolor=blue,arrowscale=4, - ArrowFill=false]{>|->|}(-1,0)(2,0)% -\end{LTXexample} - - -\subsection{Big Arrows} - -\begin{LTXexample}[width=5cm] -\begin{pspicture}(5,5) -\psset{doublesep=1cm} -\psBigArrow[fillstyle=solid, - fillcolor=blue!30,linecolor=blue](0,3)(5,3) -\psBigArrow[fillstyle=solid,opacity=0.3, - fillcolor=red,linecolor=red](0.5,0.5)(5,5) -\end{pspicture} -\end{LTXexample} - - - - -%-------------------------------------------------------------------------------------- -\subsection{Examples} -%-------------------------------------------------------------------------------------- - -All examples are printed with \verb|\psset{arrowscale=2,linecolor=red}|. -\subsubsection{\nxLcs{psline}} - -\bigskip -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=->]{|<->|}(2,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=-|]{|-|}(2,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=->,ArrowInsideNo=2]{->}(2,1) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=->,ArrowInsideNo=2,ArrowInsideOffset=0.1]{->}(2,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=-*]{->}(0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=-*,ArrowInsidePos=0.25]{->}(0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=-*,ArrowInsidePos=0.25,ArrowInsideNo=2]{->}% - (0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=->, ArrowInsidePos=0.25]{->}% - (0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[linestyle=none,ArrowInside=->,ArrowInsidePos=0.25]{->}% - (0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=-<, ArrowInsidePos=0.75]{->}% - (0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true,ArrowInside=-*} -\psline(0,0)(2,1)(3,0)(4,0)(6,2) -\psset{linestyle=none} -\psline[ArrowInsidePos=0](0,0)(2,1)(3,0)(4,0)(6,2) -\psline[ArrowInsidePos=1](0,0)(2,1)(3,0)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,5) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=->,ArrowInsidePos=20](0,0)(3,0)% - (3,3)(1,3)(1,5)(5,5)(5,0)(7,0)(6,3) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,2) -\psset{arrowscale=2,ArrowFill=true} -\psline[ArrowInside=-|]{<->}(0,2)(2,0)(3,2)(4,0)(6,2) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsubsection{\nxLcs{pspolygon}} -%-------------------------------------------------------------------------------------- -% Polygons (\pspolygon macro) - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,3) -\psset{arrowscale=2} -\pspolygon[ArrowInside=-|](0,0)(3,3)(6,3)(6,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,3) -\psset{arrowscale=2} -\pspolygon[ArrowInside=->,ArrowInsidePos=0.25]% - (0,0)(3,3)(6,3)(6,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,3) -\psset{arrowscale=2} -\pspolygon[ArrowInside=->,ArrowInsideNo=4]% - (0,0)(3,3)(6,3)(6,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,3) -\psset{arrowscale=2} -\pspolygon[ArrowInside=->,ArrowInsideNo=4,% - ArrowInsideOffset=0.1](0,0)(3,3)(6,3)(6,1) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,3) -\psset{arrowscale=2} - \pspolygon[ArrowInside=-|](0,0)(3,3)(6,3)(6,1) - \psset{linestyle=none,ArrowInside=-*} - \pspolygon[ArrowInsidePos=0](0,0)(3,3)(6,3)(6,1) - \pspolygon[ArrowInsidePos=1](0,0)(3,3)(6,3)(6,1) - \psset{ArrowInside=-o} - \pspolygon[ArrowInsidePos=0.25](0,0)(3,3)(6,3)(6,1) - \pspolygon[ArrowInsidePos=0.75](0,0)(3,3)(6,3)(6,1) -\end{pspicture} -\end{LTXexample} - -\psset{linestyle=solid} - -\begin{LTXexample}[width=6.5cm] -\begin{pspicture}(6,5) -\psset{arrowscale=2} - \pspolygon[ArrowInside=->,ArrowInsidePos=20]% - (0,0)(3,0)(3,3)(1,3)(1,5)(5,5)(5,0)(7,0)(6,3) -\end{pspicture} -\end{LTXexample} - - -%-------------------------------------------------------------------------------------- -\subsubsection{\nxLcs{psbezier}} -%-------------------------------------------------------------------------------------- -% Bezier curves (\psbezier macro) - - -\begin{LTXexample}[width=3.5cm] -\begin{pspicture}(3,3) -\psset{arrowscale=2} - \psbezier[ArrowInside=-|](0,1)(1,0)(2,1)(3,3) - \psset{linestyle=none,ArrowInside=-o} - \psbezier[ArrowInsidePos=0.25](0,1)(1,0)(2,1)(3,3) - \psbezier[ArrowInsidePos=0.75](0,1)(1,0)(2,1)(3,3) - \psset{linestyle=none,ArrowInside=-*} - \psbezier[ArrowInsidePos=0](0,1)(1,0)(2,1)(3,3) - \psbezier[ArrowInsidePos=1](0,1)(1,0)(2,1)(3,3) -\end{pspicture} -\end{LTXexample} - - - -\resetOptions -\begin{LTXexample}[width=4.5cm] -\begin{pspicture}(4,3) -\psset{arrowscale=2} -\psbezier[ArrowInside=->,showpoints]% - {*-*}(0,0)(2,3)(3,0)(4,2) -\end{pspicture} -\end{LTXexample} - - - - -\begin{LTXexample}[width=4.5cm] -\begin{pspicture}(4,3) -\psset{arrowscale=2} - \psbezier[ArrowInside=->,showpoints=true, - ArrowInsideNo=2](0,0)(2,3)(3,0)(4,2) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=4.5cm] -\begin{pspicture}(4,3) -\psset{arrowscale=2} - \psbezier[ArrowInside=->,showpoints=true, - ArrowInsideNo=2,ArrowInsideOffset=-0.2]% - {->}(0,0)(2,3)(3,0)(4,2) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=5.5cm] -\begin{pspicture}(5,3) -\psset{arrowscale=2} - \psbezier[ArrowInsideNo=9,ArrowInside=-|,% - showpoints=true]{*-*}(0,0)(1,3)(3,0)(5,3) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=4.5cm] -\begin{pspicture}(4,3) -\psset{arrowscale=2} - \psset{ArrowInside=-|} - \psbezier[ArrowInsidePos=0.25,showpoints=true]{*-*}(2,3)(3,0)(4,2) - \psset{linestyle=none} - \psbezier[ArrowInsidePos=0.75](0,0)(2,3)(3,0)(4,2) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[width=5.5cm] -\begin{pspicture}(5,6) -\psset{arrowscale=2} - \pnode(3,4){A}\pnode(5,6){B}\pnode(5,0){C} - \psbezier[ArrowInside=->,% - showpoints=true](A)(B)(C) - \psset{linestyle=none,ArrowInside=-<} - \psbezier[ArrowInsideNo=4](0,0)(A)(B)(C) - \psset{ArrowInside=-o} - \psbezier[ArrowInsidePos=0.1](0,0)(A)(B)(C) - \psbezier[ArrowInsidePos=0.9](0,0)(A)(B)(C) - \psset{ArrowInside=-*} - \psbezier[ArrowInsidePos=0.3](0,0)(A)(B)(C) - \psbezier[ArrowInsidePos=0.7](0,0)(A)(B)(C) -\end{pspicture} -\end{LTXexample} - -\psset{linestyle=solid} - -\begin{LTXexample}[pos=t] -\begin{pspicture}(-3,-5)(15,5) - \psbezier[ArrowInsideNo=19,% - ArrowInside=->,ArrowFill=false,% - showpoints=true]{->}(-3,0)(5,-5)(8,5)(15,-5) -\end{pspicture} -\end{LTXexample} - - - -%-------------------------------------------------------------------------------------- -\subsubsection{\nxLcs{pcline}} -%-------------------------------------------------------------------------------------- -These examples need the package \verb|pst-node|. - -% Lines (\pcline macro) -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,1) -\psset{arrowscale=2} -\pcline[ArrowInside=->](0,0)(2,1) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,1) -\psset{arrowscale=2} -\pcline[ArrowInside=->]{<->}(0,0)(2,1) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,1) -\psset{arrowscale=2} -\pcline[ArrowInside=-|,ArrowInsidePos=0.75]{|-|}(0,0)(2,1) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=2.5cm] -\psset{arrowscale=2} -\pcline[ArrowInside=->,ArrowInsidePos=0.65]{*-*}(0,0)(2,0) -\naput[labelsep=0.3]{\large$g$} -\end{LTXexample} - - -\begin{LTXexample}[width=2.5cm] -\psset{arrowscale=2} -\pcline[ArrowInside=->,ArrowInsidePos=10]{|-|}(0,0)(2,0) -\naput[labelsep=0.3]{\large$l$} -\end{LTXexample} - - - -%-------------------------------------------------------------------------------------- -\subsubsection{\nxLcs{pccurve}} -%-------------------------------------------------------------------------------------- -These examples also need the package \verb|pst-node|. - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,2) -\psset{arrowscale=2} -\pccurve[ArrowInside=->,ArrowInsidePos=0.65,showpoints=true]{*-*}(0,0)(2,2) -\naput[labelsep=0.3]{\large$h$} -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=2.5cm] -\begin{pspicture}(2,2) -\psset{arrowscale=2} -\pccurve[ArrowInside=->,ArrowInsideNo=3,showpoints=true]{|->}(0,0)(2,2) -\naput[labelsep=0.3]{\large$i$} -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=4.5cm] -\begin{pspicture}(4,4) -\psset{arrowscale=2} -\pccurve[ArrowInside=->,ArrowInsidePos=20]{|-|}(0,0)(4,4) -\naput[labelsep=0.3]{\large$k$} -\end{pspicture} -\end{LTXexample} - -\clearpage - -\subsection{Special arrows \texttt{v--V},\texttt{t--T}, and \texttt{f--F}} - -Possible optional arguments are - -\psset{linecolor=black} - -\begin{center} -\begin{tabular}{@{}l|l@{}}\toprule -\emph{name} & \emph{meaning}\\\hline -\Lkeyword{veearrowlength} & default is 3mm\\ -\Lkeyword{veearrowangle} & default is 30\\ -\Lkeyword{veearrowlinewidth} & default is 0.35mm\\ -\Lkeyword{filledveearrowlength} & default is 3mm\\ -\Lkeyword{filledveearrowangle} & default is 15\\ -\Lkeyword{filledveearrowlinewidth} & default is 0.35mm\\ -\Lkeyword{tickarrowlength} & default is 1.5mm\\ -\Lkeyword{tickarrowlinewidth} & default is 0.35mm\\ -\Lkeyword{arrowlinestyle} & default is solid\\\bottomrule -\end{tabular} -\end{center} - - -\begin{LTXexample}[width=4cm] -\psset{unit=5mm} -\begin{pspicture}(4,6) - \psset{dimen=middle,arrows=c-c, - arrowscale=2,linewidth=.25mm} - \psline[linecolor=red,linewidth=.05mm](0,0)(0,6) - \psline[linecolor=red,linewidth=.05mm](4,0)(4,6) - \psline{v-v}(0,6)(4,6) - \psline{v-V}(0,4)(4,4) - \psline{V-v}(0,2)(4,2) - \psline{V-V}(0,0)(4,0) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=4cm] -\psset{unit=5mm} -\begin{pspicture}(4,6) - \psset{dimen=middle,arrows=c-c, - arrowscale=2,linewidth=.25mm} - \psline[linecolor=red,linewidth=.05mm](0,0)(0,6) - \psline[linecolor=red,linewidth=.05mm](4,0)(4,6) - \psline{f-f}(0,6)(4,6) - \psline{f-F}(0,4)(4,4) - \psline{F-f}(0,2)(4,2) - \psline{F-F}(0,0)(4,0) -\end{pspicture} -\end{LTXexample} - - -\begin{LTXexample}[width=4cm] -\psset{unit=5mm} -\begin{pspicture}(4,6) - \psset{dimen=middle,arrows=c-c,linewidth=.25mm} - \psline[linecolor=red,linewidth=.05mm](0,0)(0,6) - \psline[linecolor=red,linewidth=.05mm](4,0)(4,6) - \psline{t-t}(0,6)(4,6) - \psline{t-T}(0,4)(4,4) - \psline{T-t}(0,2)(4,2) - \psline{T-T}(0,0)(4,0) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[pos=t,vsep=5mm] -\psset{unit=5mm} - \begin{pspicture}(10,6) - \psset{dimen=middle,arrows=c-c,arrowscale=2,linewidth=.25mm, - arrowlinestyle=dashed,dash=1.5pt 1pt} - \psline[linecolor=red,linewidth=.05mm](0,0)(0,6) - \psline[linecolor=red,linewidth=.05mm](4,0)(4,6) - \psline{v-v}(0,6)(4,6) \psline{v-V}(0,4)(4,4) - \psline{V-v}(0,2)(4,2) \psline{V-V}(0,0)(4,0) - \psline[linecolor=red,linewidth=.05mm](6,0)(6,6) - \psline[linecolor=red,linewidth=.05mm](10,0)(10,6) - \psset{arrowlinestyle=dotted,dotsep=0.8pt} - \psline{v-v}(6,6)(10,6) \psline{v-V}(6,4)(10,4) - \psline{V-v}(6,2)(10,2) \psline{V-V}(6,0)(10,0) -\end{pspicture} -\end{LTXexample} - -\begin{LTXexample}[pos=t,vsep=5mm] -\psset{unit=5mm} - \begin{pspicture}(10,7) - \psset{dimen=middle,arrows=c-c,arrowscale=2,linewidth=.25mm, - arrowlinestyle=dashed,dash=1.5pt 1pt} - \psline[linecolor=red,linewidth=.05mm](0,0)(0,6) - \psline[linecolor=red,linewidth=.05mm](4,0)(4,6) - \psline{t-t}(0,6)(4,6) \psline{t-T}(0,4)(4,4) - \psline{T-t}(0,2)(4,2) \psline{T-T}(0,0)(4,0) - \psline[linecolor=red,linewidth=.05mm](6,0)(6,6) - \psline[linecolor=red,linewidth=.05mm](10,0)(10,6) - \psset{arrowlinestyle=dotted,dotsep=0.8pt} - \psline{t-t}(6,6)(10,6) \psline{t-T}(6,4)(10,4) - \psline{T-t}(6,2)(10,2) \psline{T-T}(6,0)(10,0) -\end{pspicture} -\end{LTXexample} - - - - - - -\subsection{Special arrow option \texttt{arrowLW}} - -Only for the arrowtype \Lnotation{o} and \Lnotation{*} it is possible to -set the arrowlinewidth with the optional keyword \Lkeyword{arrowLW}. -When scaling an arrow by the keyword \Lkeyword{arrowscale} the width -of the borderline is also scaled. With the optional argument -\Lkeyword{arrowLW} the line width can be set separately and is not -taken into account by the scaling value. - -\begin{LTXexample}[width=4cm] -\begin{pspicture}(4,6) -\psline[arrowscale=3,arrows=*-o](0,5)(4,5) -\psline[arrowscale=3,arrows=*-o, - arrowLW=0.5pt](0,3)(4,3) -\psline[arrowscale=3,arrows=*-o, - arrowLW=0.3333\pslinewidth](0,1)(4,1) -\end{pspicture} -\end{LTXexample} - \section{Ticks and other marks along a curve} @@ -5399,8 +4603,7 @@ This refers to all options of the packages \LPack{pstricks}, \nocite{*} \bgroup \RaggedRight -\bibliographystyle{plain} -\bibliography{pstricks-add-doc} +\printbibliography \egroup \printindex diff --git a/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex b/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex index 74b10ece20b..0bf1ac9fb8f 100644 --- a/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex +++ b/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex @@ -1,4 +1,4 @@ -%% $Id: pstricks-add.tex 317 2016-08-08 16:49:34Z herbert $ +%% $Id: pstricks-add.tex 327 2016-09-01 18:59:35Z herbert $ %% %% This is file `pstricks-add.tex', %% @@ -25,13 +25,14 @@ \ifx\PSTricksLoaded\endinput\else \input pstricks \fi \ifx\PSTplotLoaded\endinput\else \input pst-plot \fi \ifx\PSTnodesLoaded\endinput\else \input pst-node \fi +\ifx\PSTarrowLoaded\endinput\else \input pst-arrow \fi \ifx\PSTthreeDLoaded\endinput\else\input pst-3d \fi \ifx\MultidoLoaded\endinput\else \input multido \fi \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi \ifx\PSTmathLoaded\endinput\else \input pst-math \fi % -\def\fileversion{3.81} -\def\filedate{2016/08/08} +\def\fileversion{3.82} +\def\filedate{2016/09/01} \message{`pstricks-add' v\fileversion, \filedate\space (dr,hv)} % \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax @@ -339,586 +340,6 @@ a add /x1 ED 1 index 0 eq {pop pop ParallelogramA } { OvalFrame } ifelse}> % -% -% -------------- the arrow part ------------- -% -\def\psBigArrow{\pst@object{psBigArrow}} -\def\psBigArrow@i(#1)(#2){% - \addbefore@par{doublesep=1cm} - \begin@ClosedObj - \pssetlength\pst@dimm{\psdoublesep} - \pst@getcoor{#1}\pst@tempA - \pst@getcoor{#2}\pst@tempB - \addto@pscode{ - /Width \pst@number\pst@dimm def - \pst@tempA % x y - \pst@tempB % x y - exch % x y y x - 4 -1 roll % y y x x - sub % y y dx - 3 1 roll % dx y y - sub % dx dy - exch % dy dx - atan neg % alpha - \pst@tempA - translate - rotate - 0 0 moveto - 0 Width 2 div rlineto % | - \pst@tempB \pst@tempA Pyth2 Width 1.5 mul sub 0 rlineto - 0 Width 1.5 div rlineto - Width 1.5 mul dup neg rlineto - Width 1.5 mul neg dup rlineto - 0 Width 1.5 div rlineto - \pst@tempB \pst@tempA Pyth2 neg Width 1.5 mul add 0 rlineto - closepath - }% - \end@ClosedObj -} -% the original table -% \def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|} -% -% v : Vee arrow (inside) v,V,f and F by Christophe FOUREY -% V : Vee arrow (outside) -% f : Filled vee arrow (inside) -% F : Filled vee arrow (outside) -\edef\pst@arrowtable{\pst@arrowtable,v-v,V-V,f-f,F-F,t-t,T-T} - -% Vee arrow -\define@key[psset]{pstricks-add}{veearrowlength}[3mm]{\pst@getlength{#1}\psk@veearrowlength} -\psset[pstricks-add]{veearrowlength=3mm} % default projected length -\define@key[psset]{pstricks-add}{veearrowangle}[30]{\pst@getangle{#1}\psk@veearrowangle} -\psset[pstricks-add]{veearrowangle=30} % default angle -\define@key[psset]{pstricks-add}{veearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@veearrowlinewidth} -\psset[pstricks-add]{veearrowlinewidth=0.35mm} % default vee arrow line width - -% Filled vee arrow -\define@key[psset]{pstricks-add}{filledveearrowlength}[3mm]{\pst@getlength{#1}\psk@filledveearrowlength} -\psset[pstricks-add]{filledveearrowlength=3mm} % default projected length -\define@key[psset]{pstricks-add}{filledveearrowangle}[15]{\pst@getangle{#1}\psk@filledveearrowangle} -\psset[pstricks-add]{filledveearrowangle=15} % default angle -\define@key[psset]{pstricks-add}{filledveearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@filledveearrowlinewidth} -\psset[pstricks-add]{filledveearrowlinewidth=0.35mm} % default vee arrow line width -\define@key[psset]{pstricks-add}{arrowlinestyle}[solid]{% - \@ifundefined{psls@#1}% - {\@pstrickserr{Line style `#1' not defined}\@eha}% - {\def\psarrowlinestyle{#1}}} -\psset[pstricks-add]{arrowlinestyle=solid} % default -\pst@def{VeeArrow}<% - 1 setlinecap % round caps - 1 setlinejoin % round join - setlinewidth % vee arrow line width - /y ED % projected length - 2 div /a ED % angle (divide by 2) - /t ED % false = inside, true = outside - a sin a cos div y mul /x ED % perpendicular length : x=tan(a).y - t { 1 -1 scale } if % if outside : symmetry - x neg y moveto % point #1 - 0 0 L % point #2 - x y L % point #3 - { closepath gsave fill grestore } if % if filled : close and fill - \@nameuse{psls@\psarrowlinestyle} - stroke % draw line - 0 t { y 2 mul } { 0 } ifelse moveto> % if outside : twice longer line - -% VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width - -\@namedef{psas@v}{% - false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} -\@namedef{psas@V}{% - false true \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} -\@namedef{psas@f}{% - true false \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow} -\@namedef{psas@F}{% - true true \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow} - -% And An another arrowhead -% architectural tick / oblique arrow - -% Tick arrow -\define@key[psset]{pstricks-add}{tickarrowlength}[1.5mm]{\pst@getlength{#1}\psk@tickarrowlength} -\psset[pstricks-add]{tickarrowlength=1.5mm} % default projected length -\define@key[psset]{pstricks-add}{tickarrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@tickarrowlinewidth} -\psset[pstricks-add]{tickarrowlinewidth=0.35mm} % default tick arrow line width - -\pst@def{TickArrow}<% - 1 setlinecap % round caps - 1 setlinejoin % round join - setlinewidth % tick line width - /y ED % projected length - /t ED % false = normal, true = reversed - t { 1 -1 scale } if % if reversed : symmetry - y neg y moveto % point #1 - y y neg L % point #2 - \@nameuse{psls@\psarrowlinestyle} - stroke % draw line - 0 0 moveto> % origin - -\@namedef{psas@t}{ false \psk@tickarrowlength \psk@tickarrowlinewidth \tx@TickArrow } -\@namedef{psas@T}{ true \psk@tickarrowlength \psk@tickarrowlinewidth \tx@TickArrow } -% -% HookLeft/RightArrow -\newdimen\pshooklength -\newdimen\pshookwidth -\define@key[psset]{pstricks-add}{hooklength}[3mm]{\pssetlength\pshooklength{#1}} -\define@key[psset]{pstricks-add}{hookwidth}[1mm]{\pssetlength\pshookwidth{#1}} -%\psset{hooklength=3mm,hookwidth=1mm} -% -\edef\pst@arrowtable{\pst@arrowtable,H-H,h-h} % add new arrow -\def\tx@RHook{RHook } % PostScript name -\def\tx@Rhook{Rhook } % PostScript name -\@namedef{psas@H}{% - /RHook { - /x ED % hook width - /y ED % hook length - /z CLW 2 div def % save it - x y moveto % goto first point - x 0 0 0 0 y - curveto % draw Bezier - stroke - 0 y moveto % define current point - } def - \pst@number\pshooklength - \pst@number\pshookwidth - \tx@RHook -} -\@namedef{psas@h}{% - /Rhook { - CLW mul % size * CLW - add dup % +length size*CLW+length size*CLW+length - 2 div /w ED % (size*CLW+length)/2 -> w - mul dup /h ED mul % (size*CLW+length) - /a ED - w neg h abs moveto 0 0 L - gsave - stroke grestore - } def - 0 \psk@arrowlength \psk@arrowsize \tx@Rhook -} -% New parameter "arrowfill", with default as "true" -\define@boolkey[psset]{pstricks-add}[ps]{ArrowFill}[true]{} -% -% Modification of the PostScript macro Arrow to choose to fill or not the arrow -% (it require to restore the current linewidth, despite of the scaling) -\pst@def{Arrow}<{% - CLW mul add dup 2 div - /w ED mul dup - /h ED mul - /a ED { 0 h T 1 -1 scale } if - gsave - \ifpsArrowFill\else\pst@number\pslinewidth \pst@arrowscale\space div SLW \fi - w neg h moveto - 0 0 L w h L w neg a neg rlineto - \ifpsArrowFill gsave - \tx@setStrokeTransparency - fill - grestore \else gsave closepath stroke grestore \fi - grestore - 0 h a sub moveto -}> -% -\define@key[psset]{pstricks-add}{nArrowsA}[2]{\def\psk@nArrowsA{#1}} -\define@key[psset]{pstricks-add}{nArrowsB}[2]{\def\psk@nArrowsB{#1}} -\define@key[psset]{pstricks-add}{nArrows}[2]{\def\psk@nArrowsA{#1}\def\psk@nArrowsB{#1}} -\psset{nArrows=2} -% -\@namedef{psas@>>}{% - \psk@nArrowsA\space 1 sub { - false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - 0 h a sub T - } repeat - gsave - newpath - false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - CP - grestore - moveto -} -% -\@namedef{psas@<<}{% - true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - 0 h neg a add T - \psk@nArrowsB\space 2 sub { - false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - 0 h neg a add T - } repeat - false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow - 0 h a 5 mul 2 div sub moveto -} -% -% DG addition begin - Dec. 18/19, 1997 and Oct. 11, 2002 -% Adapted from \psset@arrows -\define@key[psset]{pstricks-add}{ArrowInside}{% - \def\pst@tempArrow{#1}% - \ifx\pst@tempArrow\@empty \def\psk@ArrowInside{} % - \else% - \begingroup% - \pst@activearrows% - \xdef\pst@tempg{<#1}% - \endgroup% - \expandafter\psset@@ArrowInside\pst@tempg\@empty-\@empty\@nil% - \if@pst\else\@pstrickserr{Bad intermediate arrow specification: #1}\@ehpa\fi% - \fi% -} -% Adapted from \psset@@arrows -\def\psset@@ArrowInside#1-#2\@empty#3\@nil{% - \@psttrue - \def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}% - \expandafter\next\pst@arrowtable,#1-#1,\@nil - \@ifundefined{psas@#2}% - {\@pstfalse\def\psk@ArrowInside{}}% - {\def\psk@ArrowInside{#2}}% -} -% Default value empty -\psset{ArrowInside={}} -% Modified version of \pst@addarrowdef -\def\pst@addarrowdef{% - \addto@pscode{% - /ArrowA { - \ifx\psk@arrowA\@empty - \pst@oplineto - \else - \pst@arrowdef{A} - moveto - \fi - } def - /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def -% DG addition - /ArrowInside { - \ifx\psk@ArrowInside\@empty \else \pst@arrowdefA{Inside} \fi - } def - }% -} -% Adapted from \pst@arrowdef -\def\pst@arrowdefA#1{% - \ifnum\pst@repeatarrowsflag>\z@ /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c\fi - \tx@BeginArrow - \psk@arrowscale - \@nameuse{psas@\@nameuse{psk@Arrow#1}} - \tx@EndArrow% -} -% ArrowInsidePos parameter (default value 0.5) -\define@key[psset]{pstricks-add}{ArrowInsidePos}[0.5]{\pst@checknum{#1}\psk@ArrowInsidePos}% -%\psset{ArrowInsidePos=0.5} -% -% -% Redefinition of the PostScript /Line macro to print the intermediate -% arrow on each segment of the line -% -\define@key[psset]{pstricks-add}{ArrowInsideNo}[1]{\pst@checknum{#1}\psk@ArrowInsideNo}% hv 20031001 -\define@key[psset]{pstricks-add}{ArrowInsideOffset}[0]{\pst@checknum{#1}\psk@ArrowInsideOffset}% hv 20031001 -%\psset{ArrowInsideNo=1,ArrowInsideOffset=0} -% -\def\arrowType@H{H} -\pst@def{Line}< - NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if - (\psk@ArrowInside) length 0 gt { - \ifx\psk@arrowA\arrowType@H % do we have a Hook arrow at the beginning? - \pst@number\pshooklength % yes - \else - \psk@arrowsize\space CLW mul add dup \psk@arrowlength\space mul exch \psk@arrowinset mul neg add - \fi - /arrowlength exch def - 4 copy % copy all four values for the arrow line - /y1 ED /x1 ED /y2 ED /x2 ED % save them - /Alpha y2 y1 sub x2 x1 sub Atan def % the gradient of the line -% 2 copy /y1 ED /x1 ED ArrowA x1 y1 - ArrowA % draw arrowA - x1 Alpha cos arrowlength mul add % dx add - y1 Alpha sin arrowlength mul add % dy add, to get the current point at the end of the arrow tip - /n n 1 sub def - n { - 4 copy - /y1 ED /x1 ED /y2 ED /x2 ED - x1 y1 - \psk@ArrowInsidePos\space 1 gt { - /Alpha y2 y1 sub x2 x1 sub Atan def - /ArrowPos \psk@ArrowInsideOffset\space def - /dArrowPos \psk@ArrowInsidePos\space abs def -% /Length x2 x1 sub y2 y1 sub Pyth def - \psk@ArrowInsideNo\space cvi { - /ArrowPos ArrowPos dArrowPos add def -% ArrowPos Length gt { exit } if - x1 Alpha cos ArrowPos mul add - y1 Alpha sin ArrowPos mul add - ArrowInside - pop pop - } repeat - }{ - /ArrowPos \psk@ArrowInsideOffset\space def - /dArrowPos \psk@ArrowInsideNo 1 gt {% - 1.0 \psk@ArrowInsideNo 1.0 add div - }{\psk@ArrowInsidePos } ifelse def - \psk@ArrowInsideNo\space cvi { - /ArrowPos ArrowPos dArrowPos add def - x2 x1 sub ArrowPos mul x1 add - y2 y1 sub ArrowPos mul y1 add - ArrowInside - pop pop - } repeat - } ifelse - pop pop Lineto - } repeat - }{ ArrowA /n n 2 sub def n { Lineto } repeat } ifelse - CP 4 2 roll ArrowB L pop pop } if > -% -% Redefinition of the PostScript /Polygon macro to print the intermediate -% arrow on each segment of the line -\pst@def{Polygon}<{% - NArray n 2 eq { 0 0 /n 3 def } if - n 3 lt { - n { pop pop } repeat - }{ - n 3 gt { CheckClosed } if - n 2 mul -2 roll - /y0 ED - /x0 ED - /y1 ED - /x1 ED - /xx1 x1 def - /yy1 y1 def - x1 y1 - /x1 x0 x1 add 2 div def - /y1 y0 y1 add 2 div def - x1 y1 moveto - /n n 2 sub def - /drawArrows { - x11 y11 - \psk@ArrowInsidePos\space 1 gt { - /Alpha y12 y11 sub x12 x11 sub atan def - /ArrowPos \psk@ArrowInsideOffset\space def - /Length x12 x11 sub y12 y11 sub Pyth def - /dArrowPos \psk@ArrowInsidePos\space abs def - { - /ArrowPos ArrowPos dArrowPos add def - ArrowPos Length gt { exit } if - x11 Alpha cos ArrowPos mul add - y11 Alpha sin ArrowPos mul add - currentdict /ArrowInside known { ArrowInside } if - pop pop - } loop - }{ - /ArrowPos \psk@ArrowInsideOffset\space def - /dArrowPos \psk@ArrowInsideNo\space 1 gt {% - 1.0 \psk@ArrowInsideNo\space 1.0 add div - }{ \psk@ArrowInsidePos } ifelse def - \psk@ArrowInsideNo\space cvi { - /ArrowPos ArrowPos dArrowPos add def - x12 x11 sub ArrowPos mul x11 add - y12 y11 sub ArrowPos mul y11 add - currentdict /ArrowInside known { ArrowInside } if - pop pop - } repeat - } ifelse - pop pop Lineto - } def - n { - 4 copy - /y11 ED /x11 ED /y12 ED /x12 ED - drawArrows - } repeat - x1 y1 x0 y0 - 6 4 roll - 2 copy - /y11 ED /x11 ED /y12 y0 def /x12 x0 def - drawArrows - /y11 y0 def /x11 x0 def /y12 yy1 def /x12 xx1 def - drawArrows - pop pop - closepath - } ifelse % -}> -% -% -% Redefinition of the PostScript /OpenBezier macro to print the intermediate -% arrow -\pst@def{OpenBezier}<{% - /dArrowPos \psk@ArrowInsideNo 1 gt {% - 1.0 \psk@ArrowInsideNo 1.0 add div - }{ \psk@ArrowInsidePos } ifelse def - BezierNArray - n 1 eq { pop pop - }{ 2 copy - /y0 ED /x0 ED - ArrowA - n 4 sub 3 idiv { 6 2 roll 4 2 roll curveto } repeat - 6 2 roll - 4 2 roll - ArrowB - /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED - /cx x1 x0 sub 3 mul def - /cy y1 y0 sub 3 mul def - /bx x2 x1 sub 3 mul cx sub def - /by y2 y1 sub 3 mul cy sub def - /ax x3 x0 sub cx sub bx sub def - /ay y3 y0 sub cy sub by sub def - /getValues { - ax t0 3 exp mul bx t0 t0 mul mul add cx t0 mul add x0 add - ay t0 3 exp mul by t0 t0 mul mul add cy t0 mul add y0 add - ax t 3 exp mul bx t t mul mul add cx t mul add x0 add - ay t 3 exp mul by t t mul mul add cy t mul add y0 add - } def - /getdL { - getValues - 3 -1 roll sub 3 1 roll sub Pyth - } def - /CurveLength { - /u 0 def - /du 0.01 def - 0 100 { - /t0 u def - /u u du add def - /t u def - getdL add - } repeat } def - /GetArrowPos { - /ende \psk@ArrowInsidePos\space 1 gt - {ArrowPos} - {ArrowPos CurveLength mul} ifelse def - /u 0 def - /du 0.01 def - /sum 0 def - { /t0 u def - /u u du add def - /t u def - /sum getdL sum add def - sum ende gt {exit} if - } loop u - } def - /ArrowPos \psk@ArrowInsideOffset\space def - /loopNo \psk@ArrowInsidePos\space 1 gt {% - CurveLength \psk@ArrowInsidePos\space div cvi - }{ \psk@ArrowInsideNo } ifelse def - loopNo cvi { - /ArrowPos ArrowPos dArrowPos add def - /t GetArrowPos def - /t0 t 0.95 mul def - getValues - ArrowInside pop pop pop pop - } repeat - x1 y1 x2 y2 x3 y3 curveto - } ifelse -}> -% -% Redefinition of the PostScript /NCLine macro to print the intermediate -% arrow of the line -\pst@def{NCLine}<{% - NCCoor - tx@Dict begin - ArrowA CP 4 2 roll ArrowB - 4 copy - /y2 ED /x2 ED /y1 ED /x1 ED - x1 y1 - \psk@ArrowInsidePos\space 1 gt { - /Alpha y2 y1 sub x2 x1 sub atan def - /ArrowPos \psk@ArrowInsideOffset\space def - /Length x2 x1 sub y2 y1 sub Pyth def - /dArrowPos \psk@ArrowInsidePos\space abs def - {% - /ArrowPos ArrowPos dArrowPos add def - ArrowPos Length gt { exit } if - x1 Alpha cos ArrowPos mul add - y1 Alpha sin ArrowPos mul add - ArrowInside - pop pop - } loop - }{% - /ArrowPos \psk@ArrowInsideOffset\space def - /dArrowPos \psk@ArrowInsideNo 1 gt {% - 1.0 \psk@ArrowInsideNo 1.0 add div - }{ \psk@ArrowInsidePos } ifelse def - \psk@ArrowInsideNo\space cvi { - /ArrowPos ArrowPos dArrowPos add def - x2 x1 sub ArrowPos mul x1 add - y2 y1 sub ArrowPos mul y1 add - ArrowInside - pop pop - } repeat - } ifelse - pop pop lineto pop pop - end% -}> -% -\pst@def{NCCurve}<{% - GetEdgeA GetEdgeB - xA1 xB1 sub yA1 yB1 sub - Pyth 2 div dup 3 -1 roll mul - /ArmA ED - mul - /ArmB ED - /ArmTypeA 0 def - /ArmTypeB 0 def - GetArmA GetArmB - xA2 yA2 xA1 yA1 - 2 copy - /y0 ED /x0 ED - tx@Dict begin - ArrowA - end - xB2 yB2 xB1 yB1 - tx@Dict begin - ArrowB - end - /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED - /cx x1 x0 sub 3 mul def - /cy y1 y0 sub 3 mul def - /bx x2 x1 sub 3 mul cx sub def - /by y2 y1 sub 3 mul cy sub def - /ax x3 x0 sub cx sub bx sub def - /ay y3 y0 sub cy sub by sub def - /getValues { - ax t0 3 exp mul bx t0 t0 mul mul add cx t0 mul add x0 add - ay t0 3 exp mul by t0 t0 mul mul add cy t0 mul add y0 add - ax t 3 exp mul bx t t mul mul add cx t mul add x0 add - ay t 3 exp mul by t t mul mul add cy t mul add y0 add - } def - /getdL { - getValues - 3 -1 roll sub 3 1 roll sub Pyth - } def - /CurveLength { - /u 0 def - /du 0.01 def - 0 100 { - /t0 u def - /u u du add def - /t u def - getdL add - } repeat } def - /GetArrowPos { - /ende \psk@ArrowInsidePos\space 1 gt {ArrowPos}{ArrowPos CurveLength mul} ifelse def - /u 0 def - /du 0.01 def - /sum 0 def - { - /t0 u def - /u u du add def - /t u def - /sum getdL sum add def - sum ende gt {exit} if - } loop u - } def - /dArrowPos \psk@ArrowInsideNo 1 gt {% - 1.0 \psk@ArrowInsideNo 1.0 add div - }{ \psk@ArrowInsidePos } ifelse def - /ArrowPos \psk@ArrowInsideOffset\space def - /loopNo \psk@ArrowInsidePos\space 1 gt {% - CurveLength \psk@ArrowInsidePos\space div cvi - }{ \psk@ArrowInsideNo } ifelse def - loopNo cvi { - /ArrowPos ArrowPos dArrowPos add def - /t GetArrowPos def - /t0 t 0.95 mul def - getValues - ArrowInside pop pop pop pop - } repeat - x1 y1 x2 y2 x3 y3 curveto - /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ] cvx def - /LPutPos { t LPutVar BezierMidpoint } def - /HPutPos { { HPutLines } HPutCurve } def - /VPutPos { { VPutLines } HPutCurve } def -}> -% \def\parseRP#1;#2;#3\@nil{%check whether arg of refpt contains ; \def\arg@A{#1}\def\arg@B{#2}} % @@ -2587,10 +2008,6 @@ a add \def\pst@linetype{0}% % \pstScalePoints(1,1){}{}% \psset[pstricks-add]{% - hooklength=3mm, hookwidth=1mm, - ArrowFill=true, - ArrowInside={}, ArrowInsidePos=0.5, - ArrowInsideNo=1, ArrowInsideOffset=0, randomPoints=1000,color=false, whichabs={},whichord={}, plotfuncx={},plotfuncy={},buildvector=false, -- cgit v1.2.3