summaryrefslogtreecommitdiff
path: root/graphics/pstricks/base/doc/pst-news08.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pstricks/base/doc/pst-news08.tex')
-rw-r--r--graphics/pstricks/base/doc/pst-news08.tex862
1 files changed, 862 insertions, 0 deletions
diff --git a/graphics/pstricks/base/doc/pst-news08.tex b/graphics/pstricks/base/doc/pst-news08.tex
new file mode 100644
index 0000000000..e4dd6dfce2
--- /dev/null
+++ b/graphics/pstricks/base/doc/pst-news08.tex
@@ -0,0 +1,862 @@
+\documentclass[11pt]{article}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{pst-news}
+%
+\begin{document}
+\title{\texttt{PSTricks -- 2008}\\ new macros and bugfixes for the
+basic packages \nxLFile{pstricks}, \nxLFile{pst-plot}, \nxLFile{pst-tree},\\ and \nxLFile{pst-node}}
+\author{Herbert Voß\thanks{%
+\url{Herbert.Voss@pstricks.de}; \newline thanks to Patrick Drechsler.}}
+\date{\today}
+
+\maketitle
+
+\clearpage
+\tableofcontents
+
+\clearpage
+\part{\texttt{pstricks} -- package}
+
+%--------------------------------------------------------------------------------------
+\section{\texttt{pstricks.sty}}
+%--------------------------------------------------------------------------------------
+
+\subsection{Error messages}
+\begin{itemize}
+\item Loading the package \LPack{pstricks} by \LaTeX\ will now write a message
+into the file list of file version and date for the file \LFile{pstricks.pro}.
+\item A frequently done error is choosing a file name for the document, which is
+already a name of one PSTricks package, e.\,g. \LFile{pstricks.tex}. The \Index{error message}
+in the log file was not really helpful. There is now an extended message
+(example for a dcoument file called \LFile{pstricks.tex}):
+{\small\begin{verbatim}
+! LaTeX Error: `pstricks.tex' is a forbidden name for your document,
+ it is already a name of a package.
+
+See the LaTeX manual or LaTeX Companion for explanation.
+Type H <return> for immediate help.
+ ...
+
+l.13 \documentclass
+ {article}
+? H
+Choose another name for your document
+\end{verbatim}
+}
+\end{itemize}
+
+\subsection{Optional arguments}
+\LPack{pstricks} supports \Index{transparent colors} with Ghostscript's \LPS{.setopacityalpha},
+\LPS{.setblendmode}, and \LPS{.setshapealpha}. These functions are not known to
+\Index{V\TeX} or Adobes \Index{Distiller}. The optional argument \Loption{vtex} disables transparencies
+and \Loption{distiller} overrides the \Index{Ghostscript} functions with the ones from the \Index{Distiller}.
+
+
+
+\clearpage
+%--------------------------------------------------------------------------------------
+\section{\texttt{pstricks.tex} (\PSTfileversion -- \PSTfiledate)}
+%--------------------------------------------------------------------------------------
+
+\subsection{Makro \cs{psDEBUG}}
+\texttt{pstricks.tex} defines the option \texttt{PstDebug=0|1}, which can be used for
+debugging. The new macro \cs{psDEBUG} makes it easier to write some debugging
+information into the package files. The macro is only valid, if \texttt{PstDebug=1}
+is set, otherwise the macro does nothing.
+
+\begin{verbatim}
+\psDEBUG[optional arg]{text}
+\end{verbatim}
+
+\cs{psDEBUG} writes the argument \texttt{text} into the log file.
+Without an optional argument the word \texttt{pstricks} is used. The following output
+of the log file
+
+\begin{lstlisting}
+...
+<key:xticksize>: setting ticksize to max
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <7> on input line 26.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <5> on input line 26.
+<pst@@hlabels>: xticksizeC=0.0pt
+...
+\end{lstlisting}
+
+was possible with \verb+\psset{PstDebug=1}+\footnote{Can also be used locally for a macro when used as optional argument
+in the usual way.}
+and inside of \texttt{pstricks-add} with
+(only the first for example):
+\begin{lstlisting}
+...
+ \psDEBUG[key:ticksize]{setting ticksize}
+...
+\end{lstlisting}
+
+
+
+\subsection{Option \texttt{shift}}
+The optional argument \Lkeyword{shift} can be used for a vertical alignment of the
+\Lenv{pspicture} box. With \Lkeyword{shift}=\Lkeyval{*}, instead of a value or a length
+it is possible to center the \Lenv{pspicture} box vertically to the baseline
+of the current line.
+
+\begin{LTXexample}[width=4cm]
+\usepackage{pstricks}
+\rule{5mm}{0.5pt}%
+\psframebox{%
+\begin{pspicture}[showgrid=true,
+ shift=*](-0.3,-0.4)(3.2,3.3)
+ \psarc[showpoints=true](1,1){2}{-45}{120}
+\end{pspicture}}\rule{5mm}{0.5pt}
+\end{LTXexample}
+
+\subsection{Option \texttt{gridfont}}
+By default the \Index{grid label}s were printed always in \Index{Helvetica}. With the new keyword \Lkeyword{gridfont}
+one can define another \Index{PostScript Font}. Available are at least
+
+\medskip
+{\ttfamily\noindent
+\Lkeyval{Helvetica} (default) -- \Lkeyval{Helvetica-Narrow} -- \Lkeyval{Times-Roman} -- \Lkeyval{Courier} -- \Lkeyval{AvantGard} --\Lkeyval{NewCenturySchlbk} --
+\Lkeyval{Palatino-Roman} -- \Lkeyval{Bookman-Demi} -- \linebreak \Lkeyval{ZapfDingbats} -- \Lkeyval{Symbol}}
+
+\begin{LTXexample}[width=4cm]
+\usepackage{pstricks}
+\begin{pspicture}[showgrid=true](3,2)
+\end{pspicture}\\[20pt]
+\begin{pspicture}(3,2)
+ \psgrid[style=gridstyle,gridfont=AvantGard-Demi]
+\end{pspicture}\\[20pt]
+\begin{pspicture}(3,2)
+ \psgrid[style=gridstyle,gridfont=ZapfDingbats]
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{\texttt{linejoin}}
+Connecting lines can be done in several ways and is controlled on PS level
+by the \LPS{setlinejoin} command. With this version of PSTricks it is
+possible to controll this by an optional argument, called \Lkeyword{linejoin}.
+It is preset to 0 and can take values of 0,1,2. Other values will have
+no effect.
+
+\begin{LTXexample}[width=4cm]
+\psset{linewidth=3mm,unit=0.8}
+\begin{pspicture}[showgrid=true](3,2)
+ \psline(0,0)(1,2)(2,0)(3,2)
+\end{pspicture}\\[10pt]
+\begin{pspicture}[showgrid=true](4,2)
+ \psline[linejoin=1](0,0)(1,2)(2,0)(3,2)(4,0)%
+\end{pspicture}\\[10pt]
+\begin{pspicture}[showgrid=true](3,2)
+ \psline[linejoin=2](0,0)(1,2)(2,0)(3,2)%
+\end{pspicture}
+\end{LTXexample}
+
+\clearpage
+\subsection{\texttt{linecap}}
+The value of \Lkeyword{linecap} determines how the line ends are drawn:
+
+\begin{description}
+\item[0] lines are cut (default)
+\item[1] lines are ended by a filled semicircle of radius 0.5$\cdot$\Ldim{pslinewidth}
+\item[2] lines are ended by a filled half square of radius 0.5$\cdot$\Ldim{pslinewidth}
+\end{description}
+
+The following example shows that using \Lkeyword{linecap} for lines is the same
+than using the \Index{arrow} option.
+
+\begin{LTXexample}[width=4cm]
+\begin{pspicture}[showgrid=true](4,4)%
+ \psset{linewidth=5mm}
+ \psline[arrows=C-C](0,3.75)(4,3.75)
+ \psline[linecap=2](0,3)(4,3)
+ \psline[arrows=c-c](0,2.25)(4,2.25)
+ \psline[linecap=1](0,1.5)(4,1.5)
+ \psline[arrows=-](0,0.75)(4,0.75)
+ \psline(4,0)
+\end{pspicture}
+\end{LTXexample}
+
+Using this optional argument makes only sense in some special cases, because
+it is the same as the \Index{arrow type} \Lkeyval{c-c}. But the arrows are not part
+of the \Index{current path} and \Index{filling} an \Index{open curve} with the \Lkeyword{linecap} option
+is different to a curve using the \Lkeyval{c-c} arrow.
+
+\begin{LTXexample}[width=3cm,wide]
+\psset{unit=5cm,linewidth=5mm}
+\begin{pspicture}(-0.2,-0.6)(0.2,0.5)%
+\def\curve{\pscurve(-.1,.1)(-.15,.15)(0,.2)(.15,.15)(.1,.1)}
+\rput(0,.2){\psset{arrows=c-c}\curve}
+\rput(0,-.2){%
+ \psset{fillstyle=solid,fillcolor=red,arrows=c-c}
+ \curve}
+\rput(0,-.6){%
+ \psset{fillstyle=solid,fillcolor=red,linecap=1}
+ \curve}
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{New arrowtype \texttt{D>} and \texttt{D>D>}}
+All arrows are drawn as polygons. The new arrow type \Lkeyval{D>} or \Lkeyval{<D} for the other way round,
+draws its lines as bezier curves, which looks nicer for big arrows.
+
+\begin{LTXexample}[width=4cm,wide]
+\psset{arrowscale=5}
+\begin{pspicture}(4,2)
+\psline{<D<D-D>D>}(0,2)(4,2)
+\psline[arrows=<-D>,arrowlength=2](0,1)(4,1)
+\psline[arrowinset=0]{<D-D>}(0,0.25)(4,0.25)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{Fill style \texttt{penrose}}
+
+The valid optional arguments are \texttt{penrose}, \texttt{penrose*}, and \texttt{hatchcolor}.
+The star version is only seen, if there is a fillcolor or a background different to white.
+
+\begin{LTXexample}[pos=t,wide]
+\begin{pspicture}(3,3)
+\psframe[fillstyle=penrose](3,3)
+\end{pspicture} \qquad
+\begin{pspicture}(3,3)
+\psframe[fillstyle=penrose,psscale=0.5](3,3)
+\end{pspicture} \qquad
+\begin{pspicture}(3,3)
+\psccurve[fillstyle=penrose*,fillcolor=red!30,hatchcolor=blue](0,1.5)(1.5,3)(3,1.5)(1.5,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{Transparent colors}
+The package \LPack{pstricks-add} already defined a fillstyle for
+transparency colors by using the \Index{Ghostscript}'s \Index{blendmode}.
+It now moves into the main \LPack{pstricks} package, together with
+another possibility for creating transparent colors.
+Transparency is only seen with the \Index{PDF} output (version 1.4 or greater),
+as nearly all PostScript viewer cannot show transparencies.
+
+Loading the \LPack{pstricks} package with the option \Loption{vtex}, disables
+the transparency effekts and everything works as before.
+
+\subsubsection{Options \texttt{strokeopacity} and \texttt{opacity}}
+For the existing fill style \Lkeyval{solid} the new option \Lkeyword{opacity}
+can be used to get also transparent colors. It is predefined by 1 ($0\ldots1$), which
+is the old behaviour, no \Index{transpareny}. The option is valid only for PostScripts
+fill commands. Lines and curves can be transparent with setting the option\index{transparent lines}
+\Lkeyword{strokeopacity}, which can have a different value than the \Lkeyword{opacity} option.
+
+\begin{LTXexample}[width=4cm,wide]
+\begin{pspicture}[linewidth=1cm](4,4)
+ \psline[linecolor=red](0,0)(4,4)
+ \psline[linecolor=blue,strokeopacity=0.5](0,4)(4,0)
+ \psline[linecolor=green,strokeopacity=0.5](0,3.5)(4,3.5)
+ \psline[linecolor=yellow,strokeopacity=0.5](0,0.5)(4,0.5)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=4cm,wide]
+\begin{pspicture}[linewidth=1cm](4,4)
+\psline[linecolor=red](0,0)(4,4)
+\pscircle*[opacity=0.5](2,2){2}
+\psline[linecolor=blue,strokeopacity=0.6](0,4)(4,0)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=4cm,wide]
+\begin{pspicture}[linewidth=3mm](4,5.5)
+ \multido{\rA=0.0+0.5}{9}{%
+ \psline[linecolor=red!40](\rA,0)(\rA,5)}
+ \multido{\rA=0.0+0.5,\rB=0.0+0.1}{11}{%
+ \psline[arrows=<D-D>,linecolor=blue,
+ linewidth=5pt,arrowscale=1.5,
+ strokeopacity=\rB](0,\rA)(4,\rA)}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[width=5cm,wide]
+\begin{pspicture}(5,5)
+ \psset{fillstyle=solid}
+ \psframe[fillcolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,opacity=0.7](2,2)(5,5)
+ \psframe[fillcolor=green,opacity=0.7](1,0)(4,3)
+ \pscircle[fillcolor=cyan,
+ opacity=0.5](1.5,3.5){1.25}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}[width=5cm,wide]
+\begin{pspicture}(5,5)
+ \psset{fillstyle=solid}
+ \psframe[fillcolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,opacity=0.3](2,2)(5,5)
+ \psframe[fillcolor=green,opacity=0.3](1,0)(4,3)
+ \pscircle[fillcolor=cyan,
+ opacity=0.5](1.5,3.5){1.25}
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\subsubsection{Fill style \texttt{shape}}
+There is now one more \Index{fill style} for \Index{transparent colors}: \Lkeyword{shape}
+with using the \Lkeyword{shapealpha} value and one of the possible blendmodes:
+\begin{verbatim}
+ /Normal ->0
+ /Compatible ->1
+ /Screen ->2
+ /Multiply ->3
+\end{verbatim}
+
+
+The fill style \Lkeyval{solid} uses
+\Index{Ghostscript}'s \LPS{.setopacityalpha} function
+and the new style \Lkeyval{shape} and the \Lkeyword{blendmode} together with \LPS{.setshapealpha}.
+\Lkeyword{shapealpha} is predefined
+with 0.6 and both alpha values can be chosen from the range $0\le\alpha\le1$.
+
+\begin{pspicture}(5,5)% default blendmode
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{0}}
+\end{pspicture}
+\hfill
+\begin{pspicture}(5,5)
+ \psset{blendmode=1}% type /Compatible
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{1}}
+\end{pspicture}
+
+\begin{pspicture}(5,5)
+ \psset{blendmode=2}% type /Screen
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{2}}
+\end{pspicture}
+\hfill
+\begin{pspicture}(5,5)
+ \psset{blendmode=3}% type /Multiply
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{3}}
+\end{pspicture}
+
+\begin{lstlisting}
+\begin{pspicture}(5,5)% default blendmode
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{0}}
+\end{pspicture}
+\hfill
+\begin{pspicture}(5,5)
+ \psset{blendmode=1}% type /Compatible
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{1}}
+\end{pspicture}
+
+\begin{pspicture}(5,5)
+ \psset{blendmode=2}% type /Screen
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{2}}
+\end{pspicture}
+\hfill
+\begin{pspicture}(5,5)
+ \psset{blendmode=3}% type /Multiply
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+ \rput(1.5,3.5){\huge\textbf{3}}
+\end{pspicture}
+\end{lstlisting}
+
+
+\iffalse
+\begin{LTXexample}[width=5cm,wide]
+\begin{pspicture}(5,5)
+ \psset{blendmode=4}% type /Hardlight
+ \psframe*[linecolor=red](0,1)(3,4)
+ \psframe[fillcolor=blue,fillstyle=shape](2,2)(5,5)
+ \psframe[fillcolor=green,fillstyle=shape](1,0)(4,3)
+ \pscircle[fillcolor=cyan,fillstyle=shape,
+ shapealpha=0.3](1.5,3.5){1.25}
+\end{pspicture}
+\end{LTXexample}
+
+\fi
+
+\clearpage
+
+\subsection{\nxLcs{addtopsstyle}}
+\begin{verbatim}
+\addtopsstyle{style-name}{settings}
+\end{verbatim}
+
+This macro allows to add some more settings to an existing \Index{style}.
+If the style is not defined, then \Lcs{addtopsstyle} behaves like the
+already defined \Lcs{newpsstyle} macro.
+
+\begin{LTXexample}[width=5cm,wide]
+\newpsstyle{Fiber}{linewidth=2pt}
+\begin{pspicture}(5,5)
+ \psline[style=Fiber](0,0)(5,1)
+ \addtopsstyle{Fiber}{linecolor=green}
+ \psline[style=Fiber](0,1)(5,2)
+ \addtopsstyle{Fiber}{linestyle=dotted}
+ \psline[style=Fiber](0,2)(5,3)
+ \addtopsstyle{Fiber}{}
+ \psline[style=Fiber](0,3)(5,4)
+ \addtopsstyle{Fibber}{linecolor=red}
+ \psline[style=Fibber](0,4)(5,5)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+
+\subsection{\nxLcs{pscircleOA}}
+\begin{verbatim}
+\pscircleOA[settings](xO,yO)(xA,yA)
+\end{verbatim}
+
+$(x_0, y_0)$ is the center and $(x_A, y_A)$ a given point of the
+circle. The radius is calculated by \TeX.
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](-2,0)(8,8)
+\pscircleOA(6,4)(4,4)
+\pscircleOA[linecolor=blue](4,6)(4,4)
+\pscircleOA[linewidth=2pt,linecolor=yellow](3,5)(4,4)
+\pscircleOA*[opacity=0.3,linecolor=red](2,2)(4,4)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{\nxLcs{psTextFrame}}
+\begin{verbatim}
+\psTextFrame[settings](x1,y1)(x2,y2){Text}
+\end{verbatim}
+
+The \emph{Text} cannot have a linebreak. In case it is needed, put the \emph{Text}
+into a \Lenv{minipage} or \Lcs{parbox}, as seen in the following example. The
+\Lkeyword{ref}-option allows different placing and the \Lkeyword{rot}-option allows
+the \Index{rotating} of the \emph{Text}. The macro itself first uses the
+\Lcs{psframe} and the \Lcs{rput} macro with \Index{calculated coordinates}.
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid=true](0,-0.5)(10,10)
+ \psTextFrame[linecolor=lightgray,ref=l](0,0.5)(4,1.5){Hallo}
+ \psTextFrame[linecolor=blue](2,4)(4,7){\color{blue}Hallo}
+ \psTextFrame[linestyle=dashed](9,9)(10,10){\huge H}
+ \psTextFrame*[linecolor=red,linestyle=dashed](7,7)(9,9){\Huge H}
+ \psTextFrame*[linecolor=red!40,ref=lB](7,4)(9,6){\Huge H}
+ \psTextFrame*[linecolor=blue!40,ref=rt](7,1)(9,3){\Huge H}
+ \psTextFrame[linestyle=dashed](4.5,0)(6.5,10){%
+ \parbox{2cm}{\centering Here comes some more text over several
+ lines, which is also horizontally and vertically centered and
+ written in a parbox.}}
+ \psTextFrame*[linecolor=cyan!20,rot=90](.5,2)(1.5,10){%
+ \parbox{8cm}{\centering Here comes some more text over several
+ lines and rotated by 90 degrees.}}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{Special coordinates}
+
+Additionally to the existing \Index{!-operator} for \Index{PostScript} coordinates,
+there is new a \Index{*-operator}, which invokes the \Index{algebraic parser} before
+the coordinates are passed to the default !-operator. The syntax
+is pretty easy: \verb=(<value> {f(x)})=. In the following example the
+predefined value of Pi\index{$\pi$} from \LFile{pstricks.pro} is used. The x value
+and the function must be enclosed
+in braces when they contain spaces, round braces or sybolic names, like \verb+Pi+ for the
+x value.
+
+\begin{LTXexample}[width=5cm,wide]
+\SpecialCoor
+\begin{pspicture}(0,-1)(5,1)
+ \psaxes{->}(0,0)(0,-1)(5,1)
+ \psline(0,0)(*{Pi} {sqrt(abs(cos(x)))})
+ \psline{<->}(*{Pi} {cos(x)})(*5 {sin(x)*cos(x)})
+\end{pspicture}
+\end{LTXexample}
+
+For a macro definition of the algebraic function the \verb+\string+ command
+has to be used, otherwise \TeX{} expects the math mode in the following
+example.
+
+\begin{LTXexample}[width=4cm,wide]
+\def\F{\string x^2 }
+\begin{pspicture}[showgrid=true](2,4)
+ \psline[linecolor=red](*1 {\F} )(*2 {\F} )
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+\subsection{Octogon-Symbol}
+
+An octogon symbol was added.
+\begin{verbatim}
+\newpsfontdotH{Octogon}[1 0 0 1 0 0]{PSTricksDotFont}{(f)}{(g)}
+\newpsfontdotH{BoldOctogon}[1 0 0 1 0 0]{PSTricksDotFont}{(F)}{(g)}
+\newpsfontdot{SolidOctogon}[1 0 0 1 0 0]{PSTricksDotFont}{(g)}
+\end{verbatim}
+
+\begin{LTXexample}[width=4cm,wide]
+\psset{dotscale=4}
+\begin{pspicture}[showgrid=true](4,4)
+\psdot[dotstyle=Octogon](1,1)
+\psdot[dotstyle=BoldOctogon](2,2)
+\psdot[dotstyle=SolidOctogon](3,3)
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{Code changes}
+
+\begin{verbatim}
+% hv 2007-10-16 to fix the bug in pst-node with \\[name=...]
+\def\ps@ifnextchar#1#2#3{%
+ \let\reserved@d= #1%
+ \def\reserved@a{#2}\def\reserved@b{#3}%
+ \futurelet\@let@token\ps@ifnch}
+\def\ps@ifnch{%
+ \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi
+ \reserved@b
+}
+\end{verbatim}
+
+
+
+
+%--------------------------------------------------------------------------------------
+\section{The PostScript header files}
+\subsection{\texttt{pstricks.pro}}
+%--------------------------------------------------------------------------------------
+
+\begin{verbatim}
+/Pyth2 { % Pythagoras, xA yA xB yB
+ 3 -1 roll % xA xB yB yA
+ sub % xA xB yB-yA
+ 3 1 roll % yB-yA xA xB
+ sub % yB-yA xA-xB
+ Pyth } def
+\end{verbatim}
+
+This new PostScript function allows to calculate the distance
+between two points, given by their coordinates whereas the
+existing \LPS{/Pyth} does this for two values.
+
+\subsection{\texttt{pst-dots.pro}}
+\verb+pst-dots.pro+ ist the file which defines the so called softfont PSTRocksFontDot, which
+collects all PSTricks symbols, which are not part of one of the standard PostScript fonts.
+The octogon symbol is defined as:
+\begin{verbatim}
+ /OctogonPath {
+ 228 550 moveto 7 { -456 0 rlineto 45 rotate } repeat closepath
+ } def
+ /SolidOctogon { OctogonPath fill } def
+ /Octogon { OctogonPath .89 .89 scale OctogonPath eofill } def
+ /BoldOctogon { OctogonPath .79 .79 scale OctogonPath eofill } def
+%
+\end{verbatim}
+
+
+\part{\texttt{pst-node} -- package}
+
+\section{\texttt{pst-node.tex} (\NODEfileversion -- \NODEfiledate)}
+
+\subsection{Bugfix for \texttt{psmatrix}}
+A long standing bug with \Lenv{psmatrix} and using the \Lkeyword{name} option is now fixed.
+The following works as expected:
+
+\begin{LTXexample}[width=2cm]
+\begin{psmatrix}[rowsep=5mm]
+[name=a]a\\
+[name=b]b\\[1cm]
+[name=c]c\\
+\end{psmatrix}
+\ncline{a}{b}
+\ncarc{a}{c}
+\end{LTXexample}
+
+An optional argument after \Lcs{\textbackslash} is now scanned in the correct way.
+
+
+\subsection{New option \texttt{pcRef}}
+There is a new option \Lkeyword{pcRef} for the \Lcs{ncangles} connection\index{node connection}. By default,
+the reference point for the \Lkeyword{armA} option is the border of the node. This makes
+it difficult to get horizontically aligned lines for different node images.
+With \texttt{pcRef=true} the node center is the reference point and the connection is
+still drawn from the border of the node.
+
+The first three images show the default behaviour:
+
+\makebox[\linewidth]{%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.2}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=0.5cm}
+ \ncangles{A}{B1}
+ \ncangles{A}{B2}
+ \ncangles{A}{B3}
+ \ncangles{A}{B4}
+\end{pspicture}
+%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.4}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=0.5cm}
+ \ncangles{A}{B1}
+ \ncangles{A}{B2}
+ \ncangles{A}{B3}
+ \ncangles{A}{B4}
+\end{pspicture}
+%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.8}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=0.5cm}
+ \ncangles{A}{B1}
+ \ncangles{A}{B2}
+ \ncangles{A}{B3}
+ \ncangles{A}{B4}
+\end{pspicture}
+}
+
+The next three images display the influence of \texttt{pcRef=true}; the horizontal line
+for the three examples is on the same height:
+
+\makebox[\linewidth]{%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.2}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=1cm}
+ \ncangles[pcRef=true]{A}{B1}
+ \ncangles[pcRef=true]{A}{B2}
+ \ncangles[pcRef=true]{A}{B3}
+ \ncangles[pcRef=true]{A}{B4}
+\end{pspicture}
+%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.4}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=1cm}
+ \ncangles[pcRef=true]{A}{B1}
+ \ncangles[pcRef=true]{A}{B2}
+ \ncangles[pcRef=true]{A}{B3}
+ \ncangles[pcRef=true]{A}{B4}
+\end{pspicture}
+%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.8}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=1cm}
+ \ncangles[pcRef=true]{A}{B1}
+ \ncangles[pcRef=true]{A}{B2}
+ \ncangles[pcRef=true]{A}{B3}
+ \ncangles[pcRef=true]{A}{B4}
+\end{pspicture}
+}
+
+\begin{lstlisting}
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.2}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=1cm}
+ \ncangles[pcRef=true]{A}{B1}
+ \ncangles[pcRef=true]{A}{B2}
+ \ncangles[pcRef=true]{A}{B3}
+ \ncangles[pcRef=true]{A}{B4}
+\end{pspicture}
+%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.4}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=1cm}
+ \ncangles[pcRef=true]{A}{B1}
+ \ncangles[pcRef=true]{A}{B2}
+ \ncangles[pcRef=true]{A}{B3}
+ \ncangles[pcRef=true]{A}{B4}
+\end{pspicture}
+%
+\begin{pspicture}(5,4)
+ \cnode(2.5,3.5){0.8}{A}
+ \cnode(0.5,1){0.2}{B1}
+ \cnode(1.5,1){0.4}{B2}
+ \cnode(2.6,1){0.6}{B3}
+ \cnode(4,1){0.8}{B4}
+ \psset{angleB=90,angleA=-90,armA=1cm}
+ \ncangles[pcRef=true]{A}{B1}
+ \ncangles[pcRef=true]{A}{B2}
+ \ncangles[pcRef=true]{A}{B3}
+ \ncangles[pcRef=true]{A}{B4}
+\end{pspicture}
+\end{lstlisting}
+
+\part{\texttt{pst-plot} -- package}
+
+\section{\texttt{pst-plot.tex} (\PLOTfileversion -- \PLOTfiledate)}
+
+\iffalse
+
+\subsection{Axes}
+The behaviour of the optional argument \Lkeyword{Dx} changed. Using
+negative values will now decrease the labels with the correct
+value of \Lkeyword{Dx}:
+
+\psset{xunit=1cm}
+\begin{LTXexample}[wide,width=6cm]
+\begin{pspicture}(-0.5,-1)(6,4)
+ \psaxes[Dy=-2, dy=1,
+ Ox=4000, Dx=-1000, dx=1.5]{->}(10,4)
+\end{pspicture}
+\end{LTXexample}
+
+\vspace{1cm}
+\begin{pspicture}(-0.5,-1)(10,3)
+ \psaxes[Dy=2, dy=1, Ox=4000, Dx=1000, dx=1.5]{->}(10,3)(0,0)
+ \rput(5,2){Positive values for Dx und Dy}
+\end{pspicture}
+
+\begin{pspicture}(-0.5,-1)(10,3)
+ \psaxes[Dy=-2, dy=1, Ox=4000, Dx=-1000, dx=1.5]{->}(10,3)(0,0)
+ \rput(5,2){Negative values for Dx und Dy}
+\end{pspicture}
+
+\begin{lstlisting}
+\begin{pspicture}(-0.5,-1)(10,3)
+ \psaxes[Dy=2, dy=1, Ox=4000, Dx=1000, dx=1.5]{->}(10,3)(0,0)
+ \rput(5,2){Positive values for Dx und Dy}
+\end{pspicture}
+
+\begin{pspicture}(-0.5,-1)(10,3)
+ \psaxes[Dy=-2, dy=1, Ox=4000, Dx=-1000, dx=1.5]{->}(10,3)(0,0)
+ \rput(5,2){Negative values for Dx und Dy}
+\end{pspicture}
+\end{lstlisting}
+%\clearpage
+
+\fi
+\subsection{New options \texttt{LineToXAxis} and \texttt{LineToYAxis}}
+
+
+\psset{xunit=0.0333cm,yunit=2.5cm}
+\begin{pspicture}(0,-1)(400,1)
+ \psline{->}(0,0)(400,0)
+ \psline{->}(0,-1)(0,1)
+ \psplot[plotstyle=LineToXAxis,linestyle=dashed,plotpoints=50,
+ linecolor=red!40,
+ showpoints=true,dotstyle=o,dotsize=0.2]{0}{360}{x sin}
+\end{pspicture}
+
+\begin{lstlisting}
+\psset{xunit=0.0333cm,yunit=2.5cm}
+\begin{pspicture}(0,-1)(400,1)
+ \psline{->}(0,0)(400,0)
+ \psline{->}(0,-1)(0,1)
+ \psplot[plotstyle=LineToXAxis,linestyle=dashed,plotpoints=50,
+ linecolor=red!40,
+ showpoints=true,dotstyle=o,dotsize=0.2]{0}{360}{x sin}
+\end{pspicture}
+\end{lstlisting}
+
+
+
+\psset{xunit=0.0333cm,yunit=2.5cm}
+\begin{pspicture}(0,-1.2)(400,1.4)
+ \psline{->}(0,0)(390,0)
+ \psline{->}(0,-1.1)(0,1.2)
+ \psplot[plotstyle=LineToYAxis,linestyle=dashed,plotpoints=50,
+ linecolor=blue!40,
+ showpoints=true]{0}{360}{x cos}
+\end{pspicture}
+
+\begin{lstlisting}
+\psset{xunit=0.0333cm,yunit=2.5cm}
+\begin{pspicture}(0,-1.2)(400,1.4)
+ \psline{->}(0,0)(390,0)
+ \psline{->}(0,-1.1)(0,1.2)
+ \psplot[plotstyle=LineToYAxis,linestyle=dashed,plotpoints=50,
+ linecolor=blue!40,
+ showpoints=true]{0}{360}{x cos}
+\end{pspicture}
+\end{lstlisting}
+
+
+\part{\texttt{pst-tree} -- package}
+\section{\texttt{pst-tree.tex} (\TREEfileversion -- \TREEfiledate)}
+There was a bug with \texttt{style=...} due to a missing \Lcs{use\textat par} in
+\Lcs{pstree\textat ii}.
+
+
+\nocite{*}
+\bibliographystyle{plain}
+\bibliography{PSTricks}
+
+\printindex
+
+
+\end{document}