diff options
author | Karl Berry <karl@freefriends.org> | 2008-09-08 00:02:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-09-08 00:02:14 +0000 |
commit | d09e3f969cdaae4aacbf213286c01ff9962009ef (patch) | |
tree | a638b63f07d51fd3265200c252adef84b4d5bef7 /Master | |
parent | fea76cb6e926a1cc0c6da87545e92e1e87f8ed31 (diff) |
pstricks-add update (3sep08)
git-svn-id: svn://tug.org/texlive/trunk@10458 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks-add/Changes | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf | bin | 1700798 -> 1701030 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.tex | 1097 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex | 58 |
4 files changed, 640 insertions, 520 deletions
diff --git a/Master/texmf-dist/doc/generic/pstricks-add/Changes b/Master/texmf-dist/doc/generic/pstricks-add/Changes index df39b028aab..f6187245759 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 38 2008-07-18 16:23:28Z herbert $ +%% $Id: Changes 39 2008-08-27 21:17:28Z herbert $ %% pstricks-add.pro ----------- (Dominik Rodriguez/hv) v 0.20 2008-01-12 - moved the AlgParser into pst-algparser.pro @@ -33,6 +33,9 @@ pstricks-add.sty ----------- (hv) pstricks-add.tex ----------- (Dominik Rodriguez/hv) + v 3.10 2008-08-27 - fix bug with \pslabelsep and \psh(v)label + v 3.09 2008-08-06 - fix bug with lineAngle + - make chartNodes variable v 3.08 2008-08-06 - fix bug with xyDecimals v 3.07 2008-07-18 - fix bug with \psdice - new macro \psChart 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 Binary files differindex ef1d7ea6b4a..cb6aeb3be55 100644 --- a/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf +++ b/Master/texmf-dist/doc/generic/pstricks-add/pstricks-add-doc.pdf 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 3386f69ff9c..db6950f272c 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,4 +1,4 @@ -%% $Id: pstricks-add-doc.tex 36 2008-07-07 06:58:27Z herbert $ +%% $Id: pstricks-add-doc.tex 39 2008-08-27 21:17:28Z herbert $ \documentclass[10pt]{article} \listfiles \usepackage{filecontents} @@ -993,8 +993,8 @@ \def\psPrintValue{\pst@object{psPrintValue}} \def\psPrintValue@i#1{% \begin@SpecialObj - \addto@pscode{ - gsave \psk@PSfont findfont \psk@fontscale scalefont setfont + \addto@pscode{ + gsave \psk@PSfont findfont \psk@fontscale scalefont setfont #1 \psk@decimals -1 gt { 10 \psk@decimals exp dup 3 1 roll mul cvi exch div } if \psk@valuewidth string cvs 0 0 moveto show grestore }% @@ -1060,7 +1060,7 @@ frame=single} \usepackage{amsmath} -\newdimen\fullWidth +\newdimen\fullWidth \makeatletter \renewcommand\ON{% \gdef\lst@alloverstyle##1{% @@ -1094,23 +1094,26 @@ \maketitle \begin{abstract} -This version of \verb+pstricks-add+ needs \verb+pstricks.tex+ version >1.04 from June 2004, -otherwise the additional macros may not work as espected. The ellipsis -material and the option \verb+asolid+ (renamed to \verb+eofill+) are -\index{fillstyle!eofill@\texttt{eofill}} -now part of the new \verb+pstricks.tex+ package, available at CTAN or at -\url{http://perce.de/LaTeX/}. \verb+pstricks-add+ will for ever be an experimental and -dynamical package, try it at your own risk. - +This version of \verb+pstricks-add+ needs \verb+pstricks.tex+ +version >1.04 from June 2004, otherwise the additional macros may +not work as expected. The ellipsis material and the option +\verb+asolid+ (renamed to \verb+eofill+) are +\index{fillstyle!eofill@\texttt{eofill}} now part of the new +\verb+pstricks.tex+ package, available at CTAN or at +\url{http://perce.de/LaTeX/}. \verb+pstricks-add+ will for ever be +an experimental and dynamical package, try it at your own risk. + \begin{itemize} -\item It is important to load \verb+pstricks-add+ as \textbf{last} PSTricks related package, otherwise -a lot of the macros won't work in the expected way. -\item \verb+pstricks-add+ uses the extended version of the keyval package. So be sure, that -you have installed \verb+pst-xkey+ which is part of the \verb+xkeyval+-package and that all -packages, that uses the old keyval interface are loaded \textbf{before} the \verb+xkeyval+.\cite{xkeyval} -\item the option \verb+tickstyle+ from \verb+pst-plot+ is no more supported, use \verb+ticksize+ instead. -\item the option \verb+xyLabel+ is no more supported, use the option \verb+labelFontSize+ instead. -\item if \verb+pstricks-add+ is load together with the package \texttt{pst-func} then the \texttt{InsideArrow} +\item It is important to load \verb+pstricks-add+ as the \textbf{last} PSTricks related package, otherwise +a lot of the macros won't work in the expected way. +\item \verb+pstricks-add+ uses the extended version of the keyval package. So be sure that +you have installed \verb+pst-xkey+ which is part of the +\verb+xkeyval+-package, and that all packages that use the old +keyval interface are loaded \textbf{before} the +\verb+xkeyval+.\cite{xkeyval} +\item the option \verb+tickstyle+ from \verb+pst-plot+ is no longer supported; use \verb+ticksize+ instead. +\item the option \verb+xyLabel+ is no longer supported; use the option \verb+labelFontSize+ instead. +\item if \verb+pstricks-add+ is loaded together with the package \texttt{pst-func} then \texttt{InsideArrow} of the \CMD{psbezier} macro doesn't work! \end{itemize} @@ -1128,24 +1131,25 @@ packages, that uses the old keyval interface are loaded \textbf{before} the \ver \section{Numeric functions} %-------------------------------------------------------------------------------------- -All macronames contain a \textat{} in their name, because they are only for internal use, -but it is no problem to use it as the other macros. One can define another name without -a \textat{}: +All macros contain a \textat{} in their name, because they are +only for internal use, but it is no problem to use them like other +macros. One can define another name without a \textat{}: \begin{lstlisting}[style=syntax] \makeatletter \let\pstdivide\pst@divide \makeatother \end{lstlisting} -or put the macro inside of the \verb+\makeatletter+ -- \verb+\makeatother+ sequence. +or put the macro inside the \verb+\makeatletter+ -- +\verb+\makeatother+ sequence. %-------------------------------------------------------------------------------------- \subsection{\CMD{pst\textat{}divide}} %-------------------------------------------------------------------------------------- -\verb+pstricks+ itself has its own divide macro, called \verb+\pst@divide+ which -can divide two lengthes and saves the quotient as a floating point number: -\index{Division} +\verb+pstricks+ itself has its own divide macro, called +\verb+\pst@divide+, which can divide two lengths and save the +quotient as a floating point number: \index{Division} % \begin{lstlisting}[style=syntax] \pst@divide{<dividend>}{<divisor>}{<result as a macro>} @@ -1177,10 +1181,11 @@ can divide two lengthes and saves the quotient as a floating point number: \makeatother \end{LTXexample} -\noindent this gives the output $4$. Using this internal numeric functions in documents -requires a setting inside the \verb+makeatletter+ and \verb+makeatother+ environment. -It makes some sense to define a new macroname in the preamble to use it throughou, e.g. -\verb+\let\modulo\pst@mod+. +\noindent this gives the output $4$. Using this internal numeric +function in documents requires a setting inside the +\verb+makeatletter+ and \verb+makeatother+ environment. It makes +some sense to define a new macroname in the preamble and use it +throughout, e.g. \verb+\let\modulo\pst@mod+. %-------------------------------------------------------------------------------------- \subsection{\CMD{pst\textat{}max}} @@ -1267,8 +1272,8 @@ It makes some sense to define a new macroname in the preamble to use it througho %-------------------------------------------------------------------------------------- \section{Dashed Lines} %-------------------------------------------------------------------------------------- -Tobias Nähring implemented an enhanced feature for dashed lines. The number -of arguments is no more limited. +Tobias Nähring has implemented an enhanced feature for dashed +lines. The number of arguments is no longer limited. \begin{lstlisting}[style=syntax] dash=value1[unit] value2[unit] ... @@ -1290,10 +1295,10 @@ dash=value1[unit] value2[unit] ... %-------------------------------------------------------------------------------------- \section{\CMD{rmultiput}: a multiple \CMD{rput}} %-------------------------------------------------------------------------------------- -\verb+PSTricks+ already knows a \verb+multirput+, which puts a box n times with -a difference of $dx$ and $dy$ relativ to each other. It is not possible to put -it with a different distance from one point to the next one. This is possible -with \verb+rmultiput+: +\verb+PSTricks+ already has a \verb+multirput+, which puts a box n +times with a difference of $dx$ and $dy$ relative to each other. +It is not possible to put it with a different distance from one +point to the next. This is possible with \verb+rmultiput+: \begin{lstlisting}[style=syntax] \rmultiput[<options>]{<any material>}(x1,y1)(x2,y2) ... (xn,yn) \rmultiput*[<options>]{<any material>}(x1,y1)(x2,y2) ... (xn,yn) @@ -1315,11 +1320,11 @@ with \verb+rmultiput+: %-------------------------------------------------------------------------------------- \section{\CMD{psrotate}: Rotating objects} %-------------------------------------------------------------------------------------- -\CMD{rput} also has an optional argument for rotating objects, but always -depending to the \CMD{rput} coordinates. With \CMD{psrotate} the rotating -center can be placed anywhere. The rotation is done with \verb+\pscustom+, -all optional arguments are only valid if they are part of the \verb+\pscustom+ -macro. +\CMD{rput} also has an optional argument for rotating objects, but +it always depends on the \CMD{rput} coordinates. With +\CMD{psrotate} the rotating center can be placed anywhere. The +rotation is done with \verb+\pscustom+, all optional arguments are +only valid if they are part of the \verb+\pscustom+ macro. \begin{lstlisting}[style=syntax] \psrotate[options](x,y){rot angle}{<object>} \end{lstlisting} @@ -1387,7 +1392,7 @@ The special optional arguments for the \CMD{psChart} macro are as follows: \begin{tabularx}{\linewidth}{@{}>{\ttfamily}lX>{\ttfamily}l@{}} \textrm{\emph{name}} & \textrm{\emph{description}} & \textrm{\emph{default}}\\\hline -chartSep & distance from the pie chart center center to an outraged pie piece & 10pt\\ +chartSep & distance from the pie chart center to an outraged pie piece & 10pt\\ chartColor & gray or colored pie (values are: \texttt{gray} or \texttt{color})& gray\\ userColor & a comma separated list of user defined colors for the pie & \{\} \end{tabularx} @@ -1400,10 +1405,12 @@ of values. The list of user defined colors must be enclosed in braces! The macro \CMD{psChart} defines for every value three nodes at the half angle and in distances from 0.75, 1, and 1.25 times of the radius from the origin. The nodes are named as \verb+psChartI?+, \verb+psChart?+, and \verb+psChartO?+, where ? is the number of -the pie. The letter I leads to the inner node and the letter O to the outer node. The -other one is the node on the circle line. -The -origin is by default \texttt{(0,0)}. Moving the pie to another position can be done as +the pie. The letter I leads to the inner node and the letter O to the outer node. +The distance can be changed with the optional arguments \verb+chartNodeI+ and +\verb+chartNodeO+ in the usual way with \verb+\psset{chartNodeI=...,chartNodeO=...}+. + +The other one is the node on the circle line. +The origin is by default \texttt{(0,0)}. Moving the pie to another position can be done as usual with the \CMD{rput}-macro. The used colors are named internally as \verb+chartFillColor?+ and can be used by the user for coloring lines or text. @@ -1463,6 +1470,24 @@ and can be used by the user for coloring lines or text. \end{pspicture} \end{LTXexample} +\begin{LTXexample}[pos=t] +\psset{unit=1.5} +\begin{pspicture}(-3,-3)(3,3) +\psChart[userColor={red!30,green!30,blue!40,gray,cyan!50, + magenta!60,cyan},chartSep=30pt,shadow=true,shadowsize=5pt]{ 34.5,17.2,20.7,15.5,5.2,6.9}{6}{2} +\psset{nodesepA=5pt,nodesepB=-10pt} +\ncline{psChartO1}{psChart1}\nput{0}{psChartO1}{1000 (34.5\%)} +\ncline{psChartO2}{psChart2}\nput{150}{psChartO2}{500 (17.2\%)} +\ncline{psChartO3}{psChart3}\nput{-90}{psChartO3}{600 (20.7\%)} +\ncline{psChartO4}{psChart4}\nput{0}{psChartO4}{450 (15.5\%)} +\ncline{psChartO5}{psChart5}\nput{0}{psChartO5}{150 (5.2\%)} +\ncline{psChartO6}{psChart6}\nput{0}{psChartO6}{200 (6.9\%)} +\bfseries% +\rput(psChartI1){Taxes}\rput(psChartI2){Rent}\rput(psChartI3){Bills} +\rput(psChartI4){Car}\rput(psChartI5){Gas}\rput(psChartI6){Food} +\end{pspicture} +\end{LTXexample} + \clearpage @@ -1511,7 +1536,7 @@ and can be used by the user for coloring lines or text. \end{LTXexample} \bigskip -The option \verb|\specialCoor| is enabled, so that all types of coordinates +The option \verb|\specialCoor| is enabled, so that all types of coordinates are possible, (nodename), ($x,y$), ($nodeA|nodeB$), \ldots The star version fills the inner of the brace with the current linecolor. With the fillcolor \verb+white+ or any other background color the brace can @@ -1520,8 +1545,8 @@ be "`unfilled"'. \subsection{Options} %-------------------------------------------------------------------------------------- -Additional to all other available options from \verb|pstricks| or the other -related packages, there are two new option, named \verb|braceWidth| and +Additional to all other available options from \verb|pstricks| or the other +related packages, there are two new option, named \verb|braceWidth| and \verb|bracePos|. All important ones are shown in the following graphics and table. @@ -1541,9 +1566,9 @@ and table. \end{pspicture} \end{center} -A positive value for \verb+nodesepA+ and \verb+B+ shifts the label to the right -(\verb+nodesepA+) and down (\verb+nodesepB+). This does not depends the the -value for the rotating of the label! +A positive value for \verb+nodesepA+ and \verb+nodesepB+ shifts the label to the upper right +and a negative value to the lower left. This does not depends on +the value for the rotating of the label! \begin{center} \begin{tabular}{l|l} @@ -1560,11 +1585,13 @@ name & meaning\\\hline \end{tabular} \end{center} -By default the text is written perpedicular to the brace line and can be changed with -the \verb|pstricks| option \verb|rot=...|. The text parameter can take any object and -may also be empty. The reference point can be any value of the combination of \verb|l| (left) -or \verb|r| (right) and \verb|b| (bottom) or \verb|B| (Baseline) or \verb|C| (center) -or \verb|t| (top), where the default is \verb|c|, the center of the object. +By default the text is written perpendicular to the brace line and +can be changed with the \verb|pstricks| option \verb|rot=...|. The +text parameter can take any object and may also be empty. The +reference point can be any value of the combination of \verb|l| +(left) or \verb|r| (right) and \verb|b| (bottom) or \verb|B| +(Baseline) or \verb|C| (center) or \verb|t| (top), where the +default is \verb|c|, the center of the object. %-------------------------------------------------------------------------------------- %\subsection{Examples} @@ -1646,10 +1673,10 @@ or \verb|t| (top), where the default is \verb|c|, the center of the object. \end{LTXexample} -\clearpage -It is also possible to put a vertical brace around a default paragraph. This works -with setting two invisible nodes at the beginning and the end of the paragraph. -Inentation is possible with a minipage. +\clearpage It is also possible to put a vertical brace around a +default paragraph. This works by setting two invisible nodes at +the beginning and the end of the paragraph. Indentation is +possible with a minipage. Some nonsense text, which is nothing more than nonsense. Some nonsense text, which is nothing more than nonsense. @@ -1745,7 +1772,7 @@ scale is used for placing the dots. This area should be greater than the clippin path to be sure that the dots are placed over the full area. The clipping path can be everything. If no clipping path is given, then the frame \verb+(0,0)(1,1)+ in user coordinates is used. The new options are: - + \begin{center} \begin{tabular}{l|l|l} name & default\\\hline @@ -1792,10 +1819,10 @@ name & default\\\hline %-------------------------------------------------------------------------------------- \section{Dice} %-------------------------------------------------------------------------------------- -\CMD{psdice} creates the view of a dice. The number on the dice is the only parameter. -The optional parameters, like the color can be used as usual. The macro is a box of +\CMD{psdice} creates the view of a dice. The number on the dice is the only parameter. +The optional parameters, like the color can be used as usual. The macro is a box of dimension zero and is placed -at the current point. Use the \CMD{rput} macro to place it anywhere. The optional +at the current point. Use the \CMD{rput} macro to place it anywhere. The optional argument \texttt{unit} can be used to scale the dice. the default size of the dice $1\mathrm{cm}\times1\mathrm{cm}$. @@ -1900,7 +1927,7 @@ of the \verb|arrows| parameter. The parameter can be set with \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 +\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. @@ -1972,8 +1999,10 @@ $e_b:S$ & 1 & & 1 & 0 \\ \subsection{\texttt{hookrightarrow} and \texttt{hookleftarrow}} -This is another type of an arrow and abbreviated with \verb+H+. The length and width of the hook -is set by the new options \verb+hooklength+ and \verb+hookwidth+, which are by default set to +This is another type of arrow and is abbreviated with \verb+H+. +The length and width of the hook is set by the new options +\verb+hooklength+ and \verb+hookwidth+, which are by default set +to % \begin{lstlisting}[style=syntax] \psset{hooklength=3mm,hookwidth=1mm} @@ -1999,7 +2028,7 @@ E&W_i(X)&&Y\\ \psset{arrows=->,nodesep=3pt,linewidth=2pt} \everypsbox{\scriptstyle} \ncline[linecolor=red,arrows=H->,% - hooklength=4mm,hookwidth=2mm]{1,1}{1,2} + 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}} @@ -2011,8 +2040,8 @@ E&W_i(X)&&Y\\ \subsection{\texttt{ArrowInside} Option} %-------------------------------------------------------------------------------------- -It is now possible to have arrows inside the lines and not only at the beginning or -the end. The new defined options +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|p{9cm}|p{2.2cm}} @@ -2021,76 +2050,77 @@ Name & Example & Output\\\hline Name & Example & Output\\\hline \endhead \texttt{ArrowInside} & - \texttt{\textbackslash psline[ArrowInside=->](0,0)(2,0)} & - \psline[ArrowInside=->](0,0.1)(2,0.1) \\ + \texttt{\textbackslash psline[ArrowInside=->](0,0)(2,0)} & + \psline[ArrowInside=->](0,0.1)(2,0.1) \\ \texttt{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=0.25](0,0)(2,0)} + \hspace*{20pt}\texttt{ArrowInsidePos=0.25](0,0)(2,0)} & \psline[ArrowInside=->, ArrowInsidePos=0.25](0,0.1)(2,0.1) \\ \texttt{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=10](0,0)(2,0)} + \hspace*{20pt}\texttt{ArrowInsidePos=10](0,0)(2,0)} & \psline[ArrowInside=->, ArrowInsidePos=10](0,0.1)(2,0.1) \\ \texttt{ArrowInsideNo} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2](0,0)(2,0)} + \hspace*{20pt}\texttt{ArrowInsideNo=2](0,0)(2,0)} & \psline[ArrowInside=->, ArrowInsideNo=2](0,0.1)(2,0.1) \\ \texttt{ArrowInsideOffset} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2,\%} - \hspace*{20pt}\texttt{ArrowInsideOffset=0.1](0,0)(2,0)} + \hspace*{20pt}\texttt{ArrowInsideNo=2,\%} + \hspace*{20pt}\texttt{ArrowInsideOffset=0.1](0,0)(2,0)} & \psline[ArrowInside=->, ArrowInsideNo=2,ArrowInsideOffset=0.1](0,0.1)(2,0.1) \\ % \texttt{ArrowInside} & \texttt{\textbackslash psline[ArrowInside=->]\{->\}(0,0)(2,0)} & - \psline[ArrowInside=->]{->}(0,0)(2,0)\\ + \psline[ArrowInside=->]{->}(0,0)(2,0)\\ \texttt{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=0.25]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsidePos=0.25]{->}(0,0)(2,0) \\ + \hspace*{20pt}\texttt{ArrowInsidePos=0.25]\{->\}(0,0)(2,0)} + & \psline[ArrowInside=->, ArrowInsidePos=0.25]{->}(0,0)(2,0) \\ \texttt{ArrowInsidePos} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsidePos=10]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsidePos=10]{->}(0,0)(2,0) \\ + \hspace*{20pt}\texttt{ArrowInsidePos=10]\{->\}(0,0)(2,0)} + & \psline[ArrowInside=->, ArrowInsidePos=10]{->}(0,0)(2,0) \\ \texttt{ArrowInsideNo} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsideNo=2]{->}(0,0)(2,0) \\ + \hspace*{20pt}\texttt{ArrowInsideNo=2]\{->\}(0,0)(2,0)} + & \psline[ArrowInside=->, ArrowInsideNo=2]{->}(0,0)(2,0) \\ \texttt{ArrowInsideOffset} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{ArrowInsideNo=2,\%} - \hspace*{20pt}\texttt{ArrowInsideOffset=0.1]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowInsideNo=2,ArrowInsideOffset=0.1]{->}(0,0)(2,0) \\ + \hspace*{20pt}\texttt{ArrowInsideNo=2,\%} + \hspace*{20pt}\texttt{ArrowInsideOffset=0.1]\{->\}(0,0)(2,0)} + & \psline[ArrowInside=->, ArrowInsideNo=2,ArrowInsideOffset=0.1]{->}(0,0)(2,0) \\ % \texttt{ArrowFill} & \texttt{\textbackslash psline[ArrowFill=false,\%} - \hspace*{20pt}\texttt{arrowinset=0]\{->\}(0,0)(2,0)} & - \psline[ArrowFill=false,arrowinset=0]{->}(0,0)(2,0)\\ + \hspace*{20pt}\texttt{arrowinset=0]\{->\}(0,0)(2,0)} & + \psline[ArrowFill=false,arrowinset=0]{->}(0,0)(2,0)\\ \texttt{ArrowFill} & \texttt{\textbackslash psline[ArrowFill=false,\%} - \hspace*{20pt}\texttt{arrowinset=0]\{<<->>\}(0,0)(2,0)} & - \psline[ArrowFill=false,arrowinset=0]{<<->>}(0,0)(2,0)\\ + \hspace*{20pt}\texttt{arrowinset=0]\{<<->>\}(0,0)(2,0)} & + \psline[ArrowFill=false,arrowinset=0]{<<->>}(0,0)(2,0)\\ \texttt{ArrowFill} & \texttt{\textbackslash psline[ArrowInside=->,\%} - \hspace*{20pt}\texttt{arrowinset=0,\%}\hspace{30pt} - \hspace*{20pt}\texttt{ArrowFill=false,\%}\hspace{30pt} - \hspace*{20pt}\texttt{ArrowInsideNo=2,\%} - \hspace*{20pt}\texttt{ArrowInsideOffset=0.1]\{->\}(0,0)(2,0)} - & \psline[ArrowInside=->, ArrowFill=false,ArrowInsideNo=2,ArrowInsideOffset=0.1]{->}(0,0)(2,0) \\ + \hspace*{20pt}\texttt{arrowinset=0,\%}\hspace{30pt} + \hspace*{20pt}\texttt{ArrowFill=false,\%}\hspace{30pt} + \hspace*{20pt}\texttt{ArrowInsideNo=2,\%} + \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 abolute position difference, then choose a -value greater than \verb|1|, e.g. \verb|10| which places an arrow every 10 pt. The +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. \noindent \begin{tabularx}{\linewidth}{@{\color{red}\vrule width 2pt}lX@{}} -& The \verb+ArrowInside+ takes only arrow definitions like \verb+->+ into account. +& The \verb+ArrowInside+ takes only arrow definitions like \verb+->+ into account. Arrows from right to left (\verb+<-+) are not possible and ignored. If you need -such arrows, change the order of the pairs of coordinates for the line or curve macro. +such arrows, change the order of the pairs of coordinates for the line or curve macro. \end{tabularx} %-------------------------------------------------------------------------------------- \subsection{\texttt{ArrowFill} Option} %-------------------------------------------------------------------------------------- -By default all arrows are filled polygons. With the option \verb|ArrowFill=false| there -are ''white`` arrows. Only for the beginning/end arrows they are empty, the inside arrows -are overpainted with the line. +By default all arrows are filled polygons. With the option +\verb|ArrowFill=false| there are ''white`` arrows. Only for the +beginning/end arrows are they empty, the inside arrows are +overpainted by the line. \begin{LTXexample}[width=3.5cm] @@ -2466,7 +2496,7 @@ These examples also need the package \verb|pst-node|. \end{LTXexample} -\subsection{Special arrows \texttt{v--V},\texttt{t--T}, and \texttt{f--F}} +\subsection{Special arrows \texttt{v--V},\texttt{t--T}, and \texttt{f--F}} Possible optional arguments are @@ -2530,13 +2560,14 @@ name & meaning\\\hline \end{pspicture} \end{LTXexample} -\subsection{Special arrow option \texttt{arrowLW}} +\subsection{Special arrow option \texttt{arrowLW}} Only for the arrowtype \texttt{o} and \texttt{*} it is possible to set the arrowlinewidth with the optional keyword \texttt{arrowLW}. -When scaling an arrow by the keyword \verb+\arrowscale+ the width of borderline -is also scaled. With the optional argument \texttt{arrowLW} the line width -can be set separately and is not taken into account by the scaling value. +When scaling an arrow by the keyword \verb+\arrowscale+ the width +of the borderline is also scaled. With the optional argument +\texttt{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) @@ -2577,8 +2608,9 @@ With the option \verb|intSeparator| the symbol can be changed to any any non-num \subsection{Transparent colors} %-------------------------------------------------------------------------------------- -Transparency ist now part of the main \texttt{pstricks} package. But pay attention, -the names and syntax changed and you need to run \verb+ps2pdf+ with the option +Transparency is now part of the main \texttt{pstricks} package. +But pay attention, the names and syntax have changed and you need +to run \verb+ps2pdf+ with the option \verb+-dCompatibilityLevel=1.4+. @@ -2600,8 +2632,9 @@ the names and syntax changed and you need to run \verb+ps2pdf+ with the option \defineTColor{TBlue}{blue} \end{lstlisting} -There are three predefined "'transparent"` colors \verb+TRed+, \verb+TGreen+, \verb+TBlue+. -They are used as \PST styles and not as colors: +There are three predefined "'transparent"` colors \verb+TRed+, +\verb+TGreen+, \verb+TBlue+. They are used as \PST{} styles and +not as colors: \resetOptions \bgroup @@ -2628,8 +2661,9 @@ The \verb+xcolor+ package (version 2.6) has a new feature for defining colors: \definecolor[ps]{<name>}{<model>}{< PS code >} \end{lstlisting} -\verb+model+ can be one of the color models, which PostScript will understand, e.g. \verb+rgb+. -With this definition the color is calculated on PostScript side. +\verb+model+ can be one of the color models, which PostScript will +understand, e.g. \verb+rgb+. With this definition the color is +calculated on the PostScript side. \begin{LTXexample}[pos=t,preset=\centering] \definecolor[ps]{bl}{rgb}{tx@addDict begin Red Green Blue end}% \psset{unit=1bp} @@ -2637,7 +2671,7 @@ With this definition the color is calculated on PostScript side. \multido{\iLAMBDA=0+1}{400}{% \pstVerb{ \iLAMBDA\space 379 add dup /lambda exch def - tx@addDict begin wavelengthToRGB end + tx@addDict begin wavelengthToRGB end }% \psline[linecolor=bl](\iLAMBDA,0)(\iLAMBDA,100)% } @@ -2771,15 +2805,15 @@ Spectrum of hydrogen emission (Manuel Luque) \subsection{Gouraud shading} %-------------------------------------------------------------------------------------- \begin{quotation} -Gouraud shading is a method used in computer graphics to simulate the differing effects of -light and colour across the surface of an object. In practice, Gouraud shading is used to -achieve smooth lighting on low-polygon surfaces without the heavy computational requirements +Gouraud shading is a method used in computer graphics to simulate the differing effects of +light and colour across the surface of an object. In practice, Gouraud shading is used to +achieve smooth lighting on low-polygon surfaces without the heavy computational requirements of calculating lighting for each pixel. The technique was first presented by Henri Gouraud in 1971.\\ ~\hfill{\small \url{http://www.wikipedia.org}} \end{quotation} -PostScript level 3 supports this kind of shading and it could only be seen with Acroread 7 -or younger. Die Syntax is easy: +PostScript level 3 supports this kind of shading and it can only +be seen with Acroread 7 or later. The syntax is easy: \begin{lstlisting}[style=syntax] \psGTriangle(x1,y1)(x2,y2)(x3,y3){color1}{color2}{color3} @@ -2824,17 +2858,18 @@ or younger. Die Syntax is easy: %-------------------------------------------------------------------------------------- \section{Relative nodes with \CMD{psGetNodeCenter}} %-------------------------------------------------------------------------------------- -The command \CMD{psGetNodeCenter}\verb+{node}+ makes only sense on PostScript level, it defines -the two variables \verb+node.x+ and \verb+node.y+ which can be used to define relative -nodes. The following example defines the node \verb+MyNode+ and a second one relative -to the first one, with 4 units left and 4 units up. \verb+node+ must be an -existing node name. +The command \CMD{psGetNodeCenter}\verb+{node}+ makes sense only at +the PostScript level. It defines the two variables \verb+node.x+ +and \verb+node.y+ which can be used to define relative nodes. The +following example defines the node \verb+MyNode+ and a second one +relative to the first one, with 4 units left and 4 units up. +\verb+node+ must be an existing node name. \begin{LTXexample}[width=5cm] \begin{pspicture}[showgrid=true,arrowscale=2](5,5) \pnode(4.5,0.5){MyNode} \psdot(MyNode) -\pnode(! \psGetNodeCenter{MyNode} +\pnode(! \psGetNodeCenter{MyNode} MyNode.x 4 sub MyNode.y 4 add){MySecondNode} \psdot(MySecondNode) \ncline[linecolor=red]{<->}{MyNode}{MySecondNode} @@ -2939,9 +2974,11 @@ a zero length: %-------------------------------------------------------------------------------------- \section{\CMD{ncdiagg} and \CMD{pcdiagg}} %-------------------------------------------------------------------------------------- -This is nearly the same than \verb+\ncdiag+ except that \verb+armB=0+ and the \verb+angleB+ -value is computed by the macro, so that the line ends at the node with an angle -like a \verb+\pcdiagg+ line. The syntax of \verb|ncdiagg|/\verb+pcdiagg+ is +This is nearly the same as \verb+\ncdiag+ except that +\verb+armB=0+ and the \verb+angleB+ value is computed by the +macro, so that the line ends at the node with an angle like a +\verb+\pcdiagg+ line. The syntax of \verb|ncdiagg|/\verb+pcdiagg+ +is \begin{lstlisting}[style=syntax] \ncdiag[<options>]{<Node A>}{<Node B>} @@ -2986,10 +3023,10 @@ like a \verb+\pcdiagg+ line. The syntax of \verb|ncdiagg|/\verb+pcdiagg+ is \end{pspicture} \end{LTXexample} -The only catch for \verb+\ncdiagg+ is, that you need the right value for \verb+lineAngle+. -If the node connection is on the wrong side -of the second node, then choose the corresponding angle, e.g.: if $20$ is wrong then take -$-160$, the corresponding to $180$. +The only catch for \verb+\ncdiagg+ is that you need the right +value for \verb+lineAngle+. If the node connection is on the wrong +side of the second node, then choose the corresponding angle, +e.g.: if $20$ is wrong then take $-160$, which differs by $180$. \begin{LTXexample}[width=4cm] @@ -3019,10 +3056,11 @@ $-160$, the corresponding to $180$. %-------------------------------------------------------------------------------------- \section{\CMD{ncbarr}} %-------------------------------------------------------------------------------------- -This has the same behaviour as \verb+ncbar+, but has 5 segments and all are -horizontal ones. This is the reason why \verb+angleA+ must be $0$ or alternative $180$. -All other values are set to $0$ by the macro. The intermediate horizontal line is -symmetrical to the distance of the two nodes. +This has the same behaviour as \verb+ncbar+, but has 5 segments +and all are horizontal ones. This is the reason why \verb+angleA+ +must be $0$ or alternatively $180$. All other values are set to +$0$ by the macro. The intermediate horizontal line is symmetrical +to the distance of the two nodes. \begin{LTXexample}[width=3.5cm] @@ -3057,16 +3095,18 @@ the angle and the length factor: \psRelLine[<options>](<P0>)(<P1>){<length factor>}{<end node name>} \end{lstlisting} -The length factor depends to the distance of $\overline{P_0P_1}$ and the end node name must -be a valid nodename and shouldn't contain any of the special PostScript characters. There are -two valid options: +The length factor relates to the distance $\overline{P_0P_1}$ and +the end node name must be a valid nodename and shouldn't contain +any of the special PostScript characters. There are two valid +options: \begin{tabularx}{\linewidth}{l|l|X} -name & default & meaning\\\hline -\verb|angle| & $0$ & angle between the given line $\overline{P_0P_1}$ and the new one -$\overline{P_0P_{endNode}}$\tabularnewline -\verb+trueAngle+ & false & defines whether the angle depends to the seen line or to the -mathematical one, which respect the scaling factors \verb+xunit+ and \verb+yunit+. +name & default & meaning\\\hline \verb|angle| & $0$ & angle +between the given line $\overline{P_0P_1}$ and the new one +$\overline{P_0P_{endNode}}$\tabularnewline \verb+trueAngle+ & +false & defines whether the angle refers to the seen line or to +the mathematical one, which respect the scaling factors +\verb+xunit+ and \verb+yunit+. \end{tabularx} \begin{LTXexample}[width=7cm] @@ -3077,7 +3117,7 @@ mathematical one, which respect the scaling factors \verb+xunit+ and \verb+yunit \multido{\iA=0+30}{12}{% \psRelNode[angle=\iA](A)(B){2}{C}% \qdisk(C){2pt} - \uput[0](C){\iA}} + \uput[0](C){\iA}} \end{pspicture} \end{LTXexample} @@ -3126,9 +3166,11 @@ the angle and the length factor: \psRelLine[<options>]{<arrows>}(<P0>)(<P1>){<length factor>}{<end node name>} \end{lstlisting} -The length factor depends to the distance of $\overline{P_0P_1}$ and the end node name must -be a valid nodename and shouldn't contain any of the special PostScript characters. There are -two valid options which are described in the forgoing section for \verb+\psRelNode+. +The length factor relates to the distance $\overline{P_0P_1}$ and +the end node name must be a valid nodename and shouldn't contain +any of the special PostScript characters. There are two valid +options which are described in the foregoing section for +\verb+\psRelNode+. The following two figures show the same, the first one with a scaling different to $1:1$, this is the reason why the end points are on an ellipse and not on a circle like in the @@ -3169,8 +3211,8 @@ second figure. \end{LTXexample} \medskip -The following figure has also a different scaling, but has set the option \verb+trueAngle+, -all angles depends to what "you see". +The following figure has also a different scaling, but has set the +option \verb+trueAngle+, all angles refer to "what you see". \begin{LTXexample}[width=6.5cm] \psset{yunit=2,xunit=1} @@ -3190,8 +3232,8 @@ all angles depends to what "you see". \end{LTXexample} \medskip -Two examples with using \verb+\multido+ to show the behaviour of the options \verb+trueAngle+ -and \verb+angle+. +Two examples using \verb+\multido+ to show the behaviour of the +options \verb+trueAngle+ and \verb+angle+. \medskip \begin{LTXexample}[width=8cm] @@ -3277,7 +3319,7 @@ and \verb+angle+. %-------------------------------------------------------------------------------------- \section{\CMD{psParallelLine}} %-------------------------------------------------------------------------------------- -With this macro it is possible to plot lines relative to a given one, which is parallel. +With this macro it is possible to plot lines relative to a given one, which is parallel. There is no special parameter here. \begin{lstlisting}[style=syntax] @@ -3287,9 +3329,10 @@ There is no special parameter here. \psParallelLine[<options>]{<arrows>}(<P0>)(<P1>)(<P2>){<length>}{<end node name>} \end{lstlisting} -The line starts at $P_2$, is parallel to $\overline{P_0P_1}$ and the length of this -parallel line depends to the length factor. The end node name must -be a valid nodename and shouldn't contain any of the special PostScript characters. +The line starts at $P_2$, is parallel to $\overline{P_0P_1}$ and +the length of this parallel line depends on the length factor. The +end node name must be a valid nodename and shouldn't contain any +of the special PostScript characters. \begin{LTXexample} \begin{pspicture*}(-5,-4)(5,3.5) @@ -3361,7 +3404,7 @@ point. The syntax is \bigskip -The \CMD{psLCNode} macro builds the linear combination of the two given +The \CMD{psLCNode} macro builds the linear combination of the two given vectors and stores the end of the new vector as a node. All vectors start at $(0,0)$, so a \verb+\rput+ maybe appropriate. The syntax is @@ -3391,11 +3434,12 @@ The syntax is %-------------------------------------------------------------------------------------- \section{\CMD{nlput} and \CMD{psLDNode}} %-------------------------------------------------------------------------------------- -\CMD{ncput} allows to set a label relative to the first node of the last -node connection. With \CMD{nlput} this can be done absolute to a given -node. The syntax is different to the other node connection makros. It uses -internally the macro \CMD{psLDNode} which places a node absolute to -two given points, starting from the first one. +\CMD{ncput} allows you to set a label relative to the first node +of the last node connection. With \CMD{nlput} this can be done +absolute to a given node. The syntax is different to the other +node connection macros. It uses internally the macro +\CMD{psLDNode} which places a node absolute to two given points, +starting from the first one. \begin{lstlisting}[style=syntax] \nlput[options](A)(B){distance}{text} @@ -3433,18 +3477,20 @@ the end of the axes: \psaxes[settings]{arrows}(x0,y0)(x1,y1)(x2,y2)[Xlabel,Xangle][Ylabel,Yangle] \end{lstlisting} -It has now four optional arguments, one for the setting, one for the arrows, one for -the x-label and one for the y-label. If you want only a y-label, then leave the -x one empty. A missing y label is possible. The following examples show how it -can be used. +It has now four optional arguments, one for the setting, one for +the arrows, one for the x-label and one for the y-label. If you +want only a y-label, then leave the x one empty. A missing y-label +is possible. The following examples show how it can be used. -The option \verb+tickstyle=full|top|bottom+ is no more working in the usual way. -Only the additional value \texttt{inner} is valid for \verb+pstricks-add+, -because everything can be set by the \verb+ticksize+ option. When using the -\verb+comma+ or \verb+trigLabels+ option, the macros \verb+\pshlabel+ and \verb+\psvlabel+ -shouldn't be redefined, because the package does it itself internally in these cases. -However, if you need a redefinition, then do it for \CMD{pst@@hlabel} and \CMD{pst@@vlabel} -with +The option \verb+tickstyle=full|top|bottom+ no longer works in the +usual way. Only the additional value \texttt{inner} is valid for +\verb+pstricks-add+, because everything can be set by the +\verb+ticksize+ option. When using the \verb+comma+ or +\verb+trigLabels+ option, the macros \verb+\pshlabel+ and +\verb+\psvlabel+ shouldn't be redefined, because the package does +it itself internally in these cases. However, if you need a +redefinition, then do it for \CMD{pst@@hlabel} and +\CMD{pst@@vlabel} with \begin{lstlisting}[style=syntax] \makeatletter @@ -3464,11 +3510,11 @@ with \rowcolor{white}\textrm{\bfseries Name} & \textrm{\bfseries Type} & \textrm{\bfseries Default}\\\hline \endhead labels & <all|x|y|none> & all\\%ok -xlabelPos & <bottom,axis,top>& bottom\\ -ylabelPos & <left,axis,right>& left\\ +xlabelPos & <bottom,axis,top>& bottom\\ +ylabelPos & <left,axis,right>& left\\ xlabelFactor & <anything> & \{\textbackslash\@ empty\}\\ ylabelFactor & <anything> & \{\textbackslash\@ empty\}\\ -labelFontSize & <fontsize macro> & \{\} \\ +labelFontSize & <fontsize macro> & \{\} \\ trigLabels & false|true & false\\ trigLabelBase & <number> & 0\\ algebraic & false|true & false\\ %ok @@ -3541,9 +3587,10 @@ xAxis=true|false yAxis=true|false \end{lstlisting} -Sometimes there is only a need for one axis with ticks. In this case you can set one -of the following options to false. The \verb+xyAxes+ makes only sense, when you want -to set both, x and y to true with only one command again to the default, because with +Sometimes there is only a need for one axis with ticks. In this +case you can set one of the preceding options to false. The +\verb+xyAxes+ only makes sense when you want to set both x and y +to true with only one command, back to the default, because with \verb+xyAxes=false+ you get nothing with the \verb+psaxes+ macro. @@ -3566,8 +3613,8 @@ to set both, x and y to true with only one command again to the default, because \end{LTXexample} As seen in the example, a single y axis gets the labels on the left side. This can be -changed with the option \verb+ylabelPos+ or with \verb+xlabelPos+ for the -x-axis. +changed with the option \verb+ylabelPos+ or with \verb+xlabelPos+ for the +x-axis. %-------------------------------------------------------------------------------------- @@ -3578,8 +3625,8 @@ Syntax: labels=all|x|y|none \end{lstlisting} -This option is also already in the \verb+pst-plot+ package and only mentioned here for -some completness. +This option is also already in the \verb+pst-plot+ package and +only mentioned here for completeness. \begin{LTXexample}[width=3.5cm] \psset{ticksize=6pt} @@ -3609,7 +3656,7 @@ some completness. %-------------------------------------------------------------------------------------- -\subsection{\texttt{xlabelPos} and \texttt{xlabelPos}} +\subsection{\texttt{xlabelPos} and \texttt{ylabelPos}} %-------------------------------------------------------------------------------------- Syntax: \begin{lstlisting}[style=syntax] @@ -3617,10 +3664,12 @@ xlabelPos=bottom|axis|top ylabelPos=left|axis|right \end{lstlisting} -By default the labels for ticks are placed at the bottom (x axis) and left (y-axis). -In both axes are drawn into negative direction the default is top (x axis) and right (y axis). -It be changed with the two options \texttt{xlabelPos} and \texttt{xlabelPos}. With the value -\texttt{axis} the user can place the labels depending to the value of \texttt{labelsep}, +By default the labels for ticks are placed at the bottom (x axis) +and left (y-axis). If both axes are drawn in the negative +direction the default is top (x axis) and right (y axis). It be +changed with the two options \texttt{xlabelPos} and +\texttt{ylabelPos}. With the value \texttt{axis} the user can +place the labels depending on the value of \texttt{labelsep}, which is taken into account for \texttt{axis}. \resetOptions% @@ -3662,18 +3711,20 @@ which is taken into account for \texttt{axis}. \subsection{Changing the label font size with \texttt{labelFontSize} and \texttt{mathLabel}} %-------------------------------------------------------------------------------------- -This option sets the horizontal \textbf{and} vertical font size for the labels depending to -the option \verb+mathLabel+ for the text or the math mode. -It will be overwritten when another package or a user defines +This option sets the horizontal \textbf{and} vertical font size +for the labels depending on the option \verb+mathLabel+ for the +text or the math mode. It will be overwritten when another package +or a user defines \begin{lstlisting}[style=syntax] \def\pshlabel#1{\labelFontSize ...} \def\psvlabel#1{\labelFontSize ...} \def\pshlabel#1{$\labelFontSize ...$}% for mathLabel=true (default) \def\psvlabel#1{$\labelFontSize ...$}% for mathLabel=true (default) \end{lstlisting} -in another way. Pay attention, that for \verb+mathLabel=true+ the font size must be set -by one of the mathematical styles \verb+\textstyle+, \verb+\displaystyle+, \verb+\scriptstyle+, -or \verb+\scriptscriptstyle+. +in another way. Note that for \verb+mathLabel=true+ the font size +must be set by one of the mathematical styles \verb+\textstyle+, +\verb+\displaystyle+, \verb+\scriptstyle+, or +\verb+\scriptscriptstyle+. \begin{LTXexample}[width=6cm] \psset{mathLabel=false} @@ -3702,16 +3753,17 @@ or \verb+\scriptscriptstyle+. %-------------------------------------------------------------------------------------- \subsection{\texttt{xlabelFactor} and \texttt{ylabelFactor}} %-------------------------------------------------------------------------------------- -When having big numbers as data records then it makes sense to write the values -as ${<number>\cdot 10^{<exp>}}$. These new options allow to define the additional part -of the value, but it must be set in math mode when using math operators! +When having big numbers as data records then it makes sense to +write the values as ${<number>\cdot 10^{<exp>}}$. These new +options allow you to define the additional part of the value, but +it must be set in math mode when using math operators! \resetOptions \begin{LTXexample} \readdata{\data}{demo1.dat} \pstScalePoints(1,0.000001){}{}% (x,y){additional x operator}{y op} \psset{llx=-1cm,lly=-1cm} -\psgraph[ylabelFactor=\cdot 10^6,Dx=5,Dy=100](0,0)(25,750){8cm}{5cm} +\psgraph[ylabelFactor=\cdot 10^6,Dx=5,Dy=100](0,0)(25,750){8cm}{5cm} \listplot[linecolor=red, linewidth=2pt, showpoints=true]{\data} \endpsgraph \pstScalePoints(1,1){}{}% reset @@ -3749,10 +3801,12 @@ xyDecimals=<number> xDecimals=<any> yDecimals=<any> \end{lstlisting} -By default the labels of the axes get numbers with or without decimals, just depending to the -numbers. With these options \verb|??Decimals| it is possible to determine the decimals, -where the option \verb|xyDecimals| sets this identical for both axes. -The default setting \verb|{}| means, that you'll get the standard behaviour. +By default the labels of the axes get numbers with or without +decimals, depending on the numbers. With these options +\verb|??Decimals| it is possible to determine the decimals, where +the option \verb|xyDecimals| sets this identical for both axes. +The default setting \verb|{}| means, that you'll get the standard +behaviour. \begin{LTXexample}[width=6cm] @@ -3775,10 +3829,10 @@ The default setting \verb|{}| means, that you'll get the standard behaviour. %-------------------------------------------------------------------------------------- \subsection{\texttt{trigLabels} and \texttt{trigLabelBase} -- axis with trigonmetrical units} %-------------------------------------------------------------------------------------- -With the option \verb+trigLabels=true+ the labels on the x axis are trigonometrical ones. -The option \verb+trigLabelBase+ set the demoninator of fraction. The default value of -0 is the same as no fraction. -The following constants are are defined in the package: +With the option \verb+trigLabels=true+ the labels on the x axis +are trigonometrical ones. The option \verb+trigLabelBase+ set the +denominator of fraction. The default value of 0 is the same as no +fraction. The following constants are defined in the package: \begin{lstlisting}[style=syntax] \def§\ON§\psPiFour§\OFF§{12.566371} \def§\ON§\psPiTwo§\OFF§{6.283185} @@ -3792,18 +3846,18 @@ The following constants are are defined in the package: -Because it is a bit complicating to set the right values, we show some more examples -here. +Because it is a bit complicated to set the right values, we show +some more examples here. -For \textbf{all} following examples in this section we did a +For \textbf{all} following examples in this section we did a global \lstinline[frame=single]|\psset{trigLabels=true,labelFontSize=\scriptstyle}|. -\psset{trigLabels,labelFontSize=\scriptstyle} -Translating the decimal ticks to geometrical makes no real sense, -because every 1 xunit (1cm) is a tick and the last one at 6cm. +\psset{trigLabels,labelFontSize=\scriptstyle} Translating the +decimal ticks to trigonometrical ones makes no real sense, because +every 1 xunit (1cm) is a tick and the last one is at 6cm. \clearpage \begin{minipage}{0.4\fullWidth} @@ -3828,7 +3882,7 @@ because every 1 xunit (1cm) is a tick and the last one at 6cm. \end{minipage}% \begin{minipage}{0.6\fullWidth} \begin{lstlisting} -\begin{pspicture}(-0.5,-1.25)(10,1.25)% +\begin{pspicture}(-0.5,-1.25)(6.5,1.25)% \psaxes[§\ON§trigLabelBase=3§\OFF§]{->}(0,0)(-0.5,-1.25)(\psPiTwo,1.25) \end{pspicture} \end{lstlisting} @@ -3836,8 +3890,8 @@ because every 1 xunit (1cm) is a tick and the last one at 6cm. -Modifing the ticks to have the last one exactly at the end is possible -with a different dx value ($\frac{\pi}{3}\approx 1.047$): +Modifying the ticks to have the last one exactly at the end is +possible with a different dx value ($\frac{\pi}{3}\approx 1.047$): \begin{minipage}{0.4\fullWidth} @@ -3869,8 +3923,9 @@ with a different dx value ($\frac{\pi}{3}\approx 1.047$): \ncline[linestyle=dashed,linewidth=0.4pt]{A}{B} -Set globaly everything in radiant unit. Now 6 units on the $x$-axis -are $6\pi$. Using \verb+trigLabelBase=3+ reduces this value to $2\pi$, a.s.o. +Set everything globally in radian units. Now 6 units on the +$x$-axis are $6\pi$. Using \verb+trigLabelBase=3+ reduces this +value to $2\pi$, a.s.o. \bigskip \begin{minipage}{0.4\fullWidth} @@ -3939,10 +3994,11 @@ are $6\pi$. Using \verb+trigLabelBase=3+ reduces this value to $2\pi$, a.s.o. -The best way seems to be setting the $x$-unit to \verb+\pstRadUnit+. Plotting a -function doesn't consider the value for \verb+trigLabelBase+, it has to be done by -the user. The first example sets the unit locally for the \verb+\psplot+ -back to 1cm, which is needed, because we use this unit on PostScript side. +The best way seems to be to set the $x$-unit to +\verb+\pstRadUnit+. Plotting a function doesn't consider the value +for \verb+trigLabelBase+, it has to be done by the user. The first +example sets the unit locally for the \verb+\psplot+ back to 1cm, +which is needed, because we use this unit on the PostScript side. \begin{minipage}{0.4\fullWidth} \psset{xunit=\pstRadUnit}% @@ -4016,12 +4072,13 @@ back to 1cm, which is needed, because we use this unit on PostScript side. \end{minipage} -It is also possible to set the $x$ unit and $dx$ value to get the labels -right. But this needs some more understanding how it really works. -A \verb+xunit=1.570796327+ sets the unit to $\pi/2$ and a \verb+dx=0.666667+ -then puts every $2/3$ of the unit a tick mark and a label. The length of -the $x$-axis is 6.4 units which is $6.4\cdot 1.570796327cm\approx 10cm$. -The function then is plotted from $0$ to $3\pi=9.424777961$. +It is also possible to set the $x$ unit and $dx$ value to get the +labels right. But this needs some more understanding as to how it +really works. A \verb+xunit=1.570796327+ sets the unit to $\pi/2$ +and a \verb+dx=0.666667+ then puts at every $2/3$ of the unit a +tick mark and a label. The length of the $x$-axis is 6.4 units +which is $6.4\cdot 1.570796327cm\approx 10cm$. The function then +is plotted from $0$ to $3\pi=9.424777961$. @@ -4031,14 +4088,14 @@ The function then is plotted from $0$ to $3\pi=9.424777961$. \begin{pspicture}(-0.5,-1.25)(10,1.25) \psaxes[xunit=1.570796327,showorigin=false,trigLabelBase=3,dx=0.666667]{->}(0,0)(-0.5,-1.25)(6.4,1.25) \psplot[linecolor=red,linewidth=1.5pt]{0}{9.424777961}{% - x RadtoDeg dup sin exch 1.1 mul cos add} + x RadtoDeg dup sin exch 1.1 mul cos add} \end{pspicture} \end{center} \begin{lstlisting} \begin{pspicture}(-0.5,-1.25)(10,1.25) \psaxes[§\ON§xunit=1.570796327§\OFF§,§\ON§trigLabelBase=3§\OFF§,§\ON§dx=0.666667§\OFF§]{->}(0,0)(-0.5,-1.25)(6.4,1.25) \psplot[linecolor=red,linewidth=1.5pt]{0}{§\ON§9.424777961§\OFF§}{% - x RadtoDeg dup sin exch 1.1 mul cos add} + x RadtoDeg dup sin exch 1.1 mul cos add} \end{pspicture} \end{lstlisting} @@ -4047,13 +4104,13 @@ The function then is plotted from $0$ to $3\pi=9.424777961$. \begin{pspicture}(-0.5,-1.25)(10,1.25) \psaxes[xunit=\psPi,dx=0.25]{->}(0,0)(-0.25,-1.25)(3.2,1.25) \psplot[xunit=0.25,plotpoints=500,linecolor=red,linewidth=1.5pt]{0}{37.70}{% - x RadtoDeg dup sin exch 1.1 mul cos add} + x RadtoDeg dup sin exch 1.1 mul cos add} \end{pspicture} \end{center} \begin{lstlisting} \psset{§\ON§unit=1cm§\OFF§} \psplot[§\ON§xunit=0.25§\OFF§,§\ON§plotpoints=500§\OFF§,linecolor=red,linewidth=1.5pt]{0}{37.70}{% - x RadtoDeg dup sin exch 1.1 mul cos add} + x RadtoDeg dup sin exch 1.1 mul cos add} \end{pspicture} \end{lstlisting} @@ -4062,7 +4119,7 @@ The function then is plotted from $0$ to $3\pi=9.424777961$. \psset{unit=1cm} \begin{pspicture}(-0.5,-2)(10,2) \psplot[xunit=0.0625,linecolor=red,linewidth=1.5pt,plotpoints=5000]{0}{150.80}{% - x RadtoDeg dup sin exch 1.1 mul cos add} + x RadtoDeg dup sin exch 1.1 mul cos add} \psaxes[xunit=\psPi,dx=0.5,Dx=8,subticks=2]{->}(0,0)(-0.1,-2)(3.2,2) \end{pspicture} \end{center} @@ -4071,7 +4128,7 @@ The function then is plotted from $0$ to $3\pi=9.424777961$. \begin{pspicture}(-0.5,-1.25)(10,1.25) \psplot[§\ON§xunit=0.0625§\OFF§,linecolor=red,linewidth=1.5pt,% §\ON§plotpoints=5000§\OFF§]{0}{150.80}% - {x RadtoDeg dup sin exch 1.1 mul cos add} + {x RadtoDeg dup sin exch 1.1 mul cos add} \psaxes[§\ON§xunit=\psPi§\OFF§,§\ON§dx=0.5§\OFF§,§\ON§Dx=8§\OFF§]{->}(0,0)(-0.25,-1.25)(3.2,1.25) \end{pspicture} \end{lstlisting} @@ -4096,14 +4153,14 @@ The function then is plotted from $0$ to $3\pi=9.424777961$. \psset{unit=1cm} \begin{pspicture}(-7,-1.5)(7,1.5) \psaxes[trigLabels=true, - trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) + trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) \psplot[linecolor=red,linewidth=1.5pt]{-7}{7}{x RadtoDeg sin} \end{pspicture} \end{center} \begin{lstlisting} \begin{pspicture}(-7,-1.5)(7,1.5) \psaxes[trigLabels=true, - trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) + trigLabelBase=2,dx=\psPiH,xunit=\psPi]{->}(0,0)(-2.2,-1.5)(2.2,1.5) \psplot[linecolor=red,linewidth=1.5pt]{-7}{7}{x RadtoDeg sin} \end{pspicture} \end{lstlisting} @@ -4121,8 +4178,8 @@ Syntax: ticks=all|x|y|none \end{lstlisting} -This option is also already in the \verb+pst-plot+ package and only mentioned here for -some completness. +This option is also already in the \verb+pst-plot+ package and +only mentioned here for some completeness. \begin{LTXexample}[width=3.5cm] \psset{ticksize=6pt} @@ -4149,7 +4206,7 @@ some completness. \end{pspicture} \end{LTXexample} -Single ticks can be set with the two macros +Single ticks can be set with the two macros % \begin{lstlisting}[style=syntax] \psxTick[options](x value){label} @@ -4174,7 +4231,7 @@ Syntax: tickstyle=full|top|bottom|inner \end{lstlisting} -The value \texttt{inner} (not available with the basic \texttt{pstricks} package) is +The value \texttt{inner} (not available with the basic \texttt{pstricks} package) is only valid for the axes style \texttt{frame}. \medskip @@ -4193,8 +4250,9 @@ only valid for the axes style \texttt{frame}. \subsection{\texttt{ticksize}, \texttt{xticksize}, \texttt{yticksize}} %-------------------------------------------------------------------------------------- -With this new option the recent \verb+tickstyle+ option of \verb+pst-plot+ is obsolete -and no more supported by \verb+pstricks-add+. +With this new option the recent \verb+tickstyle+ option of +\verb+pst-plot+ is obsolete and no longer supported by +\verb+pstricks-add+. Syntax: \begin{lstlisting}[style=syntax] @@ -4285,7 +4343,7 @@ xsubticksize=value ysubticksize=value \end{lstlisting} -\verb+subticksize+ sets both values, which are relative to the ticksize length and +\verb+subticksize+ sets both values, which are relative to the ticksize length and can have any number. 1 sets it to the same length as the main ticks. \begin{LTXexample}[preset=\centering,pos=t] @@ -4341,9 +4399,9 @@ xsubticklinestyle=solid|dashed|dotted|none ysubticklinestyle=solid|dashed|dotted|none \end{lstlisting} -\verb+ticklinestyle+ and \verb+subticklinestyle+ set both values for the x and y axis. The -value \verb+none+ doesn't really makes sense, because it is the same to -\verb+[sub]ticklines=0+ +\verb+ticklinestyle+ and \verb+subticklinestyle+ set both values +for the x and y axis. The value \verb+none+ doesn't really makes +sense, because it is the same as \verb+[sub]ticklines=0+ \begin{LTXexample}[preset=\centering,pos=t] \psset{unit=4cm} @@ -4395,18 +4453,24 @@ It can be changed, when \emph{after} the option \texttt{logLines} the ticksize i %-------------------------------------------------------------------------------------- \subsection{\texttt{xylogBase}, \texttt{xlogBase} and \texttt{ylogBase}} %-------------------------------------------------------------------------------------- -There are additional options \verb|xylogBase | xlogBase | ylogBase| to get one or both axes with logarithm labels. -For an intervall of [$10^{-3} ... 10^2$] choose a \verb|pstricks| intervall of [-3,2]. \verb|pstricks| takes $0$ as the origin of this axes, which is wrong -if we want to have a logarithm axes. With the options \verb|Oy| and \verb|Ox| we can set -the origin to $-3$, so that the first label gets $10^{-3}$. If this is not done by the -user then \verb|pstricks-add| does it by default. An alternative is to set these -parameters to empty values \verb|Ox={},Oy={}|, in this case \verb|pstricks-add| does nothing. +There are additional options \verb|xylogBase | xlogBase | +ylogBase| to get one or both axes with logarithmic labels. For an +interval of [$10^{-3} ... 10^2$] choose a \verb|pstricks| interval +of [-3,2]. \verb|pstricks| takes $0$ as the origin of this axes, +which is wrong if we want to have a logarithmic axes. With the +options \verb|Oy| and \verb|Ox| we can set the origin to $-3$, so +that the first label gets $10^{-3}$. If this is not done by the +user then \verb|pstricks-add| does it by default. An alternative +is to set these parameters to empty values \verb|Ox={},Oy={}|, in +this case \verb|pstricks-add| does nothing. %------------------------------------------------------------------------------------ \subsubsection{\texttt{xylogBase}} %------------------------------------------------------------------------------------ -This mode is in math also called double logarithm. It is a combination of the two forgoing modes and the function is now $y=\log x$ and is shown in the following example. +This mode in math is also called double logarithmic. It is a +combination of the two foregoing modes and the function is now +$y=\log x$ and is shown in the following example. \medskip \begin{LTXexample}[width=7cm] @@ -4424,14 +4488,16 @@ This mode is in math also called double logarithm. It is a combination of the tw %-------------------------------------------------------------------------------------------- \subsubsection{\texttt{ylogBase}} %-------------------------------------------------------------------------------------------- -The values for the \texttt{psaxes} y-coordinate are now the exponents to the base $10$ and for -the right function to the base $e$: $10^{-3} \ldots 10^1$ which corresponds to the given -y-intervall $-3\ldots 1.5$, where only integers as exponents are possible. These logarithm -labels have no effect to the internal used units. To draw the logarithm function we have -to use the math function +The values for the \texttt{psaxes} y-coordinate are now the +exponents to the base $10$ and for the right function to the base +$e$: $10^{-3} \ldots 10^1$ which corresponds to the given +y-interval $-3\ldots 1.5$, where only integers as exponents are +possible. These logarithmic labels have no effect on the +internally used units. To draw the logarithm function we have to +use the math function \[y=\log\{\log x\}\] \[y=\ln\{\ln x\}\] -with an drawing intervall of $1.001\ldots 6$. +with an drawing interval of $1.001\ldots 6$. \medskip \begin{LTXexample}[width=7cm] @@ -4616,7 +4682,7 @@ This is only a demonstration that the default option \verb|logBase={}| still wor \psaxes[subticks=5,tickwidth=2pt,subtickwidth=1pt](0,0)(-5,-5)(5,5)\\[1cm] \psaxes[subticks=0,tickcolor=red,xlabelPos=top](0,0)(5,5)(-5,-5)} \end{lstlisting} - + \clearpage \vspace*{4cm} \begin{center} @@ -4649,7 +4715,7 @@ This is only a demonstration that the default option \verb|logBase={}| still wor \psaxes[subticks=5,tickcolor=red,tickwidth=2pt,% ticksize=10pt,subtickcolor=blue,subticksize=0.75,ylabelPos=right]{->}(0,0)(5,5)(-5,-5) \end{lstlisting} - + \begin{LTXexample}[width=5.5cm] \pspicture(5,5.5) \psaxes[subticks=4,ticksize=6pt,subticksize=0.5,% @@ -4732,12 +4798,13 @@ This is only a demonstration that the default option \verb|logBase={}| still wor \clearpage %-------------------------------------------------------------------------------------- -\subsection[\texttt{algebraic}]{\texttt{algebraic}%\footnote{This part is adapted +\subsection[\texttt{algebraic}]{\texttt{algebraic}%\footnote{This part is adapted % from the package \texttt{pst-eqdf}, written by Dominique Rodriguez.} } %-------------------------------------------------------------------------------------- -By default the function of \verb+\psplot+ has to be described in Reversed Polish Notation. -The option \verb+algebraic+ allows to do this in the common algebraic notation. E.g.: +By default the function in \verb+\psplot+ has to be described in +Reversed Polish Notation. The option \verb+algebraic+ allows you +to do this in the common algebraic notation. E.g.: \begin{tabular}{l|l} RPN & algebraic\\\hline @@ -4747,11 +4814,13 @@ RPN & algebraic\\\hline \verb+t cos t sin+ & \verb+cos(t)|sin(t)+ \end{tabular} -Setting the option \verb$algebraic$ to \verb$true$, allow the user to describe all -expression to be written in the classical algebraic notation (infix notation). The four arithmetic -operarions are obviously defined \verb$+-*/$, and also the exponential operator -\verb$^$. The natural priorities are used : $3+4\times 5^5=3+(4\times (5^5))$, and by default -the computation is done from left to right. The following functions are defined : +Setting the option \verb$algebraic$ to \verb$true$, allow the user +to describe all expression to be written in the classical +algebraic notation (infix notation). The four arithmetic +operations are obviously defined \verb$+-*/$, and also the +exponential operator \verb$^$. The natural priorities are used : +$3+4\times 5^5=3+(4\times (5^5))$, and by default the computation +is done from left to right. The following functions are defined : \medskip \begin{tabular}{ll} @@ -4768,8 +4837,8 @@ the computation is done from left to right. The following functions are defined \medskip These options can be used with \textbf{all} plot macros. -{\bfseries Using the option \verb+algebraic+ implies that all angles have to be used in the -radian unit! } +{\bfseries Using the option \verb+algebraic+ implies that all +angles have to be in radians! } For the \verb+\parametricplot+ the two parts must be divided by the \verb+|+ character: @@ -4877,8 +4946,9 @@ $\displaystyle\sum_{n=0}^{+\infty}\frac{(-1)^nx^{2n}}{n!}$. %-------------------------------------------------------------------------------------- Syntax: \verb+IfTE(<condition>,<true part>,<false part>)+ -Nesting of several \verb+IfTE+ are possible and seen in the following examples. -A classical example is a piece wise linear function. +Nesting of several \verb+IfTE+ is possible and seen in the +following examples. A classic example is a piece-wise linear +function. \begin{center} \begin{pspicture}(-7.5,-2.5)(7.5,6) @@ -4901,10 +4971,11 @@ A classical example is a piece wise linear function. \end{pspicture} \end{lstlisting} -When you program a piece-wise defined function you must take care that a -plotting point must be put on each point where the description changes. Use \verb+showpoints=true+ to -see what's going on, when there is a problem. You are on the save side, when you choose a -big number for \verb+plotpoints+. +When you program a piece-wise defined function you must take care +that a plotting point must be put at each point where the +description changes. Use \verb+showpoints=true+ to see what's +going on when there is a problem. You are on the safe side when +you choose a big number for \verb+plotpoints+. \clearpage @@ -4947,9 +5018,10 @@ big number for \verb+plotpoints+. %-------------------------------------------------------------------------------------- \subsection{Plot style \texttt{bar} and option \texttt{barwidth}} %-------------------------------------------------------------------------------------- -This option allows to draw bars for the data records. The width of the bars -is controlled by the option \verb+barwidth+, which is set by default to -value of \verb+0.25cm+, which is the total width. +This option allows you to draw bars for the data records. The +width of the bars is controlled by the option \verb+barwidth+, +which is set by default to value of \verb+0.25cm+, which is the +total width. \def\barData{ 0 0.03 @@ -4980,7 +5052,7 @@ value of \verb+0.25cm+, which is the total width. 25 5.17 26 5.78 27 4.44 -28 0.11 +28 0.11 } \begin{LTXexample}[preset=\centering,pos=t] @@ -5024,14 +5096,16 @@ value of \verb+0.25cm+, which is the total width. %------------------------------------------------------------------------------------ -By default the macros \verb|\readdata| reads every -data record, which could be annoying when you have some text lines at top of your -data files or when there are more than 10000 records to read. +By default the macro \verb|\readdata| reads every data record, +which could be annoying when you have some text lines at top of +your data files or when there are more than 10000 records to read. -\verb|pstricks-add| defines two additional keys \verb|ignoreLines| and \verb|nStep|, which allows -to ignore preceeding lines, e.g. \verb|ignoreLines=2|, or to read only a selected part of the data records, -e.g. \verb|nStep=10|, only every 10\textsuperscript{th} records is saved. +\verb|pstricks-add| defines two additional keys \verb|ignoreLines| +and \verb|nStep|, which allows you to ignore preceding lines, e.g. +\verb|ignoreLines=2|, or to read only a selected part of the data +records, e.g. \verb|nStep=10|, only every 10\textsuperscript{th} +record is saved. \begin{lstlisting} \readdata[ignoreLines=2]{\dataA}{stressrawdata.dat} @@ -5061,7 +5135,7 @@ some nonsense in this line ���time forcex forcey %-------------------------------------------------------------------------------------- By default the plot macros \verb|\dataplot|, \verb|\fileplot| and \verb|\listplot| plot every data record. The package \verb|pst-plot-add| defines additional keys \verb|nStep, nStart, nEnd| and \verb|xStep, xStart, xEnd|, which allows -to plot only a selected part of the data records, e.g. \verb|nStep=10|. These "`n"' +to plot only a selected part of the data records, e.g. \verb|nStep=10|. These "`n"' options mark the number of the record to be plot ($0,1,2,...$) and the "`x"' ones the x-values of the data records. @@ -5090,12 +5164,15 @@ from a file with the \verb|\readdata| macro (see example files or \cite{dtk02.2: \readdata[nStep=10]{\data}{/home/voss/data/data1.dat} \end{lstlisting} -The use \verb|nStep| and \verb|xStep| options make only real sense when also using the -option \verb|plotstyle=dots|. Otherwise the coordinates are connected by a line as usual. Also the \verb|xStep| option needs increasing x values. -Pay attention that \verb+nStep+ can be used for \verb+\readdata+ and for \verb+\listplot+. If used -in both macros than the effect is multiplied, e.g. \verb+\readdata+ with \verb+nStep=5+ and -\verb+\listplot+ with \verb+nStep=10+ means, that only every 50\textsuperscript{th} data records -is read and plotted. +The use \verb|nStep| and \verb|xStep| options only make real sense +when also using the option \verb|plotstyle=dots|. Otherwise the +coordinates are connected by a line as usual. Also the +\verb|xStep| option needs increasing x values. Note that +\verb+nStep+ can be used for \verb+\readdata+ and for +\verb+\listplot+. If used in both macros then the effect is +multiplied, e.g. \verb+\readdata+ with \verb+nStep=5+ and +\verb+\listplot+ with \verb+nStep=10+ means, that only every +50\textsuperscript{th} data record is read and plotted. When both, \verb|x/yStart/End| are defined then the values are also compared with both values. @@ -5184,11 +5261,12 @@ of all records with the plotstyle option \verb|curve|. \subsubsection{Example for \texttt{xStart}} %-------------------------------------------------------------------------------------- -This example shows the use of the same plot with different units and different -\verb|xStart| value. The blue curve is the original plot of the data records. -To show the important part of the curve there is another one plotted with a -greater \verb|yunit| and a start value of \verb|xStart=0.35|. This makes it -possible to have a kind of a zoom to the original graphic. +This example shows the use of the same plot with different units +and different \verb|xStart| value. The blue curve is the original +plot of the data records. To show the important part of the curve +there is another one plotted with a greater \verb|yunit| and a +start value of \verb|xStart=0.35|. This makes it possible to have +a kind of zoom to the original graphic. \begin{center} \psset{xunit=10cm, yunit=0.01cm} @@ -5319,14 +5397,14 @@ without any modification to the data file: %-------------------------------------------------------------------------------------- \subsubsection{Example for \texttt{changeOrder}} %-------------------------------------------------------------------------------------- -It is only possible to fill the region between two listplots -with \verb+\pscustom+ if one of both has the values in a reverse -order. Otherwise we do not get a closed path. With the option \verb+ChangeOrder+ -the values are used in a reverse order: +It is only possible to fill the region between two listplots with +\verb+\pscustom+ if one of them has the values in reverse order. +Otherwise we do not get a closed path. With the option +\verb+ChangeOrder+ the values are used in reverse order: \begin{LTXexample}[pos=t,preset=\centering] \begin{filecontents*}{test.dat} - 0 3 8 + 0 3 8 2 4 7 5 5 5.5 7 3.5 5 @@ -5337,7 +5415,7 @@ the values are used in a reverse order: \readdata{\data}{test.dat}% \pscustom[fillstyle=solid,fillcolor=blue!40]{% \listplot[plotNo=2,plotNoMax=2]{\data}% - \listplot[plotNo=1,plotNoMax=2,ChangeOrder]{\data}} + \listplot[plotNo=1,plotNoMax=2,ChangeOrder]{\data}} \end{psgraph} \end{LTXexample} @@ -5355,7 +5433,7 @@ best all data records. \bgroup \centering \begin{filecontents*}{LSM.dat} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 +0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 \end{filecontents*} \psset{lly=-.5cm} \readdata{\data}{LSM.dat} @@ -5368,7 +5446,7 @@ best all data records. \begin{lstlisting} \begin{filecontents*}{LSM.dat} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 +0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 \end{filecontents*} \psset{lly=-.5cm} \readdata{\data}{LSM.dat} @@ -5379,14 +5457,15 @@ best all data records. \end{lstlisting} -The macro looks for the lowest and biggest x-value and draws the line for this interval. -It is possible to pass another values to the macro by setting the \verb+xStart+ and/or -\verb+xEnd+ options. They are preset with an empty value \verb+{}+. +The macro looks for the lowest and biggest x-value and draws the +line for this interval. It is possible to pass other values to the +macro by setting the \verb+xStart+ and/or \verb+xEnd+ options. +They are preset with an empty value \verb+{}+. \bgroup \centering \begin{filecontents*}{LSM.dat} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 +0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 \end{filecontents*} \readdata{\data}{LSM.dat} \psset{lly=-1.75cm} @@ -5398,7 +5477,7 @@ It is possible to pass another values to the macro by setting the \verb+xStart+ \begin{lstlisting} \begin{filecontents*}{LSM.dat} -0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 +0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 \end{filecontents*} \readdata{\data}{LSM.dat} \psset{lly=-1.75cm} @@ -5409,13 +5488,15 @@ It is possible to pass another values to the macro by setting the \verb+xStart+ \end{lstlisting} -With \verb+PstDebug=1+ one gets the equation $y=v\cdot x+u$ printed, beginning at -the position (0|-50pt). This cannot be changed, because it is only for some kind -of debugging. Pay attention for the correct \verb+xStart+- and \verb+xEnd+-values, -when you use the \verb+\pstScalePoints+-Macro. In the following example we use an -x-interval from 0 to 3 to plot the values; first we substract 0.003 from all x-values -and then scale them with 10000. This is not taken into account for the \verb+xStart+- -and \verb+xEnd+-values. +With \verb+PstDebug=1+ one gets the equation $y=v\cdot x+u$ +printed, beginning at the position (0|-50pt). This cannot be +changed, because it is only for some kind of debugging. Pay +attention for the correct \verb+xStart+- and \verb+xEnd+-values, +when you use the \verb+\pstScalePoints+-Macro. In the following +example we use an x-interval from 0 to 3 to plot the values; first +we subtract 0.003 from all x-values and then scale them with +10000. This is not taken into account for the \verb+xStart+- and +\verb+xEnd+-values. \bgroup @@ -5468,7 +5549,7 @@ The equation in PostScript code is interpreted as a function $r=f(\alpha)$, e.g. circle with radius 1 as $r=\sqrt{\sin^2x+\cos^2x}$: \begin{lstlisting}[style=syntax] -x sin dup mul x cos dup mul add sqrt +x sin dup mul x cos dup mul add sqrt \end{lstlisting} @@ -5514,7 +5595,7 @@ x sin dup mul x cos dup mul add sqrt \medskip \begin{LTXexample}[width=8cm] \psset{plotpoints=200,unit=0.5} -\begin{pspicture}(-8.5,-8.5)(9,9)% Ulrich Dirr +\begin{pspicture}(-8.5,-8.5)(9,9)% Ulrich Dirr \psaxes[Dx=2,dx=2,Dy=2,dy=2,arrowlength=1.75, ticksize=2pt,linewidth=0.17mm]{->}(0,0)(-8.5,-8.5)(9,9) \rput[Br](9,-.7){$x$} @@ -5537,9 +5618,10 @@ The syntax is \pstScalePoints(xScale,xScale){xPS}{yPS} \end{lstlisting} -\verb+xScale,yScale+ are decimal values as scaling factors, the \verb+xPs+ and \verb+yPS+ -are additional PostScript code to the x- and y-values of the data records. This macro -is only valid for the \CMD{listplot} macro! +\verb+xScale,yScale+ are decimal values used as scaling factors, +the \verb+xPs+ and \verb+yPS+ are additional PostScript code +applied to the x- and y-values of the data records. This macro is +only valid for the \CMD{listplot} macro! \resetOptions \begin{LTXexample}[width=6cm] @@ -5578,19 +5660,22 @@ macros. This is the reason why it is a good idea to reset the values at the end %-------------------------------------------------------------------------------------- \section[\texttt{psCancel} environment]{\texttt{psCancel} environment\footnotemark} %-------------------------------------------------------------------------------------- -\footnotetext{Thanks to by Stefano Baroni} -This macro works like the \CMD{cancel} macro from the package of the same name but -it allows as argument any contents, a letter also as a complex graphic. +\footnotetext{Thanks to by Stefano Baroni} This macro works like +the \CMD{cancel} macro from the package of the same name but it +allows as argument any contents, not only letters but also a +complex graphic. \begin{lstlisting}[style=syntax] \psCancel*[line options]{contents}% \end{lstlisting} -All optional arguments for lines and boxes are valid and can be used in the usual way. -The star option fills the underlying box rectangle with the linecolor. This can be -transparent if \texttt{opacity} is set to a value less than 1. This can be used -in presentation to strike out words, equations, and graphic objects. Lines can also be -transparency when the option \texttt{strokeopacity} is used. +All optional arguments for lines and boxes are valid and can be +used in the usual way. The star option fills the underlying box +rectangle with the linecolor. This can be transparent if +\texttt{opacity} is set to a value less than 1. This can be used +in presentation to strike out words, equations, and graphic +objects. Lines can also be transparent when the option +\texttt{strokeopacity} is used. \begingroup \psCancel{A} \psCancel[linecolor=red]{Tikz :-)} \quad @@ -5620,7 +5705,7 @@ transparency when the option \texttt{strokeopacity} is used. \binom{x_R}{y_R} = \underbrace{r\vphantom{\binom{A}{B}}}_{\text{Scaling}}\cdot \underbrace{\begin{pmatrix} \sin\gamma & -\cos\gamma \\ - \cos \gamma & \sin \gamma \\ + \cos \gamma & \sin \gamma \\ \end{pmatrix}}_{\text{Rotation}} \binom{x_K}{y_K} + \underbrace{\binom{t_x}{t_y}}_{\text{Translation}} \]} }% end of psCancel \endgroup @@ -5654,7 +5739,7 @@ transparency when the option \texttt{strokeopacity} is used. \binom{x_R}{y_R} = \underbrace{r\vphantom{\binom{A}{B}}}_{\text{Scaling}}\cdot \underbrace{\begin{pmatrix} \sin\gamma & -\cos\gamma \\ - \cos \gamma & \sin \gamma \\ + \cos \gamma & \sin \gamma \\ \end{pmatrix}}_{\text{Rotation}} \binom{x_K}{y_K} + \underbrace{\binom{t_x}{t_y}}_{\text{Translation}} \]} }% end of psCancel \end{lstlisting} @@ -5682,11 +5767,12 @@ where the options are valid \textbf{only} for the the \verb+\psaxes+ macro. The two arguments have the usual \verb+PSTricks+ behaviour. \begin{itemize} \item if \verb+(xOrig,yOrig)+ is missing, it is substituted to \verb+(xMin,xMax)+; - \item if \verb+(xOrig,yOrig)+ \textbf{and} \verb+(xMin,yMin)+ are missing, they are both - substituted to \verb+(0,0)+. + \item if \verb+(xOrig,yOrig)+ \textbf{and} \verb+(xMin,yMin)+ are missing, they are both + substituted to \verb+(0,0)+. \end{itemize} -The y-length maybe given as !, then the macro uses the same unit as for the x-axis. +The y-length maybe given as !, when the macro uses the same unit +as for the x-axis. %----------------------------------------------------------------------------- @@ -5918,14 +6004,15 @@ ury & 0pt & trim for the upper right y \end{tabular} \end{center} -There is one restriction in using the trim parameters, they must been set -\textbf{before} \verb+psgraph+ is called. They are senseless, when using -as parameters of \verb+psgraph+ itself. The \verb+?AxisLabelPos+ oprions can use -the letter \verb+c+ for centering an x-axis oder y-axis label. The c is a -replacement for the x or y value. When using values with unit, the position -is always measured fromn the orogin of the coordinate system, which can be -outside of the visible \verb+pspicture+ environment - +There is one restriction in using the trim parameters, they must +been set \textbf{before} \verb+psgraph+ is called. They are +redundant when used as parameters of \verb+psgraph+ itself. The +\verb+?AxisLabelPos+ options can use the letter \verb+c+ for +centering an x-axis or y-axis label. The c is a replacement for +the x or y value. When using values with units, the position is +always measured from the origin of the coordinate system, which +can be outside the visible \verb+pspicture+ environment + \medskip \resetOptions @@ -5969,10 +6056,10 @@ outside of the visible \verb+pspicture+ environment %-------------------------------------------------------------------------------------- \subsection{Problems} %-------------------------------------------------------------------------------------- -Floating point operations in \TeX\ are a real mess, which causes a lot of problems -when there are very small oder very big units. With the options of \verb+\pst-plot+ -it is possible to choose normal units (whatever this may be ...), but plotting -the data as usual. +Floating point operations in \TeX\ are a real mess, which causes a +lot of problems when there are very small or very big units. With +the options of \verb+\pst-plot+ it is possible to choose normal +units (whatever this may be ...), and plot the data as usual. \begin{LTXexample}[pos=t] \begin{filecontents*}{test.dat} @@ -5998,18 +6085,19 @@ This example shows some important facts: \item \verb+Dy=10+: increase the y labels by 10 \end{itemize} -Using the internal \verb+\psxunit+ one can have dynamical x-units, depending to -the linewidth od the document. +Using the internal \verb+\psxunit+ one can have dynamical x-units, +depending on the linewidth of the document. \resetOptions %-------------------------------------------------------------------------------------- \section{\CMD{psStep}} %-------------------------------------------------------------------------------------- -\verb+\psStep+ caclulates a step function for the upper or lower sum or the max/min -of the Riemann integral definition of a given function. The available option is +\verb+\psStep+ calculates a step function for the upper or lower +sum or the max/min of the Riemann integral definition of a given +function. The available option is -\verb+StepType=lower|upper|Riemann|infimum|supremum+ or alternative +\verb+StepType=lower|upper|Riemann|infimum|supremum+ or alternative \verb+StepType=l|u|R|i|s+ with \verb+lower+ as the default setting. The syntax of the function is @@ -6017,12 +6105,13 @@ with \verb+lower+ as the default setting. The syntax of the function is \verb+\psStep[options](x1,x2){n}{function}+ -(x1,x2) is the given Intervall for the step wise caculated function, -n is the number of the rectangles and \verb+function+ is the mathematical function -in postfix or algebraic notation (with \verb+algebraic=true+). +(x1,x2) is the given interval for the step wise calculated +function, n is the number of the rectangles and \verb+function+ is +the mathematical function in postfix or algebraic notation (with +\verb+algebraic=true+). \begin{LTXexample}[pos=t,preset=\centering] -\begin{pspicture}(-0.5,-0.5)(10,3) +\begin{pspicture}(-0.5,-0.5)(10,3) \psaxes[labelFontSize=\scriptstyle]{->}(10,3) \psplot[plotpoints=100,linewidth=1.5pt,algebraic]{0}{10}{sqrt(x)} \psStep[linecolor=magenta,StepType=upper,fillstyle=hlines](0,9){9}{x sqrt} @@ -6032,7 +6121,7 @@ in postfix or algebraic notation (with \verb+algebraic=true+). \begin{LTXexample}[pos=t,preset=\centering] \psset{plotpoints=200} -\begin{pspicture}(-0.5,-2.25)(10,3) +\begin{pspicture}(-0.5,-2.25)(10,3) \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-2.25)(10,3) \psplot[linewidth=1.5pt,algebraic]{0}{10}{sqrt(x)*sin(x)} \psStep[algebraic,linecolor=magenta,StepType=upper](0,9){20}{sqrt(x)*sin(x)} @@ -6042,7 +6131,7 @@ in postfix or algebraic notation (with \verb+algebraic=true+). \begin{LTXexample}[pos=t,preset=\centering] \psset{yunit=1.25cm,plotpoints=200} -\begin{pspicture}(-0.5,-1.5)(10,1.5) +\begin{pspicture}(-0.5,-1.5)(10,1.5) \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-1.5)(10,1.5) \psStep[algebraic,StepType=Riemann,fillstyle=solid,fillcolor=black!10](0,10){50}% {sqrt(x)*cos(x)*sin(x)} @@ -6053,7 +6142,7 @@ in postfix or algebraic notation (with \verb+algebraic=true+). \begin{LTXexample}[pos=t,preset=\centering] \psset{yunit=1.25cm,plotpoints=200} -\begin{pspicture}(-0.5,-1.5)(10,1.5) +\begin{pspicture}(-0.5,-1.5)(10,1.5) \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-1.5)(10,1.5) \psStep[algebraic,StepType=infimum,fillstyle=solid,fillcolor=black!10](0,10){50}% {sqrt(x)*cos(x)*sin(x)} @@ -6063,7 +6152,7 @@ in postfix or algebraic notation (with \verb+algebraic=true+). \begin{LTXexample}[pos=t,preset=\centering] \psset{yunit=1.25cm,plotpoints=200} -\begin{pspicture}(-0.5,-1.5)(10,1.5) +\begin{pspicture}(-0.5,-1.5)(10,1.5) \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-1.5)(10,1.5) \psStep[algebraic,StepType=supremum,fillstyle=solid,fillcolor=black!10](0,10){50}% {sqrt(x)*cos(x)*sin(x)} @@ -6073,7 +6162,7 @@ in postfix or algebraic notation (with \verb+algebraic=true+). \begin{LTXexample}[pos=t,preset=\centering] \psset{unit=1.5cm,plotpoints=200} -\begin{pspicture}[plotpoints=200](-0.5,-3)(10,2.5) +\begin{pspicture}[plotpoints=200](-0.5,-3)(10,2.5) \psStep[algebraic,fillstyle=solid,fillcolor=yellow](0.001,9.5){40}{2*sqrt(x)*cos(ln(x))*sin(x)} \psStep[algebraic,StepType=Riemann,fillstyle=solid,fillcolor=blue](0.001,9.5){40}{2*sqrt(x)*cos(ln(x))*sin(x)} \psaxes[labelFontSize=\scriptstyle]{->}(0,0)(0,-2.75)(10,2.5) @@ -6086,22 +6175,24 @@ in postfix or algebraic notation (with \verb+algebraic=true+). %-------------------------------------------------------------------------------------- \section{\CMD{psplotTangent} and option \texttt{Tnormal}} %-------------------------------------------------------------------------------------- -There is an additional option, named \verb+Derive+ vor an alternative function (see -following example) to calculate the slope of the tangent. This will be in general the -first derivation, but can also be any other function. If this option is different to -to the default value \verb+Derive=default+, -then this function is taken to calculate the slope. For the other cases, \verb+pstricks-add+ -builds a secant with -0.00005<x<0.00005, calculates the slope and takes this for the -tangent. This maybe problematic in some cases of special functions or $x$ values, then it may be appropriate to use the -Derivate option. +There is an additional option, named \verb+Derive+ for an +alternative function (see following example) to calculate the +slope of the tangent. This will be in general the first +derivative, but can also be any other function. If this option is +different to to the default value \verb+Derive=default+, then this +function is taken to calculate the slope. For the other cases, +\verb+pstricks-add+ builds a secant with -0.00005<x<0.00005, +calculates the slope and takes this for the tangent. This may be +problematic in some cases of special functions or $x$ values, then +it may be appropriate to use the Derive option. The macro expects three parameters: \begin{description} \item[$x$]: the $x$ value of the function for which the tangent should be calculated \item[$dx$]: the $dx$ to both sides of the $x$ value -\item[$f(x)$]: the function in infix (with option \verb+algebraic+) or the default -postfix (PostScript) notation +\item[$f(x)$]: the function in infix (with option \verb+algebraic+) or the default +postfix (PostScript) notation \end{description} The following examples show the use of the algebraic option together with the Derive option. @@ -6163,8 +6254,8 @@ radian unit! \end{pspicture} \end{lstlisting} -The next example shows the use of \verb+Derive+ option to draw the perpendicular line of the -tangent. +The next example shows the use of the \verb+Derive+ option to draw +the perpendicular line to the tangent. \begin{LTXexample}[width=8cm,wide] \begin{pspicture}(-0.5,-0.5)(7.25,7.25) @@ -6177,8 +6268,8 @@ tangent. \end{pspicture} \end{LTXexample} -With setting the optional argument \texttt{Tnormal} one can plot the normal of -the tangent line. It always starts at the given point. +By setting the optional argument \texttt{Tnormal} one can plot the +normal of the tangent line. It always starts at the given point. %\resetOptions \begin{LTXexample}[width=8cm,wide] @@ -6197,13 +6288,14 @@ the tangent line. It always starts at the given point. \subsection{A \texttt{polarplot} example} %-------------------------------------------------------------------------------------- -Let's work with the classical cardioid : $\rho=2(1+\cos(\theta))$ -and $\displaystyle \frac{d\rho}{d\theta}=-2\sin(\theta)$. The Derive option always expects the -$\frac{d\rho}{d\theta}$ value and uses internally the equation for the derivation of implicit -defined functions: +Let's work with the classical cardioid : $r=2(1+\cos(\theta))$ and +$\displaystyle \frac{d r}{d\theta}=-2\sin(\theta)$. The Derive +option always expects the $\frac{d r}{d\theta}$ value and uses +internally the equation for the derivative of implicitly defined +functions: \[ -\frac{dy}{dx}=\frac{\rho\prime\cdot\sin\theta + x}{\rho\prime\cdot\cos\theta - y} +\frac{dy}{dx}=\frac{r^\prime\cdot\sin\theta + x}{r^\prime\cdot\cos\theta - y} \] where $x=r\cdot\cos\theta$ and $y=r\cdot\sin\theta$ @@ -6241,13 +6333,14 @@ where $x=r\cdot\cos\theta$ and $y=r\cdot\sin\theta$ \subsection{A \CMD{parametricplot} example} %-------------------------------------------------------------------------------------- -Let's work with a Lissajou curve : +Let's work with a Lissajou curve : $\displaystyle\left\{\begin{array}{l}x=3.5\cos(2t)\\y=3.5\sin(6t)\end{array}\right.$ whose derivative is : $\displaystyle\left\{\begin{array}{l}x=-7\sin(2t)\\y=21\cos(6t)\end{array}\right.$ -The parameter must be the letter $t$ instead of $x$ and when using the \verb+algebraic+ option -divide the two equations by a | (see example). +The parameter must be the letter $t$ instead of $x$ and when using +the \verb+algebraic+ option you must separate the two equations by +a | (see example). \begin{LTXexample}[pos=t,wide] \def\Lissa{t dup 2 RadtoDeg mul cos 3.5 mul exch 6 mul RadtoDeg sin 3.5 mul}% @@ -6276,15 +6369,14 @@ divide the two equations by a | (see example). \section{Successive derivatives of a function} -The new PostScript function \verb$Derive$ has been added for plotting -the succesive derivatives of a -function. It must be used wiht the \verb|algebaic| option. This function has two -arguments: +The new PostScript function \verb$Derive$ has been added for +plotting successive derivatives of a function. It must be used +with the \verb|algebraic| option. This function has two arguments: \begin{enumerate} -\item a positive integer with define the order of the derivative, obviously $0$ means the +\item a positive integer which defines the order of the derivative; obviously $0$ means the function itself! -\item a function of variable $x$ which can be any function using the common operators, +\item a function of variable $x$ which can be any function using common operators, \end{enumerate} Do not think that the derivative is approximated, the internal PostScript engine will @@ -6295,7 +6387,8 @@ The following diagram contains the plot of the polynomial: \[ f(x)=\sum_{i=0}^{14}\frac{(-1)^{i}x^{2i}}{i!}=1-\frac{x^2}{2}+\frac{x^4}{4!}-\frac{x^6}{6!}+\frac{x^8}{8!}- \frac{x^{10}}{10!}+\frac{x^{12}}{12!}-\frac{x^{14}}{14!}\] -and of its 15 first derivatives. It is the sequence definition of the cosine. +and of its first 15 derivatives. It is the sequence definition of +the cosine. \begin{LTXexample}[pos=t,wide,preset=\centering] @@ -6327,9 +6420,10 @@ and of its 15 first derivatives. It is the sequence definition of the cosine. \section{Variable step for plotting a curve} \subsection{Theory} -As you know with the \verb$\psplot$ macro, the curve is plotted using a piece wise -linear curve. The step is given by the parameter \texttt{plotpoints}. For -each step between $x_i$ and $x_{i+1}$, the area defined between the curve and its +As you know with the \verb$\psplot$ macro, the curve is plotted +using a piece-wise linear curve. The step is given by the +parameter \texttt{plotpoints}. For each step between $x_i$ and +$x_{i+1}$, the area defined between the curve and its approximation (a segment) is majored by this formula : \begin{minipage}[m]{.5\linewidth} @@ -6350,19 +6444,21 @@ $M_2(f)$ is a majorant of the second derivative of $f$ in the interval $[x_i;x_{ -The parameter \verb$VarStep$ (\verb$false$ by default) activates the variable step -algorithm. It is set to a tolerance defines by the parameter \verb$VarStepEpsilon$ -(\verb+default+ by default, accept real value). If this parameter is not set by the -user, then it is automatically computed using the default first step given by the -parameter \verb+plotpoints+. Then, for each step, $f''(x_n)$ and $f''(x_{n+1})$ are -computed and the smaller is used as $M_2(f)$, and then the step is approximated. This -means that the step is constant for a second order polynomials. +The parameter \verb$VarStep$ (\verb$false$ by default) activates +the variable step algorithm. It is set to a tolerance defined by +the parameter \verb$VarStepEpsilon$ (\verb+default+ by default, +accept real value). If this parameter is not set by the user, then +it is automatically computed using the default first step given by +the parameter \verb+plotpoints+. Then, for each step, $f''(x_n)$ +and $f''(x_{n+1})$ are computed and the smaller is used as +$M_2(f)$, and then the step is approximated. This means that the +step is constant for second order polynomials. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{The cosine} Different value for the tolerance from $0.01$ to $0.000\,1$, a factor $10$ between - each of them. In black, there is the classical \verb+psplot+ behavior, and in + each of them. In black, there is the classic \verb+psplot+ behavior, and in magenta the default variable step behavior. \begin{center} @@ -6391,9 +6487,10 @@ means that the step is constant for a second order polynomials. \clearpage -\subsection{The neperian Logarithm} +\subsection{The Napierian Logarithm} -A really classical example wich gives a bad beginning, the tolerance is set to $0.001$. +A really classic example which gives a bad beginning, the +tolerance is set to $0.001$. \begin{center} \bgroup @@ -6419,7 +6516,7 @@ A really classical example wich gives a bad beginning, the tolerance is set to $ \clearpage -\subsection{Sinus of the inverse of $x$} +\subsection{Sine of the inverse of $x$} Impossible to draw, but let's try! \begin{center} @@ -6515,7 +6612,7 @@ Just appreciate the difference between the normal behavior and the plotting with %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Successive derivatives of a polynom} +\subsection{Successive derivatives of a polynomial} \begin{center} \bgroup @@ -6672,9 +6769,9 @@ Just appreciate the difference between the normal behavior and the plotting with \resetOptions -\section{New math functions and their derivative} +\section{New math functions and their derivatives} -\subsection{The inverse sin and its derivative} +\subsection{The inverse sine and its derivative} \begin{center} \bgroup @@ -6769,7 +6866,7 @@ Just appreciate the difference between the normal behavior and the plotting with -\subsection{The inverse tangente and its derivative} +\subsection{The inverse tangent and its derivative} \begin{center} \bgroup @@ -6801,7 +6898,7 @@ Just appreciate the difference between the normal behavior and the plotting with \end{pspicture} \end{lstlisting} -\subsection{Hyperbolique functions} +\subsection{Hyperbolic functions} \begin{center} \bgroup @@ -6965,14 +7062,15 @@ Just appreciate the difference between the normal behavior and the plotting with %-------------------------------------------------------------------------------------- - A differential euqation of first order is like + A differential equation of first order is like \begin{align} y^\prime=f(x,y,y^\prime) \end{align} -where $y$ is a function of $x$. We define some vectors $Y=[y, y', \cdots , y^{(n-1)}]$ -und $Y^\prime=[y^\prime, y^{\prime\prime}, \cdots , y^{n}]$, depending to the order $n$. -The syntax of the macro is +where $y$ is a function of $x$. We define some vectors $Y=[y, y', +\cdots , y^{(n-1)}]$ and $Y^\prime=[y^\prime, y^{\prime\prime}, +\cdots , y^{n}]$, depending on the order $n$. The syntax of the +macro is \begin{lstlisting}[style=syntax] \psplotDiffEqn[options]{x0}{x1}{y0}{f(x,y,y',...)} @@ -7000,7 +7098,7 @@ The new options are: \item \param{whichord}: same as precedent for the ordinate, by default $y(0)$; \item \param{plotfuncx}: describe a ps function for the abscissa, parameter \param{whichabs} becomes useless; -\item \param{plotfuncy}: idem for ordoinate; +\item \param{plotfuncy}: idem for the ordinate; \item \param{buildvector}: boolean parameter for specifying the input-output of the $f$ description: \begin{description} @@ -7203,11 +7301,13 @@ the algortihm. \subsection{Equation of second order} -Here is the traditionnal simulation of two stars attracting each other according to -the classical gravitation law in $\displaystyle\frac{1}{r^2}$. In 2-Dimensions, the system to be -solved is composed of four second order differential equations. In order to be -described, each of them gives two first order equations, then we obtain a 8 sized vectorial -equation. In the following example the masses of the stars are 1 and 20. +Here is the traditional simulation of two stars attracting each +other according to the classical gravitation law in +$\displaystyle\frac{1}{r^2}$. In 2-Dimensions, the system to be +solved is composed of four second order differential equations. In +order to be described, each of them gives two first order +equations, then we obtain a 8 sized vectorial equation. In the +following example the masses of the stars are 1 and 20. \[ \left\{ @@ -7337,8 +7437,8 @@ equation. In the following example the masses of the stars are 1 and 20. \psplotDiffEqn[linecolor=blue, method=varrkiv, plotpoints=2, varsteptol=.0001, plotfuncy=dup 2 get dup mul exch 3 get dup mul add sqrt]{0}{8}{\InitCond}{\Grav} \end{pspicture} -\captionof{figure}{Gravitational interaction : vitessesspeed of the stars} -\egroup +\captionof{figure}{Gravitational interaction : speeds of the +stars} \egroup \end{center} \begin{lstlisting} @@ -7412,8 +7512,9 @@ with $y_0=1$: \subsubsection{$y'=\displaystyle\frac{2-ty}{4-t^2}$}% $ %-------------------------------------------------------------------------------------- -For the initial value $y(0)=1$ the exact solution is $y(x)=\displaystyle\frac{t+\sqrt{4-t^2}}{2}$. -The function $f$ described in PostScript code is like (y ist still on the stack): +For the initial value $y(0)=1$ the exact solution is +$y(x)=\displaystyle\frac{t+\sqrt{4-t^2}}{2}$. The function $f$ +described in PostScript code is like (y is still on the stack): \begin{lstlisting}[style=syntax] x %% y x mul %% x*y @@ -7531,7 +7632,7 @@ For $y(-1)=\frac{1}{e}$ we get $y(x)=e^{-x^2}$. %-------------------------------------------------------------------------------------- -\subsubsection{Spirale of Cornu} +\subsubsection{Spiral of Cornu} %-------------------------------------------------------------------------------------- The integrals of Fresnel : @@ -7539,7 +7640,7 @@ The integrals of Fresnel : y & =\int^t_0\sin\frac{\pi t^2}{2}\mathrm{d}t \\ \intertext{with} \dot{x} &= \cos\frac{\pi t^2}{2} \\ - \dot{y} & =\sin\frac{\pi t^2}{2} + \dot{y} & =\sin\frac{\pi t^2}{2} \end{align} \begin{lstlisting} @@ -7581,7 +7682,7 @@ where the parameters are defined by: \item[a] is the natural growth rate of rabbits in the absence of predation, \item[c] is the natural death rate of foxes in the absence of food (rabbits), \item[b] is the death rate per encounter of rabbits due to predation, -\item[e] is the efficiency of turning predated rabbits into foxes. +\item[e] is the efficiency of turning predated rabbits into foxes. \end{description} The Stella model representing the Lotka-Volterra model will be slightly more complex than the single species models we've dealt with before. The main difference is that our model will have two stocks (reservoirs), one for each species. Each species will have its own birth and death rates. In addition, the Lotka-Volterra model involves four parameters rather than two. All told, the Stella representation of the Lotka-Volterra model will use two stocks, four flows, four converters and many connectors. @@ -7591,7 +7692,7 @@ The Stella model representing the Lotka-Volterra model will be slightly more com \def\Faiglelapin{\Vaigle*(y[2]-y[0])/sqrt(y[1]^2+(y[2]-y[0])^2)|% -\Vaigle*y[1]/sqrt(y[1]^2+(y[2]-y[0])^2)|% -\Vlapin} -\def\Vlapin{1} \def\Vaigle{1.6} +\def\Vlapin{1} \def\Vaigle{1.6} \psset{unit=.7,subgriddiv=0,gridcolor=lightgray,method=adams,algebraic,% plotpoints=20,showpoints=true} \begin{pspicture}(-3,-8.25)(8,10)\psgrid[griddots=10] @@ -7613,7 +7714,7 @@ The Stella model representing the Lotka-Volterra model will be slightly more com \def\Faiglelapin{\Vaigle*(y[2]-y[0])/sqrt(y[1]^2+(y[2]-y[0])^2)|% -\Vaigle*y[1]/sqrt(y[1]^2+(y[2]-y[0])^2)|% -\Vlapin} -\def\Vlapin{1} \def\Vaigle{1.6} +\def\Vlapin{1} \def\Vaigle{1.6} \psset{unit=.7,subgriddiv=0,gridcolor=lightgray,method=adams,algebraic,% plotpoints=20,showpoints=true} \begin{pspicture}(-3,-8)(5,10)\psgrid[griddots=10] @@ -7653,15 +7754,15 @@ trigonometrical functions. \psplotDiffEqn[linecolor=magenta, plotpoints=11]{0}{2}{1 0}{\Funct} \psplotDiffEqn[linecolor=blue, plotpoints=101]{0}{2}{1 0}{\Funct} \psplotDiffEqn[linecolor=red, method=rk4, plotpoints=11]{0}{2}{1 0}{\Funct} - \psplot[linewidth=4\pslinewidth, linecolor=green]{0}{2}{Euler dup x exp + \psplot[linewidth=4\pslinewidth, linecolor=green]{0}{2}{Euler dup x exp exch x neg exp sub 2 div} %%sh(x) \psplotDiffEqn[linecolor=magenta, plotpoints=11]{0}{2}{0 1}{\Funct} \psplotDiffEqn[linecolor=blue, plotpoints=101]{0}{2}{0 1}{\Funct} \psplotDiffEqn[linecolor=red, method=rk4, plotpoints=11]{0}{2}{0 1}{\Funct} - \rput*(1.3,.9){\psline[linecolor=magenta](-.75cm,0)}\rput*[l](1.3,.9){\small\textsc{Euler} ordre 1 $h=1$} - \rput*(1.3,.8){\psline[linecolor=blue](-.75cm,0)}\rput*[l](1.3,.8){\small\textsc{Euler} ordre 1 $h=0{,}1$} - \rput*(1.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](1.3,.7){\small RK ordre 4 $h=1$} - \rput*(1.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](1.3,.6){\small solution exacte} + \rput*(1.3,.9){\psline[linecolor=magenta](-.75cm,0)}\rput*[l](1.3,.9){\small\textsc{Euler} order 1 $h=1$} + \rput*(1.3,.8){\psline[linecolor=blue](-.75cm,0)}\rput*[l](1.3,.8){\small\textsc{Euler} order 1 $h=0{,}1$} + \rput*(1.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](1.3,.7){\small RK order 4 $h=1$} + \rput*(1.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](1.3,.6){\small exact solution} \end{pspicture} \egroup \end{center} @@ -7678,15 +7779,15 @@ trigonometrical functions. \psplotDiffEqn[linecolor=magenta, plotpoints=11]{0}{2}{1 0}{\Funct} \psplotDiffEqn[linecolor=blue, plotpoints=101]{0}{2}{1 0}{\Funct} \psplotDiffEqn[linecolor=red, method=rk4, plotpoints=11]{0}{2}{1 0}{\Funct} - \psplot[linewidth=4\pslinewidth, linecolor=green]{0}{2}{Euler dup x exp + \psplot[linewidth=4\pslinewidth, linecolor=green]{0}{2}{Euler dup x exp exch x neg exp sub 2 div} %%sh(x) \psplotDiffEqn[linecolor=magenta, plotpoints=11]{0}{2}{0 1}{\Funct} \psplotDiffEqn[linecolor=blue, plotpoints=101]{0}{2}{0 1}{\Funct} \psplotDiffEqn[linecolor=red, method=rk4, plotpoints=11]{0}{2}{0 1}{\Funct} - \rput*(1.3,.9){\psline[linecolor=magenta](-.75cm,0)}\rput*[l](1.3,.9){\small\textsc{Euler} ordre 1 $h=1$} - \rput*(1.3,.8){\psline[linecolor=blue](-.75cm,0)}\rput*[l](1.3,.8){\small\textsc{Euler} ordre 1 $h=0{,}1$} - \rput*(1.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](1.3,.7){\small RK ordre 4 $h=1$} - \rput*(1.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](1.3,.6){\small solution exacte} + \rput*(1.3,.9){\psline[linecolor=magenta](-.75cm,0)}\rput*[l](1.3,.9){\small\textsc{Euler} order 1 $h=1$} + \rput*(1.3,.8){\psline[linecolor=blue](-.75cm,0)}\rput*[l](1.3,.8){\small\textsc{Euler} order 1 $h=0{,}1$} + \rput*(1.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](1.3,.7){\small RK order 4 $h=1$} + \rput*(1.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](1.3,.6){\small exact solution} \end{pspicture} \end{lstlisting} @@ -7707,8 +7808,8 @@ trigonometrical functions. \psplotDiffEqn[linecolor=red,method=rk4, plotpoints=31]{0}{\quatrepi}{0 1}{\Funct} \rput*(3.3,.9){\psline[linecolor=magenta](-.75cm,0)}\rput*[l](3.3,.9){\small Euler order 1 $h=1$} \rput*(3.3,.8){\psline[linecolor=blue](-.75cm,0)}\rput*[l](3.3,.8){\small Euler order 1 $h=0{,}1$} - \rput*(3.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](3.3,.7){\small RK ordre 4 $h=1$} - \rput*(3.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](3.3,.6){\small solution exacte} + \rput*(3.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](3.3,.7){\small RK order 4 $h=1$} + \rput*(3.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](3.3,.6){\small exact solution} \end{pspicture} \egroup \end{center} @@ -7726,8 +7827,8 @@ trigonometrical functions. \psplotDiffEqn[linecolor=red,method=rk4, plotpoints=31]{0}{\quatrepi}{0 1}{\Funct} \rput*(3.3,.9){\psline[linecolor=magenta](-.75cm,0)}\rput*[l](3.3,.9){\small Euler order 1 $h=1$} \rput*(3.3,.8){\psline[linecolor=blue](-.75cm,0)}\rput*[l](3.3,.8){\small Euler order 1 $h=0{,}1$} - \rput*(3.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](3.3,.7){\small RK ordre 4 $h=1$} - \rput*(3.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](3.3,.6){\small solution exacte} + \rput*(3.3,.7){\psline[linecolor=red](-.75cm,0)}\rput*[l](3.3,.7){\small RK order 4 $h=1$} + \rput*(3.3,.6){\psline[linecolor=green](-.75cm,0)}\rput*[l](3.3,.6){\small exact solution} \end{pspicture} \end{lstlisting} @@ -7735,11 +7836,11 @@ trigonometrical functions. \subsubsection{The mechanical pendulum: $y''=-\frac{g}{l}\sin(y)$}% $ %-------------------------------------------------------------------------------------- -Pour des faibles oscillations $\sin(y)\simeq y$: +For small oscillations $\sin(y)\simeq y$: \[ y(x)=y_0\cos\left(\sqrt{\frac{g}{l}}x\right) \] -The function $f$ is writen in PostScript code: +The function $f$ is written in PostScript code: \begin{lstlisting}[style=syntax] exch RadtoDeg sin -9.8 mul %% y' -gsin(y) @@ -7785,7 +7886,7 @@ exch RadtoDeg sin -9.8 mul %% y' -gsin(y) For $y_0=5$ and $y'_0=0$ the solution is: -\[ +\[ 5e^{-\frac{x}{8}}\left(\cos\left(\omega x\right)+\frac{\sin(\omega x)}{8\omega}\right) \mbox{ avec } \omega=\frac{\sqrt{127}}{8} \] @@ -7844,7 +7945,7 @@ sub %% y' y'/-4-2y \subsubsection{Gravitation: two stars and more} %-------------------------------------------------------------------------------------- -\iffalse +\iffalse L'exemple le plus complexe dans l'�riture de $f$, mais aussi dans l'�uilibrage de la simulation\footnote{n'h�itez pas �modifier des param�res, ajouter des astres, et vous verrez que le syst�e solaire est miraculeux : il est stable !}. $f$ est @@ -7889,7 +7990,7 @@ est remarquable. dup 1 sub dup NbAstor mul 3 1 roll mul 2 div sub 3 1 roll sub add 1 sub cvi get dup sqrt mul div exch 1 index mul 3 1 roll mul exch yf add /yf exch def xf add /xf exch def } ifelse - } for pop pop xf neg yf neg + } for pop pop xf neg yf neg } for NbAstor 4 mul array astore } @@ -7929,47 +8030,48 @@ est remarquable. %-------------------------------------------------------------------------------------- \begin{filecontents}{matrix.dat} /dotmatrix [ % -0 1 1 0 0 0 0 1 1 1 -0 1 1 0 1 1 1 0 1 0 -1 0 1 1 0 0 0 1 1 0 -0 0 1 0 0 0 0 0 1 1 -1 1 1 1 1 0 1 0 0 1 -0 0 1 1 0 1 0 1 1 1 -1 0 0 0 1 1 0 0 0 1 -0 0 0 1 1 1 0 1 1 0 -1 1 0 0 0 0 1 0 0 1 -1 0 1 0 0 1 1 1 0 0 -] def +0 1 1 0 0 0 0 1 1 1 +0 1 1 0 1 1 1 0 1 0 +1 0 1 1 0 0 0 1 1 0 +0 0 1 0 0 0 0 0 1 1 +1 1 1 1 1 0 1 0 0 1 +0 0 1 1 0 1 0 1 1 1 +1 0 0 0 1 1 0 0 0 1 +0 0 0 1 1 1 0 1 1 0 +1 1 0 0 0 0 1 0 0 1 +1 0 1 0 0 1 1 1 0 0 +] def \end{filecontents} -This macro allows to visualize a matrix. The datafile must be defined as a PostScript matrix -named \verb+/dotmatrix+: +This macro allows you to visualize a matrix. The datafile must be +defined as a PostScript matrix named \verb+/dotmatrix+: \begin{lstlisting}[style=syntax] /dotmatrix [ % <------------ important line 0 1 1 0 0 0 0 1 1 1 -0 1 1 0 1 1 1 0 1 0 -1 0 1 1 0 0 0 1 1 0 -0 0 1 0 0 0 0 0 1 1 -1 1 1 1 1 0 1 0 0 1 -0 0 1 1 0 1 0 1 1 1 -1 0 0 0 1 1 0 0 0 1 -0 0 0 1 1 1 0 1 1 0 -1 1 0 0 0 0 1 0 0 1 +0 1 1 0 1 1 1 0 1 0 +1 0 1 1 0 0 0 1 1 0 +0 0 1 0 0 0 0 0 1 1 +1 1 1 1 1 0 1 0 0 1 +0 0 1 1 0 1 0 1 1 1 +1 0 0 0 1 1 0 0 0 1 +0 0 0 1 1 1 0 1 1 0 +1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 ] def % <------------ important line \end{lstlisting} -Important is only the value 0, in this case there happens nothing and for all other -cases a dot is printed. The syntax of the macro is: +Only the value 0 is important, in which case nothing happens, and +for all other cases a dot is printed. The syntax of the macro is: \begin{lstlisting}[style=syntax] \psMatrixPlot[options]{rows}{columns}{data file} \end{lstlisting} -The matrix is scanned line by line from the the first one to the last. In general it -looks vice versa than the above listed matrix, the first row $0\,1\,1\,0\,0\,0\,0\,1\,1\,1$ -is the first plotted line ($y=1$). With the option \verb+ChangeOrder=true+ it looks exactly like -the above view. +The matrix is scanned line by line from the the first one to the +last. In general it appears as a bottom-to-top version of the +above listed matrix, the first row $0\,1\,1\,0\,0\,0\,0\,1\,1\,1$ +is the first plotted line ($y=1$). With the option +\verb+ChangeOrder=true+ it looks exactly like the above view. \bgroup \begin{center} @@ -8004,7 +8106,8 @@ the above view. \section{\CMD{psforeach}} %-------------------------------------------------------------------------------------- -The macro \CMD{psforeach} allows a loop with an individuell increment. +The macro \CMD{psforeach} allows a loop with an individual +increment. \begin{lstlisting}[style=syntax] \psforeach{variable}{value list}{action} @@ -8022,10 +8125,11 @@ The macro \CMD{psforeach} allows a loop with an individuell increment. \section{\CMD{resetOptions}} %-------------------------------------------------------------------------------------- -Sometimes it is difficult to know what options, which are changed inside a long document, -are different to the default one. With this -macro all options depending to \verb+pst-plot+ can be reset. This depends to all -options of the packages \verb+pstricks+, \verb+pst-plot+ and \verb+pst-node+. +Sometimes it is difficult to know what options, which are changed +inside a long document, are different to the default ones. With +this macro all options belonging to \verb+pst-plot+ can be reset. +This refers to all options of the packages \verb+pstricks+, +\verb+pst-plot+ and \verb+pst-node+. \appendix @@ -8077,17 +8181,18 @@ PostScript uses the stack system and the LIFO system, "'Last In, First Out"`. %-------------------------------------------------------------------------------------- \section{Credits} %-------------------------------------------------------------------------------------- -{Hendri Adriaens | } +{Hendri Adriaens | } {Stefano Baroni | } {Martin Chicoine | } -{Ulrich Dirr | } +{Gerry Coombes | } +{Ulrich Dirr | } {Christophe Fourey | } {Hubert G\"a\ss lein |} -{Denis Girou | } -{Peter Hutnick | } -{Christophe Jorssen | } -{Uwe Kern | } -{Manuel Luque | } +{Denis Girou | } +{Peter Hutnick | } +{Christophe Jorssen | } +{Uwe Kern | } +{Manuel Luque | } {Jens-Uwe Morawski |} {Tobias N\"ahring |} {Rolf Niepraschk |} @@ -8116,4 +8221,4 @@ See file Changes %\lstinputlisting{pstricks-add.tex} -\end{document}
\ No newline at end of file +\end{document} 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 430743d66fe..f2484f32e49 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 38 2008-07-18 16:23:28Z herbert $ +%% $Id: pstricks-add.tex 39 2008-08-27 21:17:28Z herbert $ %% %% %% This is file `pstricks-add.tex', @@ -29,8 +29,8 @@ \ifx\MultidoLoaded\endinput\else \input multido \fi \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi % -\def\fileversion{3.08} -\def\filedate{2008/08/06} +\def\fileversion{3.10} +\def\filedate{2008/08/27} \message{`pstricks-add' v\fileversion, \filedate\space (dr,hv)} % \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax @@ -1047,7 +1047,9 @@ \pst@number\psyunit div /#1.y ED % /#1.y in user coor \pst@number\psxunit div /#1.x ED } % /#1.x in user coor % -\define@key[psset]{pstricks-add}{lineAngle}{\psset{armB=0.5}\def\psk@lineAngle{#1}}% +\define@key[psset]{pstricks-add}{lineAngle}{% + \ifdim#1pt=\z@\else\psset{armB=0.5}\fi + \def\psk@lineAngle{#1}}% %\psset{lineAngle=0}% % \pst@def{NCDiag}<{ @@ -1077,14 +1079,13 @@ } ifelse } if ArmB 0 ne { xB1 yB1 } if - xB2 yB2 - xA2 yA2 - ArmA 0 ne { xA1 yA1 } if + xB2 yB2 xA2 yA2 + ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end - /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def - /LPutPos { LPutLines } def - /HPutPos { HPutLines } def - /VPutPos { VPutLines } def + /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def + /LPutPos { LPutLines } def + /HPutPos { HPutLines } def + /VPutPos { VPutLines } def }> % hv 2003-12-22 \pst@def{NCDiagg}<{ @@ -2164,7 +2165,7 @@ \setbox\z@=\vbox{% save all in a box \ifcase\psk@xlabelPos \vskip-\pst@xticksizeA\vskip\pslabelsep\or - \vskip-1ex\or + \vskip-1ex\vskip-\pslabelsep\or \vskip-\pst@xticksizeB\vskip-\pslabelsep\vskip-1ex \fi \ifnum\pst@cnta<\z@ \pst@dimb=-\pst@dimb\fi @@ -2218,10 +2219,12 @@ \vbox to \z@{% \vss\hbox to\z@{% \ifcase\psk@ylabelPos% and also check for -0 - \hss\ifdim\nA pt=\z@% - \pst@@@vlabel{0}\else\pst@@@vlabel{\nA}\fi\hskip\pslabelsep\hskip-\pst@yticksizeA\or% - \hskip\pslabelsep\hss\ifdim\nA pt=\z@\pst@@@vlabel{0}\else\pst@@@vlabel{\nA}\fi\hss\or% % right labels - \hskip\pst@yticksizeB\hskip\pslabelsep\ifdim\nA pt=\z@\pst@@@vlabel{0}\else\pst@@@vlabel{\nA}\fi% + \hss\ifdim\nA pt=\z@ \pst@@@vlabel{0}\else\pst@@@vlabel{\nA}\fi% + \hskip\pslabelsep\hskip-\pst@yticksizeA\or% top + \hss\ifdim\nA pt=\z@\pst@@@vlabel{0}\else\pst@@@vlabel{\nA}\fi% + \ifdim\pslabelsep=\z@\hss\else\kern-\pslabelsep\fi\or% axis + \hskip\pst@yticksizeB\hskip\pslabelsep% + \ifdim\nA pt=\z@\pst@@@vlabel{0}\else\pst@@@vlabel{\nA}\fi% bottom \fi}\vss}% }\vss}% } @@ -3350,6 +3353,9 @@ \ifx\chart@option\@empty\else\psk@@chartUserColor#2,#3,\@nil\fi}% \psset[pstricks-add]{userColor={}} +\define@key[psset]{pstricks-add}{chartNodeI}{\def\psk@chartNodeI{#1}} +\define@key[psset]{pstricks-add}{chartNodeO}{\def\psk@chartNodeO{#1}} +\psset[pstricks-add]{chartNodeI=0.75,chartNodeO=1.5} \def\psChart{\pst@object{psChart}} \def\psChart@i#1#2#3{% @@ -3423,20 +3429,24 @@ \global\@chartSepfalse% \psforeach{\chart@tempC}{\psk@chartSepValues}{\ifnum\chart@tempC=\the\pst@cnta \global\@chartSeptrue\fi}% - \if@chartSep + \if@chartSep% \pswedge[linecolor={chartFillColor\the\pst@cnta},fillstyle=solid,fillcolor={chartFillColor\the\pst@cnta}]% (\psk@chartSep pt;\pst@number\pst@dimo){\pst@chartRadius}{\pst@number\pst@dimn}{\pst@number\pst@dimm}% \pst@dima=\pst@chartRadius\advance\pst@dima by \psk@chartSep pt \pnode(\pst@dima;\pst@number\pst@dimo){psChart\the\pst@cnta}% - \pnode(.75\pst@dima;\pst@number\pst@dimo){psChartI\the\pst@cnta}% - \pnode(1.5\pst@dima;\pst@number\pst@dimo){psChartO\the\pst@cnta}% + \pst@dimb=\psk@chartNodeI\pst@dima + \pst@dimc=\psk@chartNodeO\pst@dima + \pnode(\pst@dimb;\pst@number\pst@dimo){psChartI\the\pst@cnta}% + \pnode(\pst@dimc;\pst@number\pst@dimo){psChartO\the\pst@cnta}% \else \pswedge[linecolor={chartFillColor\the\pst@cnta},fillstyle=solid,fillcolor={chartFillColor\the\pst@cnta}]% {\pst@chartRadius}{\pst@number\pst@dimn}{\pst@number\pst@dimm} \pnode(\pst@chartRadius;\pst@number\pst@dimo){psChart\the\pst@cnta}% - \pst@dima=\pst@chartRadius - \pnode(.75\pst@dima;\pst@number\pst@dimo){psChartI\the\pst@cnta}% - \pnode(1.5\pst@dima;\pst@number\pst@dimo){psChartO\the\pst@cnta}% + \pst@dima=\pst@chartRadius% + \pst@dimb=\psk@chartNodeI\pst@dima + \pst@dimc=\psk@chartNodeO\pst@dima + \pnode(\pst@dimb;\pst@number\pst@dimo){psChartI\the\pst@cnta}% + \pnode(\pst@dimc;\pst@number\pst@dimo){psChartO\the\pst@cnta}% \fi% \global\let\chart@alpha\chart@tempA% \global\advance\chart@Toggle by \@ne @@ -3671,7 +3681,9 @@ braceWidth=2\pslinewidth, bracePos=0.5, braceWidthInner=10\pslinewidth, - braceWidthOuter=10\pslinewidth + braceWidthOuter=10\pslinewidth, + chartNodeI=0.75, + chartNodeO=1.5 } \psset{% %%%% pstricks %%%%%%%% |