\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
%\usepackage{geometry}
\usepackage{pst-all}
\usepackage{showexpl}
\usepackage{tabularx,array,longtable}
\SpecialCoor
\usepackage[colorlinks,linktocpage]{hyperref}
\def\UrlFont{\small\ttfamily}
\makeatletter
\def\verbatim@font{\small\normalfont\ttfamily}
\makeatother
%\usepackage{color}
\definecolor{hellgelb}{rgb}{1,1,0.8}
\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{1,0,0}
\definecolor{colString}{rgb}{0,0.5,0}
%
\usepackage{listings}
\lstset{%
language=PSTricks,%
float=hbp,%
basicstyle=\ttfamily\small, %
identifierstyle=\color{colIdentifier}, %
keywordstyle=\color{colKeys}, %
stringstyle=\color{colString}, %
commentstyle=\color{colComments}, %
columns=flexible, %
tabsize=4, %
frame=single, %
extendedchars=true, %
showspaces=false, %
showstringspaces=false, %
numbers=left, %
numberstyle=\tiny, %
breaklines=true, %
% backgroundcolor=\color{hellgelb}, %
breakautoindent=true, %
captionpos=b,%
xleftmargin=0pt%
}
%\parindent=0pt
\newcommand\verbI[1]{{\small\texttt{#1}}}
\newcommand\CMD[1]{{\texttt{\textbackslash#1}}}
\let\Lcs\CMD
%
%\psset{subgriddiv=0,griddots=5,gridlabels=7pt}
%
\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
\def\PS{PostScript}
%
\begin{document}
\title{\texttt{PSTricks -- 2005}\\ new macros and bugfixes for the
basic packages \Lcs{pstricks}, \Lcs{pst-tree}, and \Lcs{pst-node}}
\author{Herbert Vo�\thanks{%
\url{
[email protected]}}}
\date{\today}
\maketitle
\begin{abstract}
This new version of \texttt{pstricks.tex} depends on the also new prologue file
\texttt{pstricks.pro} (v 1.01) and pst-dots.pro (v. 2.00), which should go into
the local \TeX-directory \url{$TEXMFLOCAL/dvips/}.
\end{abstract}
\tableofcontents
\clearpage
\part{General informations}
%--------------------------------------------------------------------------------------
\section{Color handling}
%--------------------------------------------------------------------------------------
The new color package \verb+xcolor+ has a lot of interesting features, but it needs
some modification to the code of \verb+pstricks.sty+ and \verb+pstricks.tex+. The
package \verb+pstricks.sty+ superseded the old package \verb+pstcol.sty+, which is
now obsolet. The version on CTAN now does nothing else as loading \verb+pstricks.sty+.
There are some important facts for using colors inside PSTricks with \LaTeX:
\begin{itemize}
\item load always \verb+pstricks+ as first package;
\item use always the \LaTeX\ syntax for defining colors and \textbf{not} the PSTricks own one.\\
\verb+\definecolor ...+ is the correct setting!
\item do not use the PSTricks style for using color, use always \verb+\color{<name>}+.
\end{itemize}
\part{\texttt{pstricks} -- package}
%--------------------------------------------------------------------------------------
\section{\texttt{pstricks.sty}}
%--------------------------------------------------------------------------------------
New otions:
\begin{description}
\item[\texttt{noxcolor}] load package \verb+color+ instead of \verb+xcolor+;
\item[\texttt{plain}] do nothing else as a \CMD{input\{pstricks\}};
\item[\texttt{DIA}] a bug fix for the \verb+PSTricks+-export of the garfic program DIA.
\end{description}
%--------------------------------------------------------------------------------------
\section{\texttt{pstricks.pro}}
%--------------------------------------------------------------------------------------
this file now contains the PostScript code for arcs of an ellipse.
\section{\texttt{pstricks.tex}}
The new version 1.10 has some minor but important changes; it is not compatible
to older versions when using the vertical shift option for the \verb+pspicture+
environment.
\subsection{New and modified option for {pspicture}}\label{sec:option}
Table~\ref{tab:pspicture} shows the two new options for the \verb+pspicture+ environment.
\begin{table}[htb]
\caption{Optionen der \texttt{pspicture}-Umgebung}\label{tab:pspicture}
\centering
\begin{tabular}{@{}lll@{}}
\textrm{\emph{name}} & \emph{meaning} & \emph{default}\\\hline
\verb+shift+ & vertical shift & $0$ \\
\verb+showgrid+ & show grid & \verb+false+\\
\end{tabular}
\end{table}
% ---------------------------------------------------------------------------------------
\subsubsection{\texttt{shift}}\label{subsubsec:shift}
% ---------------------------------------------------------------------------------------
This option is the known one from older \texttt{PSTricks} version, but now with the
usual syntax for options. The shift is relative to the height of the defined \verb+pspicture+
environment, its lower left corner is by deafult on the base line. For older versions
the shift depends with its value to the baseline, a negative value raised up the \verb+pspicture+
box. Now the \verb+shift+ option works similiar to the known \CMD{raisebox} makro, except that
\verb+shift+ is relative to the box height. A positive \verb+shift+ value raises up the box
and vice versa for a negative value.
\begin{figure}[htb]
\centering
\textcolor{red}{\rule{5mm}{1pt}}%
\begin{pspicture}[shift=0.5](-0.5,-0.5)(0.5,0.5)
\psframe[linecolor=blue](-0.5,-0.5)(0.5,0.5)\rput(0,0){-0.5}
\end{pspicture}%
\textcolor{red}{\rule{5mm}{1pt}}
\hspace{1cm}%
\textcolor{red}{\rule{5mm}{1pt}}%
\begin{pspicture}(-0.5,-0.5)(0.5,0.5)
\psframe[linecolor=blue](-0.5,-0.5)(0.5,0.5)\rput(0,0){0}
\end{pspicture}\textcolor{red}{\rule{5mm}{1pt}}
\hspace{1cm}%
\textcolor{red}{\rule{5mm}{1pt}}%
\begin{pspicture}[shift=-0.5](-0.5,-0.5)(0.5,0.5)
\psframe[linecolor=blue](-0.5,-0.5)(0.5,0.5)\rput(0,0){0.5}
\end{pspicture}%
\textcolor{red}{\rule{5mm}{1pt}}
\caption{Meaning of the \texttt{shift} option}\label{fig:baseline}
\end{figure}
%\begin{lstlisting}[caption={Vertikale Verschiebung der Baseline}]
\begin{lstlisting}
\textcolor{red}{\rule{5mm}{1pt}}%
\begin{pspicture}[shift=0.5](-0.5,-0.5)(0.5,0.5)
\psframe[linecolor=blue](-0.5,-0.5)(0.5,0.5)\rput(0,0){-0.5}
\end{pspicture}%
\textcolor{red}{\rule{5mm}{1pt}}
\hspace{1cm}%
\textcolor{red}{\rule{5mm}{1pt}}%
\begin{pspicture}(-0.5,-0.5)(0.5,0.5)
\psframe[linecolor=blue](-0.5,-0.5)(0.5,0.5)\rput(0,0){0}
\end{pspicture}\textcolor{red}{\rule{5mm}{1pt}}
\hspace{1cm}%
\textcolor{red}{\rule{5mm}{1pt}}%
\begin{pspicture}[shift=-0.5](-0.5,-0.5)(0.5,0.5)
\psframe[linecolor=blue](-0.5,-0.5)(0.5,0.5)\rput(0,0){0.5}
\end{pspicture}%
\textcolor{red}{\rule{5mm}{1pt}}
\end{lstlisting}
% ---------------------------------------------------------------------------------------
\subsubsection{\texttt{showgrid}}\label{subsubsec:showgrid}
% ---------------------------------------------------------------------------------------
This new version of \texttt{PSTricks} defines internally a special grid style
\begin{lstlisting}
\newpsstyle{gridstyle}{%
subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=8pt}
\end{lstlisting}
which can be overwritten by the user. This style is only used for the \verb+showgrid+
option of the \verb+pspicture+ environment. The macro \verb+\psgrid+ doesn't use this predefined
style and works in the usual way. However, the user can use it like all
other self defined styles: \verb+\psgrid[style=gridstyle]+.
\begin{LTXexample}[width=3.5cm]
\begin{pspicture}[showgrid=true](-1,0)(2,1)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[width=3.5cm]
\newpsstyle{gridstyle}{%
subgriddiv=2,subgridcolor=lightgray}
\begin{pspicture}[showgrid=true](-1,0)(2,1)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[width=3.5cm]
\newpsstyle{gridstyle}{}
\begin{pspicture}[showgrid=true](-1,0)(2,1)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[width=3.5cm]
\begin{pspicture}(-1,0)(2,1)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[width=3.5cm]
\begin{pspicture}(-1,0)(2,1)
\psgrid
\end{pspicture}
\end{LTXexample}
Depending to the internal structure of the \verb+pspicture+ environment it is not possible
to set the \verb+shift+ option global by \CMD{psset}, it must always be locally defined
with optional part of the parameter, as seen in the above examples.
%--------------------------------------------------------------------------------------
\subsection{New arrows}
%--------------------------------------------------------------------------------------
\verb+pstricks now contains the missing arrow ends \verb+]-[+ and \verb+)-(+.
\begin{LTXexample}[width=4cm]
\begin{pspicture}(4,3)
\psset{arrowscale=2,linewidth=1pt}
\psline{]-[}(4,0)
\psline{)-(}(0,1)(4,1)
\psline{)->}(0,2)(4,2)
\psline{]->>}(0,3)(4,3)
\end{pspicture}
\end{LTXexample}
%--------------------------------------------------------------------------------------
\subsection{\Lcs{psdot} and \Lcs{psdots}}
%--------------------------------------------------------------------------------------
\verb+\psdot*+ and \verb+\psdots*+ are now supported by PSTricks. Both were missing
in the old versions.
%--------------------------------------------------------------------------------------
\subsection{Other changes}
%--------------------------------------------------------------------------------------
\texttt{pstricks.tex} defined the PostScript subroutines for arcs of an ellipse.
This code now moved into the appropriate \texttt{pstricks.pro}, which holds the
pure PostScript code of \texttt{PSTricks}. This in not important for user until
the newest \texttt{pstricks.pro} \textbf{and} \texttt{pstricks.tex} are installed.
\subsection{Bugfixes}
\subsubsection{\texttt{origin}}
There were several mailings in the past to the \verb+origin+ option, which worked the other
way round than expected. Now the coordinates work realtive to the current origin.
\begin{LTXexample}[width=3cm]
\begin{pspicture}(-1,-1)(2,1.25)
\psaxes{->}(0,0)(-1,-1)(2,1.25)
\psset{linewidth=1.5pt}
\parabola[linestyle=dashed](-1,1)(0,0)
\parabola[origin={0.5,-0.5}](-1,1)(0,0)
\qdisk(0.5,-0.5){2pt}
\end{pspicture}
\end{LTXexample}
\subsubsection{Empty parameter}
\sloppy
To prevent some problems with empty arrow definitions in macros like \verb+\psline[...]{}(..)(...)+,
which makes no sense, but should be possible, there is now a check before setting the values.
\subsection{\CMD{psscalebox} and \CMD{psscaleboxto}}
To prevent clashes with the \verb+graphicx+ package, which also defines a \CMD{scalebox} macro
with different syntax,
\verb+PSTricks+ now defines \CMD{psscalebox} and \CMD{psscaleboxto}. For some compatibility reasons the old
names are still supported. With the new names it doesn'r matter if \verb+pstricks+ is loaded before or after
\verb+graphicx+. There are also some other changes:
\begin{verbatim}
\scalebox -> \psscalebox
\scaleboxto -> \psscaleboxto
\rotateleft -> \psrotateleft
\rotateright -> \psrotateright
\rotatedown -> \psrotatedown
\end{verbatim}
%--------------------------------------------------------------------------------------
\section{New fill options}
%--------------------------------------------------------------------------------------
For the fillstyles \verb+hlines+, \verb+vlines+ and \verb+crosshatch+ there are two new
options to get increasing line widths and/or increasing whitespace. Both options are
lengths and can be set as usual for PSTricks, with or without a unit.
\bigskip\noindent
\begin{tabularx}{\linewidth}{lXc}
\emph{name} & \emph{meaning} & \emph{default}\\\hline
\verb|hatchsepinc| & additional increasing space between two hatch lines & 0\tabularnewline
\verb|hatchwidthinc| & value for the increasing line width of two hatch lines & 0
\end{tabularx}
\bigskip
\begin{LTXexample}[pos=t]
\begin{pspicture}(\linewidth,3)
\psframe[fillstyle=vlines,hatchangle=0,hatchsep=.5pt,%
hatchwidth=1pt,hatchwidthinc=0.25pt](\linewidth,3)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[pos=t]
\begin{pspicture}(\linewidth,3)
\psframe[fillstyle=hlines,hatchangle=0,%
hatchwidth=1pt,hatchsep=0.5pt,hatchsepinc=0.1pt](\linewidth,3)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[pos=t]
\begin{pspicture}(\linewidth,3)
\psframe[fillstyle=vlines,hatchangle=0,hatchsep=0.6pt,%
hatchwidth=1pt,hatchwidthinc=0.3pt,hatchangle=60,
hatchcolor=red](\linewidth,3)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[pos=t]
\begin{pspicture}(\linewidth,3)
\psframe[fillstyle=hlines,hatchangle=0,hatchangle=-60,%
hatchwidth=1pt,hatchsep=0.5pt,hatchsepinc=0.1pt,
hatchcolor=blue](\linewidth,3)
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[pos=t]
\begin{pspicture}(\linewidth,4)
\pscircle[fillstyle=vlines,hatchangle=0,hatchsep=0.6pt,%
hatchwidth=1pt,hatchwidthinc=0.3pt,hatchangle=90,
hatchcolor=red](2,2){2}
\pscircle[fillstyle=vlines,hatchangle=0,hatchsep=0.6pt,%
hatchwidth=1pt,hatchwidthinc=0.3pt,hatchangle=-45,
hatchcolor=green](7,2){2}
\pscircle[fillstyle=hlines,hatchangle=0,hatchsep=0.6pt,%
hatchwidth=1pt,hatchwidthinc=0.3pt,hatchangle=45,
hatchcolor=blue](12,2){2}
\end{pspicture}
\end{LTXexample}
\begin{LTXexample}[pos=t]
\begin{pspicture}(\linewidth,3)
\psframe[fillstyle=crosshatch,hatchangle=0,hatchangle=-90,%
hatchwidth=1pt,hatchsep=0.5pt,hatchsepinc=0.1pt,
hatchcolor=blue](\linewidth,3)
\end{pspicture}
\end{LTXexample}
\part{\texttt{pst-node} -- package}
\section{\texttt{pst-node.tex}}
\subsection{\CMD{nccircle}}
With some modification to \CMD{psarc\@iv} it is now possible to get the loops in any direction
and above or below the node.
\begin{LTXexample}[width=.35\linewidth]
\psscalebox{1.5}{%
\circlenode{A}{A}
\nccircle{->}{A}{1.5em} \nbput{foo}
\nccircle{<-}{A}{-1.5em}\naput{bar}}
%
\hspace{1cm}
\psscalebox{1.5}{%
\circlenode{A}{A}
\nccircle{<-}{A}{1.5em} \nbput{foo}
\nccircle{->}{A}{-1.5em}\naput{bar}}
\end{LTXexample}
\part{\texttt{pst-tree} -- package}
\section{\texttt{pst-tree.tex}}
\end{document}