diff options
author | Karl Berry <karl@freefriends.org> | 2008-07-02 18:05:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-07-02 18:05:35 +0000 |
commit | 19f58e5098cf443de58d21c46f277ff489457c4b (patch) | |
tree | 0b004bdf085fe1c098de0f03a219ec92bd6d1654 /Master/texmf-dist | |
parent | 0877203879f5740a1fe1f5ca82680de5e1200be4 (diff) |
pstricks update (1jul08)
git-svn-id: svn://tug.org/texlive/trunk@9169 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
72 files changed, 1270 insertions, 9254 deletions
diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.doc b/Master/texmf-dist/doc/generic/pstricks/Changes index 39bbbe36595..426a1491e0d 100644 --- a/Master/texmf-dist/doc/generic/pstricks/Changes.doc +++ b/Master/texmf-dist/doc/generic/pstricks/Changes @@ -1,4 +1,4 @@ -2008-05-23 new files pst-news2008.tex|pdf +2008-05-23 new files pst-news08.tex|pdf pst-news.sty for the doc 2005-12-22 new files pstnews1-14.tex|pdf 2006-12-19 new files pstnews1-15.tex|pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.dvips b/Master/texmf-dist/doc/generic/pstricks/Changes.dvips index 70c6a76dbe0..d2d1fd40f29 100644 --- a/Master/texmf-dist/doc/generic/pstricks/Changes.dvips +++ b/Master/texmf-dist/doc/generic/pstricks/Changes.dvips @@ -1,4 +1,5 @@ ---- pstricks.pro +1.05 2008-06-26 - added penrose fill style 1.04 2008-05-11 - added Rand for a real random 0<=Rand<=1 1.03 2008-04-15 - only some cosmetics to the code 1.02 2008-01-01 - added the arrowtype D>, sides as curves (ArrowD) @@ -19,8 +20,8 @@ 97, patch 5 2005-03-08 bugfix for DashLine ----- pst-text.pro -1.00 2005-11-29 add a patch for japanese text (hv) +---- pst-node.pro +1.00 2005-11-29 initial CTAN version (hv) ---- pst-dots.pro diff --git a/Master/texmf-dist/doc/generic/pstricks/Changes.generic b/Master/texmf-dist/doc/generic/pstricks/Changes.generic index 7f6e9558747..1d75075975e 100644 --- a/Master/texmf-dist/doc/generic/pstricks/Changes.generic +++ b/Master/texmf-dist/doc/generic/pstricks/Changes.generic @@ -1,4 +1,5 @@ pstricks.tex -------- +1.25 2008-06-17 - added fill style penrose 1.24 2008-06-17 - added \psDEBUG[#1]#2 for better dubugging 1.23 2008-05-23 - add octogon symbol (hv) - fix bug with D>-<D (hv) diff --git a/Master/texmf-dist/doc/generic/pstricks/Makefile b/Master/texmf-dist/doc/generic/pstricks/Makefile index 38c4f089a4f..b7ce074ee14 100644 --- a/Master/texmf-dist/doc/generic/pstricks/Makefile +++ b/Master/texmf-dist/doc/generic/pstricks/Makefile @@ -1,9 +1,8 @@ - -# `Makefile' for `pst-3dplot.pdf', hv, 2007/03/17 +# `Makefile' for `pst-news.pdf', hv, 2007/03/17 .SUFFIXES : .tex .ltx .dvi .ps .pdf .eps -PACKAGE = pst-news2008 +PACKAGE = pst-news$(shell date +%y) MAIN = $(PACKAGE) diff --git a/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib b/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib new file mode 100644 index 00000000000..721cd671185 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/PSTricks.bib @@ -0,0 +1,118 @@ +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } + +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {PostScript richtig eingesetzt: vom Konzept zum + praktischen Einsatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{pstricks, + Title = {PSTricks - {\PS} macros for Generic TeX}, + Author = {Timothy Van Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993, +} + + +@Manual{pdftricks, + Title = {PSTricks Support for pdf}, + Author = {Herbert Voss}, + Organization = {}, + Address = {\url{http://PSTricks.de/pdf/pdfoutput.phtml}}, + Note = {}, + year = 2002, +} + +@Manual{miwi, + Title = {References for \TeX{} and Friends}, + Author = {Michael Wiedmann and Peter Karp}, + Organization = {}, + Address = {\url{http://www.miwie.org/tex-refs/}}, + Note = {}, + year = 2003, +} + + +@Manual{vue3d:2002, + Title = {Vue en 3D}, + Author = {Manuel Luque}, + Organization = {}, + Address = {\url{http://members.aol.com/Mluque5130/vue3d16112002.zip}}, + Note = {}, + year = 2002, +} + +@Article{dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {Die {P}lot-{F}unktionen von {\texttt{pst-plot}}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {27--34}, + annote = bretter, + keywords = {}, + abstract = { Im letzten Heft wurden die mathematischen Funktionen von + \PS~im Zusammenhang mit dem {\LaTeX}-Paket + \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben + und durch Beispiele erl{\"a}utert. In diesem Teil werden + die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r + externe Daten behandelt. } +} + +@Article{dtk02.1:voss:mathematischen, + author = {Herbert Vo{\ss}}, + title = {Die mathematischen {F}unktionen von {P}ostscript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {40-47}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + +@Book{companion, + author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + edition = second, + year = {2007}, + address = {Reading, Mass.} +} + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {4.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} + +@Book{LaTeXRef, + author = {Herbert Vo\ss}, + title = {\LaTeX\ Referenz}, + edition = {1.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} diff --git a/Master/texmf-dist/doc/generic/pstricks/README b/Master/texmf-dist/doc/generic/pstricks/README index b17c38434f8..4c4f3b989f5 100644 --- a/Master/texmf-dist/doc/generic/pstricks/README +++ b/Master/texmf-dist/doc/generic/pstricks/README @@ -1,174 +1 @@ -PSTricks 1992 -- 2007 - - ------------------------------------------------------------------------ -PSTricks is the work of Timothy van Zandt <tvz@econ.insead.fr> -PSTricks 97 is edited by Denis Girou <Denis.Girou@idris.fr> - and Sebastian Rahtz <sebastian.rahtz@computing-services.oxford.ac.uk> -PSTricks 2004 is edited by Herbert Voss <voss@PSTricks.de> - and Rolf Niepraschk <Rolf.Niepraschk@ptb.de> -PSTricks 2005-07 is edited by Herbert Voss <voss@PSTricks.de> - ------------------------------------------------------------------------ -For more informations go to http://tug.org/PSTricks _and_ read the -news articles in the doc directory! - - -1 - Copyright - --------- - -COPYRIGHT 1993, 1994, 2000 by Timothy Van Zandt, <tvz@econ.insead.fr>. -COPYRIGHT 2004, 2005 by Herbert Voss <voss@PSTricks.de> and - Rolf Niepraschk <Rolf.Niepraschk@ptb.de>. -COPYRIGHT 2006-07 by Herbert Voss <voss@PSTricks.de> - -This program can be redistributed and/or modified under the terms -of the LaTeX Project Public License Distributed from CTAN -archives in directory macros/latex/base/lppl.txt. - -2 - Introduction - ------------ - -This package is a re-release of PSTricks, incorporating all of the -beta releases and bug fixes made up to March 1997. It is *not* -intended as a full new release of PSTricks, but as a consolidation and -cleaned distribution. Because Timothy van Zandt does not currently have -enough time to work on PSTricks, he gave permission for Denis Girou, -Sebastian Rahtz and Herbert Voss to produce this interim solution. - -Some new features have been added in the 2007 version, except the release -of the small pst-fill package for filling (tiling) arbitrary regions and the -various evolving contributions, but we have merged in all the bug fixes -and beta addons which Timothy produced. - -We have renamed some of the files that make up PSTricks, for consistency. -The multido package is now in /macros/generic/multido - -3 - Installation - ------------ - -3.1 - (La)TeX files - - a - You have to move all the files from the "generic" subdirectory -to a directory part of your TEXINPUTS environment variable, or to add it -in your TEXINPUTS list of paths. - - b - If you are a LaTeX user (and not only a plain TeX one), you have -to do the same thing for the "latex" subdirectory, which define LaTeX -wrappers for all the PSTricks files. - -3.2 - PostScript header files - - a - If you use the "dvips" DVI to PostScript converter, you have -to move all the files from the "dvips" subdirectory to a directory part -of your DVIPSHEADERS environment variable, or to add it in your DVIPSHEADERS -list of paths. - - b - If you use the Y&Y's "dvipsone" DVI to PostScript converter, -you have to rename generic/dvipsone.con to generic/pstricks.con and to move -all the files of the "dvips" subdirectory to the TeX input folder. - - c - If you use the MicroPress "VTeX" DVI to PostScript converter, -you have to rename generic/vtex.con to generic/pstricks.con and to move -all the files of the "dvips" subdirectory to the TeX input folder. - - d - If you use the "textures" (version 1.7/1.8 or 2.0) DVI to PostScript -converter (for Macintosh), you should proceed as follows: - * create a new folder PSTricks97 (for instance) as a subfolder in -Textures' TeX inputs folder, - * copy the "generic", "dvips", "latex" and "contrib" subfolders -from the "pst97" folder to the newly created "PSTricks97" folder, - * open the "generic" folder and remove the file pstricks.con, -then rename the file textures.con to pstricks.con, - * open the "dvips" folder and change the following line in the file -pstricks.pro (courtesy Michael J. Sharpe <msharpe@euclid.ucsd.edu>): -/STV { SDict begin normalscale end STP } def -by -/STV { Mag 72.27 72 div mul dup neg scale STP } def - It was also reported that the `pst-text' package (to put text -along paths) doesn't work with the "textures" driver. - Textures's users must also look at the page kindly maintained -by Michael Sharpe: http://math.ucsd.edu/~msharpe/pst-textures.html - - e - If you use the "xdvipdfmx" DVI to PDF converter (for XeTeX), -you have to rename generic/xdvipdfmx.con to generic/pstricks.con. - - f - If you use another driver than these four ones, you have to adapt -a pstricks.con file for it, if the one for "dvips" doesn't work for it. -You can also look at the instructions of the old obsolete/src/pstricks.con -file. And if nothing work, ask for help on the PSTricks mailing list, -hopping that somebody on the list has the same configuration than you... - -3.3 - Known pitfalls - - a - To use the standard `color' or `xcolor' package with PSTricks, you -must load the `pstricks.sty' package, which interface the two packages, -loading them in the right order, and overriding some small parts of -PSTricks to allow it to use the `color' or `xcolor' package system for -specifying color. We STRONGLY recommend that you use this way today. -pstricks.sty loads by default the xcolor package, but there is an option -"noxcolor". If you are a LaTeX user then load _always_ first the -pstricks.sty package. - - b - Don't try to load the `color' or `xcolor' package if you use -`pstricks.sty' or `pst-all' (it is already loaded in the correct order). - - c - If needed, preferably load the `graphics' / `graphicx' package -after PSTricks, and in this case use the `graphics' syntax of \scalebox -(not the one described in the PSTricks documentation). pstricks.sty -redefines this macro so that both can be used (see doc). - - - -4 - Contents - -------- - -4.1 - Subdirectories - -The distribution contain the following subdirectories: - -base : the core pstricks files -contrib : various contributions - -4.2 - PSTricks core files - -The generic subdirectory contain the core files of PSTricks (and the latex -subdirectory contain the corresponding wrapper files). - -pstricks.sty - The LaTeX file -pstricks.tex - The TeX file -pstricks.con - The configuration file -pstricks.pro - The dvips header file - -5 - Documentation - ------------- - -There is NOT a complete up to date _reference_ documentation for PSTricks 97. -You must still refer to the reference documentation of the version 0.93a and -the additional old Beta material, available in the obsolete/doc subdirectory -(it was put in the "obsolete" subdirectory to clearly show that it is not up -to date nor supported by actual mainteners). Take care to notice what has -changed in additional old Beta documents (betadoc?.ps files) comparing to the -ones for 0.93a version (pst-usr?.ps files). - -Denis Girou maintain a list of known errors in both version 0.93a and -additional old Beta documentations, in obsolete/doc/pst-doc.err - -A large chapter of "The LaTeX Graphics Companion, 2nd ed.", by Goossens, Mittelbach, -Rahtz, Roegel and Voß, Addison Wesley 2007, is dedicated to PSTricks, and this -currently forms the only systematic description of the integration of -the basic PSTricks and the beta additions of 1993. The source of all examples -from that book is also on CTAN/info/lgc and most of them in the doc/lgc -subdirectory of the PST97 distribution. The second edition of this book -has no more a chapter of PSTricks. - -There is also a supporting set of Web pages on -http://www.tug.org/PSTricks with various -pointers and examples classified by categories. - -And there is also a mailing list devoted to discussions on PSTricks usage. -The informations to subscribe to this list and to consult the archives can -be found on the Web page. - --- -Denis Girou, Sebastian Rahtz and Herbert Voss (updated April 11, 2007) +The Makefile generates the pdf file for pst-newsYY diff --git a/Master/texmf-dist/doc/generic/pstricks/ctandir.sty b/Master/texmf-dist/doc/generic/pstricks/ctandir.sty new file mode 100644 index 00000000000..37928e95823 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/ctandir.sty @@ -0,0 +1,30 @@ +%% LaTeX2e file `ctandir.sty' +%% generated by the `filecontents' environment +%% from source `pst-fill-doc' on 2004/08/18. +%% +%% LaTeX2e file `ctandir.sty' +%% generated by the `filecontents' environment +%% from source `ltubguid' on 1997/06/12. +%% +% +% Experimental CTAN location information macros for use with Donald +% Arseneau's |url.sty| +% +% we need url.sty; we can rely on it to demand anything it needs of +% LaTeX +\IfFileExists{url.sty}% + {\RequirePackage{url}}% + {\PackageWarning{ctandir}{You should acquire a copy of url.sty}% + \newcommand\urldef[3]{\def#1{\texttt{#3}}}% + \let\url\texttt + } +% +\newcommand\CTANdirectory[1]{\expandafter\urldef + \csname CTAN@#1\endcsname\path} +\newcommand\CTANfile[1]{\expandafter\urldef + \csname CTAN@#1\endcsname\path} +% +% Use the standard label-referencing mechanism to get the warning for +% an undefined label +\newcommand\CTANref[1]{\expandafter\@setref\csname CTAN@#1\endcsname + \relax{#1}} diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/changes.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/changes.pdf Binary files differdeleted file mode 100644 index 7d921997282..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/changes.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/changes.tex b/Master/texmf-dist/doc/generic/pstricks/examples/changes.tex deleted file mode 100644 index d431a41be2c..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/changes.tex +++ /dev/null @@ -1,662 +0,0 @@ -%% BEGIN changes.tex -%% -%% Changes listing for PSTricks. -%% Run with LaTeX, with or without the NFSS. -%% -%% Change these for a4 paper: -%\def\paperwidth{8.5in} -%\def\paperheight{11in} - -\def\FileVersion{0.93a} -\def\FileDate{March 12, 1993} - -\documentclass[11pt,a4paper]{article} -\usepackage[T1]{fontenc} - -%% PAGE PARAMETERS - -\usepackage{fancybox} -% Paragraphs are marked by large space rather than indentation: -\parindent 0pt -\parskip 6pt plus 1pt minus 1pt - -% No headers, 1in top margin -\usepackage[dvips]{geometry} -\geometry{tmargin=0pt,bmargin=3.3cm,headheight=0pt,headsep=0pt, -textheight=9in, footskip=.625in} -\usepackage[scaled]{luximono} -\usepackage{mathpazo} - - -% Now adjust for different paper size: -\newdimen\mydim -\mydim=\paperwidth -\advance\mydim-8.5in -\divide\mydim 2 -\advance\oddsidemargin \mydim -\advance\evensidemargin \mydim -\mydim=\paperheight -\advance\mydim-11in -\divide\mydim 2 -\advance\topmargin \mydim - -%% OTHER - -\renewcommand{\EveryVerbatimLine}[2]{} - -% Short meta (works in verbatim. Can't use < for other purposes. -\catcode`\<=13 \def<#1>{{\rm\it #1\/}} % <meta> (works in verbatim) - -% Short verbatim. -\catcode`\"=13 -\def"{\verb"} - -\catcode`\@=12 % In case I'm using AmS-LaTeX - -\begin{document} - -\begin{center} -{\large\bfseries Changes listing for PSTricks}\\[6pt] - Version \FileVersion\\ - \FileDate\\[6pt] - Timothy Van Zandt\\ - tvz@Princeton.EDU -\end{center} - - The PSTricks package is still preliminary. The features list - and user interface are unlikely to change much in the short term, but - the internal code is not stable. - -\section{VERSION 0.93 and 0.93a} - - There have been substantial changes (hopefully for the last time). - - This section describes the changes from 0.92 to 0.93a. The only differencea -between 0.93 and 0.93a are that a bug in "\nccircle" was fixed, and the -features in "\pst-old.tex" where either incorporated into the main files -("\Rput", "\Lput", "\Mput", "\Polar" and "\Cartesian") or eliminated entirely -("\NewPsput", "\OldPsput" and the old "\pscustom" commands). What is described -\subsection{Incompatible changes} - - {\bf - These changes may require modification to files prepared with version 0.92. -Sorry about the inconvenience. To avoid letting new changes catch you by -surprise, get on the PSTricks mailing list.} -\begin{enumerate} - -\item - "\SpecialCoor" has changed completely. See User's Guide for details. Most of -these changes were announced shortly after the release of v0.92, but -"pst-beta.tex" users should note that raw PostScript coordinates are now -delimited by "!" rather than by ":". - - {\bfseries How to fix files:} Search for "\SpecialCoor" in your file. Change the -old syntax to the new syntax according to this table: - \begin{center} - \begin{tabular}{ccl} - {\em Old} & {\em New} & {\em Type}\\[2pt] - "(c<x>,<y>)" & "(<x>,<y>)" & Cartesian.\\ - "(p<r>,<a>)" & "(<r>;<a>)" & Polar.\\ - "(n{<node>})" & "(<node>)" & Center of <node>.\\ - "(N[<par>]{<node>})" & "([<par>]<node>)" & Relative to <node>.\\ - "(m{<coor1>}{<coor2>})" & "(<coor1>|<coor2>)" & Mixed. - \end{tabular} - \end{center} -In addition, if you used the syntax "(:<ps>)" from "pst-beta.tex" for raw -postscript code, search for "(:" and replace by "(!". - -\item - Angles can no longer be specified by "{<x>,<y>}". "\SpecialCoor" lets you -use coordinates as angles, but they must be enclosed in "()". E.g., -"{(<x>,<y>)}". See User's Guide for details. - - {\bfseries How to fix files:} Add the parentheses "()" to angles given by -"{<x>,<y>}" and and precede this usage by "\SpecialCoor". However, there is no -easy way to search for "{<x>,<y>}" (unless you are good at using Unix's -regular expressions). On the other hand, you probably didn't use this features -much, and it will be easier to just wait for the old usage to cause errors. - -\item - The -\begin{LVerbatim} - arrowsize=<dim num1 num2 num3> -\end{LVerbatim} -parameter has been replaced by -\begin{LVerbatim} - arrowsize=<dim num1> - arrowlength=<num2> - arrowinset=<num3> -\end{LVerbatim} - - {\bfseries How to fix files:} - Search for "arrowsize", and break up your parameter change. You can also -just do nothing, because if you use the old syntax for "arrowsize", <num2> and -<num3> will simply be ignored. - -\item - The -\begin{LVerbatim} - tbarsize=<dim num1 num2> -\end{LVerbatim} -parameter has been replaced by -\begin{LVerbatim} - tbarsize=<dim num1> - bracketlength=<num2> % For square brackets. - rbracketlength=<num2> % For round brackets. -\end{LVerbatim} - - {\bfseries How to fix files:} - Search for "tbarsize", and break up your parameter change. You can also just -do nothing, because if you use the old syntax for "tbarsize", <num2> will -simply be ignored. - -\item - "\pscustom" has changed substantially. E.g., (i) there is no "(x,y)" -argument, (ii) plots ("\psplot", etc.) no longer run backwards, and (iii) the -treatment of the currentpoint is much different. Also, most of the special -commands for use only within "\pscustom" have changed. See the User's Guide -for details. - - {\bfseries How to fix files:} - You must search for each use of "\pscustom", and make the following changes: - \begin{itemize} - \item Replace "\pscustom"'s old "(<x>,<y>)" argument by "\moveto(<x>,<y>)" -at the beginning of "\pscustom"'s main argument. - - \item Make the following substitutions inside "\pscustom"'s main argument: - \begin{center} - \begin{tabular}{ll} - {\em Old} & {\em New}\\[2pt] - "\pscode" & "\code"\\ - "\pscoor" & "\coor"\\ - "\psdim" & "\dim"\\ - "\psmove" & "\moveto"\\ - "\psclosepath" & "\closepath"\\ - "\psgroup{<stuff>}" & "\gsave" <stuff> "\grestore"\\ - "\psstroke" & "\stroke"\\ - "\psfill" & "\fill" - \end{tabular} - \end{center} - You can instead define, e.g., - \begin{quote} - "\def\pscode{\code}" , or\\ - "\newcommand{\pscode}{\code}" - \end{quote} - and - \begin{quote} - "\def\psgroup#1{\gsave #1 \grestore}" , or\\ - "\newcommand{\psgroup}{\gsave #1 \grestore}" - \end{quote} - - \item Check the output from your "\pscustom" command. If, after making the -above changes, things come out differently than inspected, it is probably -because the plot commands run ``forwards'' rather than ``backwards'', or -because of the new way that "\pscustom" treats the current point. Fix these on -a case-by-case basis. - \end{itemize} - -\item - "\listplot", "\psplot" and "\parametricplot" no longer have an "(<x>,<y>)" -argument. Use the "origin" parameter instead. - - {\bfseries How to fix files:} - Search for "\listplot", "\psplot" and "\parametricplot". Replace any -"(<x>,<y>)" argument by the parameter change "[origin={<x>,<y>}]". - -\item - To suppress labels with "\psaxes", use "labels=none/x/y", rather than -setting "Dx" and "Dy" to empty values. - - {\bfseries How to fix files:} - Search for "=}", "=," and "=]". Remove the "Dx=," and other such parameter -settings you find, and replace instead by "labels=none/x/y", depending on -whether you want no labels, labels on the x-axes only, or labels on the y-axis -only. - -\item - The "\scalebox" macro should use a space rather than a comma to separate the -x and y scaling factors, when two scaling factors are given. - - {\bfseries How to fix files:} - Wait to get error about bad numbers, or search for "\scalebox" and replace -"\scalebox{<num1>,<num2>}" by "\scalebox{<num1> <num2>}". - -\item - The "dblframewidth" parameter is gone, because "\psdblframebox" is now just -a variant of "\psframebox" with "doubleline=true". The width of each frame is -now just "linewidth" - - {\bfseries How to fix files:} - Search for "dblframewidth" and replace the parameter setting be a -"linewidth" parameter setting. - -\item - The "\OldPsput" and "\Newpsput" commands are gone. These were originally -devised to retain compatibility with an older version of PSTricks that had a -"\psput" command instead of "\rput". - - {\bfseries How to fix files:} - If you used "\psput" with the new syntax, then search for "\psput" and -replace by "\rput". - - If you used "\psput" with the old syntax, then either search for "\psput" -commands and replace with "\rput" commands with the new syntax, or put the -following in a file so that the "\OldPsput" command defines "\psput" with the -old syntax: -\begingroup\catcode`\<=12 -\begin{LVerbatim} - \def\old@psput{\begingroup\old@psput@} - \def\old@psput@{% - \def\refpoint@x{.5}\def\refpoint@y{.5}% - \pst@ifstar{\@ifnextchar[% - {\old@psput@i}{\def\pst@rot{}\old@psput@ii}}} - \def\old@psput@i[#1]{\pst@getangle{#1}\pst@rot\old@psput@ii} - \def\old@psput@ii{\@ifnextchar<{\old@psput@iii}{\old@psput@iv}} - \def\old@psput@iii<#1>{\pst@@getref\old@psput@iv[#1]} - \def\old@psput@iv{% - \@ifnextchar({\end@psput\rput@i}{\end@psput\rput@i(0,0)}} - \def\OldPsput{\let\psput\old@psput} - \def\NewPsput{\let\psput\rput} -\end{LVerbatim} -\endgroup - -\end{enumerate} - - -\subsection{New files with old stuff} - -Remember to input these files when needed. To have these files loaded -automatically, put an "\input" command after "\customization" in the -configuration file ("pstricks.con"). - -\begin{description} - -\item[pst-node] - All the node stuff has been put in "pst-node.tex" / "pst-node.sty". - -\item[pst-plot] - The plot commands ("\psplot", etc.) and the "\psaxes" command have been put -in "pst-plot.tex" / "pst-plot.sty". ("pst-plot.tex" automatically loads -"multido.tex", which is required by the axes macros.) There are also some -variants of "\listplot", "\fileplot" and "\dataplot", that are less likely to -exceed PostScript operand stack limits. - -\item[colortab] - The table coloring commands have been put in "colortab.tex" / -"colortab.sty". This is no longer PSTricks specific, but most of the old stuff -works the same as before. The only exception is that "\omit{}" is not needed -when a column is not to be colored. The documentation for "colortab.tex" is in -"colortab.doc". There are also some new features: -\begin{itemize} -\item - "\SP" and "\RP": These let "\LCC" ... "\ECC" work with nested arrays or -"\multicolumns" when using Mittelbach's array.sty. See "colortab.doc" for -details. - -\item - "LColors", "\LC", "\LCi", "\LCii", "\LCiii", "\LCz", for shading the cells -in the "longtable" environment. See "colortab.doc" for details. - -umns when using Mittelbach's array.sty. See "colortab.doc" for details. - -\item - "LColors", "\LC", "\LCi", "\LCii", "\LCiii", "\LCz", for shading the cells -in the "longtable" environment. See "colortab.doc" for details. -\end{itemize} - -\end{description} - -\subsection{Obsolete but retained features} - - The features listed below are obsolete and are documented in footnotes. - -\begin{itemize} -\item - "\Polar": Use "\SpecialCoor" and "(r;a)" instead. - -\item - "\Cartesian(x,y)" Use "\psset{xunit=x,yunit=y}" instead. - -\item - "\Rput": Use "\uput" instead. - -\item - "\Lput" and "\Mput": Use "\aput", "\bput", "\Aput" and "\Bput" instead. - -\end{itemize} - -\subsection{New features} - -This is a partial listing. See also the next section on new files. - -\begin{itemize} - -\item - "\uput": Replaces "\Rput". - -\item - "\aput", "\bput", "\Aput", "\Bput": Replace "\Lput" and "\Mput". - -\item - "\clipbox" has optional argument "[<dim>]" that sets the clippath distance -<dim> from box. E.g., "\clipbox[1pt]{foo}". - -\item - "\newpsstyle": E.g., -\begin{LVerbatim} - \newpsstyle{foo}{linewidth=5pt,linestyle=dashed} - \psline[style=foo](4,5) -\end{LVerbatim} - -\item - "\PSTricksOff" suppresses the PostScript. Useful for printing or previewing -drafts of your document with a non-PostScript driver. - -\item - New arrow styles: {\catcode`\<=12 \tt - >-<, <<->>, >>-<<. |*-|* }. - -\item - Many new features for the "\pscustom" command. - -\item - "dimen" parameter (for controlling whether dimensions for "\psframe", -"\pscircle", "\pswedge" and "\psellipse" refer to the inside, outside or -middle of the boundary. - -\item - "bordercolor" parameter. - -\item - "doubleline", "doublesep" and "doublecolor" parameters. - -\item - "ticks" and "labels" parameters, for suppressing ticks and labels with -"\psaxes". - -\item - "shadow" and "shadowangle" parameters. - -\item - Shadow parameters now apply to all graphics objects. - -\item - "\psmathboxtrue", "\psmathboxfalse", for controling whether box - macros preserve math mode. - -\item - "\pslongbox": For making box environment out of box commands. - -\item - "\psverbboxtrue", "\psverbboxfalse": For controlling whether verbatim - text is allowed in box commands. - -\end{itemize} - -\subsection{New files with new stuff} - -\begin{description} - -\item[pst-coil] - Contains "\pscoil", "\psCoil", "\pszigzag", "\nccoil" and "\nczigzag". Uses -"pst-coil.pro" (optionally). - -\item[pst2eps] - Contains "\TeXtoEPS", to make it easier to convert \TeX\ boxes to EPS files -with dvips, and "\PSTtoEPS", for creating EPS files directly from PSTricks -graphics. - -\item[textpath] - Contains "\pstextpath" command, for typesetting text along a path. Use -"textpath.pro". - -\item[gradient] - "gradient" fillstyle. Uses "gradient.pro". - -\item[charpath] - Contains "\pscharpath" command, for stroking and filling character paths. -Also, "\pscharclip" ... "\endpscharclip" sets clipping path as well. - -\item[piecharts.sh] - A sh/awk script by Denis Girou for converting data to PSTricks piecharts. - -\end{description} - -\subsection{Bug fixes} - -This list is incomplete. - -\begin{itemize} - -\item - "\scalebox" and "\scaleboxto" now work when the vertical scaling factor - is less than 1. - -\item - "\lput" and company now work with dvips 4.90 and later. - -\item - "\multips" can now be nested. - -\item - "\psclip" fixed. - -\item - "\clipbox" and clip option for "\pspicture" fixed. - -\end{itemize} - -\subsection{Other changes} - -In some cases, there is a small chance these will require that you modify old -files. - -\begin{itemize} - -\item - Specifying "\rput"'s <refpoint> argument as, e.g., "[.3,1]" rather than -"[br]" is now an undocumented feature. - -\item - All arguments to "\psplot", "\listplot" and "\parametric" plot are passed -on directly as PostScript. - -\item - Dictionaries when including raw PostScript have changed. See appendix of -User's Guide for details. - -\item - "\psset{unit=dim}" always changes "\psunit", "\psxunit" and "\psyunit". To -change only "\psunit", use "runit=dim". - -\item - "border" parameter affects closed curves. - -\item The "hatchsep" parameter now refers to the width of the space between -the lines, rather than the distance between the middle of the lines. -\end{itemize} - -\renewcommand{\EveryVerbatimLine}{} -\renewcommand{\VerbatimFont}{\small\tt} -\renewcommand{\VerbatimFuzz}{2cm} - -\section{VERSION 0.92} - -\subsection{Incompatible changes} - -\begin{Verbatim} - ! V0.91 had two curve interpolation algorithsm: \pscurve and \psdoodle - (and variants). These have been merged into a single algorithm retaining - the names \pscurve, etc. Now the three curvature parameter has three - numbers: - num1 num2 num3 - When num3 is 0 (the default), you get the old \psdoodle algorithm, and - and num1 and num2 act just like the old doodature parameter. When - num3=-1, you get the old \pscurve algorithm, but positive values are - usually nicer. - - If you have used \pscurve or its variants, the shape of the curves - will change under 0.92. If you have also used the curvature - parameter, you will get errors because the old curvature parameter is - a single number and the new curvature parameter consists of 3 numbers. - - If you have used \psdoodle or its variants, then you can either search - and replace doodle->curve and your use of doodature (which had 2 numbers) - to curvature (which has 3 number), or you can put the following in the - customization section of pstricks.con: - \let\psdoodle\pscurve - \let\psedoodle\psecurve - \let\pscdoodle\psccurve - \def\psset@doodature#1{\psset@curvature{#1 0}} - - ! In \psdblframebox: The inner frame now has \pslinewidth, and the outer - frame now has width (dblframewidth x \pslinewidth), where dblframewidth is - a new graphics parameter whose default value is 2. - - ! The angle, angleA and angleB parameters no longer apply to - \ncarc, and the default values have been changed to 0. For - \ncarc, the angle is now controlled by the arcangle, arcangleA - and arcangleB parameters. The default is still 8. - - ! \multido has been off-loaded to the file multido.tex. The syntax has - been changed to make it consistent with \psmultiput and LaTeX's - \multiput: The variable declarations are now the first argument - and the number of repetitions are now the second argument. Also, - for number variables, the initial value and increment must now - have the same number of digits to the right of the decimal, - unless the initial value is an integer. There is no * version. - Instead, the contents is never grouped, and there is even a variant - that doesn't group the whole macro. See multido.ps, which is distributed - with PSTricks, for details. - - ! 'diamond', 'diamond*', and 'x' dotstyles are gone. Use dotangle - parameter instead. -\end{Verbatim} - -\subsection{New features} - -\begin{Verbatim} - + New dot style: |. - - + New graphics objects: \pscustom. - - + New box framing macros: \psovalbox, \pscirclebox. - - + New box scaling macro: \scaleboxto. - - + New nodes: \ovalnode, \circlenode. - - + New node connection: \ncdiagg. - - + New loop macro: \multips. - - + New graphics parameters: dotscale, dotangle, dblframewidth. - - + New arrow styles: c and C. - - + \SpecialCoor allows using nodes as coordinates and mixing - coordinates. -\end{Verbatim} - -\subsection{Other changes} - -\begin{Verbatim} - * arrowscale parameter allows non-square scaling. - - * Documentation has been greatly improved. - - * A bug that caused problems with Arbortext's dvips (previously - listed in pstricks.bug) was fixed. - - * Memory stats with LaTeX's article style: - 43290 words of memory - 2895 multiletter control sequences -\end{Verbatim} - -\section{VERSION 0.91} - -\subsection{Incompatible changes} - -\begin{Verbatim} - ! \dbox and \rotate eliminated. - - ! \psput replaced by \rput, with new syntax: - OLD: \psput[angle]<ref point>(x,y){stuff} - NEW: \rput[ref point]{angle}(x,y){stuff} - \OldPsput sets up \psput with the old syntax (this may disappear some - day; keep it in a safe place if you expect to need it for a long time). - - ! System for specifying angles for nested rotations with \psput has changed. - OLD: p0{angle}, p1{angle}, p2{angle}, etc. - NEW: *angle works like p0{angle}; p1{angle} capability eliminated. - N, S, E and W have same meaning as before. - - ! enddotsize parameter changed to dotsize. - - ! For specifying the origin as the baseline for the \pspicture - environment, leave the optional argument [] empty (rather than - [o]). - - ! B is not allowed as the y-coordinate when setting the reference point - in \rput using coordinates. E.g., [Bl] and [B] are OK, but [.3,B] is - not. - -\end{Verbatim} - -\subsection{New features} - -\begin{Verbatim} - + cornersize parameter added, for specifying whether radius of corners - in \psframe and related box macros is given in relative terms (using - framearc) or absolute terms (using linearc). - - + \psclip and \clipbox macros added. - - + \Cartesian and \Polar commands added, for switching coordinate - systems. - - + border=dim parameter added, for giving appearance of one line - crossing over another. - - + showpoints=bool parameter added. If true, a dot is placed at appropriate - coordinates. - - + \psdots graphics object added. - - + \psarc graphics object added. - - + \parabola graphics object added. - - + \pscurve, \psccurve, \psecurve, \psdoodle, \psedoodle, and \pscdoodle - graphics objects added. - - + \qline and \qdisk graphics objects added. - - + \psplot, \parametericplot and \listplot graphics objects added. - - + node connection (e.g., tree) macros added!! -\end{Verbatim} - -\subsection{Other changes} - -\begin{Verbatim} - * \sunpatch not needed anymore. - - * PostScript header file (if being used) is included at the beginning, - rather than on demand. - - * In spite of the many new features, the input file is smaller in bytes, - and runs significantly faster (at least if used with a header file). - The macros use up slightly more words of memory, and significantly - more command sequences. Here are the stats with LaTeX's article - style: - 41586 words of memory - 2966 multiletter control sequences -\end{Verbatim} - -\section{VERSION 0.9} - -Much internal code was changed, and additional features were added. - -\end{document} -%% END changes.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/chartest.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/chartest.pdf Binary files differdeleted file mode 100644 index d42fc926130..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/chartest.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/chartest.tex b/Master/texmf-dist/doc/generic/pstricks/examples/chartest.tex deleted file mode 100644 index cf9a608161a..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/chartest.tex +++ /dev/null @@ -1,25 +0,0 @@ -%% BEGIN chartest.tex -%% PSTricks test file for charpath.tex. -%% Run with Plain TeX. - -\input pstricks -\input pst-text - -% phvb should be name of Helvetica-Bold tfm or vf file: -\font\bighelv=phvb at 70pt -\bighelv - -\vskip 1in - -\pscharpath[linestyle=dotted]{Denis Girous} - -\vskip 1in - -\pscharpath[fillstyle=crosshatch]{Denis Girous} - -\vskip 1in - -\pscharpath[fillstyle=solid,fillcolor=red]{Denis Girous} - -\bye -%% END chartest.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/denis1.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/denis1.pdf Binary files differdeleted file mode 100644 index c356d7af123..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/denis1.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/denis1.tex b/Master/texmf-dist/doc/generic/pstricks/examples/denis1.tex deleted file mode 100644 index 2818fcb74f0..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/denis1.tex +++ /dev/null @@ -1,41 +0,0 @@ -%% BEGIN denis1.tex -% PSTricks sample that combines -% \pscharpath, \pstextpath, and gradient fillstyle. - -% Run with Plain TeX. - -% Takes a long time to print. - -\hsize 9in -\vsize 6.5in -\special{landscape} % works with Rokicki's dvips. - -\input pstricks -\input pst-text -\input pst-grad - -% phvb should be name of Helvetica-Bold tfm or vf file: -\font\bighelv=phvb at 5in -\font\smallhelv=ptmr at 8pt - -\newcount\mycount -\parindent 0pt - -\null -\vfill - -\pstextpath(0,-8pt)% - {\pscharpath*[linestyle=none,fillstyle=gradient, - gradangle=45,gradmidpoint=.5]{\bighelv D G}}% - {\smallhelv - \mycount=70 - \loop - \advance\mycount -1 - \ifnum\mycount>0 - Denis Girou - \repeat} - -\vfill - -\bye -%% END denis1.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/denis2.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/denis2.pdf Binary files differdeleted file mode 100644 index b24a0dcde42..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/denis2.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/denis2.tex b/Master/texmf-dist/doc/generic/pstricks/examples/denis2.tex deleted file mode 100644 index 0c5a4f3a4ba..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/denis2.tex +++ /dev/null @@ -1,36 +0,0 @@ -%% BEGIN denis2.tex -% PSTricks sample that combines -% \pscharpath and \psclip. - -% Run with Plain TeX. - -\hsize 9in -\vsize 6.5in -\special{landscape} % works with Rokicki's dvips. - -\input pstricks -\input pst-text - -% phvb should be name of Helvetica-Bold tfm or vf file: -\font\bighelv=phvb at 5.5in -\font\smallrm=ptmr at 10pt - -\newcount\mycount -\parindent 0pt - -\vglue 1in - -\pscharclip[linewidth=2pt]{\rput[tl](0,0){\bighelv DG}} - \rput[t]{45}(0,0){\vbox{% - \hsize 12in - \smallrm - \mycount=1000 - \loop - \advance\mycount -1 - \ifnum\mycount>0 - Denis Girou - \repeat}} -\endpscharclip - -\bye -%% END denis2.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.dat b/Master/texmf-dist/doc/generic/pstricks/examples/filetest.dat deleted file mode 100644 index 68945e6e95e..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.dat +++ /dev/null @@ -1,71 +0,0 @@ -%% BEGIN filetest.dat -[ -{{0, 0}, {0.1, 0.489217}, {0.2, 0.914933}, - - {0.3, 1.21952}, {0.4, 1.35655}, {0.5, 1.29517}, - - {0.6, 1.02301}, {0.7, 0.547479}, {0.8, -0.104732}, - - {0.9, -0.889868}, {1., -1.75088}, {1.1, -2.62238}, - - {1.2, -3.4364}, {1.3, -4.12831}, {1.4, -4.64256}, - - {1.5, -4.93756}, {1.6, -4.98935}, {1.7, -4.7937}, - - {1.8, -4.36653}, {1.9, -3.74246}, {2., -2.97178}, - - {2.1, -2.11599}, {2.2, -1.24239}, {2.3, -0.418164}, - - {2.4, 0.295512}, {2.5, 0.84882}, {2.6, 1.2076}, - - {2.7, 1.35627}, {2.8, 1.29903}, {2.9, 1.0593}, - - {3., 0.677496}, {3.1, 0.207184}, {3.2, -0.289882}, - - {3.3, -0.749475}, {3.4, -1.11083}, {3.5, -1.32228}, - - {3.6, -1.34604}, {3.7, -1.16179}, {3.8, -0.768677}, - - {3.9, -0.185544}, {4., 0.550574}, {4.1, 1.38761}, - - {4.2, 2.263}, {4.3, 3.1091}, {4.4, 3.85919}, - - {4.5, 4.45329}, {4.6, 4.84347}, {4.7, 4.99808}, - - {4.8, 4.90456}, {4.9, 4.5705}, {5., 4.02303}, - - {5.1, 3.30639}, {5.2, 2.47802}, {5.3, 1.60352}, - - {5.4, 0.750856}, {5.5, -0.0156125}, {5.6, -0.640751}, - - {5.7, -1.08345}, {5.8, -1.32014}, {5.9, -1.34676}, - - {6., -1.17893}, {6.1, -0.850365}, {6.2, -0.409711}, - - {6.3, 0.084022}, {6.4, 0.566914}, {6.5, 0.97605}, - - {6.6, 1.25533}, {6.7, 1.36069}, {6.8, 1.2642}, - - {6.9, 0.956782}, {7., 0.449173}, {7.1, -0.228866}, - - {7.2, -1.03104}, {7.3, -1.89854}, {7.4, -2.76511}, - - {7.5, -3.56294}, {7.6, -4.22854}, {7.7, -4.70839}, - - {7.8, -4.96365}, {7.9, -4.97357}, {8., -4.73734}, - - {8.1, -4.27417}, {8.2, -3.62157}, {8.3, -2.83204}, - - {8.4, -1.96848}, {8.5, -1.09857}, {8.6, -0.288905}, - - {8.7, 0.400909}, {8.8, 0.92342}, {8.9, 1.24743}, - - {9., 1.36064}, {9.1, 1.27057}, {9.2, 1.00372}, - - {9.3, 0.602995}, {9.4, 0.123725}, {9.5, -0.371511}, - - {9.6, -0.818656}, {9.7, -1.1581}, {9.8, -1.34019}, - - {9.9, -1.32988}, {10., -1.11003}} -] -%% END filetest.dat diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/filetest.pdf Binary files differdeleted file mode 100644 index dac3755ff38..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.raw b/Master/texmf-dist/doc/generic/pstricks/examples/filetest.raw deleted file mode 100644 index 69a459f7e7d..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.raw +++ /dev/null @@ -1,6 +0,0 @@ -%% BEGIN filetest.raw -% test of \rawfile, with testfile.tex -0 0 moveto -100 100 lineto -100 0 lineto -%% END filetest.raw diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.tex b/Master/texmf-dist/doc/generic/pstricks/examples/filetest.tex deleted file mode 100644 index 52ac7732d2b..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/filetest.tex +++ /dev/null @@ -1,84 +0,0 @@ -%% BEGIN filetest.tex -% -% This is test file for some of the PSTricks commands that -% read from and write to files. -% -% Run with plain tex. -% -% You must have the epsf.tex macros, which are distributed with -% Rokicki's dvips, and change the reference to \epsf below. -% -% This inputs filetest.raw, filetest.dat and filetest.eps. -% It also write filetest.eps. -% -% If using Rokicki's dvips v5.47 or later, try -% -% dvips filetest -E-o -% -% to create an eps file filetest.ps from the whole picture. - -\input pstricks -\input pst-eps -\input pst-plot -\input epsf - -\TeXtoEPS % Make an EPS picture out of .dvi file, with dvips -E. - \pspicture(-5,-10)(10,10) - - % Test two similar ways to use data from a file: - % \fileplot - \AltClipMode - \psclip{\psframe[linestyle=none](0,-10)(10,10)} - \pscustom{% - \fileplot{filetest.dat} - \gsave - \lineto(100,100) - \lineto(0,100) - \closedshadow - \grestore} - \endpsclip - - \psaxes(0,0)(-5,-10)(10,10) - - % And \readdata and \dataplot: - \readdata\mydata{filetest.dat} - \dataplot[plotstyle=dots,swapaxes=true]{\mydata} - - % Save some data: - - \savedata{\total}[ - {{0,163},{1,187},{2,166},{3,232},{4,237},{5,201},{6,196},{7,203}}] - \savedata{\general}[ - {7,193}{6,182}{5,167}{4,153}{3,129}{2,108}{1,101}{0,104}] - - % Now make an EPS file from the graphics objects: - \PSTtoEPS[bbury=5cm,bburx=10.5cm, - bblly=2cm,bbllx=0cm,makeeps=all]{filetest.eps}{% - - % Now when I concatenate \total and \general, I get the points that - % delineate the boundary for the area you want to fill. - - \psyunit=.02cm - \psxunit=1.5cm - - \pscustom[plotstyle=curve,linestyle=none,fillstyle=solid, - fillcolor=gray]{\listplot{\general}\listplot[liftpen=1]{\total}} - \psset{plotstyle=curve,showpoints=true,dotscale=1.5} - \listplot[dotstyle=pentagon*]{\total} - \listplot[dotstyle=triangle]{\general} - } % end \PSTtoEPS - - % Now use the EPS file just created: - \rput[bl](-1,-10){\psdblframebox{\epsffile{filetest.eps}}} - - % Now try inputting raw ps code with \pscustom: - \pscustom[shadowsize=5pt,origin={5,4}]{% - \file{filetest.raw} - \closepath - \closedshadow} - - \endpspicture -\endTeXtoEPS - -\bye -%% END filetest.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/pst-test.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/pst-test.pdf Binary files differdeleted file mode 100644 index 947988f698c..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/pst-test.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/pst-test.tex b/Master/texmf-dist/doc/generic/pstricks/examples/pst-test.tex deleted file mode 100644 index 890af15b8fc..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/pst-test.tex +++ /dev/null @@ -1,126 +0,0 @@ -%%%%%%%%%%%%%%%%%%% pst-test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Test file for pstricks.tex, v0.93 and maybe later versions. -%% -%% Run with Plain TeX. -%% -%% PAGE 1: Pure graphics objects. These us \pstunit and \pstverb. -%% -\input pstricks -\input pst-node - -\newpsobject{mygrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=7pt} -\hbox{}\vfill - -\pspicture(-1,-1)(9,2)\mygrid -\psline[linewidth=1.5pt,linestyle=dotted]{**-)}(2.5,1.5) -\psline[linewidth=2pt,linestyle=dashed, - linearc=.5,linecolor=gray]{|->}(3,-.5)(5.5,1.8)(7,-1) -\qline(9,-1)(8,2) -\endpspicture - -\vfill - -\pspicture(-1,-1)(9,2)\mygrid -\qdisk(0,0){1} -\pswedge[linecolor=gray,fillstyle=solid]{.8}{0}{70} -\pscircle[linewidth=2pt,linestyle=dashed](4,.5){1.5} -\psellipse[fillstyle=crosshatch*,fillcolor=lightgray] - (7.5,.5)(1,1.5) -\endpspicture - -\vfill - -\pspicture(-1,-1)(9,3)\mygrid -\parabola*(0,0)(1,3) -\parabola[xunit=.01]{<->}(900,3)(600,-1) -\endpspicture - -\vfill - -\eject - -%% PAGE 2: Color (using \pstVerb) and rotation (using \pstVerb and \pstrotate). - -\hbox{}\vfill - -Here is {\gray some gray text } - -\vskip 1cm -Here is a lightgray line:{\lightgray \hrulefill} - -\vskip 1cm -And a dark gray blob: - -{\darkgray \hrule height 1cm width 5 cm } -\vfill - -\centerline{ -\rotateleft{Left} \rotatedown{Down} \rotateright{Right} -\psscalebox{2}{Big} \psscalebox{1 -1}{Flip}} - -\vfill - -\rput[l]{-45}{This runs diagonally down and to the right} -\rput{45}(2in,0){This runs up to the right} - -\vfill - -\eject - -%% PAGE 3: Nodes and node connections. These use \pstVerb, \pstverbscale, -%% and maybe \pstrotate. - -\null -\vfill - -$$ -\matrix{% - &\rnode{a}{A}\cr - \noalign{\vskip 2cm}% - \rnode{b}{B}\qquad&\rnode{c}{C}\cr} -\psset{nodesep=3pt} -\everypsbox{\scriptstyle} -\ncline{->}{a}{b}\Bput{f} -\ncline{->}{a}{c}\Aput{g} -\ncline[linestyle=dotted]{->}{b}{c}\Aput{h} -$$ - -\vfill - -\vskip 2cm - -\cnode*(0,0){3pt}{A} -\cnode*(4,2){3pt}{B} -\ncline[nodesep=3pt]{A}{B} -\mput*{1} - -\vfill - -\pspicture(0.4,.2)(9.8,6.2) - \rput(2,6){\rnode{G}{\psframebox{GOAT}}} - \rput(2,.5){\rnode{I}{\psframebox{GOAT}}} - \ncangles[angleA=90, angleB=180, nodesepB=3pt, linearc=3pt, - armA=2cm]{<-**}{I}{G} - \lput*(2.5){Doom} - \aput(.5){Zoom} - \SpecialCoor - \rput{10}(7;30){\rnode{A}{\psframebox{Polar Coor}}} - \rput(5;10){\rnode{B}{\psframebox{Polar Coor}}}% - \ncline{->}{A}{B} - \mput{\pnode{Y}} - \cnodeput[linewidth=1.5pt](9.5,6){H}{H} - \cnodeput[linewidth=1.5pt](8,1){M}{M} - \newpsobject{myarc}{ncarc}{nodesep=3pt,offset=2pt,arrows=->} - \myarc{H}{M} - \mput*{r} - \myarc{M}{H} - \mput*{l} - \lput(.75){\pnode{Z}} - \nccurve[angle=135, ncurv=1.8]{Y}{Z} - \aput{:U}{Doom} -\endpspicture - -\vfill - -\bye -%% END pst-test.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/samples.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/samples.pdf Binary files differdeleted file mode 100644 index 18cf8a44824..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/samples.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/samples.tex b/Master/texmf-dist/doc/generic/pstricks/examples/samples.tex deleted file mode 100644 index 57b8ad0d8ac..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/samples.tex +++ /dev/null @@ -1,443 +0,0 @@ -%% samples.pst : PSTricks samples. Run with LaTeX. -%% Last edited: 93/03/03 - -\documentclass[11pt,a4paper]{article} - -\makeatletter - -%% INPUT FANCYBOX.STY HERE TO CHECK FILE VERSION. - -\usepackage[T1]{fontenc} -\usepackage[dvips]{geometry} -\geometry{tmargin=2cm,bmargin=3.3cm,headheight=20pt,headsep=10pt, -textheight=9in, footskip=.625in} -\usepackage[scaled]{luximono} -\usepackage{mathpazo} -\usepackage{pstricks,pst-node,pst-coil,fancybox} - -\let\Ldots\ldots -\def\ldots{\mbox{$\Ldots$}} % In case we're using AmS-LaTeX. -\makeatletter -\def\ps@samples{% - \def\@oddhead{\bf PSTricks samples \hfill \thepage}% - \def\@oddfoot{}} -\makeatother -\pagestyle{samples} - -\newbox\sample - -\def\example{\setbox\sample\vbox\bgroup} -\def\endexample{% - \egroup - \vbox{\vskip 1cm - \hbox{\psframebox[boxsep=false,linewidth=2pt,linearc=.5cm,framesep=.5cm, - cornersize=absolute]{\box\sample}} - \vskip 1cm}} -\def\rquote#1{{\begin{quote}\vskip-\topsep - \raggedright\hskip -2em#1\end{quote}}} -\def\creator#1{\rquote{{\bf Creator:}\hskip 1em#1}} -\def\title#1{\rquote{{\bf Description:}\hskip 1em#1}} - -\def\N#1{{\tt\string#1}} - -\begin{document} - -\begin{example} - \creator{Gisli Ottarsson \tt <gisli@liapunov.eecs.umich.edu>} - \title{Calvin and Hobbes} - - $$ - \pspicture(-3.,29)(3.,38) - \def\anglei{5} - \def\angleii{-5} - \psset{linewidth=1pt,hatchwidth=0.8pt} - \def\tower#1{% - \psline[linewidth=2pt](0,0)(0,7) - \psset{fillstyle=solid,dimen=middle,linewidth=1.5pt} - \cnode(0,2){.5}{A#1} - \cnode(0,5){.8}{B#1} - \cnode(0,7){.5}{C#1} - \psset{linestyle=solid,linewidth=1pt} - \psline{->}(0,1)(2,1) - \SpecialCoor - \rput([angle=90]B#1){\psline{->}(2,0)} - \rput([angle=90]C#1){\psline{->}(2,0)}}% - \pscustom[linewidth=2pt]{% - \psarc(0,0){30}{80}{100} - \gsave - \psarcn(0,0){29.25}{100}{80} - \fill[fillstyle=vlines] - \grestore} - \rput{\anglei}{\rput(0,30){% - \psset{fillcolor=lightgray} - \tower{1}}} - \rput{\angleii}{\rput(0,30){% - \psset{linestyle=dashed} - \tower{2}}} - \psset{linewidth=1.5pt,coilwidth=.45} - \nczigzag{B1}{A2} - \aput[.25](.85){$k_{c_3}$} - \ncline[linecolor=white,linewidth=.6]{A1}{B2} - \nczigzag{A1}{B2} - \bput[.3](.85){$k_{c_3}$} - \nczigzag{A1}{A2} - \bput[.3](.5){$k_{c_1}$} - \nczigzag{B1}{B2} - \aput[.3](.5){$k_{c_2}$} - \endpspicture - $$ -\end{example} - -\begin{example} - \creator{\tt{leecheng@liapunov.eecs.umich.edu}} - \title{Dripping faucet model.} - - \psset{unit=.4cm} - \begin{center} - \begin{pspicture}(0,-2)(31,12) - \rput(1.5,0){% - \psellipse[linewidth=1pt](8,7)(1,3) - \psframe[linecolor=white,fillstyle=solid,fillcolor=white] - (6.4,6.5)(8,7.5) - \psline[linearc=.3,linewidth=1pt](8,8)(8,7.5)(4,7.5) - \psbezier[linewidth=1pt](4,7.5)(3,7.5)(3,6.5)(3,5.5) - \psline[linearc=.3,linewidth=1pt](8,6)(8,6.5)(5,6.5) - \psbezier[linewidth=1pt](5,6.5)(4,6.5)(4,6.5)(4,5.5) - \psline[linewidth=1pt](3,5.5)(4,5.5) - \psline[linearc=.3,linewidth=1pt](5,7.5)(5,8)(6,8)(6,7.5) - \psframe[linewidth=1pt](5.3,8)(5.7,8.7) - \psframe[linewidth=1pt,framearc=1,fillstyle=solid, - fillcolor=white](4,8.7)(7,9) - \multirput(3.5,4.8)(0,-1){4}{% - \psbezier[linewidth=.5pt](0,0)(.25,-.4)(-.25,-.4)(0,0)} - \rput[t](5.5,0){Dripping Faucet}} - \rput(20,5){% - \pspolygon[linecolor=white,fillstyle=vlines, - fillcolor=darkgray,hatchsep=.2](1,4.5)(1,4)(4,4)(4,4.5) - \psline[linewidth=2pt](1,4)(4,4) - \psline[linewidth=1.5pt](2.5,4)(2.5,3.5)(2.9,3.3)(2.1,2.9) - (2.9,2.5)(2.1,2.1)(2.9,1.7)(2.1,1.3)(2.5,1.1)(2.5,0.6) - \psframe[linecolor=black,linewidth=1.5pt,fillstyle=solid, - fillcolor=lightgray](1.8,-1)(3.2,.6) - \rput(2.5,-.2){$M$} - \psline{<->}(3.7,-.9)(3.7,.5) - \psframe[linecolor=black,linewidth=1.5pt,fillstyle=solid, - fillcolor=lightgray](1.8,-3.5)(3.2,-1.9) - \rput(2.5,-2.7){$m$} - \psline{->}(5,1)(5,-1) - \rput[l](5.5,0){$g$} - \psline{->}(3.7,-2)(3.7,-3.4) - \rput[t](2.5,-4){Mathematical Model for} - \rput[t](2.5,-5){a Dripping Faucet} - \rput(-6,-2){% - \psset{linewidth=2pt} - \psline(0,.5)(2,.5) - \psline(0,-.5)(2,-.5) - \psline(1.5,1)(2.5,0)(1.5,-1)}} - \psframe[linewidth=2pt,framearc=.05,linecolor=gray](0,-2.5)(31,12) - \end{pspicture} - \end{center} -\end{example} - -\begin{example} - \creator{\tt{Christian Schytt <pierre@diku.dk>}} - \title{Primal and dual.} - - \hbox to \hsize{% - % DUAL - \psset{linewidth=0.5pt} - \pspicture(-2,-1)(6,5) - \psline{->}(5,0)\psline{->}(0,4) - % - \qdisk(2,0){2pt} - \rput(2,0){\pnode{Z}} - \uput[dl](2,0){$c_{ij}$} - % - \uput[d](5,0){$p_i-p_j$} - \uput[r](0,4){\parbox{2cm}{Dual cost \\ of arc $(i,j)$}} - \uput[l](0,4){$q_{ij}(p_i-p_j)$} - % - \rput(.5,1.5){\pnode{U}} - \rput(2.5,-1.5){\pnode{V}} - \ncline{Z}{U}\mput{\pnode{X}} - \ncline{Z}{V}\mput{\pnode{Y}} - % - \rput[b](2,2){\rnode{A}{Slope: ${}-l_{ij}$}} - \ncline{->}{A}{X} - \rput[b](0,-0.75){\rnode{B}{Slope: ${}-u_{ij}$}} - \ncline{->}{B}{Y} - \endpspicture\hfill - % PRIMAL - \pspicture(0,-1)(6,5) - \psline{->}(5,0)\psline{->}(0,4) - \qdisk(1.5,0){2pt} - \qdisk(3.5,0){2pt} - \uput[d](1.5,0){$l_{ij}$} - \uput[d](3.5,0){$u_{ij}$} - \uput[d](5,0){$f_{ij}$} - \uput[r](0,4){\parbox{2cm}{\raggedright Primal cost \\ of arc $(i,j)$}} - % - \rput(1.5,1){\pnode{A}} - \rput(3.5,2){\pnode{B}} - \ncline{-}{A}{B}\mput{a\pnode{Y}} - % - \psline[linestyle=dashed]{-}(1.5,0)(1.5,3) - \psline[linestyle=dashed]{-}(3.5,0)(3.5,3) - % - \rput[l](4,1){\rnode{X}{Slope: $c_{ij}$}} - \ncline{->}{X}{Y} - \endpspicture - }\medskip -\end{example} - -\begin{example} - \creator{Gisli Ottarsson \tt <gisli@liapunov.eecs.umich.edu>} - - \begin{center} - \psset{unit=1in,linewidth=1pt,hatchwidth=0.8pt} - \pspicture(1,0)(5.,3) - \psline[linewidth=2pt,arrowscale=1.5]{->}(1.5,2.4)(3.5,2.4) - \psellipse[fillcolor=darkgray,fillstyle=solid](1.5,1.5)(.5,1.3) - \psellipse[fillcolor=white,fillstyle=solid](1.4,1.5)(.5,1.3) - \psline(1.5,2.8)(1.4,2.8) - \psline(1.5,0.2)(1.4,0.2) - \psline[linewidth=1.5pt,linestyle=dashed](1.3,2.4)(1.7,2.4) - \pscircle*(1.3,2.4){3pt} - \rput(1.3,2.2){$(r_o,\theta_o)$} - \rput(3.3,2.65){$u(r_o,\theta_o)$} - \psline[linewidth=2pt,arrowscale=1.5]{|->}(2.5,0.65)(4.5,0.65) - \rput(4.5,0.85){$w(x_o)$} - \psline{<->}(1.93,1.0)(2.5,.65) - \rput(2.2,.65){$x_o$} - \pscircle[fillcolor=lightgray,fillstyle=solid](1.93,1.2){0.05} - \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=lightgray] - (1.935,1.24)(3.5,.38)(3.5,.22)(1.935,1.16) - \pscircle[fillcolor=lightgray,fillstyle=solid](2.53,0.855){0.058} - \pscircle[fillcolor=lightgray,fillstyle=solid,linecolor=lightgray] - (2.545,0.845){0.056} - \pscircle[fillcolor=gray,fillstyle=solid](3.5,.3){0.08} - \psline(1.93,1.245)(3.5,.38) - \psline(3.5,.22)(1.92,1.156) - \endpspicture - \end{center} -\end{example} - - -\begin{example} -\creator{tvz} -\title{Another example of \N\pspolygon. The coordinates where determined - using \N\psgrid, after making the table.\label{ex-pspolygon}} - -\begin{center} - \def\arraystretch{2}\tabcolsep=10pt\small\bf - {\em Result is true for values in shaded region:}\\[5pt] - \pspolygon[linearc=.4,fillcolor=lightgray,fillstyle=solid] - (3,2)(5.9,2)(5.9,0)(7.4,0)(7.4,-2)(1.45,-2)(1.45,0)(3,0) - \begin{tabular}{cccccc} - X11 & X12 & X13 & X14 & X15 & X16\\ - X21 & X22 & X23 & X24 & X25 & X26\\ - X31 & X32 & X33 & X34 & X35 & X36\\ - X41 & X42 & X43 & X44 & X45 & X46 -\end{tabular} -\end{center} - -\end{example} - - -\begin{example} - \creator{tvz} - \title{Nodes.\label{ex-nodes1}} - - \begin{center} - \begin{pspicture}(0,-1)(8,3) - \psset{arrows=->, nodesep=6pt} - \rput(3,3){\rnode{A}{Returns to Scale}} - \rput(1,1){\rnode{B}{Production}} - \rput(5,1){\rnode{C}{Managing}} - \rput(3,-1){\rnode{D}{Supervision}} - \rput(7,-1){\rnode{E}{Information Processing}} - \ncline{A}{B} \ncline{A}{C} \ncline{C}{D} \ncline{C}{E} - \end{pspicture} - \end{center} -\end{example} - - -\begin{example} - \creator{tvz} - \title{Another example of nodes.\label{ex-nodes3}} - - \begin{center} - \begin{pspicture}(0,-1)(7.5,1) - \pnode{a} - \cnodeput(1.5,0){b}{0} - \cnodeput(3,0){c}{1} - \cnodeput(4.5,0){d}{2} - \cnodeput(6,0){e}{3} - \scriptsize - \psset{arrows=->,nodesep=0} - \pslabelsep=3pt - \ncline{a}{b}\Aput{start} - \ncline{b}{c}\Bput{a} - \ncline{c}{d}\Aput{b} - \ncline{d}{e}\Aput{b} - \psset{arm=.6,linearc=.4,angleA=0,angleB=90} - \ncangles{b}{b}\Aput{b} - \ncangles{e}{b}\Aput{b} - \psset{angleB=-90} - \ncangles{c}{c}\Bput{a} - \ncangles{d}{c}\Bput{a} - \ncangles{e}{c}\Bput{a} - \end{pspicture} - \end{center} -\end{example} - -\begin{example} - \creator{tvz} - \title{Nonsense examples of nodes.\label{ex-nodes4}} - - The tempestuous \rnode{E}{Maggie} and her alcoholic husband - \rnode{A}{Brick} \ldots - \vskip 2cm - \cnode*{3pt}{D}\hskip 1em Much Ado about \rnode{B}{Nothing}. - \vskip 1in - and \rnode{J}{\psframebox{another}} another - \rnode{K}{\psframebox{another}} another another \rnode{C}{book} - \ncline[linecolor=darkgray,linewidth=1.5pt,nodesep=3pt]{->}{A}{B} - \ncline[nodesep=3pt,linestyle=dashed,border=3pt]{->}{C}{E} - \ncangle[nodesep=1pt,angleA=-90,angleB=150, armB=3cm]{D}{C} - \ncbar[angle=90]{<-oo}{J}{K} -\end{example} - - -\begin{example} - \creator{tvz} - \title{More node nonsense.\label{ex-nodes5}} - - \begin{center} - \begin{pspicture}(0.4,.2)(9.8,6.2) - \rput(2,6){\rnode{G}{\psframebox{GOAT}}} - \rput(2,.5){\rnode{I}{\psframebox{GOAT}}} - \ncangles[angleA=90, angleB=180, nodesepB=3pt, linearc=3pt, - armA=2cm]{<-**}{I}{G} - \lput*(2.5){Doom} - \bput(.5){Zoom} - \SpecialCoor - \rput{10}(7;30){\rnode{A}{\psframebox{Polar Coor}}} - \rput(5;10){\rnode{B}{\psframebox{Polar Coor}}} - \ncline{->}{A}{B} - \mput{\pnode{Y}} - \cnodeput[linewidth=1.5pt](9.5,6){H}{H} - \cnodeput[linewidth=1.5pt](8,1){M}{M} - \newpsobject{myarc}{ncarc}{nodesep=3pt,offset=2pt,arrows=->} - \myarc{H}{M}\mput*{r} - \myarc{M}{H}\mput*{l}\lput(.75){\pnode{Z}} - \nccurve[angleA=135, angleB=135, ncurv=1.8]{Z}{Y}\bput{:D}{Doom} - \end{pspicture} - \end{center} -\end{example} - -\begin{example} - \creator{tvz} - \title{} - - \[ - \def\arraystretch{3.5} - \arraycolsep .7cm - \begin{array}{ccc} - \rnode{a}{U}\\ - & \rnode{b}{X\times_Z Y} & \rnode{c}{X}\\ - & \rnode{d}{Y} & \rnode{e}{Z} - \end{array} - \psset{arrows=->,nodesep=3pt} - \pslabelsep 3pt - \everypsbox{\scriptstyle} - \ncLine{a}{b}\Bput{y} - \ncLine{a}{c}\Aput{x} - \ncLine{b}{d}\Bput{q} - \ncLine{b}{c}\Bput{p} - \ncLine{c}{e}\Aput{f} - \ncLine{d}{e}\Bput{g} - \] -\end{example} - -\begin{example} - \creator{tvz} - \title{Several ways to connect nodes to themselves} - - \def\arrow(#1,#2){\ncline{->}{#1}{#2}} - $$ - \begin{array}{c@{\hskip 1.5cm}c@{\hskip 1.5cm}c} - \rnode{a}{\bullet} & \rnode{b}{\bullet} & \rnode{c}{\bullet}\\[1cm] - \end{array} - \everypsbox{\scriptstyle} - \psset{nodesep=5pt,arm=.6,linearc=.4,angleA=0,angleB=90} - \ncangles{->}{a}{a} - \ncangles{->}{b}{b} - \ncangles{->}{c}{c} - \arrow(a,b) - \arrow(b,c) - \ncarc[arcangleA=-30, arcangleB=-30]{->}{a}{c} - $$ - $$ - \everypsbox{\scriptstyle} - \def\cn#1#2{% - \cnode*{2pt}{#1} - \ncloop[arm=.4,linearc=.39,loopsize=.8,nodesep=5pt,angleB=180] - {->}{#1}{#1} - \Bput{#2}} - \begin{array}{c@{\hskip 1.5cm}c@{\hskip 1.5cm}c} - \cn{a}{1} & \cn{b}{2} & \cn{c}{3}\\[1cm] - \end{array} - \psset{nodesep=5pt,arm=.6,linearc=.4}\arrow(a,b) - \arrow(b,c) - \ncarc[arcangleA=-30, arcangleB=-30]{->}{a}{c} - $$ - $$ - \everypsbox{\scriptstyle} - \def\cn#1#2{% - \cnode*{2pt}{#1} - \nccircle[nodesep=5pt]{->}{#1}{.5} - \Bput{#2}} - \begin{array}{c@{\hskip 1.5cm}c@{\hskip 1.5cm}c} - \cn{a}{1} & \cn{b}{2} & \cn{c}{3}\\[1cm] - \end{array} - \psset{nodesep=5pt,arm=.6,linearc=.4}\arrow(a,b) - \arrow(b,c) - \ncarc[arcangleA=-30, arcangleB=-30]{->}{a}{c} - $$ -\end{example} - -\begin{example} - \creator{tvz} - \title{} - -\centerline{% - \rnode{a}{\psframebox{\Huge A connection}}% - \hskip 1.6cm - \rnode{b}{\psframebox{\Huge Unto another}}} -\ncloop[loopsize=-1cm,arm=.8cm,linearc=.3]{->}{a}{b} -\end{example} - - -\begin{example} - \creator{tvz} - \title{} - - \newbox\mybox - \setbox\mybox=\hbox{% - \psset{unit=4pt} - \pspicture(-2.8,0)(2.8,7.75) - \psset{linewidth=.1} - \psline(-.3,0)(-.3,3) - \psline(.3,0)(.3,3) - \psline(-2,0)(2,0) - \rput{45}(0,2){% - \psframe[framearc=.1,fillstyle=solid](0,0)(4,4) - \psline[linewidth=.4,linearc=.2](1.5,.4)(.4,2.5)(3.6,1.5)(2.5,3.6)} - \psdots[dotstyle=square,dotsize=.4 0](0,7.5) - \endpspicture}% - \centerline{\copy\mybox\hskip 1pt\copy\mybox} -\end{example} - -\end{document} - diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/tp-test.pdf b/Master/texmf-dist/doc/generic/pstricks/examples/tp-test.pdf Binary files differdeleted file mode 100644 index 2e2db9df0e5..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/tp-test.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/examples/tp-test.tex b/Master/texmf-dist/doc/generic/pstricks/examples/tp-test.tex deleted file mode 100644 index 355851eee33..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/examples/tp-test.tex +++ /dev/null @@ -1,72 +0,0 @@ -%% BEGIN tp-test.tex -%% -%% LaTeX test file for textpath.tex/textpath.sty. -%% -%% To use PostScript fonts with the New Font Selection Scheme: -%% - Include the style option "npsfont". -%% - You may have to change the font file names given below. -%% - "npsfont.sty" is distributed with PSTricks. - -\documentclass[11pt,a4paper]{article} - -\makeatletter - -%% INPUT FANCYBOX.STY HERE TO CHECK FILE VERSION. - -\usepackage{fancybox} -\usepackage[T1]{fontenc} -\usepackage[dvips]{geometry} -\geometry{tmargin=2cm,bmargin=3.3cm,headheight=20pt,headsep=10pt, -textheight=9in, footskip=.625in} -\usepackage[scaled]{luximono} -\usepackage{mathptmx} -\usepackage{pstricks,pst-text} - -\begin{document} -The first sample shows that math works. I let the line be drawn to make the sample clearer. -\begin{verbatim} - \large - \pstextpath[c]% - {\pscurve[linecolor=gray](0,1)(4,3)(6,2)(9,0)(12,1)(15,1)}% - {$S_\alpha=\Omega(\gamma_\beta)$ is a connected snarf and - $B=(\otimes,\rightarrow,\theta)$ is Boolean left subideal.} -\end{verbatim} - -\vskip 3.5cm - -\begin{large} - \pstextpath[c]% - {\pscurve[linecolor=gray](0,1)(4,3)(6,2)(9,0)(12,1)(15,1)}% - {$S_\alpha=\Omega(\gamma_\beta)$ is a connected snarf and - $B=(\otimes,\rightarrow,\theta)$ is Boolean left subideal.} -\end{large} - -\vskip 1cm - -\begin{verbatim} - \psset{linestyle=none} - \pstextpath[c]{\psarcn(0,0){73pt}{180}{0}}% - {Centre National de la} - \pstextpath[c]{\psarc(0,0){73pt}{180}{0}}% - {Recherche Scientifique} -\end{verbatim} - -\begin{center} - \vskip 2cm - \Huge - \psset{linestyle=none} - \pstextpath[c]{\psarcn(0,0){73pt}{180}{0}}% - {Centre National de la} - \pstextpath[c]{\psarc(0,0){73pt}{180}{0}}% - {Recherche Scientifique} - \vskip 2cm -\end{center} - -\begin{center} - \pstextpath[c](0,0){\psarcn[linestyle=none](0,-6){4}{180}{0}}% - {\parbox{3.5in}{In principle, it is possible to use - parbox, but let's see what really happens. It seems - hard to believe that someone would want to do this.}} -\end{center} -\end{document} -%% END tp-test.tex diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-docfull.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-docfull.pdf Binary files differnew file mode 100644 index 00000000000..6666f0a0244 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-docfull.pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news05.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news05.pdf Binary files differnew file mode 100644 index 00000000000..c6459f23e10 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news05.pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news05.tex b/Master/texmf-dist/doc/generic/pstricks/pst-news05.tex new file mode 100644 index 00000000000..a1ddcc64a64 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news05.tex @@ -0,0 +1,403 @@ +\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{Herbert.Voss@pstricks.de}}} +\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} diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news06.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news06.pdf Binary files differnew file mode 100644 index 00000000000..ae63aadf05a --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news06.pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/pstnews1-15.tex b/Master/texmf-dist/doc/generic/pstricks/pst-news06.tex index 7a1b54508c3..719c6174cac 100644 --- a/Master/texmf-dist/doc/generic/pstricks/pstnews1-15.tex +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news06.tex @@ -2,7 +2,8 @@ \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} %\usepackage{geometry} -\usepackage{pst-all} +\usepackage{pst-all,pst-news} +\let\CMD\cs \usepackage{showexpl} \usepackage{tabularx,array,longtable} \SpecialCoor @@ -11,7 +12,6 @@ \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} @@ -42,18 +42,12 @@ 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 -- version 1.15}\\new macros and bugfixes for \texttt{pstricks}} +\title{\texttt{PSTricks -- 2006}\\ new macros and bugfixes for the +basic packages \Lcs{pstricks}, \Lcs{pst-tree}, and \Lcs{pst-node}} \author{Herbert Voß\thanks{% \url{Herbert.Voss@pstricks.de}}} \date{\today} @@ -61,8 +55,8 @@ \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 +This new version of \LFile{pstricks.tex} depends on the also new prologue file +\LFile{pstricks.pro} (v 1.01) and \LFile{pst-dots.pro} (v. 2.00), which should go into the local \TeX-directory \url{$TEXMFLOCAL/dvips/}. \end{abstract} diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news08.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news08.pdf Binary files differnew file mode 100644 index 00000000000..9273e7dddc8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news08.pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news2008.tex b/Master/texmf-dist/doc/generic/pstricks/pst-news08.tex index 2aedc8e6089..e4dd6dfce2d 100644 --- a/Master/texmf-dist/doc/generic/pstricks/pst-news2008.tex +++ b/Master/texmf-dist/doc/generic/pstricks/pst-news08.tex @@ -59,6 +59,43 @@ and \Loption{distiller} overrides the \Index{Ghostscript} functions with the one \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 @@ -75,22 +112,6 @@ of the current line. \end{pspicture}}\rule{5mm}{0.5pt} \end{LTXexample} - -\iffalse -\subsection{Option \texttt{noCheck}} - -By default PSTricks checks all values for angles and radi, which makes it impossible to -insert the values in PostScript notation. With setting \verb+noCheck=true+ the argument is -taken verbatim and passed directly into the PostScript part. - -\begin{LTXexample}[width=4cm] -\usepackage{pstricks} -\begin{pspicture}[showgrid=true](3,2) - \psarc[noCheck=true](1,1){ 100 sin }{ 30 }{ 350 Pi div } -\end{pspicture} -\end{LTXexample} -\fi - \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 @@ -111,7 +132,7 @@ one can define another \Index{PostScript Font}. Available are at least \psgrid[style=gridstyle,gridfont=ZapfDingbats] \end{pspicture} \end{LTXexample} - + \clearpage \subsection{\texttt{linejoin}} @@ -194,6 +215,24 @@ draws its lines as bezier curves, which looks nicer for big arrows. \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} diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-news2008.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-news2008.pdf Binary files differdeleted file mode 100644 index 70a02afa84c..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/pst-news2008.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-user.tgz b/Master/texmf-dist/doc/generic/pstricks/pst-user.tgz Binary files differnew file mode 100644 index 00000000000..f234c090838 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-user.tgz diff --git a/Master/texmf-dist/doc/generic/pstricks/pst-usrfull.pdf b/Master/texmf-dist/doc/generic/pstricks/pst-usrfull.pdf Binary files differnew file mode 100644 index 00000000000..ea5caefd0f1 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/pst-usrfull.pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/pstnews1-14.pdf b/Master/texmf-dist/doc/generic/pstricks/pstnews1-14.pdf Binary files differdeleted file mode 100644 index 77e7bbb34fc..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/pstnews1-14.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/pstnews1-14.tex b/Master/texmf-dist/doc/generic/pstricks/pstnews1-14.tex deleted file mode 100644 index 0b72f9889f4..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/pstnews1-14.tex +++ /dev/null @@ -1,94 +0,0 @@ -\documentclass[12pt]{article} -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -%\usepackage{geometry} -\usepackage{pst-all} -\usepackage{showexpl} -\usepackage{tabularx} -\SpecialCoor -%\usepackage[ps2pdf,colorlinks,linktocpage]{hyperref} -\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}}} -% -%\psset{subgriddiv=0,griddots=5,gridlabels=7pt} -% -\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} -\def\PS{PostScript} -% -\begin{document} -\title{\texttt{PSTricks -- version 1.14}\\new macros and bugfixes for \texttt{pstricks}} -\author{Herbert Voß\thanks{% -\url{Herbert.Voss@perce.de}}} -\date{\today} - -\maketitle - -\begin{abstract} -This new version of \texttt{pstricks.tex} depends on the also new prologue file -\texttt{pstricks.pro} (v 1.00), which should go into the local \TeX-directory \url{$TEXMFLOCAL/dvips/}. -\end{abstract} - - -\tableofcontents - -%-------------------------------------------------------------------------------------- -\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} - -%-------------------------------------------------------------------------------------- -\section{Missing star version} -%-------------------------------------------------------------------------------------- -\verb+\psdot*+ and \verb+\psdots*+ are now supported by PSTricks. Both were missing -in the old versions. - -\end{document} diff --git a/Master/texmf-dist/doc/generic/pstricks/pstnews1-15.pdf b/Master/texmf-dist/doc/generic/pstricks/pstnews1-15.pdf Binary files differdeleted file mode 100644 index ce326dc8e1a..00000000000 --- a/Master/texmf-dist/doc/generic/pstricks/pstnews1-15.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pstricks/test-pst.pdf b/Master/texmf-dist/doc/generic/pstricks/test-pst.pdf Binary files differnew file mode 100644 index 00000000000..2ac2bd0199a --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/test-pst.pdf diff --git a/Master/texmf-dist/doc/generic/pstricks/test-pst.tex b/Master/texmf-dist/doc/generic/pstricks/test-pst.tex new file mode 100644 index 00000000000..2af57b5daa6 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pstricks/test-pst.tex @@ -0,0 +1,257 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% test-pst.tex --- Various PSTricks tests, from the PSTricks chapter +%% of "The LaTeX Graphics Companion" (by Goossens, Rahtz, +%% Mittelbach, Addison Wesley, 1997) +%% +%% Author : Sebastian RAHTZ (Oxford University - GB) +%% <sebastian.rahtz@computing-services.oxford.ac.uk> +%% Created the : Tue Feb 3 20:37:47 1998 +%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Last mod. the : Wed May 5 20:09:18 1999 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} + +\usepackage[latin1]{inputenc} % From LaTeX distribution +\usepackage{calc} % From LaTeX distribution +\usepackage{graphicx} % From LaTeX distribution +\usepackage{ifthen} % From LaTeX distribution +\usepackage{subfigure} % From CTAN/macros/latex/contrib/supported/subfigure +\usepackage{pst-all} % From PSTricks +\usepackage{pst-poly} % From pstricks/contrib/pst-poly +\usepackage{multido} % From PSTricks +\input{random.tex} % From CTAN/macros/generic + +% Take care that on some non Unix systems, you may have to replace +% the / character by, for instance, the : one (\input{lgc:#2.inl}}) +\newcommand{\ExampleSubFigure}[2][0.3333]{% +\subfigure[Example #2]{% + \begin{minipage}[t]{#1\textwidth} + \parbox[b]{\textwidth}{% + \centering + \input{lgc/#2.inl}} + \end{minipage}}} + +\newpsobject{showgrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=6pt} + +% New colors defined +\definecolor{brown}{rgb}{.65, .16, .16} +\definecolor{lightblue}{rgb}{.68, .85, .9} +\definecolor{palegreen}{rgb}{.6, .98, .6} +\definecolor{pink}{rgb}{1, .75, .8} +\definecolor{wheat}{rgb}{.96, .87, .7} + +% Layout changes +\textheight=23cm +\topmargin=-2cm +\textwidth=16cm +\oddsidemargin=0cm +\evensidemargin=0cm + +\begin{document} + +\title{Test file for the PSTricks 97 distribution:\\ + most of the PSTricks examples of\\ + \emph{The \LaTeX{} Graphics Companion}} +\author{Sebastian \textsc{Rahtz} --- March 1997} +\date{Version 1.3 (September 9, 1998)} +\maketitle + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-2-1}% + \ExampleSubFigure{4-2-2}% + \ExampleSubFigure{4-2-3} + \ExampleSubFigure{4-2-4}% + \ExampleSubFigure{4-2-5} + \caption{Section 2} +\end{figure} + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-3-1}% + \ExampleSubFigure{4-3-2} + \caption{Section 3} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-4-1}% + \ExampleSubFigure{4-4-2}% + \ExampleSubFigure{4-4-3} + \ExampleSubFigure{4-4-4}% + \ExampleSubFigure{4-4-5}% + \ExampleSubFigure{4-4-6} + \ExampleSubFigure{4-4-7}% + \ExampleSubFigure{4-4-8}% + \ExampleSubFigure{4-4-9} + \ExampleSubFigure{4-4-10}% + \ExampleSubFigure{4-4-11}% + \ExampleSubFigure{4-4-12} + \caption{Section 4} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-5-1}% + \ExampleSubFigure[0.5]{4-5-2} + \ExampleSubFigure[0.75]{4-5-3}% + \ExampleSubFigure[0.25]{4-5-4} + \ExampleSubFigure[0.15]{4-5-5}% + \ExampleSubFigure[0.25]{4-5-6}% + \ExampleSubFigure[0.2]{4-5-7}% + \ExampleSubFigure[0.2]{4-5-8}% + \ExampleSubFigure[0.2]{4-5-9} + \ExampleSubFigure[0.5]{4-5-10}% + \ExampleSubFigure[0.5]{4-5-11} + \caption{Section 5-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-5-13} + \ExampleSubFigure[1]{4-5-14} + \ExampleSubFigure[1]{4-5-16} + \caption{Section 5-B} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-6-1}% + \ExampleSubFigure{4-6-2}% + \ExampleSubFigure{4-6-3} + \ExampleSubFigure{4-6-4}% + \ExampleSubFigure{4-6-5}% + \ExampleSubFigure{4-6-6} + \ExampleSubFigure{4-6-7}% + \ExampleSubFigure{4-6-8}% + \ExampleSubFigure{4-6-9} + \ExampleSubFigure{4-6-10}% + \ExampleSubFigure{4-6-11}% + \ExampleSubFigure{4-6-12} + \ExampleSubFigure{4-6-13}% + \ExampleSubFigure{4-6-14}% + \ExampleSubFigure{4-6-15} + \ExampleSubFigure{4-6-16}% + \ExampleSubFigure{4-6-17}% + \ExampleSubFigure{4-6-18} + \caption{Section 6-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure{4-6-19}% + \ExampleSubFigure{4-6-20}% + \ExampleSubFigure{4-6-21} + \ExampleSubFigure{4-6-22}% + \ExampleSubFigure{4-6-23}% + \ExampleSubFigure{4-6-24} + \ExampleSubFigure{4-6-25} + \caption{Section 6-B} +\end{figure} + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-6-26} + \ExampleSubFigure{4-6-27}% + \ExampleSubFigure{4-6-28}% + \ExampleSubFigure{4-6-29} + \ExampleSubFigure[0.3333]{4-6-30}% + \ExampleSubFigure[0.6667]{4-6-31} + \ExampleSubFigure[1]{4-6-32} + \caption{Section 6-C} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-6-33} + \ExampleSubFigure[0.5]{4-6-34}% + \ExampleSubFigure[0.5]{4-6-35} + \ExampleSubFigure[0.5]{4-6-36}% + \ExampleSubFigure[0.5]{4-6-37} + \caption{Section 6-D} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-6-38} + \ExampleSubFigure[1]{4-6-39} + \ExampleSubFigure[0.5]{4-6-40}% + \ExampleSubFigure[0.5]{4-6-41} + \caption{Section 6-E} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-6-42}% + \ExampleSubFigure[0.5]{4-6-43} + \ExampleSubFigure{4-6-44}% + \ExampleSubFigure{4-6-45}% + \ExampleSubFigure{4-6-46} + \caption{Section 6-F} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-7-1} + \ExampleSubFigure[1]{4-7-2} + \ExampleSubFigure[1]{4-7-4} + \caption{Section 7} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-8-1}% + \ExampleSubFigure[0.25]{4-8-2}% + \ExampleSubFigure[0.25]{4-8-3} + \ExampleSubFigure[1]{4-8-4} + \caption{Section 8-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-8-5} + \caption{Section 8-B} +\end{figure} + +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.5]{4-9-1}% + \ExampleSubFigure[0.5]{4-9-2} + \caption{Section 9} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[0.4]{4-10-1}% + \ExampleSubFigure[0.2]{4-10-2}% + \ExampleSubFigure[0.2]{4-10-3}% + \ExampleSubFigure[0.2]{4-10-4} + \ExampleSubFigure[0.4]{4-10-5}% + \ExampleSubFigure[0.2]{4-10-6}% + \ExampleSubFigure[0.4]{4-10-7} + \caption{Section 10-A} +\end{figure} + +\clearpage +\begin{figure}[!htbp] + \centering + \ExampleSubFigure[1]{4-10-8} + \ExampleSubFigure[1]{4-10-9} + \ExampleSubFigure[1]{4-10-10} + \caption{Section 10-B} +\end{figure} + +\end{document} diff --git a/Master/texmf-dist/dvips/pstricks/pst-algparser.pro b/Master/texmf-dist/dvips/pstricks/pst-algparser.pro index a859d0a9825..ab96e87353e 100644 --- a/Master/texmf-dist/dvips/pstricks/pst-algparser.pro +++ b/Master/texmf-dist/dvips/pstricks/pst-algparser.pro @@ -1,4 +1,4 @@ -% $Id: pst-algparser.pro 7 2007-12-29 22:21:13Z herbert $ +% $Id: pst-algparser.pro 26 2008-06-14 11:50:02Z herbert $ %% %% PostScript prologue for PSTricks algorithm parser %% Version 0.01, 2008/01/01 diff --git a/Master/texmf-dist/dvips/pstricks/pst-dots.pro b/Master/texmf-dist/dvips/pstricks/pst-dots.pro index c704de559f5..8077b3d59a0 100644 --- a/Master/texmf-dist/dvips/pstricks/pst-dots.pro +++ b/Master/texmf-dist/dvips/pstricks/pst-dots.pro @@ -1,7 +1,7 @@ -% $Id: pst-dots.pro 22 2008-04-18 16:03:12Z herbert $ +% $Id: pst-dots.pro 26 2008-06-14 11:50:02Z herbert $ % %% PostScript prologue for pstricks.tex. -%% Version 2.01, 2008/04/18 +%% Version 2.02, 2008/04/18 %% %% For distribution, see pstricks.tex. %% @@ -44,6 +44,9 @@ dup (h) 0 get /Hexagon put dup (H) 0 get /BoldHexagon put dup (G) 0 get /SolidHexagon put + dup (f) 0 get /Octogon put % 2008-04-18 hv + dup (F) 0 get /BoldOctogon put % 2008-04-18 hv + dup (g) 0 get /SolidOctogon put % 2008-04-18 hv dup (a) 0 get /Add put dup (A) 0 get /BoldAdd put % 65 dup (x) 0 get /Mul put @@ -89,6 +92,14 @@ CharProcs begin /SolidHexagon {HexagonPath fill} def /Hexagon {HexagonPath .89 .89 scale HexagonPath eofill} def /BoldHexagon {HexagonPath .79 .79 scale HexagonPath eofill} def +% 2008-04-18 hv + /OctogonPath { + 550 dup 22.5 tan mul dup neg dup add /xMove exch def + exch moveto 7 { xMove 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 +% /AsteriskPath { 20 0 moveto 10 250 180 500 0 500 curveto -180 500 -10 250 -20 0 curveto closepath @@ -97,6 +108,7 @@ CharProcs begin AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath 60 rotate AsteriskPath fill } def +% /Basterp {50 250 220 500 0 500 curveto -220 500 -50 250 -50 30 cos 100 mul curveto} def /BoldAsteriskPath { 50 30 cos 100 mul moveto Basterp diff --git a/Master/texmf-dist/dvips/pstricks/pst-node.pro b/Master/texmf-dist/dvips/pstricks/pst-node.pro index aa9d39dbe0d..5916c637eb1 100644 --- a/Master/texmf-dist/dvips/pstricks/pst-node.pro +++ b/Master/texmf-dist/dvips/pstricks/pst-node.pro @@ -1,4 +1,4 @@ -% $Id: pst-node.pro 11 2008-01-24 13:37:27Z herbert $ +% $Id: pst-node.pro 26 2008-06-14 11:50:02Z herbert $ %% %% PostScript prologue for pst-node.tex. %% Version 1.00, 2008/01/01. diff --git a/Master/texmf-dist/dvips/pstricks/pstricks.pro b/Master/texmf-dist/dvips/pstricks/pstricks.pro index 841b2896e7d..7701af23def 100644 --- a/Master/texmf-dist/dvips/pstricks/pstricks.pro +++ b/Master/texmf-dist/dvips/pstricks/pstricks.pro @@ -1,7 +1,7 @@ -% $Id: pstricks.pro 21 2008-04-18 13:40:08Z herbert $ +% $Id: pstricks.pro 34 2008-06-25 17:20:01Z herbert $ % %% PostScript prologue for pstricks.tex. -%% Version 1.04, 2008/04/15 +%% Version 1.05, 2008/06/25 %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -141,6 +141,30 @@ tx@Dict begin grestore pop pop } def % +/PenroseFill {% on stack: scaling factor + dup dup scale + 1 exch div round /penroseFactor ED + a 0 dtransform round exch round exch + 2 copy idtransform + exch Atan rotate + idtransform pop /a ED + .25 .25 itransform pathbbox + /y2 ED + a Div ceiling cvi /x2 ED /y1 ED + a Div cvi /x1 ED /y2 y2 y1 sub def + clip + newpath + systemdict + /setstrokeadjust known { true setstrokeadjust } if + /I/S/L/W/G/+/Z/F/E/D[/def/exch/for{E D}/add{s E get mul} + { Z -36.2001 1 33 }{25 E S rlineto}{/q Z dup q G E q 1 + G}{Z 2 2}]{cvx def}forall + [0 72 1008 {dup sin E cos }F ]1 setlinejoin/s W{/a W{/b I 10{/i I 4{/m I moveto + i m +/j I 10{/l Z b m l + G a l G sub s m get div .2 + floor .3 + 25 + mul j l + S rmoveto}F i L j L stroke }F}F}F}F + grestore + pop pop +} def +% %gsave abs CLW add /a ED a 0 dtransform round exch round exch %2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25 %% DG/SR modification begin - Dec. 12, 1997 - Patch 2 diff --git a/Master/texmf-dist/source/generic/pstricks/Makefile b/Master/texmf-dist/source/generic/pstricks/Makefile deleted file mode 100644 index ce772c9e8cd..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/Makefile +++ /dev/null @@ -1,97 +0,0 @@ - -# Rolf Niepraschk, niepraschk@ptb.de, 2003-02-23 - -.SUFFIXES : .tex .dvi .ps .pdf .eps - -MAIN = pst-user - -# D.G. modification begin - Feb. 28, 2003 -#LATEX = elatex -LATEX = latex -# D.G. modification end -PDFLATEX = pdfelatex -PS2PDF = ps2pdf - -# D.G. modification begin - Feb. 28, 2003 -PS2PDF_OPT1 = -sPAPERSIZE=letter -#PS2PDF_OPT1 = -sPAPERSIZE=a4 -# D.G. modification end -PS2PDF_OPT2 = -sPAPERSIZE=letter - -DVIPSFLAGS1 = -Ppdf -G0 -DVIPSFLAGS2 = -Pwww -E -#GSOPT = GS_OPTIONS=-dAutoRotatePages=/None -GSOPT = GS_OPTIONS=-dPDFSETTINGS=/prepress - -PICS := $(PICS:.eps=.pdf) - -# D.G. modification begin - Mar. 7, 2003 -#ADDINPUTS = pst-user.cls defaults.pst -ADDINPUTS = pst-user.cls defaults.pst \ - psd-cove.tex psd-esse.tex psd-basi.tex psd-para.tex psd-cust.tex \ - psd-pict.tex psd-text.tex psd-node.tex psd-tree.tex psd-fill.tex \ - psd-3d.tex psd-spec.tex psd-help.tex -# D.G. modification end - -ARCHNAME = $(MAIN)-$(shell date +%y%m%d).zip - -# D.G. modification begin - Mar. 7, 2003 -TARNAME = $(MAIN)-$(shell date +%y%m%d).tar -# D.G. modification end - -# D.G. modification begin - Feb. 28, 2003 -#all : $(MAIN).pdf $(MAIN)-old.pdf -all : $(MAIN).pdf -# D.G. modification end - - -$(MAIN).dvi : $(MAIN).tex $(ADDINPUTS) - $(LATEX) $< -# D.G. modification begin - Feb. 28, 2003 -# makeindex -t $(basename $<).ilg $(basename $<) -# D.G. modification end - makeindex -t $(basename $<).ilg -s pst-user.ist $(basename $<) - $(LATEX) $< - -$(MAIN).pdf : $(MAIN).ps - $(PS2PDF) $(PS2PDF_OPT1) $< $@ - -%.ps : %.dvi - dvips $(DVIPSFLAGS1) $< -o $@ - -pst-user-old.pdf : pst-user-old.tex pst-usr1.pdf pst-usr2.pdf pst-usr3.pdf \ - pst-usr4.pdf - $(PDFLATEX) $< - -pst-usr%.pdf : pst-usr%.ps.gz - zcat $< | $(PS2PDF) $(PS2PDF_OPT2) - > $@ - -clean : - $(RM) $(addprefix $(MAIN), .aux .ilg .ind .idx .log .out .tmp .toc) -# D.G. modification begin - Mar. 7, 2003 -# $(RM) $(addprefix $(MAIN)-old, .log .aux) -# $(RM) pst-usr?.pdf -# D.G. modification end - -veryclean : clean - $(RM) $(addprefix $(MAIN), .ps .dvi .pdf) -# D.G. modification begin - Mar. 7, 2003 -# $(RM) $(MAIN)-old.pdf - $(RM) *.aux -# D.G. modification end - -arch : - zip $(ARCHNAME) $(MAIN).tex $(ADDINPUTS) pst-user-old.tex Makefile - @ echo ; echo $(ARCHNAME) ; echo - -# D.G. modification begin - Mar. 7, 2003 -tar: - tar -cf $(TARNAME) $(MAIN).tex $(ADDINPUTS) \ - pst-user.ist pst-user.idx \ - CHANGES VERSIONS TODO \ - Makefile artistic.txt defaults.pst \ - pstricks.tex pst-eps.tex pst-node.tex pst-tree.tex \ - *.sty pst-user.pdf - gzip --force $(TARNAME) - ls -l $(TARNAME).gz -# D.G. modification end diff --git a/Master/texmf-dist/source/generic/pstricks/defaults.pst b/Master/texmf-dist/source/generic/pstricks/defaults.pst deleted file mode 100644 index 4e3ba5f27f2..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/defaults.pst +++ /dev/null @@ -1,149 +0,0 @@ -%% defaults.pst -%% Created with unix shell commands: -%% grep ^.psset\@ pstricks.tex > defaults.pst -%% grep ^.psset\@ pst-node.tex >> defaults.pst -%% grep ^.psset\@ pst-grad.tex >> defaults.pst -%% grep ^.psset\@ pst-coil.tex >> defaults.pst -%% grep ^.psset\@ pst-eps.tex >> defaults.pst -%% grep ^.psset\@ pst-plot.tex >> defaults.pst -%% grep ^.psset\@ pst-tree.tex >> defaults.pst -%% Input by pst-user.tex -\psset@swapaxes{false} -\psset@showpoints{false} -\psset@border{0pt} -\psset@bordercolor{white} -\psset@doubleline{false} -\psset@doublesep{1.25\pslinewidth} -\psset@doublecolor{white} -\psset@shadow{false} -\psset@shadowsize{3pt} -\psset@shadowangle{-45} -\psset@shadowcolor{darkgray} -\psset@linewidth{.8pt} -\psset@linecolor{black} -\psset@dash{5pt 3pt} -\psset@dashadjust{true} -\psset@dotsep{3pt} -\psset@linestyle{solid} -\psset@fillcolor{white} -\psset@hatchwidth{.8pt} -\psset@hatchsep{4pt} -\psset@hatchcolor{black} -\psset@hatchangle{45} -\psset@fillstyle{none} -\psset@arrowscale{1} -\psset@arrowsize{1.5pt 2} -\psset@arrowlength{1.4} -\psset@arrowinset{.4} -\psset@tbarsize{2pt 5} -\psset@bracketlength{.15} -\psset@rbracketlength{.15} -\psset@arrows{-} -\psset@liftpen{0} -\psset@linetype{0} -\psset@gangle{0} -\psset@curvature{1 .1 0} -\psset@dotsize{2pt 2} -\psset@dotscale{1} -\psset@dotangle{0} -\psset@dotstyle{*} -\psset@linearc{0pt} -\psset@framearc{0} -\psset@cornersize{relative} -\psset@dimen{outer} -\psset@gridwidth{.8pt} -\psset@griddots{0} -\psset@gridcolor{black} -\psset@subgridwidth{.4pt} -\psset@subgridcolor{gray} -\psset@subgriddots{0} -\psset@subgriddiv{5} -\psset@gridlabels{10pt} -\psset@gridlabelcolor{black} -\psset@framesep{3pt} -\psset@boxsep{true} -\psset@trimode{U} -\psset@arcsep{0} -\psset@radius{.25cm} -\psset@ref{c} -\psset@rot{0} -\psset@labelsep{5pt} -\psset@refangle{0} -\psset@nodealign{false} -\psset@href{0} -\psset@vref{.7ex} -\psset@framesize{10pt} -\psset@nodesep{0pt} -\psset@arm{10pt} -\psset@offset{0pt} -\psset@angle{0} -\psset@arcangle{8} -\psset@ncurv{.67} -\psset@loopsize{1cm} -\psset@boxsize{.4cm} -\psset@nrot{0} -\psset@npos{} -\psset@tpos{.5} -\psset@shortput{none} -\psset@colsep{1.5cm} -\psset@rowsep{1.5cm} -\psset@mcol{c} -\psset@mnodesize{-1pt} -\psset@mnode{R} -\psset@emnode{none} -\psset@gradbegin{gradbegin} -\psset@gradend{gradend} -\psset@gradlines{500} -\psset@gradmidpoint{.9} -\psset@gradangle{0} -\psset@coilwidth{1cm} -\psset@coilheight{1} -\psset@coilarm{.5cm} -\psset@coilaspect{45} -\psset@coilinc{10} -\psset@bbllx{0pt} -\psset@bblly{0pt} -\psset@bburx{0pt} -\psset@bbury{0pt} -\psset@headers{none} -\psset@checkfile{true} -\psset@makeeps{new} -\psset@headerfile{} -\psset@plotstyle{line} -\psset@plotpoints{50} -\psset@ticksize{3pt} -\psset@tickstyle{full} -\psset@ticks{all} -\psset@labels{all} -\psset@Ox{0} -\psset@Dx{1} -\psset@dx{0} -\psset@Oy{0} -\psset@Dy{1} -\psset@dy{0} -\psset@showorigin{true} -\psset@axesstyle{axes} -\psset@treemode{D} -\psset@treeflip{false} -\psset@root{\TC} -\psset@treesep{.75cm} -\psset@xtreesep{0pt} -\psset@treenodesize{-1pt} -\psset@treefit{tight} -\psset@treerep{1} -\psset@showbbox{false} -\psset@levelsep{2cm} -\psset@varlevelsep{false} -\psset@treeshift{0} -\psset@skiplevels{0} -\psset@unary{middle} -\psset@leafalign{false} -\psset@edge{\ncline} -\psset@skipedge{} -\psset@fansize{1cm} -\psset@tnsep{} -\psset@tnyref{} -\psset@tnheight{\ht\strutbox} -\psset@tndepth{\dp\strutbox} -\psset@tnpos{} -\endinput diff --git a/Master/texmf-dist/source/generic/pstricks/psd-3d.tex b/Master/texmf-dist/source/generic/pstricks/psd-3d.tex deleted file mode 100644 index 9837db6e91f..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-3d.tex +++ /dev/null @@ -1,12 +0,0 @@ -%% BEGIN psd-3d.tex - -\part{Three Dimensional Graphics\label{P-threeD}} - -\Section{Overview} - -\File{pst-3d} -The... - -\endinput - -%% END psd-3d.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-basi.tex b/Master/texmf-dist/source/generic/pstricks/psd-basi.tex deleted file mode 100644 index 0d9f5ccea8b..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-basi.tex +++ /dev/null @@ -1,648 +0,0 @@ -%% BEGIN psd-basi.tex - -\part{Basic graphics objects\label{P-graphics}} - -\Section{Lines and polygons\label{S-lines}} - -The objects in this section also use the following parameters: -\begin{description} - \pitem[linearc=dim] The radius of arcs drawn at the corners of lines by the - \n\psline{} and \n\pspolygon{} graphics objects. <dim> should be positive. - \pitem[framearc=num] In the \n\psframe{} and the related box framing macros, - the radius of rounded corners is set, by default, to one-half <num> times - the width or height of the frame, whichever is less. <num> should be between - 0 and 1. - \pitem[cornersize=relative/absolute] If \p{cornersize} is "relative", then - the \p{framearc} parameter determines the radius of the rounded corners for - \n\psframe, as described above (and hence the radius depends on the size of - the frame). If \p{cornersize} is "absolute", then the \p{linearc} parameter - determines the radius of the rounded corners for \n\psframe{} (and hence the - radius is of constant size). -\end{description} - - -Now here are the lines and polygons: -\begin{description} - -\oitem \psline`{arrows}(\x0,\y0)'(\x1,\y1)`\ldots(\x n,\y n)' - - This draws a line through the list of coordinates. For example: -\begin{MEx*}(4,2) - \psline[linewidth=2pt,linearc=.25]{->}(4,2)(0,1)(2,0) -\end{MEx*} - -\mitem \qline(coor0)(coor1) - - This is a streamlined version of \n\psline{} that does not pay attention to -the \p{arrows} parameter, and that can only draw a single line segment. Note -that both coordinates are obligatory, and there is no optional argument for -setting parameters (use \n\psset{} if you need to change the \p{linewidth}, or -whatever). For example: -\begin{MEx*}(2,1) - \qline(0,0)(2,1) -\end{MEx*} - -\oitem \pspolygon`(\x0,\y0)'(\x1,\y1)(\x2,\y2)`\ldots(\x n,\y n)' - - This is similar to \n\psline, but it draws a closed path. For example: -\begin{MEx*}(4,2) - \pspolygon[linewidth=1.5pt](0,2)(1,2) - \pspolygon*[linearc=.2,linecolor=darkgray](1,0)(1,2)(4,0)(4,2) -\end{MEx*} - -\oitem \psframe`(\x0,\y0)'(\x1,\y1) - - \n\psframe{} draws a rectangle with opposing corners \c0 and \c1. For -example: -\begin{MEx*}(4,2) - \psframe[linewidth=2pt,framearc=.3,fillstyle=solid, - fillcolor=lightgray](4,2) - \psframe*[linecolor=white](1,.5)(2,1.5) -\end{MEx*} - -\oitem \psdiamond`\c0'\c1 - - \n\psdiamond{} draws a diamond centered at \c0, and with the half width and -height equal to \x1\ and \y1, respectively. -\begin{MEx*}(4,2) - \psdiamond[framearc=.3,fillstyle=solid, - fillcolor=lightgray](2,1)(1.5,1) -\end{MEx*} - -The diamond is rotated about the center by -\begin{Ex} - \Par{gangle=gangle} -\end{Ex} - -\oitem \pstriangle`\c0'\c1 - - \n\pstriangle{} draws an isosceles triangle with the base centered at \c0, -and with width (base) and height equal to \x1{} and \y1, respectively. -\begin{MEx*}(4,2) - \pstriangle*[gangle=10](2,.5)(4,1) -\end{MEx*} - -\end{description} - -\Section{Arcs, circles and ellipses} - -\begin{description} - -\oitem \pscircle`(\x0,\y0)'{radius} - -This draws a circle whose center is at \c0 and that has radius <radius>. For -example: -\begin{MEx*}[-1,-1](2,2) - \pscircle[linewidth=2pt](.5,.5){1.5} -\end{MEx*} - -\mitem \qdisk(coor){radius} - - This is a streamlined version of \n{\pscircle*}. Note that the two arguments -are obligatory and there is no parameters arguments. To change the color of -the disks, you have to use \n\psset: -\begin{MEx}[1.9,2.9](2.1,3.1) - \psset{linecolor=gray} - \qdisk(2,3){4pt} -\end{MEx} - -\oitem \pswedge`(\x0,\y0)'{radius}{angle1}{angle2} - - This draws a wedge whose center is at \c0, that has radius <radius>, and -that extends counterclockwise from <angle1> to <angle2>. The angles must be -specified in degrees. For example: -\begin{MEx*}(2,2) - \pswedge[linecolor=gray,linewidth=2pt,fillstyle=solid]{2}{0}{70} -\end{MEx*} - -\oitem \psellipse`(\x0,\y0)'(\x1,\y1) - -\c0 is the center of the ellipse, and \x1 and \y1 are the horizontal and -vertical radii, respectively. For example: -% D.G. modification begin - Mar. 3, 2003 -%\begin{MEx*}[-1,-1.5](2,1) -% D.G. modification end -\begin{MEx*}[-1,-1](2,1) - \psellipse[fillcolor=lightgray](.5,0)(1.5,1) -\end{MEx*} - -\oitem \psarc`{arrows}\c~'{radius}{angleA}{angleB} - - This draws an arc from <angleA> to <angleB>, going counter clockwise, for a -circle of radius <radius> and centered at \c{}. You must include either the -{arrows} argument or the \c{} argument. For example: -\begin{MEx*}(3,2) - \psarc*[showpoints=true](1.5,1.5){1.5}{215}{0} -\end{MEx*} -See how \p{showpoints=true} draws a dashed line from the center to the arc; -this is useful when composing pictures. - -\n\psarc{} also uses the parameters: -\begin{description} - -\pitem[arcsepA=dim](0pt) - - <angleA> is adjusted so that the arc would just touch a line of width <dim> -that extended from the center of the arc in the direction of <angleA>. - -\pitem[arcsepB=dim](0pt) This is like \p{arcsepA}, but <angleB> is adjusted. - -\pitem[arcsep=dim] This just sets both \p{arcsepA} and \p{arcsepB}. -\end{description} -These parameters make it easy to draw two intersecting lines and then use -\n\psarc{} with arrows to indicate the angle between them. For example: -\begin{MEx*}(4,3) - \SpecialCoor - \psline[linewidth=2pt](4;50)(0,0)(4;10) - \psarc[arcsepB=2pt]{->}{3}{10}{50} -\end{MEx*} - -\oitem \psarcn`{arrows}\c~'{radius}{angleA}{angleB} - - This is like \n\psarc, but the arc is drawn \emph{clockwise}. You can achieve -the same effect using \n\psarc{} by switching <angleA> and <angleB> and the -arrows.\footnote{% -However, with \n\pscustom{} graphics object, described in Part \ref{P-custom}, -\n\psarcn{} is not redundant.} - -\oitem \psellipticarc`{arrows}(\x0,\y0)'(\x1,\y1){angleA}{angleB} - - This draws an elliptic from <angleA> to <angleB>, going counter clockwise, -with \c0 the center of the ellipse and \x1 and \y1 the horizontal and -vertical radii, respectively. For example: -\begin{MEx*}[-1,-1](2,1) - \psellipticarc[showpoints=true,arrowscale=2]{->}(.5,0)(1.5,1){215}{0} -\end{MEx*} -See how \p{showpoints=true} draws a dashed line from the center to the arc; -this is useful when composing pictures. - -Like \n\psarc, \n\psellipticarc{} use the \p{arcsep}/\p{arcsepA}/\p{arcsepB} -parameters. - -Unlike \n\psarc, \n\psellipticarc use the -\p{dimen}=\p{inner}/\p{middle}/\p{outer} parameter. - -\oitem \psellipticarcn`{arrows}(\x0,\y0)'(\x1,\y1){angleA}{angleB} - - This is like \n\psellipticarc, but the arc is drawn \emph{clockwise}. You can -achieve the same effect using \n\psellipticarc{} by switching <angleA> and -<angleB> and the arrows.\footnote{% -However, with \n\pscustom{} graphics object, described in Part \ref{P-custom}, -\n\psellipticarcn{} is not redundant.} - -\end{description} - - -\Section{Curves} - -\begin{description} - -\oitem \psbezier`{arrows}(\x0,\y0)'(\x1,\y1)(\x2,\y2)(\x3,\y3) - - \n\psbezier{} draws a bezier curve with the four control points. The curve -starts at the first coordinate, tangent to the line connecting to the second -coordinate. It ends at the last coordinate, tangent to the line connecting to -the third coordinate. The second and third coordinates, in addition to -determining the tangency of the curve at the endpoints, also ``pull'' the -curve towards themselves. For example: -\begin{MEx}(4,4) - \psbezier[linewidth=2pt,showpoints=true]{->}(0,0)(1,4)(2,1)(4,3.5) -\end{MEx} -\p{showpoints=true} puts dots in all the control points, and connects them by -dashed lines, which is useful when adjusting your bezier curve. - -\oitem \parabola`{arrows}'\c0\c1 - - Starting at \c0, \n\parabola{} draws the parabola that passes through \c0 and -whose maximum or minimum is \c1. For example: -\begin{MEx*}(4,3) - \parabola*(1,1)(2,3) - \psset{xunit=.01} - \parabola{<->}(400,3)(200,0) -\end{MEx*} -\end{description} - -The next three graphics objects interpolate an open or closed curve through -the given points. The curve at each interior point is perpendicular to the -line bisecting the angle ABC, where B is the interior point, and A and C are -the neighboring points. Scaling the coordinates \emph{does not} cause the curve -to scale proportionately. - -The curvature is controlled by the following parameter: -\begin{description} -\pitem[curvature=num1 num2 num3] - - You have to just play around with this parameter to get what you want. -Individual values outside the range -1 to 1 are either ignored or are for -entertainment only. Below is an explanation of what each number does. A, B and -C refer to three consecutive points. - - Lower values of <num1> make the curve tighter. - - Lower values of <num2> tighten the curve where the angle ABC is greater than -45 degrees, and loosen the curve elsewhere. - - <num3> determines the slope at each point. If <num3>=0, then the curve is -perpendicular at B to the bisection of ABC. If <num3>=-1, then the curve at B -is parallel to the line AC. With this value (and only this value), scaling the -coordinates causes the curve to scale proportionately. However, positive -values can look better with irregularly spaced coordinates. Values less than --1 or greater than 2 are converted to -1 and 2, respectively. -\end{description} - -Here are the three curve interpolation macros: -\begin{description} - -\oitem \pscurve`{arrows}'\c1`\ldots\cn' - - This interpolates an open curve through the points. For example: -\begin{MEx*}(4,2) - \pscurve[showpoints=true]{<->}(0,1.3)(0.7,1.8) - (3.3,0.5)(4,1.6)(0.4,0.4) -\end{MEx*} -Note the use of \p{showpoints=true} to see the points. This is helpful when -constructing a curve. - -\oitem \psecurve`{arrows}'\c1`\ldots\cn'] - - This is like \n\pscurve, but the curve is not extended to the first and last -points. This gets around the problem of trying to determine how the curve -should join the first and last points. The "e" has something to do with -``endpoints''. For example: -% D.G. modification begin - Mar. 3, 2003 -%\begin{MEx*}[0,-.9](4,4) -% D.G. modification end -\begin{MEx*}(4,4) - \psecurve[showpoints=true](.125,8)(.25,4)(.5,2) - (1,1)(2,.5)(4,.25)(8,.125) -\end{MEx*} - -\oitem \psccurve`{arrows}'\c1`\ldots\cn' - -This interpolates a closed curve through the points. "c" stands for -``closed''. For example: -\begin{MEx*}(4,1) - \psccurve[showpoints=true] - (.5,0)(3.5,1)(3.5,0)(.5,1) -\end{MEx*} -\end{description} - -\Section{Dots\label{S-dots}} - -The graphics objects -\begin{Ex} - \object \psdot`*[par](\x1,y1)' - \object \psdots`*[par]'(\x1,\y1)`(\x2,\y2)\ldots(\x n,\y n)' -\end{Ex} -put a dot at each coordinate. - -What a ``dot'' is depends on the value of the -\begin{Ex} - \Par{dotstyle=style} -\end{Ex} -parameter. This also determines the dots you get when \p{showpoints=true}. - -The dot styles are also pretty intuitive:% -\newbox\dottable -\setbox\dottable=\hbox{% - \psset{fillcolor=lightgray} - \def\mydots#1{% - \psdots[dotstyle=#1](.1,1ex)(.55,1ex)(1,1ex)(1.45,1ex)(1.9,1ex)}% - \hfill - \begin{tabular}{cl}% - \emph{Style} & \hbox to 2cm{\emph{Example}\hss} \\[2pt] - "*" & \mydots{*}\\ - "o" & \mydots{o}\\ - "Bo" & \mydots{Bo}\\ - "x" & \mydots{x}\\ - "+" & \mydots{+}\\ - "B+" & \mydots{B+}\\ - "asterisk" & \mydots{asterisk}\\ - "Basterisk" & \mydots{Basterisk}\\ - "oplus" & \mydots{oplus}\\ - "otimes" & \mydots{otimes}\\ - "|" & \mydots{|}\\ - "B|" & \mydots{B|} - \end{tabular}% - \hfill - \begin{tabular}{cl} - \emph{Style} & \hbox to 2cm{\emph{Example}\hss} \\[2pt] - "square" & \mydots{square}\\ - "Bsquare" & \mydots{Bsquare}\\ - "square*" & \mydots{square*}\\ - "diamond" & \mydots{diamond}\\ - "diamond*" & \mydots{diamond*}\\ - "triangle" & \mydots{triangle}\\ - "Btriangle" & \mydots{Btriangle}\\ - "triangle*" & \mydots{triangle*}\\ - "pentagon" & \mydots{pentagon}\\ - "Bpentagon" & \mydots{Bpentagon}\\ - "pentagon*" & \mydots{pentagon*}\\ - \end{tabular}% - \hfill}% -\addtoquickref{center}{% - {\large\textbf{Dot styles}}\par - \leavevmode\hbox to \hsize{\unhbox\dottable}} -\begin{center} - \leavevmode - \hbox to \hsize{\unhcopy\dottable}% -\end{center} - -Except for "diamond", the center of dot styles with a hollow center is colored -\p{fillcolor}. - -Here are the parameters for changing the size and orientation of the dots: -\begin{description} - -\pitem[dotsize=dim `num'] - The diameter of a circle or disc is <dim> plus <num> times \p{linewidth} -(if the optional <num> is included). The size of the other dots styles is -similar (except for the size of the "|" dot style, which is set by the -\p{tbarsize} parameter described on page \pageref{p+tbarsize}). - -\pitem[dotscale=num1 `num2'] -The dots are scaled horizontally by <num1> and vertically by <num2>. If you -only include <num1>, the arrows are scaled by <num1> in both directions. - -\pitem[dotangle=angle] - After setting the size and scaling the dots, the dots are rotated by <angle>. - -\end{description} - - -\Section{Grids\label{S-grids}} - -PSTricks has a powerful macro for making grids and graph paper: - \Mac \psgrid`(\x0,\y0)(\x1,\y1)(\x2,\y2)' -\n\psgrid{} draws a grid with opposing corners \c1 and \c2. The intervals are -numbered, with the numbers positioned at \x0 and \y0. The coordinates are -always interpreted as Cartesian coordinates. For example: -\begin{MEx}[-1,-1](3,2) - \psgrid(0,0)(-1,-1)(3,2) -\end{MEx} -(Note that the coordinates and label positioning work the same as with -\n\psaxes.) - -The main grid divisions occur on multiples of \p{xunit} and \p{yunit}. -Subdivisions are allowed as well. Generally, the coordinates would be given as -integers, without units. - -If the \c0 coordinate is omitted, \c1 is used. The default for \c1 is "(0,0)". -If you don't give any coordinates at all, then the coordinates of the current -\n\pspicture{} environment are used or a 10x10 grid is drawn. Thus, you can -include a \n\psgrid{} command without coordinates in a \n\pspicture\ -environment to get a grid that will help you position objects in the picture. - -The main grid divisions are numbered, with the numbers drawn next to the -vertical line at \x0 (away from \x2) and next to the horizontal line at \x1 -(away from \y2). \c1 can be any corner of the grid, as long as \c2 is the -opposing corner, you can position the labels on any side you want. For -example, compare -\begin{MEx}(4,1) - \psgrid(0,0)(4,1) -\end{MEx} -and -\begin{MEx}(4,1) - \psgrid(4,1)(0,0) -\end{MEx} - -The following parameters apply only to \n\psgrid: -\begin{description} - -\pitem[gridwidth=dim] - The width of grid lines. - -\pitem[gridcolor=color] - The color of grid lines. - -\pitem[griddots=num] - If <num> is positive, the grid lines are dotted, with <num> dots per -division. - -\pitem[gridlabels=dim] - The size of the numbers used to mark the grid. - -\pitem[gridlabelcolor=color] - The color of the grid numbers. - -\pitem[subgriddiv=int] - The number of grid subdivisions. - -\pitem[subgridwidth=dim] - The width of subgrid lines. - -\pitem[subgridcolor=color] - The color of subgrid lines. - -\pitem[subgriddots=num] - Like \p{griddots}, but for subdivisions. - -\end{description} - -Here is a familiar looking grid which illustrates some of the parameters: -\begin{MEx}[-1,-1](3,1) - \psgrid[subgriddiv=1,griddots=10,gridlabels=7pt](-1,-1)(3,1) -\end{MEx} - -Note that the values of \p{xunit} and \p{yunit} are important parameters for -\n\psgrid, because they determine the spacing of the divisions. E.g., if the -value of these is "1pt", and then you type -\begin{LVerb} - \psgrid(0,0)(10in,10in) -\end{LVerb} -you will get a grid with 723 main divisions and 3615 subdivisions! (Actually, -\n\psgrid{} allows at most 500 divisions or subdivisions, to limit the damage -done by this kind of mistake.) Probably you want to set \p{unit} to ".5in" or -"1in", as in -\begin{LVerb} - \psgrid[unit=.5in](0,0)(20,20) -\end{LVerb} - - -\Section{Plots} - -\File{pst-plot} -The plotting commands described in this part are defined in -"pst-plot.tex" / "pst-plot.sty", which you must load first. - -The \n\psdots, \n\psline, \n\pspolygon, \n\pscurve, \n\psecurve{} and -\n\psccurve{} graphics objects let you plot data in a variety of ways. However, -first you have to generate the data and enter it as coordinate pairs \c{}. -The plotting macros in this section give you other ways to get and use the -data. (Section \ref{S-axes} tells you how to generate axes.) - -To parameter -\begin{Ex} - \Par{plotstyle=style} -\end{Ex} -determines what kind of plot you get. Valid styles are "dots", "line", -"polygon", "curve", "ecurve", "ccurve". E.g., if the \p{plotstyle} is -"polygon", then the macro becomes a variant of the \n\pspolygon{} object. - -You can use arrows with the plot styles that are open curves, but there is no -optional argument for specifying the arrows. You have to use the \p{arrows} -parameter instead. - -\begin{Warning} -No PostScript error checking is provided for the data arguments. Read Appendix -\ref{S-raw} before including PostScript code in the arguments. - -There are system-dependent limits on the amount of data \TeX{} and PostScript -can handle. You are much less likely to exceed the PostScript limits when you -use the "line", "polygon" or "dots" plot style, with \p{showpoints=false}, -\p{linearc=0pt}, and no arrows. -\end{Warning} - -Note that the lists of data generated or used by the plot commands cannot -contain units. The values of \n\psxunit{} and \n\psyunit{} are used as the unit. - - -\begin{description} - -\oitem \fileplot{file} - -\n\fileplot{} is the simplest of the plotting functions to use. You just need a -file that contains a list of coordinates (without units), such as generated by -Mathematica or other mathematical packages. The data can be delimited by curly -braces "{"~"}", parentheses "("~")", commas, and/or white space. Bracketing -all the data with square brackets "[ ]" will significantly speed up the rate -at which the data is read, but there are system-dependent limits on how much -data \TeX{} can read like this in one chunk. (The "[" \emph{must} go at the -beginning of a line.) The file should not contain anything else (not even -"\endinput"), except for comments marked with "%". - -\n\fileplot{} only recognizes the "line", "polygon" and "dots" plot styles, and -it ignores the \p{arrows}, \p{linearc} and \p{showpoints} parameters. The -\n\listplot{} command, described below, can also plot data from file, without -these restrictions and with faster \TeX{} processing. However, you are less -likely to exceed PostScript's memory or operand stack limits with \n\fileplot. - -If you find that it takes \TeX{} a long time to process your \n\fileplot\ -command, you may want to use the \n\PSTtoEPS{} command described on page -\pageref{+PSTtoEPS}. This will also reduce \TeX's memory requirements. - -\oitem \dataplot{commands} - -\n\dataplot{} is also for plotting lists of data generated by other programs, -but you first have to retrieve the data with one of the following commands: -\begin{Ex} - \object \savedata{command}[data] - \object \readdata{command}{file} -\end{Ex} -<data> or the data in <file> should conform to the rules described above for -the data in \n\fileplot{} (with \n\savedata, the data must be delimited by -"["~"]", and with \n\readdata, bracketing the data with "["~"]" speeds things -up). You can concatenate and reuse lists, as in -\begin{LVerb} - \readdata{\foo}{foo.data} - \readdata{\bar}{bar.data} - \dataplot{\foo\bar} - \dataplot[origin={0,1}]{\bar} -\end{LVerb} - -The \n\readdata{} and \n\dataplot{} combination is faster than \n\fileplot{} -if you reuse the data. \n\fileplot{} uses less of \TeX's memory than -\n\readdata{} and \n\dataplot{} if you are also use \n\PSTtoEPS. - -Here is a plot of "Integral(sin(x))". The data was generated by Mathematica, -with -\begin{LVerb} - Table[{x,N[SinIntegral[x]]},{x,0,20}] -\end{LVerb} -and then copied to this document. -\begin{MEx}(4,3) - \psset{xunit=.2cm,yunit=1.5cm} - \savedata{\mydata}[ - {{0, 0}, {1., 0.946083}, {2., 1.60541}, {3., 1.84865}, {4., 1.7582}, - {5., 1.54993}, {6., 1.42469}, {7., 1.4546}, {8., 1.57419}, - {9., 1.66504}, {10., 1.65835}, {11., 1.57831}, {12., 1.50497}, - {13., 1.49936}, {14., 1.55621}, {15., 1.61819}, {16., 1.6313}, - {17., 1.59014}, {18., 1.53661}, {19., 1.51863}, {20., 1.54824}}] - \dataplot[plotstyle=curve,showpoints=true, - dotstyle=triangle]{\mydata} - \psline{<->}(0,2)(0,0)(20,0) -\end{MEx} - -\oitem \listplot{list} - -\n\listplot{} is yet another way of plotting lists of data. This time, <list> -should be a list of data (coordinate pairs), delimited only by white space. -<list> is first expanded by \TeX{} and then by PostScript. This means that -<list> might be a PostScript program that leaves on the stack a list of data, -but you can also include data that has been retrieved with \n\readdata{} and -\n\dataplot. However, when using the "line", "polygon" or "dots" plotstyles -with \p{showpoints=false}, \p{linearc=0pt} and no arrows, \n\dataplot{} is much -less likely than \n\listplot{} to exceed PostScript's memory or stack limits. -In the preceding example, these restrictions were not satisfied, and so the -example is equivalent to when \n\listplot{} is used: -\begin{LVerb} - ... - \listplot[plotstyle=curve,showpoints=true, - dotstyle=triangle]{\mydata} - ... -\end{LVerb} - -\oitem \psplot{$x_!\min@$}{$x_!\max@$}{function} - - \n\psplot{} can be used to plot a function $f(x)$, if you know a little -PostScript. <function> should be the PostScript code for calculating $f(x)$. -Note that you must use $x$ as the dependent variable. PostScript is not -designed for scientific computation, but \n\psplot{} is good for graphing -simple functions right from within \TeX. E.g., -\begin{LVerb} - \psplot[plotpoints=200]{0}{720}{x sin} -\end{LVerb} -plots $\sin(x)$ from 0 to 720 degrees, by calculating $\sin(x)$ roughly every -3.6 degrees and then connecting the points with \n\psline. Here are plots of -$\sin(x)\cos((x/2)^2)$ and $\sin^2(x)$: -\begin{MEx}[0,-1](4,1) - \psset{xunit=1.2pt} - \psplot[linecolor=gray,linewidth=1.5pt,plotstyle=curve]% - {0}{90}{x sin dup mul} - \psplot[plotpoints=100]{0}{90}{x sin x 2 div 2 exp cos mul} - \psline{<->}(0,-1)(0,1) - \psline{->}(100,0) -\end{MEx} - -\oitem \parametricplot{$t_!\min@$}{$t_!\max@$}{function} - -This is for a parametric plot of $(x(t),y(t))$. <function> is the PostScript -code for calculating the pair $x(t)$ $y(t)$. - -For example, -\begin{MEx*}(3,3) - \parametricplot[plotstyle=dots,plotpoints=13]% - {-6}{6}{1.2 t exp 1.2 t neg exp} -\end{MEx*} -plots 13 points from the hyperbola $xy=1$, starting with $(1.2^{-6},1.2^6)$ -and ending with $(1.2^6,1.2^{-6})$. - -Here is a parametric plot of $(\sin(t),\sin(2t))$: -\begin{MEx}[-2,-1](2,1) - \psset{xunit=1.7cm} - \parametricplot[linewidth=1.2pt,plotstyle=ccurve]% - {0}{360}{t sin t 2 mul sin} - \psline{<->}(0,-1.2)(0,1.2) - \psline{<->}(-1.2,0)(1.2,0) -\end{MEx} - -\end{description} - -The number of points that the \n\psplot{} and \n\parametricplot{} commands -calculate is set by the -\begin{Ex} - \Par{plotpoints=int} -\end{Ex} -parameter. Using "curve" or its variants instead of "line" and increasing the -value of \p{plotpoints} are two ways to get a smoother curve. Both ways -increase the imaging time. Which is better depends on the complexity of the -computation. (Note that all PostScript lines are ultimately rendered as a -series (perhaps short) line segments.) Mathematica generally uses "lineto" to -connect the points in its plots. The default minimum number of plot points for -Mathematica is 25, but unlike \n\psplot{} and \n\parametricplot, Mathematica -increases the sampling frequency on sections of the curve with greater -fluctuation. - -\endinput - -%% END psd-basi.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-cove.tex b/Master/texmf-dist/source/generic/pstricks/psd-cove.tex deleted file mode 100644 index 177e0bff2c1..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-cove.tex +++ /dev/null @@ -1,108 +0,0 @@ -%% BEGIN psd-cove.tex - -\begingroup -\evensidemargin \paperwidth\relax -\advance\evensidemargin -2in -\advance\evensidemargin -\textwidth -\divide\evensidemargin 2 -\oddsidemargin\evensidemargin - -\begin{titlepage} - -\let\footnotesize\small -\let\footnoterule\relax -\setcounter{page}{0} - -\null -\vfil -\vskip 25pt -\begin{center} - {\LARGE\textbf{PSTricks}}:\\[5pt] - {\large\textbf{PostScript macros for Generic TeX}.}\\ -\end{center} - -\bigskip\bigskip -\hbox to \hsize{% - \hss - \psset{unit=.4cm} - \begin{pspicture}(0,-2)(31,12) - \catcode`\<=12 - \rput(1.5,0){% - \psellipse[linewidth=1pt](8,7)(1,3) - \psframe[linecolor=white,fillstyle=solid,fillcolor=white] - (6.4,6.5)(8,7.5) - \psline[linearc=.3,linewidth=1pt](8,8)(8,7.5)(4,7.5) - \psbezier[linewidth=1pt](4,7.5)(3,7.5)(3,6.5)(3,5.5) - \psline[linearc=.3,linewidth=1pt](8,6)(8,6.5)(5,6.5) - \psbezier[linewidth=1pt](5,6.5)(4,6.5)(4,6.5)(4,5.5) - \psline[linewidth=1pt](3,5.5)(4,5.5) - \psline[linearc=.3,linewidth=1pt](5,7.5)(5,8)(6,8)(6,7.5) - \psframe[linewidth=1pt](5.3,8)(5.7,8.7) - \psframe[linewidth=1pt,framearc=1,fillstyle=solid, - fillcolor=white](4,8.7)(7,9) - \multirput(3.5,4.8)(0,-1){4}{% - \psbezier[linewidth=.5pt](0,0)(.25,-.4)(-.25,-.4)(0,0)} - \rput[t](5.5,0){Dripping Faucet}} - \rput(20,5){% - \pspolygon[linecolor=white,fillstyle=vlines, - fillcolor=darkgray,hatchsep=.2](1,4.5)(1,4)(4,4)(4,4.5) - \psline[linewidth=2pt](1,4)(4,4) - \psline[linewidth=1.5pt](2.5,4)(2.5,3.5)(2.9,3.3)(2.1,2.9) - (2.9,2.5)(2.1,2.1)(2.9,1.7)(2.1,1.3)(2.5,1.1)(2.5,0.6) - \psframe[linecolor=black,linewidth=1.5pt,fillstyle=solid, - fillcolor=lightgray](1.8,-1)(3.2,.6) - \rput(2.5,-.2){$M$} - \psline{<->}(3.7,-.9)(3.7,.5) - \psframe[linecolor=black,linewidth=1.5pt,fillstyle=solid, - fillcolor=lightgray](1.8,-3.5)(3.2,-1.9) - \rput(2.5,-2.7){$m$} - \psline{->}(5,1)(5,-1) - \rput[l](5.5,0){$g$} - \psline{->}(3.7,-2)(3.7,-3.4) - \rput[t](2.5,-4){Mathematical Model for} - \rput[t](2.5,-5){a Dripping Faucet} - \rput(-6,-2){% - \psset{linewidth=2pt} - \psline(0,.5)(2,.5) - \psline(0,-.5)(2,-.5) - \psline(1.5,1)(2.5,0)(1.5,-1)}} - \psframe[linewidth=2pt,framearc=.05,linecolor=gray](0,-2.5)(31,12) - \uput[l]{90}(0,4.75){\texttt{leecheng}} - \end{pspicture}% - \hss} -\bigskip -\bigskip - -\begin{center} -{\LARGE\textbf{User's Guide}}\par -\vskip 3em -{\large \lineskip .75em Timothy Van Zandt}\par -\vskip 1.5em -{\large \thefiledate\\[2pt] - Version \Version% - \footnote{Documentation edited and repacked at \today\ by Rolf Niepraschk - \url{niepraschk@gmx.de} - and Herbert Vo\ss\ \url{voss@pstricks.de}.}}\par -% \Verb[codes={\catcode`\<=12}]+<niepraschk@ptb.de>+ -% and Herbert Voß \Verb[codes={\catcode`\<=12}]+<voss@perce.de>+.}}\par -\end{center} -\vfil -\small -Author's address:\\ - Department of Economics and Political Science\\ - INSEAD\\ - Boulevard de Constance\\ - 77305 Fontainebleau Cedex\\ - France\\[3mm] - Internet: \Verb[codes={\catcode`\<=12}]+<tvz@econ.insead.fr>+ -\end{titlepage} - -\endgroup - -\setcounter{footnote}{0} -\tableofcontents -\pagenumbering{arabic} - -\endinput - -%% END psd-cove.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-cust.tex b/Master/texmf-dist/source/generic/pstricks/psd-cust.tex deleted file mode 100644 index 03441baca4f..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-cust.tex +++ /dev/null @@ -1,406 +0,0 @@ -%% BEGIN psd-cust.tex - -\part{Custom graphics\label{P-custom}} - -\Section{The basics} - -PSTricks contains a large palette of graphics objects, but sometimes you need -something special. For example, you might want to shade the region between two -curves. The - \Mac \pscustom`*[par]'{commands} -command lets you ``roll you own'' graphics object. - -Let's review how PostScript handles graphics. A \emph{path} is a line, in the -mathematical sense rather than the visual sense. A path can have several -disconnected segments, and it can be open or closed. PostScript has various -operators for making paths. The end of the path is called the \emph{current -point}, but if there is no path then there is no current point. To turn the -path into something visual, PostScript can \emph{fill} the region enclosed by -the path (that is what \p{fillstyle} and such are about), and \emph{stroke} the -path (that is what \p{linestyle} and such are about). - -At the beginning of \n\pscustom, there is no path. There are various commands -that you can use in \n\pscustom{} for drawing paths. Some of these (the open -curves) can also draw arrows. \n\pscustom{} fills and strokes the path at the -end, and for special effects, you can fill and stroke the path along the way -using \n\fill{} and \n\stroke{} (see below). - -\begin{drivers} -\n\pscustom{} uses \n\pstverb{} and \n\pstunit. There are system-dependent -limits on how long the argument of "\special" can be. You may run into this -limit using \n\pscustom{} because all the PostScript code accumulated by -\n\pscustom{} is the argument of a single "\special" command. -\end{drivers} - -\Section{Parameters} - -You need to keep the separation between drawing, stroking and filling paths in -mind when setting graphics parameters. The \p{linewidth} and \p{linecolor} -parameters affect the drawing of arrows, but since the path commands do not -stroke or fill the paths, these parameters, and the \p{linestyle}, -\p{fillstyle} and related parameters, do not have any other effect (except -that in some cases \p{linewidth} is used in some calculations when drawing the -path). \n\pscustom{} and \n\fill{} make use of \p{fillstyle} and related -parameters, and \n\pscustom{} and \n\stroke{} make use of p{linestyle} and -related parameters. - -For example, if you include -\begin{LVerbatim} - \psline[linewidth=2pt,linecolor=blue,fillstyle=vlines]{<-}(3,3)(4,0) -\end{LVerbatim} -in \n\pscustom, then the changes to \p{linewidth} and \p{linecolor} will -affect the size and color of the arrow but not of the line when it is stroked, -and the change to \p{fillstyle} will have no effect at all. - -The \p{shadow}, \p{border}, \p{doubleline} and \p{showpoints} parameters are -disabled in \n\pscustom, and the \p{origin} and \p{swapaxes} parameters only -affect \n\pscustom{} itself, but there are commands (described below) that let -you achieve these special effects. - -The \p{dashed} and \p{dotted} line styles need to know something about the -path in order to adjust the dash or dot pattern appropriately. You can give -this information by setting the -\begin{Ex} - \Par{linetype=int} -\end{Ex} -parameter. If the path contains more than one disconnected segment, there is -no appropriate way to adjust the dash or dot pattern, and you might as well -leave the default value of \p{linetype}. Here are the values for simple paths: -\begin{center} -\begin{tabular}{cl} - \emph{Value} & \emph{Type of path}\\ - 0 & Open curve without arrows.\\ - -1 & Open curve with an arrow at the beginning.\\ - -2 & Open curve with an arrow at the end.\\ - -3 & Open curve with an arrow at both ends.\\ - 1 & Closed curve with no particular symmetry.\\ - $n$\textgreater 1 & Closed curve with $n$ symmetric segments. -\end{tabular} -\end{center} - -\Section{Graphics objects} - -You can use most of the graphics objects in \n\pscustom. These draw paths and -making arrows, but do not fill and stroke the paths. - -There are three types of graphics objects: -\begin{description} -\item[Special] - Special graphics objects include \n\psgrid, \n\psdots, \n\qline{} and -\n\qdisk. You cannot use special graphics objects in \n\pscustom. - -\item[Closed] - You are allowed to use closed graphics objects in \n\pscustom, but their -effect is unpredictable.\footnote{% -The closed objects never use the current point as an coordinate, but typically -they will close any existing paths, and they might draw a line between the -currentpoint and the closed curved.} -Usually you would use the open curves plus \n\closepath{} (see below) to draw -closed curves. - -\item[Open]The open graphics objects are the most useful commands for drawing -paths with \n\pscustom. By piecing together several open curves, you can draw -arbitrary paths. The rest of this section pertains to the open graphics -objects. -\end{description} - - By default, the open curves draw a straight line between the current point, -if it exists, and the beginning of the curve, except when the curve begins -with an arrow. For example -\begin{MEx*}(3,3) - \pscustom{% - \psarc(0,0){1.5}{5}{85} - \psarcn{->}(0,0){3}{85}{5}} -\end{MEx*} - -Also, the following curves make use of the current point, if it exists, as a -first coordinate: -\begin{quote} - \n\psline{} and \n\pscurve.\\ - The plot commands, with the "line" or "curve" \p{plotstyle}.\\ - \n\psbezier\, if you only include three coordinates.\\ -\end{quote} -For example: -\begin{MEx*}(4,3) - \pscustom[linewidth=1.5pt]{% - \psplot[plotstyle=curve]{.67}{4}{2 x div} - \psline(4,3)} -\end{MEx*} -We'll see later how to make that one more interesting. Here is another example -\begin{MEx*}(4,3) - \pscustom{% - \psline[linearc=.2]{|-}(0,2)(0,0)(2,2) - \psbezier{->}(2,2)(3,3)(1,0)(4,3)} -\end{MEx*} - -However, you can control how the open curves treat the current point with the -\begin{Ex} - \Par{liftpen=0/1/2} -\end{Ex} -parameter. - -If \p{liftpen=0}, you get the default behavior described above. For example -\begin{MEx*}(4,3) - \pscustom[linewidth=2pt,fillstyle=solid,fillcolor=gray]{% - \pscurve(0,2)(1,2.5)(2,1.5)(4,3) - \pscurve(4,1)(3,0.5)(2,1)(1,0)(0,.5)} -\end{MEx*} - -If \p{liftpen=1}, the curves do not use the current point as the first -coordinate (except \n\psbezier, but you can avoid this by explicitly including -the first coordinate as an argument). For example: -\begin{MEx*}(4,3) - \pscustom[linewidth=2pt,fillstyle=solid,fillcolor=gray]{% - \pscurve(0,2)(1,2.5)(2,1.5)(4,3) - \pscurve[liftpen=1](4,1)(3,0.5)(2,1)(1,0)(0,.5)} -\end{MEx*} - -If \p{liftpen=2}, the curves do not use the current point as the first -coordinate, and they do not draw a line between the current point and the -beginning of the curve. For example -\begin{MEx*}(4,3) - \pscustom[linewidth=2pt,fillstyle=solid,fillcolor=gray]{% - \pscurve(0,2)(1,2.5)(2,1.5)(4,3) - \pscurve[liftpen=2](4,1)(3,0.5)(2,1)(1,0)(0,.5)} -\end{MEx*} - -Later we will use the second example to fill the region between the two -curves, and then draw the curves. - -\Section{Safe tricks} - -The commands described under this heading, which can only be used in -\n\pscustom, do not run a risk of PostScript errors (assuming your document -compiles without \TeX{} errors). - -Let's start with some path, fill and stroke commands: -\begin{description} - -\mitem \newpath - -Clear the path and the current point. - -\mitem \moveto(coor) - - This moves the current point to \c{}. - -\mitem \closepath - - This closes the path, joining the beginning and end of each piece (there may -be more than one piece if you use \n\moveto).\footnote{% -Note that the path is automatically closed when the region is filled. Use -\n\closepath{} if you also want to close the boundary.} - -\mitem \stroke`[par]' - - This strokes the path (non-destructively). \n\pscustom{} automatically -strokes the path, but you might want to stroke it twice, e.g., to add a -border. Here is an example that makes a double line and adds a border (this -example is kept so simple that it doesn't need \n\pscustom{} at all): -\begin{MEx*}(4,3) - \psline(0,3)(4,0) - \pscustom[linecolor=white,linewidth=1.5pt]{% - \psline(0,0)(4,3) - \stroke[linewidth=5\pslinewidth] - \stroke[linewidth=3\pslinewidth,linecolor=black]} -\end{MEx*} - -\mitem \fill`[par]' - - This fills the region (non-destructively). \n\pscustom{} automatically fills -the region as well. - -\mitem \gsave - - This saves the current graphics state (i.e., the path, color, line width, -coordinate system, etc.) \n\grestore{} restores the graphics state. \n\gsave{} -and \n\grestore{} must be used in pairs, properly nested with respect to \TeX{} -groups. You can have have nested \n\gsave-\n\grestore{} pairs. - -\mitem \grestore - - See above. - -Here is an example that fixes an earlier example, using \n\gsave{} and -\n\grestore: -\begin{MEx}(4,3) - \psline{<->}(0,3)(0,0)(4,0) - \pscustom[linewidth=1.5pt]{ - \psplot[plotstyle=curve]{.67}{4}{2 x div} - \gsave - \psline(4,3) - \fill[fillstyle=solid,fillcolor=gray] - \grestore} -\end{MEx} -Observe how the line added by "\psline(4,3)" is never stroked, because it is -nested in "\gsave" and "\grestore". - -Here is another example: -\begin{MEx*}(4,3) - \pscustom[linewidth=1.5pt]{ - \pscurve(0,2)(1,2.5)(2,1.5)(4,3) - \gsave - \pscurve[liftpen=1](4,1)(3,0.5)(2,1)(1,0)(0,.5) - \fill[fillstyle=solid,fillcolor=gray] - \grestore} - \pscurve[linewidth=1.5pt](4,1)(3,0.5)(2,1)(1,0)(0,.5) -\end{MEx*} -Note how I had to repeat the second \n\pscurve{} (I could have repeated it -within \n\pscustom, with \p{liftpen=2}), because I wanted to draw a line -between the two curves to enclose the region but I didn't want this line to be -stroked. -\end{description} - -The next set of commands modify the coordinate system. -\begin{description} - -\mitem \translate(coor) - - Translate coordinate system by \c{}. This shifts everything that comes later -by \c{}, but doesn't affect what has already been drawn. - -\mitem \scale{num1 `num2'} - - Scale the coordinate system in both directions by <num1>, or horizontally by -<num1> and vertically by <num2>. - -\mitem \rotate{angle} - - Rotate the coordinate system by <angle>. - -\mitem \swapaxes - - Switch the x and y coordinates. This is equivalent to -\begin{LVerb} - \rotate{-90} - \scale{-1 1 scale} -\end{LVerb} - -\mitem \msave - - Save the current coordinate system. You can then restore it with -\n\mrestore. You can have nested \n\msave-\n\mrestore{} pairs. \n\msave{} and -\n\mrestore{} do not have to be properly nested with respect to \TeX{} groups or -\n\gsave{} and \n\grestore. However, remember that \n\gsave{} and \n\grestore -also affect the coordinate system. \n\msave-\n\mrestore{} lets you change the -coordinate system while drawing part of a path, and then restore the old -coordinate system without destroying the path. \n\gsave-\n\grestore, on the -other hand, affect the path and all other componments of the graphics state. - -\mitem \mrestore - - See above. -\end{description} - -And now here are a few shadow tricks: -\begin{description} -\mitem \openshadow`[par]' - -Strokes a replica of the current path, using the various shadow parameters. - -\mitem \closedshadow`[par]' - -Makes a shadow of the region enclosed by the current path as if it were opaque -regions. - -\mitem \movepath(coor) - -Moves the path by \c{}. Use \n\gsave-\n\grestore{} if you don't want to lose -the original path. -\end{description} - -\Section{Pretty safe tricks} - -The next group of commands are safe, \emph{as long as there is a current -point}! - -\begin{description} -\mitem \lineto(coor) - - This is a quick version of "\psline(<coor>)". - -\mitem \rlineto(coor) - - This is like \n\lineto, but \c{} is interpreted relative to the current -point. - -\mitem \curveto\c1\c2\c3 - - This is a quick version of "\psbezier"\c1\c2\c3. - -\mitem \rcurveto\c1\c2\c3 - - This is like \n\curveto, but \c1, \c2 and \c3 are interpreted relative to -the current point. -\end{description} - -\Section{For hackers only} - -For PostScript hackers, there are a few more commands. Be sure to read -Appendix \ref{S-raw} before using these. Needless to say: -\begin{Warning} -Misuse of the commands in this section can cause PostScript errors. -\end{Warning} - - The PostScript environment in effect with \n\pscustom{} has one unit equal to -one \TeX{} "pt". - -\begin{description} - -\mitem \code{code} - Insert the raw PostScript code. - -\mitem \dim{dim} - - Convert the PSTricks dimension to the number of "pt"'s, and inserts it in -the PostScript code. - -\mitem \coor\c1`\c2...\cn' - -Convert one or more PSTricks coordinates to a pair of numbers (using "pt" -units), and insert them in the PostScript code. - -\mitem \rcoor\c1`\c2...\cn' - -Like \n\coor, but insert the coordinates in reverse order. - -\mitem \file{file} - - This is like \n\code, but the raw PostScript is copied verbatim (except -comments delimited by "%") from <file>. - -\mitem \arrows{arrows} - - This defines the PostScript operators "ArrowA" and "ArrowB" so that -\begin{LVerb} - x2 y2 x1 y1 ArrowA - x2 y2 x1 y1 ArrowB -\end{LVerb} -each draws an arrow(head) with the tip at \c1 and pointing from \c2. "ArrowA" -leaves the current point at end of the arrowhead, where a connect line should -start, and leaves \c2 on the stack. "ArrowB" does not change the current -point, but leaves -\begin{LVerb} - x2 y2 x1' y1' -\end{LVerb} -on the stack, where \c{1'} is the point where a connecting line should join. -To give an idea of how this work, the following is roughly how PSTricks draws -a bezier curve with arrows at the end: -\begin{MEx*}(4,3) - \pscustom{ - \arrows{|->} - \code{ - 80 140 5 5 ArrowA - 30 -30 110 75 ArrowB - curveto}} -\end{MEx*} - -\mitem \setcolor{color} - - Set the color to <color>. - -\end{description} - -\endinput - -%% END psd-cust.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-esse.tex b/Master/texmf-dist/source/generic/pstricks/psd-esse.tex deleted file mode 100644 index a76636d0d3b..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-esse.tex +++ /dev/null @@ -1,392 +0,0 @@ -%% BEGIN psd-esse.tex - -\part*{Welcome to PSTricks} - -PSTricks is a collection of PostScript-based \TeX{} macros that is compatible -with most \TeX{} macro packages, including Plain \TeX, \LaTeX{} and \ConTeXt, -PSTricks gives you color, graphics, rotation, trees and overlays. PSTricks -puts the icing (PostScript) on your cake (\TeX)! - -To install PSTricks, follow the instructions in the file "read-me.pst" that -comes with the PSTricks package. Even if PSTricks has already been installed -for you, give "read-me.pst" a look over. - -This \emph{User's Guide} verges on being a reference manual, meaning that it is -not designed to be read linearly. Here is a recommended strategy: Finish -reading this brief overview of the features in PSTricks. Then thumb through -the entire \emph{User's Guide} to get your own overview. Return to -Part~\ref{P-essentials} (Essentials) and read it carefully. Refer to the -remaining sections as the need arises. - -When you cannot figure out how to do something or when trouble arises, check -out the appendices (Help). You just might be lucky enough to find a solution. -There is also a \LaTeX{} file "samples.pst" of samples that is distributed with -PSTricks. Look to this file for further inspiration. - -This documentation is written with \LaTeX. Some examples use \LaTeX{} specific -constructs and some don't. However, there is nothing \LaTeX{} specific about -any of the macros, nor is there anything that does not work with \LaTeX. This -package has been tested with Plain \TeX, \LaTeX{} and \ConTeXt{} and -should work with other \TeX{} macro packages as well. - -\File{pstricks} -The main macro file is "pstricks.tex"/"pstricks.sty". Each of the PSTricks -macro files comes with a ".tex" extension and a ".sty" extension; these are -equivalent, but the ".sty" extension means that you can include the file name -as a \LaTeX{} package. - -There are numerous supplementary macro files. A file, like the one above and -the left, is used in this \emph{User's Guide} to remind you that you must input -a file before using the macros it contains. - -For most PSTricks macros, even if you misuse them, you will not get PostScript -errors in the output. However, it is recommended that you resolve any \TeX{} -errors before attempting to print your document. A few PSTricks macros pass on -PostScript errors without warning. Use these with care, especially if you are -using a networked printer, because PostScript errors can cause a printer to -bomb. Such macros are pointed out in strong terms, using a warning like this -one: - -\begin{Warning} -Use macros that do not check for PostScript errors with care. PostScript -errors can cause a printer to bomb! -\end{Warning} - -Keep in mind the following typographical conventions in this User's Guide. -\begin{itemize} - \item All literal input characters, i.e., those that should appear verbatim - in your input file, appear in upright "Helvetica" and {\UsageFont - Helvetica-Bold} fonts. - \item Meta arguments, for which you are supposed to substitute a value - (e.g., <angle>) appear in slanted <Helvetica-Oblique> and - {\UsageFont\MetaFont Helvetica-BoldOblique} fonts. - \item The main entry for a macro or parameter that states its syntax appears - in a large bold font, \emph{except for the optional arguments, which are in - medium weight}. This is how you can recognize the optional arguments. - \item References to PSTricks commands and parameters within paragraphs are - set in {\UsageFont Helvetica-Bold}. - -\end{itemize} - -\part{The Essentials\label{P-essentials}} - - -\section{Arguments and delimiters} - -Here is some nitty-gritty about arguments and delimiters that is really -important to know. - -The PSTricks macros use the following delimiters: -\begin{center} -%% DG: to do -% Begin modification RN, 2002-12-29 -\iffalse -\begin{tabular}{rl} -Curly braces & "{<arg>}" \\ -Brackets (only for optional arguments) & "[<arg>]" \\ -Parentheses and commas for coordinates & \c{} \\ -"=" and "," for parameters & "<par1>=<val1>," \ldots\\ -\end{tabular} -\fi -\begin{tabular}{rl} -Curly braces & "{"<arg>"}" \\ -Brackets (only for optional arguments) & "["<arg>"]" \\ -Parentheses and commas for coordinates & \c{} \\ -"=" and "," for parameters & <par1>"="<val1>"," \ldots\\ -\end{tabular} -% End modification RN -\end{center} -Spaces and commas are also used as delimiters within arguments, but in this -case the argument is expanded before looking for the delimiters. - -Always use a period rather than a comma to denote the decimal point, so that -PSTricks doesn't mistake the comma for a delimiter. - -The easiest mistake to make with the PSTricks macros is to mess up the -delimiters. This may generate complaints from \TeX{} or PSTricks about bad -arguments, or other unilluminating errors such as the following: -\begin{description}\itemsep=0pt\parsep=0pt -\item[] "! Use of \get@coor doesn't match its definition." -\item[] "! Paragraph ended before \pst@addcoor was complete." -\item[] -"! Forbidden control sequence found while scanning use of \check@arrow." -\item[] "! File ended while scanning use of \lput." -\end{description} -Delimiters are generally the first thing to check when you get errors with a -PSTricks macro. - -Since PSTricks macros can have many arguments, it is useful to know that you -can leave a space or new line between any arguments, except between arguments -enclosed in curly braces. If you need to insert a new line between arguments -enclosed in curly braces, put a comment character "%" at the end of the line. - -As a general rule, the first non-space character after a PSTricks macro should -not be a "[" or "(". Otherwise, PSTricks might think that the "[" or "(" is -actually part of the macro. You can always get around this by inserting a pair -"{}" of braces somewhere between the macro and the "[" or "(". - - -\Section{Color\label{S-color}} - -The grayscales -\begin{quote} - "black", "darkgray", "gray", "lightgray", and "white", -\end{quote} -and the colors -\begin{quote} - "red", "green", "blue", "cyan", "magenta", and "yellow" -\end{quote} -are predefined in PSTricks. - -This means that these names can be used with the graphics objects that are -described in later sections. This also means that the command \n\gray{} (or -\n\red, etc.) can be used much like "\rm" or "\tt", as in -\begin{Ex} - \gray\Large"{\gray This stuff should be gray.}" -\end{Ex} -The commands \n\gray, \n\red, etc. can be nested like the font commands as -well. There are a few important ways in which the color commands differ from -the font commands: -\begin{enumerate} - \item The color commands can be used in and out of math mode (there are no - restrictions, other than proper \TeX{} grouping). - \item The color commands affect whatever is in their scope (e.g., lines), - not simply characters. - \item The scope of the color commands does not extend across pages. - \item The color commands are not as robust as font commands when used inside - box macros. See page \pageref{colorboxproblems} for details. You can avoid - most problems by explicitly grouping color commands (e.g., enclosing the - scope in braces "{}") whenever these are in the argument of another - command.\footnote{% -However, this is not necessary with the PSTricks LR-box commands, expect when -\n\psverbboxtrue{} is in effect. See Section \ref{S-boxes}.} - -\end{enumerate} - -You can define or redefine additional colors and grayscales with the following -commands. In each case, <numi> is a number between 0 and 1. Spaces are used as -delimiters---don't add any extraneous spaces in the arguments. - -\begin{description} - -\mitem \newgray{color}{num} - - <num> is the gray scale specification, to be set by PostScript's "setgray" -operator. 0 is black and 1 is white. For example: -\begin{LVerb} - \newgray{darkgray}{.25} -\end{LVerb} - -\mitem \newrgbcolor{color}{num1 num2 num3} - - <num1 num2 num3> is a \emph{red-green-blue} specification, to be set by -PostScript's "setrgbcolor" operator. For example, -\begin{LVerb} - \newrgbcolor{green}{0 1 0} -\end{LVerb} - -\mitem \newhsbcolor{color}{num1 num2 num3} - - <num1 num2 num3> is an \emph{hue-saturation-brightness} specification, to be -set by PostScript's "sethsbcolor" operator. For example, -\begin{LVerb} - \newhsbcolor{mycolor}{.3 .7 .9} -\end{LVerb} - -\mitem \newcmykcolor{color}{num1 num2 num3 num4} - - <num1 num2 num3 num4> is a \emph{cyan-magenta-yellow-black} specification, to -be set by PostScript's "newcmykcolor" operator. For example, -\begin{LVerb} - \newcmykcolor{hercolor}{.5 1 0 .5} -\end{LVerb} - -\end{description} - -For defining new colors, the \emph{rbg} model is a sure thing. \emph{hsb} is not -recommended. \emph{cmyk} is not supported by all Level 1 implementations of -PostScript, although it is best for color printing. For more information on -color models and color specifications, consult the \emph{PostScript Language -Reference Manual}, 2nd Edition (Red Book), and a color guide. - -\begin{drivers} The command \n\pstVerb{} must be defined.\end{drivers} - - -\Section{Setting graphics parameters\label{S-par}} - -PSTricks uses a key-value system of graphics parameters to customize the -macros that generate graphics (e.g., lines and circles), or graphics combined -with text (e.g., framed boxes). You can change the default values of -parameters with the command \n\psset, as in -\begin{LVerb} - \psset{fillcolor=yellow} - \psset{linecolor=blue,framearc=.3,dash=3pt 6pt} -\end{LVerb} -The general syntax is: - \Mac \psset{par1=value1`,par2=value2,\ldots'} -As illustrated in the examples above, spaces are used as delimiters for some -of the values. Additional spaces are allowed only following the comma that -separates <par>"="<value> pairs (which is thus a good place to start a new -line if there are many parameter changes). E.g., the first example is -acceptable, but the second is not: -\begin{LVerb} - \psset{fillcolor=yellow, linecolor=blue} - \psset{fillcolor= yellow,linecolor =blue } -\end{LVerb} -The parameters are described throughout this \emph{User's Guide}, as they are -needed. - -Nearly every macro that makes use of graphics parameters allows you to include -changes as an optional first argument, enclosed in square brackets. -For example, -\begin{LVerb} - \psline[linecolor=green,linestyle=dotted](8,7) -\end{LVerb} -draws a dotted, green line. It is roughly equivalent to -\begin{LVerb} - {\psset{linecolor=green,linestyle=dotted}\psline(8,7)} -\end{LVerb} - -For many parameters, PSTricks processes the value and stores it in a peculiar -form, ready for PostScript consumption. For others, PSTricks stores the value -in a form that you would expect. In the latter case, this \emph{User's Guide} -will mention the name of the command where the value is stored. This is so -that you can use the value to set other parameters. E.g., -\begin{LVerb} - \psset{linecolor=\psfillcolor,doublesep=.5\pslinewidth} -\end{LVerb} -However, even for these parameters, PSTricks may do some processing and -error-checking, and you should always set them using \n\psset{} or as optional -parameter changes, rather than redefining the command where the value is -stored. - -\Section{Dimensions, coordinates and angles\label{S-coor}} - -Whenever an argument of a PSTricks macro is a dimension, the unit is optional. -The default unit is set by the -\begin{Ex} - \Par{unit=dim} (1cm) -\end{Ex} -parameter. For example, with the default value of "1cm", the following are -equivalent: -\begin{LVerb} - \psset{linewidth=.5cm} - \psset{linewidth=.5} -\end{LVerb} -By never explicitly giving units, you can scale graphics by changing the value -of \p{unit}. - -You can use the default coordinate when setting non-PSTricks dimensions as -well, using the commands -\begin{Ex} - \object \pssetlength{cmd}{dim} - \object \psaddtolength{cmd}{dim} -\end{Ex} -where <cmd> is a dimension register (in \LaTeX{} parlance, a ``length''), and -<dim> is a length with optional unit. These are analogous to \LaTeX's -"\setlength" and "\addtolength". - -Coordinate pairs have the form \c{}. The origin of the coordinate system is at -\TeX's currentpoint. The command \n\SpecialCoor{} lets you use polar -coordinates, in the form "(<r>;<a>)", where <r> is the radius (a dimension) -and <a> is the angle (see below). You can still use Cartesian coordinates. For -a complete description of \n\SpecialCoor, see Section \ref{S-SpecialCoor}. - -The \p{unit} parameter actually sets the following three parameters: -\begin{Ex} - \Par{xunit=dim} (1cm) - \Par{yunit=dim} (1cm) - \Par{runit=dim} (1cm) -\end{Ex} -These are the default units for x-coordinates, y-coordinates, and all other -coordinates, respectively. By setting these independently, you can scale the x -and y dimensions in Cartesian coordinate unevenly. After changing \p{yunit} to -"1pt", the two \n\psline's below are equivalent: -\begin{LVerb} - \psset{yunit=1pt} - \psline(0cm,20pt)(5cm,80pt) - \psline(0,20)(5,80) -\end{LVerb} - -The values of the \p{runit}, \p{xunit} and \p{yunit} parameters are stored in -the dimension registers \n\psunit{} (also \n\psrunit), \n\psxunit{} and -\n\psyunit. - -Angles, in polar coordinates and other arguments, should be a number giving -the angle in degrees, by default. You can also change the units used for -angles with the command - \Mac \degrees`[num]' -<num> should be the number of units in a circle. For example, you might use -\begin{LVerb} - \degrees[100] -\end{LVerb} -to make a pie chart when you know the shares in percentages. \n\degrees{} -without the argument is the same as -\begin{LVerb} - \degrees[360] -\end{LVerb} -The command - \Mac \radians -is short for -\begin{Ex} - "\degrees[6.28319]" -\end{Ex} -\n\SpecialCoor{} lets you specify angles in other ways as well. - -\Section{Basic graphics parameters} - -The width and color of lines is set by the parameters: -\begin{Ex} - \Par{linewidth=dim} - \Par{linecolor=color} -\end{Ex} -The \p{linewidth} is stored in the dimension register \n\pslinewidth, and the -\p{linecolor} is stored in the command \n\pslinecolor. - -The regions delimited by open and closed curves can be filled, as determined -by the parameters: -\begin{Ex} - \p{fillstyle=<style>}\\ - \p{fillcolor=<color>} -\end{Ex} -When \p{fillstyle=none}, the regions are not filled. When \p{fillstyle=solid}, -the regions are filled with \p{fillcolor}. Other \p{fillstyle}'s are described -in Section \ref{S-fillstyles}. - -The graphics objects all have a starred version (e.g., \n\psframe*) which -draws a solid object whose color is \p{linecolor}. For example, -\begin{MEx}(2,1) - \psellipse*(1,.5)(1,.5) -\end{MEx} - -Open curves can have arrows, according to the -\begin{Ex} - \p{arrows=<arrows>} -\end{Ex} -parameter. If \p{arrows=-}, you get no arrows. -\begingroup -\catcode`\<=12 -If \p{arrows=<->}, you get arrows on both ends of the curve. You can also set -\p{arrows=->} and \p{arrows=<-}, -\endgroup -if you just want an arrow on the end or beginning of the curve, respectively. -With the open curves, you can also specify the arrows as an optional argument -enclosed in "{}" brackets. This should come after the optional parameters -argument. E.g., -\begin{MEx}(2,1) - \psline[linewidth=2pt]{<-}(2,1) -\end{MEx} -Other arrow styles are described in Section \ref{S-arrows} - -If you set the -\begin{Ex} - \Par{showpoints=true/false} -\end{Ex} -parameter to "true", then most of the graphics objects will put dots at the -appropriate coordinates or control points of the object.\footnote{% -The parameter value is stored in the conditional "\ifshowpoints".} -Section \ref{S-dots} describes how to change the dot style. - -\endinput - -%% END psd-esse.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-fill.tex b/Master/texmf-dist/source/generic/pstricks/psd-fill.tex deleted file mode 100644 index e9df05eb744..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-fill.tex +++ /dev/null @@ -1,12 +0,0 @@ -%% BEGIN psd-fill.tex - -\part{Filling and Tiling\label{P-tiling}} - -\Section{Overview} - -\File{pst-fill} -The... - -\endinput - -%% END psd-fill.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-help.tex b/Master/texmf-dist/source/generic/pstricks/psd-help.tex deleted file mode 100644 index 0c4bf708ab0..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-help.tex +++ /dev/null @@ -1,332 +0,0 @@ -%% BEGIN psd-help.tex - -\appendix\part*{Help} - -\Section{Boxes\label{S-boxes}} - -Many of the PSTricks macros have an argument for text that is processed in -restricted horizontal mode (in \LaTeX{} parlance, LR-mode) and then transformed -in some way. This is always the macro's last argument, and it is written -"{<stuff>}" in this \emph{User's Guide}. Examples are the framing, rotating, -scaling, positioning and node macros. I will call these ``LR-box'' macros, and -use framing as the leading example in the discussion below. - -In restricted horizontal mode, the input, consisting of regular characters and -boxes, is made into one (long or short) line. There is no line-breaking, nor -can there be vertical mode material such as an entire displayed equation. -However, the fact that you can include another box means that this isn't -really a restriction. - -For one thing, alignment environments such as "\halign" or \LaTeX's "tabular" -are just boxes, and thus present no problem. Picture environments and the box -macros themselves are also just boxes. Actually, there isn't a single PSTricks -command that cannot be put directly in the argument of an LR-box macro. -However, entire paragraphs or other vertical mode material such as displayed -equations need to be nested in a "\vbox" or \LaTeX{} "\parbox" or "minipage". -\LaTeX{} users should see "fancybox.sty" and its documentation, "fancybox.doc", -for extensive tips and trick for using LR-box commands. - -The PSTricks LR-box macros have some features that are not found in most other -LR-box macros, such as the standard \LaTeX{} LR-box commands. - -With \LaTeX{} LR-box commands, the contents is always processed in text mode, -even when the box occurs in math mode. PSTricks, on the other hand, preserves -math mode, and attempts to preserve the math style as well. \TeX{} has four -math styles: text, display, script and scriptscript. Generally, if the box -macro occurs in displayed math (but not in sub- or superscript math), the -contents are processed in display style, and otherwise the contents are -processed in text style (even here the PSTricks macros can make mistakes, but -through no fault of their own). If you don't get the right style, explicitly -include a "\textstyle", "\displaystyle", "\scriptstyle" or -"\scriptscriptstyle" command at the beginning of the box macro's argument. - - In case you want your PSTricks LR-box commands to treat math in the same as -your other LR-box commands, you can switch this feature on and off with the -commands -\begin{Ex} - \object \psmathboxtrue - \object \psmathboxfalse -\end{Ex} - -You can have commands (such as, but not restricted to, the math style -commands) automatically inserted at the beginning of each LR-box using the - \Mac \everypsbox{commands} -command.\footnote{This is a token register.} - -If you would like to define an LR-box environment <name> from an LR-box -command <cmd>, use - \Mac \pslongbox{name}{cmd} -For example, after -\begin{LVerbatim} - \pslongbox{MyFrame}{\psframebox} -\end{LVerbatim} -you can write -\begin{LVerbatim} - \MyFrame <stuff>\endMyFrame -\end{LVerbatim} -instead of -\begin{LVerbatim} - \psframebox{<stuff>} -\end{LVerbatim} -Also, \LaTeX{} users can write -\begin{LVerbatim} - \begin{MyFrame} <stuff>\end{MyFrame} -\end{LVerbatim} -It is up to you to be sure that <cmd> is a PSTricks LR-box command; if it -isn't, nasty errors can arise. - -Environments like have nice properties: -\begin{itemize} - \item The syntax is clearer when <stuff> is long. - \item It is easier to build composite LR-box commands. For example, here is -a framed minipage environment for \LaTeX: -\begin{LVerb} - \pslongbox{MyFrame}{\psframebox} - \newenvironment{fminipage}% - {\MyFrame\begin{minipage}}% - {\end{minipage}\endMyFrame} -\end{LVerb} - \item You include verbatim text and other "\catcode" tricks in <stuff>. -\end{itemize} - -The rest of this section elaborates on the inclusion of verbatim text in -LR-box environments and commands, for those who are interested. "fancybox.sty" -also contains some nice verbatim macros and tricks, some of which are useful -for LR-box commands. - -The reason that you cannot normally include verbatim text in an LR-box -commands argument is that \TeX{} reads the whole argument before processing the -"\catcode" changes, at which point it is too late to change the category -codes. If this is all Greek to you,\footnote{% -Incidentally, many foreign language macros, such as "greek.tex", use -"\catcode" tricks which can cause problems in LR-box macros.} then just try -this \LaTeX{} example to see the problem: -\begin{LVerbatim} - \psframebox{\verb+\foo{bar}+} -\end{LVerbatim} - -The LR-box environments defined with \n\pslongbox{} do not have this problem -because <stuff> is not processed as an argument. Thus, this works: -\begin{example} - \pslongbox{MyFrame}{\psframebox} - \MyFrame \verb+\foo{bar}+\endMyFrame -\end{example} - -The commands -\begin{Ex} - \object \psverbboxtrue - \object \psverbboxfalse -\end{Ex} -switch into and out of, respectively, a special PSTricks mode that lets you -include verbatim text in any LR-box command. For example: -\begin{example} - \psverbboxtrue - \psframebox{\verb+\foo{bar}+} -\end{example} -However, this is not as robust. You must explicitly group color commands in -<stuff>, and LR-box commands that usually ignore spaces that follow -"{<stuff>}" might not do so when \n\psverbboxtrue{} is in effect. - - -\Section{Tips and More Tricks\label{tips}} - -\faq{How do I rotate/frame this or that with \LaTeX?} - -See "fancybox.sty" and its documentation. - -\faq{How can I suppress the PostScript so that I can use my document with a -non-PostScript dvi driver?} - -Put the command - \Mac \PSTricksOff -at the beginning of your document. You should then be able to print or preview -drafts of your document (minus the PostScript, and perhaps pretty strange -looking) with any dvi driver. - - -\faq{How can I improve the rendering of halftones?} - -This can be an important consideration when you have a halftone in the -background and text on top. You can try putting -\begin{LVerb} - \pstverb{106 45 {dup mul exch dup mul add 1.0 exch sub} setscreen} -\end{LVerb} -before the halftone, or in a header (as in headers and footers, not as in -PostScript header files), if you want it to have an effect on every page. - -"setscreen" is a device-dependent operator. - -\faq{What special characters can be active with PSTricks?} - -\Section{Including PostScript code\label{S-raw}} - -To learn about the PostScript language, consult Adobe's \emph{PostScript -Language Tutorial and Cookbook} (the ``Blue Book''), or Henry McGilton and -Mary Campione's \emph{PostScript by Example} (1992). Both are published by -Addison-Wesley. You may find that the Appendix of the Blue Book, plus an -understanding of how the stack works, is all you need to write simple code for -computing numbers (e.g., to specify coordinates or plots using PostScript). - -You may want to define \TeX{} macros for including PostScript fragments in -various places. All \TeX{} macros are expanded before being passed on to -PostScript. It is not always clear what this means. For example, suppose you -write -\begin{LVerb} - \SpecialCoor - \def\mydata{23 43} - \psline(!47 \mydata add) - \psline(!47 \mydata\ add) - \psline(!47 \mydata~add) - \psline(!47 \mydata{} add) -\end{LVerb} -You will get a PostScript error in each of the \n\psline{} commands. To see -what the argument is expanding to, try use \TeX's "\edef" and "\show". E.g., -\begin{LVerb} - \def\mydata{23 43} - \edef\temp{47 \mydata add} - \show\temp - \edef\temp{47 \mydata\ add} - \show\temp - \edef\temp{47 \mydata~add} - \show\temp - \edef\temp{47 \mydata{} add} - \show\temp -\end{LVerb} -\TeX{} expands the code, assigns its value to "\temp", and then displays the -value of "\temp" on your console. Hit <return> to procede. You fill find that -the four samples expand, respectively, to: -\begin{LVerb} - 47 23 43add - 47 23 43\ add - 47 23 43\penalty \@M \ add - 47 23 43{} add -\end{LVerb} -All you really wanted was a space between the "43" and "add". The command -"\space" will do the trick: -\begin{LVerb} - \psline(!47 \mydata\space add) -\end{LVerb} - -You can include balance braces "{"~"}"; these will be passed on verbatim to -PostScript. However, to include an unbalanced left or right brace, you have to -use, respectively, -\begin{Ex} - \object \pslbrace - \object \psrbrace -\end{Ex} -Don't bother trying "\}" or "\{". - -Whenever you insert PostScript code in a PSTricks argument, the dictionary on -the top of the dictionary stack is "tx@Dict", which is PSTrick's main -dictionary. If you want to define you own variables, you have two options: -\begin{description} - \item[Simplest] Always include a "@" in the variable names, because PSTricks -never uses "@" in its variables names. You are at a risk of overflowing the -"tx@Dict" dictionary, depending on your PostScript interpreter. You are also -more likely to collide with someone else's definitions, if there are multiple -authors contributing to the document. - \item[Safest] Create a dictionary named "TDict" for your scratch -computations. Be sure to remove it from the dictionary stack at the end of any -code you insert in an argument. E.g., -\begin{LVerb} - TDict 10 dict def TDict begin <your code> end -\end{LVerb} -\end{description} - -\section{Troubleshooting\label{troubleshooting}} -\setcounter{faq}{0} - -\faq{Why does the document bomb in the printer when the first item in a -\LaTeX{} file is a float?} - -When the first item in a \LaTeX{} file is a float, "\special"'s in the preamble -are discarded. In particular, the "\special" for including PSTricks's header -file is lost. The workaround is to but something before the float, or to -include the header file by a command-line option with your dvi-to-ps driver. - -\faq{I converted a \texttt{.dvi} file to PostScript, and then mailed it to a -colleague. It prints fine for me but bombs on her printer.} - -Here is the most likely (but not the only) cause of this problem. The -PostScript files you get when using PSTricks can contain long lines. This -should be acceptable to any proper PostScript interpreter, but the lines can -get chopped when mailing the file. There is no way to fix this in PSTricks, -but you can make a point of wrapping the lines of your PostScript files when -mailing them. E.g., on UNIX you can use "uuencode" and "uudecode", or you can -use the following AWK script to wrap the lines: -\begin{LVerb} - #! /bin/sh - # This script wraps all lines - # Usage (if script is named wrap): - # wrap < infile > outfile - awk ' - BEGIN { - N = 78 # Max line length - } - { if (length($0)<=N) - print - else { - currlength = 0 - for (i = 1; i <=NF; i++) { - if ((currlength = currlength + length($i) + 1) > N) { - printf "\n" - printf "%s", $i - currlength = length($i) - } - else - printf \ %s", $i - } - printf "\n" - } - } ' -\end{LVerb} - -\faq{The color commands cause extraneous vertical space to be inserted.} - -For example, this can happen if you start a \LaTeX{} "\parbox" or a "p{}" -column with a color command. The solution usually is to precede the color -command with "\leavevmode". - - -\faq{The color commands interfere with other color macros I use.} - -Try putting the command \Main\altcolormode{} at the beginning of your document. -This may or may not help. Be extra careful that the scope of color commands -does not extend across pages. This is generally a less robust color scheme. - -\faq{How do I stop floats from being the same color as surrounding material?} - -That's easy: Just put an explicit color command at the beginning of the float, -e.g., \n\black. - -\faq{When I use some color command in box macros or with \texttt{\string\setbox}, -the colors get all screwed up.} - -\label{colorboxproblems}% -If "\mybox" is a box register, and you write -\begin{LVerb} - \green Ho Hum. - \setbox\mybox=\hbox{Foo bar \blue fee fum} - Hi Ho. \red Diddley-dee - \box\mybox hum dee do -\end{LVerb} -then when "\mybox" is inserted, the current color is red and so "Foo bar" -comes out red (rather than green, which was the color in effect when the box -was set). The command that returns from \n\blue{} to the current color "green", -when the box is set, is executed after the "\hbox" is closed, which means that -"Hi Ho" is green, but "hum dee do" is still blue. - -This odd behavior is due to the fact that \TeX{} does not support color -internally, the way it supports font commands. The first thing to do is to -explicitly bracket any color commands inside the box. Second, be sure that the -current color is black when setting the box. Third, make other explicit color -changes where necessary if you still have problems. The color scheme invoked -by \n\altcolormode{} is slightly better behaved if you follow the first two -rules. - -Note that various box macros use "\setbox" and so these anomalies can arise -unexpectedly. - -\endinput - -%% END psd-help.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-node.tex b/Master/texmf-dist/source/generic/pstricks/psd-node.tex deleted file mode 100644 index e6504ca8bf2..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-node.tex +++ /dev/null @@ -1,1279 +0,0 @@ -%% BEGIN psd-node.tex - -\part{Nodes and Node Connections\label{P-nodes}} - -% This is a file marker for pst-node (e.g., \File{pst-node}), defined as a node: -\leavevmode -\marginpar{% - \leavevmode\lower 20pt\hbox{% - \hbox to0pt{\hbox to \linewidth{\hss\rnode{file}{\copy\filebox}\hss}\hss}% - \raise 10pt\hbox to \linewidth{\hss\large\bfseries\sffamily pst-node\hss}}}% -All the commands described in this part are contained in the file -"pst-node.tex" / "pst-node.sty". - -The node and node connection macros let you connect information and place -labels, without knowing the exact position of what you are connecting or of -where the lines should connect. These macros are useful for making graphs and -trees, mathematical diagrams, linguistic syntax diagrams, and connecting ideas -of any kind. They are the trickiest tricks in PSTricks! - -The node and node connection macros let you connect information and place -labels, without knowing the exact position of what you are connecting or where -the lines should connect. These macros are useful for making graphs and trees, -mathematical diagrams, linguistic syntax diagrams, and connecting ideas of any -kind. They are the trickiest tricks in PSTricks! - -There are three components to the node macros: -\begin{description} - \item[Node definitions] The node definitions let you assign a name and shape - to an object. See Section \ref{S-nodes}. - \item[Node connections] The node connections connect two nodes, identified - by their names. See Section \ref{S-nc}. - \item[Node labels] The node label commands let you affix labels to the node - connections. See Section \ref{S-nodelabels}. -\end{description} - -You can use these macros just about anywhere. The best way to position them -depends on the application. For greatest flexibility, you can use the nodes in -a \n\pspicture, positioning and rotating them with \n\rput. You can also use -them in alignment environments. "pst-node.tex" contains a special alignment -environment, \n\psmatrix, which is designed for positioning nodes in a grid, -such as in mathematical diagrams and some graphs. \n\psmatrix{} is described in -Section \ref{S-psmatrix}. "pst-node.tex" also contains high-level macros for -trees. These are described in Part \ref{P-trees}. - -But don't restrict yourself to these more obvious uses. For example: -\begin{example**} - \rnode{A}{% - \parbox{4cm}{\raggedright - I made the file symbol a node. Now I can draw an - arrow so that you know what I am talking about.}} - \ncarc[nodesep=8pt]{->}{A}{file} -\end{example**} - -\Section{Nodes\label{S-nodes}} - -Nodes have a name. a boundary and a center. - -\begin{Warning} -The name is for refering to the node when making node connections and labels. -You specify the name as an argument to the node commands. The name must -contain only letters and numbers, and must begin with a letter. Bad node names -can cause PostScript errors. -\end{Warning} - -The center of a node is where node connections point to. The boundary is for -determining where to connect a node connection. The various nodes differ in -how they determine the center and boundary. They also differ in what kind of -visable object they create. - -Here are the nodes: - -\begin{description} - -\mitem \rnode`[refpoint]'{name}{stuff} - - \n\rnode{} puts <stuff> in a box. The center of the node is <refpoint>, which -you can specify the same way as for \n\rput. - -\oitem \Rnode{name}{stuff} - - \n\Rnode{} also makes a box, but the center is set differently. If you align -\n\rnode's by their baseline, differences in the height and depth of the nodes -can cause connecting lines to be not quite parallel, such as in the following -example: -\begin{example**} - \Large - \rnode{A}{sp} \hskip 2cm \rnode{B}{Bit} - \ncline{A}{B} -\end{example**} -With \n\Rnode, the center is determined relative to the baseline: -\begin{example**} - \Large - \Rnode{A}{sp} \hskip 2cm \Rnode{B}{Bit} - \ncline{A}{B} -\end{example**} - -You can usually get by without fiddling with the center of the node, but to -modify it you set the -\begin{Ex} - \Par{href=num} - \Par{vref=dim} -\end{Ex} -parameters. In the horizontal direction, the center is located fraction -\p{href} from the center to the edge. E.g, if \p{href=-1}, the center is on -the left edge of the box. In the vertical direction, the center is located -distance \p{vref} from the baseline. The \p{vref} parameter is evaluated each -time \n\Rnode{} is used, so that you can use "ex" units to have the distance -adjust itself to the size of the current font (but without being sensitive to -differences in the size of letters within the current font). - -\mitem \pnode`\c~'{name} - - This creates a zero dimensional node at \c{}. - -\oitem \cnode`\c~'{radius}{name} - - This draws a circle. Here is an example with \n\pnode{} and \n\cnode: -\begin{MEx}(3,1.25) - \cnode(0,1){.25}{A} - \pnode(3,0){B} - \ncline{<-}{A}{B} -\end{MEx} - -\oitem \Cnode`\c~'{name} - - This is like \n\cnode, but the radius is the value of -\begin{Ex} - \Par{radius=dim} -\end{Ex} -This is convenient when you want many circle nodes of the same radius. - -\oitem \circlenode{name}{stuff} - - This is a variant of \n\pscirclebox{} that gives the node the shape of the -circle. - -\oitem \cnodeput`{angle}\c~'{name}{stuff} - - This is a variant of \n\cput{} that gives the node the shape of the -circle. That is, it is like -\begin{LVerb*} - \rput{<angle>}(<x>,<y>){\circlenode{<name>}{<stuff>}} -\end{LVerb*} - -\oitem \ovalnode{name}{stuff} - - This is a variant of \n\psovalbox{} that gives the node the shape of an -ellipse. Here is an example with \n\circlenode{} and \n\ovalnode: -\begin{example**} - \circlenode{A}{Circle} and \ovalnode{B}{Oval} - \ncbar[angle=90]{A}{B} -\end{example**} - - -\oitem \dianode{name}{stuff} - - This is like \n\diabox. - - -\oitem \trinode{name}{stuff} - - This is like \n\tribox. - -\begin{MEx}(4,3) - \rput[tl](0,3){\dianode{A}{Diamond}} - \rput[br](4,0){\trinode[trimode=L]{B}{Triangle}} - \nccurve[angleA=-135,angleB=90]{A}{B} -\end{MEx} - -\oitem \dotnode`\c~'{name} - - This is a variant of \n\psdot. For example: -\begin{MEx}(3,2) - \dotnode[dotstyle=triangle*,dotscale=2 1](0,0){A} - \dotnode[dotstyle=+](3,2){B} - \ncline[nodesep=3pt]{A}{B} -\end{MEx} - - -\oitem \fnode`\c~'{name} - - The "f" stands for ``frame''. This is like, but easier than, putting a -\n\psframe{} in an \n\rnode. -\begin{MEx}(3,2) - \fnode{A} - \fnode*[framesize=1 5pt](2,2){B} - \ncline[nodesep=3pt]{A}{B} -\end{MEx} -There are two differences between \n\fnode{} and \n\psframe: -\begin{itemize} - \item There is a single (optional) coordinate argument, that gives the - \emph{center} of the frame. - \item The width and height of the frame are set by the -\begin{Ex} - \Par{framesize=dim1 `dim2'} -\end{Ex} - parameter. If you omit <dim2>, you get a square frame. -\end{itemize} - -\end{description} - - -\Section{Node connections\label{S-nc}} - -All the node connection commands begin with "nc", and they all have the same -syntax:\footnote{% -The node connections can be used with \n\pscustom. The beginning of the node -connection is attached to the current point by a straight line, as with -\n\psarc.}$^,$\footnote{% -See page \protect\pageref{S-SpecialCoor} if you want to use the nodes as -coordinates in other PSTricks macros.} -\begin{LVerb*} - \<nodeconnection>[<par>]{<arrows>}{<nodeA>}{<nodeB>} -\end{LVerb*} -A line of some sort is drawn from <nodeA> to <nodeB>. Some of the node -connection commands are a little confusing, but with a little experimentation -you will figure them out, and you will be amazed at the things you can do. -When we refer to the "A" and "B" nodes below, we are referring only to the -order in which the names are given as arguments to the node connection -macros.\footnote{% -When a node name cannot be found on the same page as the node connection -command, you get either no node connection or a nonsense node connection. -However, \TeX{} will not report any errors.} - -The node connections use many of the usual graphics parameters, plus a few -special ones. Let's start with one that applies to all the node connections: -\begin{Ex} - \Par{nodesep=dim} -\end{Ex} -\p{nodesep} is the border around the nodes that is added for the purpose of -determining where to connect the lines. - -For this and other node connection parameters, you can set different values -for the two ends of the node connection. Set the parameter \p{nodesepA} for -the first node, and set \p{nodesepB} for the second node. - -The first two node connections draw a line or arc directly between the two -nodes: -\begin{description} - -\oitem \ncline`{arrows}'{nodeA}{nodeB} - -This draws a straight line between the nodes. For example: -\begin{MEx}(4,3) - \rput[bl](0,0){\rnode{A}{Idea 1}} - \rput[tr](4,3){\rnode{B}{Idea 2}} - \ncline[nodesep=3pt]{<->}{A}{B} -\end{MEx} - -\oitem \ncarc`{arrows}'{nodeA}{nodeB} - -This connects the two nodes with an arc. -\begin{MEx}[-.5,-.5](3.5,2.5) - \cnodeput(0,0){A}{X} - \cnodeput(3,2){B}{Y} - \psset{nodesep=3pt} - \ncarc{->}{A}{B} - \ncarc{->}{B}{A} -\end{MEx} -The angle between the arc and the line between the two nodes is\footnote{% -Rather than using a true arc, \n\ncarc{} actually draws a bezier curve. When -connecting two circular nodes using the default parameter values, the curve -will be indistinguishable from a true arc. However, \n\ncarc{} is more -flexible than an arc, and works right connecting nodes of different shapes and -sizes. You can set \p{arcangleA} and \p{arcangleB} separately, and you can -control the curvature with the \p{ncurv} parameter, which is described on page -\pageref{p+ncurv}.} -\begin{Ex} - \Par{arcangle=angle} -\end{Ex} - -\end{description} - -\n\ncline{} and \n\ncarc{} both determine the angle at which the node -connections join by the relative position of the two nodes. With the next -group of node connections, you specify one or both of the angles in absolute -terms, by setting the -\begin{Ex} - \Par{angle=angle} -\end{Ex} -(and \p{angleA} and \p{angleB}) parameter. - -You also specify the length of the line segment where the node connection -joins at one or both of the ends (the ``arms'') by setting the -\begin{Ex} - \Par{arm=dim} -\end{Ex} -(and \p{armA} and \p{armB}) parameter. - -These node connections all consist of several line segments, including the -arms. The value of \p{linearc} is used for rounding the corners. - -Here they are, starting with the simplest one: - -\begin{description} - -\oitem \ncdiag`{arrows}'{nodeA}{nodeB} - -An arm is drawn at each node, joining at angle \p{angleA} or \p{angleB}, -and with a length of \p{armA} or \p{armB}. Then the two arms are connected -by a straight line, so that the whole line has three line segments. -For example: -\begin{MEx}(4,3) - \rput[tl](0,3){\rnode{A}{\psframebox{Node A}}} - \rput[br](4,0){\ovalnode{B}{Node B}} - \ncdiag[angleA=-90, angleB=90, arm=.5, linearc=.2]{A}{B} -\end{MEx} - -You can also set one or both of the arms to zero length. For example, if you -set \p{arm=0}, the nodes are connected by a straight line, but you get to -determine where the line connects (whereas the connection point is determined -automatically by \n\ncline). Compare this use of \n\ncdiag{} with \n\ncline{} -in the following example: -\begin{MEx}[0,-.5](4,2.5) - \rput[r](4,1){\ovalnode{R}{Root}} - \cnodeput(1,2){A}{XX} - \cnodeput(1,0){B}{YY} - \ncdiag[angleB=180, arm=0]{<-}{A}{R} - \ncline{<-}{B}{R} -\end{MEx} -(Note that in this example, the default value \p{angleA=0} is used.) - -\oitem \ncdiagg`{arrows}'{nodeA}{nodeB} - -\n\ncdiagg{} is similar to \n\ncdiag, but only the arm for node A is drawn. -The end of this arm is then connected directly to node B. Compare -\n\ncdiagg{} with \n\ncdiag{} when \p{armB=0}: -\begin{MEx}[-.5,-1](3.5,1) - \cnode(0,0){12pt}{a} - \rput[l](3,1){\rnode{b}{H}} - \rput[l](3,-1){\rnode{c}{T}} - \ncdiagg[angleA=180, armA=1.5, nodesepA=3pt]{b}{a} - "\nbput[npos=1.2]{\texttt{\string\ncdiagg}} - \ncdiag[angleA=180, armA=1.5, armB=0, nodesepA=3pt]{c}{a} - "\naput[npos=1.2]{\texttt{\string\ncdiag}} -\end{MEx} - - You can use \n\ncdiagg{} with \p{armA=0} if you want a straight line that -joins to node A at the angle you specify, and to node B at an angle that is -determined automatically. - -\oitem \ncbar`{arrows}'{nodeA}{nodeB} - - This node connection consists of a line with arms dropping ``down'', at -right angles, to meet two nodes at an angle \p{angleA}. Each arm is at least -of length \p{armA} or \p{armB}, but one may be need to be longer. -\begin{example**} - \rnode{A}{Connect} some \rnode{B}{words}! - \ncbar[nodesep=3pt,angle=-90]{<-**}{A}{B} - \ncbar[nodesep=3pt,angle=70]{A}{B} -\end{example**} - Generally, the whole line has three straight segments. - -\oitem \ncangle`{arrows}'{nodeA}{nodeB} - - - Now we get to a more complicated node connection. \n\ncangle{} typically -draws three line segments, like \n\ncdiag. However, rather than fixing the -length of arm A, we adjust arm A so that the line joining the two arms meets -arm A at a right angle. For example: -\begin{MEx}(4,3) - \rput[tl](0,3){\rnode{A}{\psframebox{Node A}}} - \rput[br](4,0){\ovalnode{B}{Node B}} - \ncangle[angleA=-90,angleB=90,armB=1cm]{A}{B} -\end{MEx} -Now watch what happens when we change \p{angleA}: -\begin{MEx}(4,3) - \rput[tl](0,3){\rnode{A}{\psframebox{Node A}}} - "\nput[labelsep=0]{-70}{A}{% - " \psarcn(0,0){.4cm}{0}{-70} - " \uput{.4cm}[-35](0,0){\texttt{angleA}}} - \rput[br](4,0){\ovalnode{B}{Node B}} - \ncangle[angleA=-70,angleB=90,armB=1cm,linewidth=1.2pt]{A}{B} - "\nput[labelsep=0]{90}{B}{% - " \rput[bl](2pt,1pt){% - " \valign{% - " \vfil#\vfil\cr - " \hbox{\psscaleboxto(.3,.95cm){\}}}\cr% - " \hbox{\kern 1pt{\texttt{armB}}}\cr}}} - "\ncput[nrot=:U,npos=1]{\psframe[dimen=middle](0,0)(.35,.35)} -\end{MEx} - -\n\ncangle{} is also a good way to join nodes by a right angle, with just two -line segments, as in this example: -\begin{MEx}(4,2) - \rput[tl](0,2){\rnode{A}{\psframebox{Node A}}} - \rput[br](4,0){\ovalnode{B}{Node B}} - \ncangle[angleB=90, armB=0, linearc=.5]{A}{B} -\end{MEx} - -\oitem \ncangles`{arrows}'{nodeA}{nodeB} - - \n\ncangles{} is similar to \n\ncangle, but the length of arm A is fixed by -he \p{armA} parameter. Arm A is connected to arm B by two line segments that -eet arm A and each other at right angles. The angle at which they join arm B, -and the length of the connecting segments, depends on the positions of the two -arms. \n\ncangles{} generally draws a total of four line segments.\footnote{% -Hence there is one more angle than \n\ncangle, and hence the "s" in -\n\ncangles.} -For example: -\begin{MEx}(4,4) - \rput[tl](0,4){\rnode{A}{\psframebox{Node A}}} - \rput[br](4,0){\ovalnode{B}{Node B}} - \ncangles[angleA=-90, armA=1cm, armB=.5cm, linearc=.15]{A}{B} -\end{MEx} - -Let's see what happens to the previous example when we change \p{angleB}: -\begin{MEx}(4,4) - \rput[tl](0,4){\rnode{A}{\psframebox{Node A}}} - \rput[br](4,0){\ovalnode{B}{Node B}} - \ncangles[angleA=-90, angleB=135, armA=1cm, armB=.5cm, - linearc=.15]{A}{B} - "\nput[labelsep=0]{-90}{A}{% - " \psarcn(0,0){.4cm}{0}{-90} - " \uput{.4cm}[-45](0,0){\texttt{angleA}} - " \rput[tr](-2pt,0){% - " \valign{% - " \vfil#\vfil\cr - " \hbox{\texttt{armA}\kern 1pt}\cr - " \hbox{\psscaleboxto(.28,.95cm){\{}}\cr% - " \cr}}} - "\nput[labelsep=0]{135}{B}{% - " \psarc(0,0){.4cm}{0}{133} - " \uput{.4cm}[50.5](0,0){\texttt{angleB}} - " } - "\ncput[nrot=:L,npos=2]{\psline(0,-.35)(-.35,-.35)(-.35,0)} - "\ncput[npos=3.5]{% - " \rput[r](-.8,0){\rnode{arm}{\texttt{armB}}} - " \pnode{brak}}% - "\ncline[nodesep=3pt]{->}{arm}{brak} -\end{MEx} - -\oitem \ncloop`{arrows}'{nodeA}{nodeB} - - \n\ncloop{} is also in the same family as \n\ncangle{} and \n\ncangles, but -now typically 5 line segments are drawn. Hence, \n\ncloop{} can reach around -to opposite sides of the nodes. The lengths of the arms are fixed by \p{armA} -and \p{armB}. Starting at arm A, \n\ncloop{} makes a 90 degree turn to the -left, drawing a segment of length -\begin{Ex} - \Par{loopsize=dim} -\end{Ex} -This segment connects to arm B the way arm A connects to arm B with \n\ncline; -that is, two more segments are drawn, which join the first segment and each -other at right angles, and then join arm B. For example: -\begin{example**} - "\vrule width 0pt height 1cm - \rnode{a}{\psframebox{\Huge A loop}} - \ncloop[angleB=180,loopsize=1,arm=.5,linearc=.2]{->}{a}{a} - "\ncput[npos=3.5,nrot=:U]{\psline{|<->|}(.5,-.2)(-.5,-.2)} - "\nbput[npos=3.5,nrot=:D,labelsep=.35cm]{{\tt loopsize}} - "\kern .5cm -\end{example**} -In this example, node A and node B are the same node! You can do this with all -the node connections (but it doesn't always make sense). - -Here is an example where \n\ncloop{} connects two different nodes: -\begin{example**} - \parbox{3cm}{% - \rnode{A}{\psframebox{\large\textbf{Begin}}} - \vspace{1cm}\hspace*{\fill} - \rnode{B}{\psframebox{\large\textbf{End}}} - \ncloop[angleA=180,loopsize=.9,arm=.5,linearc=.2]{->}{A}{B}} - "\ncput[npos=1.5,nrot=:U]{\psline{|<->|}(.45,-.2)(-.45,-.2)} - "\nbput[npos=1.5,nrot=:D,labelsep=.35cm]{\texttt{loopsize}} - "\kern .5cm -\end{example**} - -\end{description} - -The next two node connections are a little different from the rest. - -\begin{description} -\oitem \nccurve`{arrows}'{nodeA}{nodeB} - - \n\nccurve{} draws a bezier curve between the nodes. -\begin{MEx}(4,3) - \rput[bl](0,0){\rnode{A}{\psframebox{Node A}}} - \rput[tr](4,3){\ovalnode{B}{Node B}} - \nccurve[angleB=180]{A}{B} -\end{MEx} -You specify the angle at which the curve joins the nodes by setting the -\p{angle} (and \p{angleA} and \p{angleB}) parameter. The distance to the -control points is set with the -\begin{Ex} - \Par{ncurv=num} -\end{Ex} -(and \p{ncurvA} and \p{ncurvB}) parameter. A lower number gives a tighter -curve. (The distance between the beginning of the arc and the first control -point is one-half \p{ncurvA} times the distance between the two endpoints.) - -\oitem \nccircle`{arrows}'{node}{radius} - -\n\nccircle{} draws a circle, or part of a circle, that, if complete, would -pass through the center of the node counterclockwise, at an angle of -\p{angleA}. -\begin{example**} - "\vrule width 0pt height 1.4cm - \rnode{A}{\textbf{back}} - \nccircle[nodesep=3pt]{->}{A}{.7cm} - \kern 5pt -\end{example**} -\n\nccircle{} can only connect a node to itself; it is the only node -connection with this property. \n\nccircle{} is also special because it has an -additional argument, for specifying the radius of the circle. - -\end{description} - -The last two node connections are also special. Rather than connecting the -nodes with an open curve, they enclose the nodes in a box or curved box. You -can think of them as variants of \n\ncline{} and \n\ncarc. In both cases, the -half the width of the box is -\begin{Ex} - \Par{boxsize=dim} -\end{Ex} -You have to set this yourself to the right size, so that the nodes fit inside -the box. The \p{boxsize} parameter actually sets the \p{boxheight} and -\p{boxdepth} parameters. The ends of the boxes extend beyond the nodes by -\p{nodesepA} and \p{nodesepB}. - -\begin{description} - -\oitem \ncbox{nodeA}{nodeB} - \n\ncbox{} encloses the nodes in a box with straight sides. For example: -\begin{MEx}[0,-.5](4,2.5) - \rput[bl](.5,0){\rnode{A}{Idea 1}} - \rput[tr](3.5,2){\rnode{B}{Idea 2}} - \ncbox[nodesep=.5cm,boxsize=.6,linearc=.2, - linestyle=dashed]{A}{B} -\end{MEx} - -\oitem \ncarcbox{nodeA}{nodeB} - - \n\ncarcbox{} encloses the nodes in a curved box that is \p{arcangleA} away -from the line connecting the two nodes. -\begin{MEx}[0,-.5](4,2.5) - \rput[bl](.5,0){\rnode{A}{1}} - \rput[tr](3.5,2){\rnode{B}{2}} - \ncarcbox[nodesep=.2cm,boxsize=.4,linearc=.4, - arcangle=50]{<->}{A}{B} -\end{MEx} -The arc is drawn counterclockwise from node A to node B. - -\end{description} - -There is one other node connection parameter that applies to all the node -connections, except \n\ncarcbox: -\begin{Ex} - \Par{offset=dim} -\end{Ex} -(You can also set \p{offsetA} and \p{offsetB} independently.) This shifts the -point where the connection joins up by <dim> (given the convention that -connections go from left to right). - -There are two main uses for this parameter. First, it lets you make two -parallel lines with \n\ncline, as in the following example: -\begin{MEx}[-.5,-.5](3.5,2.5) - \cnodeput(0,0){A}{X} - \cnodeput(3,2){B}{Y} - \psset{nodesep=3pt,offset=4pt,arrows=->} - \ncline{A}{B} - \ncline{B}{A} -\end{MEx} - -Second, it lets you join a node connection to a rectangular node at a right -angle, without limiting yourself to positions that lie directly above, below, -or to either side of the center of the node. This is useful, for example, if -you are making several connections to the same node, as in the following -example: -\begin{example**} - \rnode{A}{Word1} and \rnode{B}{Word2} and \rnode{C}{Word3} - \ncbar[offsetB=4pt,angleA=-90,nodesep=3pt]{->}{A}{B} - \ncbar[offsetA=4pt,angleA=-90,nodesep=3pt]{->}{B}{C} -\end{example**} - -Sometimes you might be aligning several nodes, such as in a tree, and you want -to ends or the arms of the node connections to line up. This won't happen -naturally if the nodes are of different size, as you can see in this example: -\begin{MEx}[-.5,0](3.5,3) - "\psset{unit=.9} - \Huge - \cnode(1,3){4pt}{a} - \rput[B](0,0){\Rnode{b}{H}} - \rput[B](2,0){\Rnode{c}{a}} - \psset{angleA=90,armA=1,nodesepA=3pt} - \ncdiagg{b}{a} - \ncdiagg{c}{a} -\end{MEx} - -%%??? FIXME -If you set the \p{nodesep} or \p{arm} parameter to a negative value, PSTricks -will measure the distance to the beginning of the node connection or to the -end of the arm relative to the center of the node, rather than relative to the -boundary of the node or the beginning of the arm. Here is how we fix the -previous example: -\begin{MEx}[-.5,0](3.5,3) - "\psset{unit=.9} - \Huge - \cnode(1,3){4pt}{a} - \rput[B](0,0){\Rnode{b}{H}} - \rput[B](2,0){\Rnode{c}{a}} - \psset{angleA=90,armA=1,YnodesepA=12pt} - \ncdiagg{b}{a} - \ncdiagg{c}{a} -\end{MEx} -Note also the use of \n\Rnode. - -One more parameter trick: By using the \p{border} parameter, you can create -the impression that one node connection passes over another. - -The node connection commands make interesting drawing tools as well, as an -alternative to \n\psline{} for connecting two points. There are variants of -the node connection commands for this purpose. Each begins with "pc" (for -``point connection'') rather than "nc". E.g., -\begin{LVerb} - \pcarc{<->}(3,4)(6,9) -\end{LVerb} -gives the same result as -\begin{LVerb} - \pnode(3,4){A} - \pnode(6,9){B} - \pcarc{<->}{A}{B} -\end{LVerb} - -Only \n\nccircle{} does not have a "pc" variant: -\begin{center} -\def\oitem{\GetMacroDef\oitemi} -\def\oitemi#1{\addtoquickref{object}{#1}{\MainFont\Main#1}} -\addtolength{\tabcolsep}{8pt} -\begin{tabular}{ll} - \emph{Command} & \emph{Corresponds to:}\\ - - \oitem \pcline`{arrows}'\c1\c2 - & \n\ncline\\ - - \oitem \pccurve`{arrows}'\c1\c2 - & \n\nccurve\\ - - \oitem \pcarc`{arrows}'\c1\c2 - & \n\ncarc\\ - - \oitem \pcbar`{arrows}'\c1\c2 - & \n\ncbar\\ - - \oitem \pcdiag`{arrows}'\c1\c2 - & \n\ncdiag\\ - - \oitem \pcdiagg`{arrows}'\c1\c2 - & \n\ncdiagg\\ - - \oitem \pcangle`{arrows}'\c1\c2 - & \n\ncangle\\ - - \oitem \pcangles`{arrows}'\c1\c2 - & \n\ncangles\\ - - \oitem \pcloop`{arrows}'\c1\c2 - & \n\ncloop\\ - - \oitem \pcbox\c1\c2 - & \n\ncbox\\ - - \oitem \pcarcbox\c1\c2 - & \n\ncarcbox -\end{tabular} -\end{center} - - -\Section{Node connections labels: I\label{S-nodelabels}} - -Now we come to the commands for attaching labels to the node connections. The -label command must come right after the node connection to which the label is -to be attached. You can attach more than one label to a node connection, and a -label can include more nodes. - -The node label commands must end up on the same \TeX{} page as the node -connection to which the label corresponds. - -There are two groups of connection labels, which differ in how they select the -point on the node connection. In this section we describe the first group: -\begin{Ex} - \object \ncput`*[par]'{stuff} - \object \naput`*[par]'{stuff} - \object \nbput`*[par]'{stuff} -\end{Ex} - -These three command differ in where the labels end up with respect to the line: -\begin{quote} -\begin{tabular}{ll} - \n\ncput & \emph{on} the line\\ - \n\naput & \emph{above} the line\\ - \n\nbput & \emph{below} the line -\end{tabular} -\end{quote} -(using the convention that node connections go from left to right). - -Here is an example: -\begin{MEx}[0,-1.5](3.5,1.5) - \cnode(0,0){.5cm}{root} - \cnode*(3,1.5){4pt}{A} - \cnode*(3,0){4pt}{B} - \cnode*(3,-1.5){4pt}{C} - \psset{nodesep=3pt} - \ncline{root}{A} - \naput{above} - \ncline{root}{B} - \ncput*{on} - \ncline{root}{C} - \nbput{below} -\end{MEx} - -\n\naput{} and \n\nbput{} use the same algorithm as \n\uput{} for displacing -the labels, and the distance beteen the line and labels is \p{labelsep} (at -least if the lines are straight). - -\n\ncput{} uses the same system as \n\rput{} for setting the reference -point. You change the reference point by setting the -\begin{Ex} - \Par{ref=ref} -\end{Ex} -parameter. - -Rotation is also controlled by a graphics parameter: -\begin{Ex} - \Par{nrot=rot} -\end{Ex} -<rot> can be in any of the forms suitable for \n\rput, and you can also use -the form -\begin{LVerb*} - {:<angle>} -\end{LVerb*} -The angle is then measured with respect to the node connection. E.g., if the -angle is "{:U}", then the label runs parallel to the node connection. Since -the label can include other put commands, you really have a lot of control -over the label position. - -The next example illustrates the use "{:<angle>}", the \p{offset} parameter, -and \n\pcline: -\begin{MEx}(4,2.3) - \pspolygon(0,0)(4,2)(4,0) - \pcline[offset=12pt]{|-|}(0,0)(4,2) - \ncput*[nrot=:U]{Length} -\end{MEx} - -Here is a repeat of an earlier example, now using "{:<angle>}": -\begin{MEx}[0,-1.5](3.5,1.5) - \cnode(0,0){.5cm}{root} - \cnode*(3,1.5){4pt}{A} - \cnode*(3,0){4pt}{B} - \cnode*(3,-1.5){4pt}{C} - \psset{nodesep=3pt,nrot=:U} - \ncline{root}{A} - \naput{above} - \ncline{root}{B} - \ncput*{on} - \ncline{root}{C} - \nbput{below} -\end{MEx} - -The position on the node connection is set by the -\begin{Ex} - \Par{npos=num} -\end{Ex} -parameter, roughly according to the following scheme: Each node connection has -potentially one or more segments, including the arms and connecting lines. -A number \p{npos} between 0 and 1 picks a point on the first segment from node -"A" to "B" (fraction \p{npos} from the beginning to the end of the segment), -a number between 1 and 2 picks a number on the second segment, and so on. - -Each node connection has its own default value of \p{npos}. If you leave the -\p{npos} parameter value empty (e.g., "[npos=]"), then the default is -substituted. This is the default mode. - -Here are the details for each node connection: -\begin{center} - \catcode`\@=11\setbox\@tempboxa=\hbox{1.5}% - \edef\t#1{\noexpand\hbox to \the\wd\@tempboxa{\noexpand\tt\noexpand\hss#1}} - \begin{tabular}{lccc} - \emph{Connection} & \emph{Segments} & \emph{Range} & \emph{Default}\\[2pt] - \n\ncline & 1 & $0\leq pos\leq 1$ & "0.5"\\ - \n\nccurve & 1 & $0\leq pos\leq 1$ & "0.5"\\ - \n\ncarc & 1 & $0\leq pos\leq 1$ & "0.5"\\ - \n\ncbar & 3 & $0\leq pos\leq 3$ & "1.5"\\ - \n\ncdiag & 3 & $0\leq pos\leq 3$ & "1.5"\\ - \n\ncdiagg & 2 & $0\leq pos\leq 2$ & "0.5"\\ - \n\ncangle & 3 & $0\leq pos\leq 3$ & "1.5"\\ - \n\ncangles & 4 & $0\leq pos\leq 4$ & "1.5"\\ - \n\ncloop & 5 & $0\leq pos\leq 5$ & "2.5"\\ - \n\nccircle & 1 & $0\leq pos\leq 1$ & "0.5"\\ - \n\ncbox & 4 & $0\leq pos\leq 4$ & "0.5"\\ - \n\ncarcbox & 4 & $0\leq pos\leq 4$ & "0.5" - \end{tabular} -\end{center} - -Here is an example: -\begin{MEx}(4,3) - \rput[tl](0,3){\rnode{A}{\psframebox{Node A}}} - \rput[br](3.5,0){\ovalnode{B}{Node B}} - \ncangles[angleA=-90,arm=.4cm,linearc=.15]{A}{B} - \ncput*{d} - \nbput[nrot=:D,npos=2.5]{par} -\end{MEx} - -With \n\ncbox{} and \n\ncarcbox, the segments run counterclockwise, starting -with the lower side of the box. Hence, with \n\nbput{} the label ends up -outside the box, and with \n\naput{} the label ends up inside the box. -\begin{MEx}[0,-.5](4,2.5) - \rput[bl](.5,0){\rnode{A}{1}} - \rput[tr](3.5,2){\rnode{B}{2}} - \ncarcbox[nodesep=.2cm,boxsize=.4,linearc=.4, - arcangle=50,linestyle=dashed]{<->}{A}{B} - \nbput[nrot=:U]{set} - \nbput[npos=2]{II} -\end{MEx} - -If you set the parameter -\begin{Ex} - \Par{shortput=none/nab/tablr/tab} -\end{Ex} -to "nab", then immediately following a node connection or another node -connection label you can use "^" instead of \n\naput{} and "_" instead of -\n\nbput. -\begin{MEx}[0,-1.5](3.5,1.5) - \cnode(0,0){.5cm}{root} - \cnode*(3,1.5){4pt}{A} - \cnode*(3,-1.5){4pt}{C} - \psset{nodesep=3pt,shortput=nab} - \ncline{root}{A}^{$x$} - \ncline{root}{C}_{$y$} -\end{MEx} -You can still have parameter changes with the short "^" and "_" forms. Another -example is given on page \pageref{nab-example}. - -If you have set \p{shortput=nab}, and then you want to use a true "^" or "_" -character right after a node connection, you must precede the "^" or "_" by -"{}" so that PSTricks does not convert it to "\naput" or "\nbput". - -You can change the characters that you use for the short form with the - \Mac \MakeShortNab{<char1>}{<char2>} -command.\footnote{% -You can also use \n\MakeShortNab{} if you want to use "^" and "_" with -non-standard category codes. Just invoke the command after you have made your -"\catcode" changes.} - -The \p{shortput=tablr} and \p{shortput=tab} options are described on pages -\pageref{tablr} and \pageref{tab}, respectively. - -\Section{Node connection labels: II} - -Now the second group of node connections: -\begin{Ex} - \object \tvput`*[par]'{stuff} - \object \tlput`*[par]'{stuff} - \object \trput`*[par]'{stuff} - \object \thput`*[par]'{stuff} - \object \taput`*[par]'{stuff} - \object \tbput`*[par]'{stuff} -\end{Ex} - -The difference between these commands and the "\n*put" commands is that these -find the position as an intermediate point between the centers of the nodes, -either in the horizontal or vertical direction. These are good for trees and -mathematical diagrams, where it can sometimes be nice to have the labels be -horizontally or vertically aligned. The "t" stands for ``tree''. - -You specify the position by setting the -\begin{Ex} - \Par{tpos=num} -\end{Ex} -parameter. - -\n\tvput, \n\tlput{} and \n\trput{} find the position that lies fraction -<tpos> in the \emph{vertical} direction from the upper node to the lower -node. \n\thput, \n\taput{} and \n\tbput{} find the position that lies fraction -<tpos> in the \emph{horizontal} direction from the left node to the right -node. -Then the commands put the label on or next to the line, as follows: -\begin{center} -\begin{tabular}{lll} - \emph{Command} & \emph{Direction} & \emph{Placement}\\[3pt] - \n\tvput & vertical & middle\\ - \n\tlput & vertical & left\\ - \n\trput & vertical & right\\ - \n\thput & horizontal & middle\\ - \n\taput & horizontal & above\\ - \n\tbput & horizontal & below -\end{tabular} -\end{center} - -Here is an example: -\begin{example*} - \[ - \setlength{\arraycolsep}{1.1cm} - \begin{array}{cc} - \Rnode{a}{(X-A)} & \Rnode{b}{A} \\[1.5cm] - \Rnode{c}{x} & \Rnode{d}{\tilde{X}} - \end{array} - \psset{nodesep=5pt,arrows=->} - \everypsbox{\scriptstyle} - \ncline{a}{c}\tlput{r} - \ncline{a}{b}\taput{u} - \ncline[linestyle=dashed]{c}{d}\tbput{b} - \ncline{b}{d}\trput{s} - " \everypsbox{} - " \begin{array}{cc} - " \rnode{a}{(X-A)} & \rnode{b}{a} \\[1.5cm] - " \rnode{c}{x} & \rnode{d}{\tilde{X}} - " \end{array} - " \psset{nodesep=5pt,arrows=->}\everypsbox{\scriptstyle} - " \ncline{a}{c}\nbput{r} - " \ncline{a}{b}\naput{u} - " \ncline[linestyle=dashed]{c}{d}\nbput{b} - " \ncline{b}{d}\naput{s} - \] -\end{example*} -On the left is the diagram with \n\tlput, \n\trput\, \n\tbput{} and \n\Rnode, -as shown in the code. On the right is the same diagram, but with \n\naput\, -\n\nbput{} and \n\rnode. - -These do not have a rotation argument or parameter. However, you can rotate -<stuff> in 90 degree increments using box rotations (e.g., \n\rotateleft). - -If you set \p{shortput=tablr}, then you can use the following single-character -abbreviations for the "t" put commands:\label{tablr} -\begin{center} - \begin{tabular}{rl} - \emph{Char.} & \emph{Short for:}\\[2pt] - "^" & \n\taput \\ - "_" & \n\tbput \\ - \DeleteShortMeta "<" & \n\tlput \\ - ">" & \n\trput - \end{tabular} -\end{center} - -You can change the character abbreviations with - \Mac \MakeShortTablr{<char1>}{<char2>}{<char3>}{<char4>} - -The "t" put commands, including an example of \p{shortput=tablr}, will be -shown further when we get to mathematical diagrams and trees. - -\begin{drivers} The node macros use \n\pstVerb{} and \n\pstverbscale. -\end{drivers} - -\Section{Attaching labels to nodes} - -The command - \Mac \nput`*[par]'{refangle}{name}{stuff} -affixes <stuff> to node <name>. It is positioned distance \p{labelsep} from -the node, in the direction <refangle> from the center of the node. The -algorithm is the same as for \n\uput. If you want to rotate the node, set the -\begin{Ex} - \Par{rot=rot} -\end{Ex} -parameter, where <rot> is a rotation that would be valid for \n\rput.% -\footnote{Not to be confused with the "nput" parameter.} -The position of the label also takes into account the \p{offsetA} -parameter. If \p{labelsep} is negative, then the distance is from the center -of the node rather than from the boundary, as with \p{nodesep}. - -Here is how I used \n\nput{} to mark an angle in a previous example: -\begin{MEx}(4,3) - \rput[br](4,0){\ovalnode{B}{Node B}} - \rput[tl](0,3){\rnode{A}{\psframebox{Node A}}} - \nput[labelsep=0]{-70}{A}{% - \psarcn(0,0){.4cm}{0}{-70} - \uput{.4cm}[-35](0,0){\texttt{angleA}}} - \ncangle[angleA=-70,angleB=90,armB=1cm,linewidth=1.2pt]{A}{B} - \ncput[nrot=:U,npos=1]{\psframe[dimen=middle](0,0)(.35,.35)} -\end{MEx} - -\Section{Mathematical diagrams and graphs\label{S-psmatrix}} - -For some applications, such as mathematical diagrams and graphs, it is useful -to arrange nodes on a grid. You can do this with alignment environments, such -as \TeX's "\halign"primitive, \LaTeX's "tabular" environment, and \AmS-\TeX's -"\matrix", but PSTricks contains its own alignment environment that is -especially adapted for this purpose: -\begin{Ex} - \object \psmatrix{} ... \string\endpsmatrix -\end{Ex} - -Here is an example -\begin{example**} - $ - \psmatrix[colsep=1cm,rowsep=1cm] - & A \\ - B & E & C \\ - & D & - \endpsmatrix - $ -\end{example**} - -As an alignment environment, \n\psmatrix{} is similar to \AmS-\TeX's -"\matrix". There is no argument for specifying the columns. Instead, you can -just use as many columns as you need. The entries are horizontally centered. -Rows are ended by "\\". \n\psmatrix{} can be used in or out of math mode. - -Our first example wasn't very interesting, because we didn't make use of the -nodes. Actually, each entry is a node. The name of the node in row <row> and -column <col> is "{<row>,<col>}", with no spaces. Let's see some node -connections: -\begin{example**} - $ - \psmatrix[colsep=1cm] - & X \\ - Y & Z - \endpsmatrix - \everypsbox{\scriptstyle}% - \psset{nodesep=3pt,arrows=->} - \ncline{1,2}{2,1} - \tlput{f} - \ncline{1,2}{2,2} - \trput{g} - \ncline[linestyle=dotted]{2,1}{2,2} - \tbput{h} - $ -\end{example**} - -You can include the node connections inside the \n\psmatrix, in the last entry -and right before \n\endpsmatrix. One advantage to doing this is that -\p{shortput=tab} is the default within a \n\psmatrix. -\begin{example**} - $ - \begin{psmatrix} - U \\ - & X\times_Z Y & X \\ - & Y & Z - \psset{arrows=->,nodesep=3pt} - \everypsbox{\scriptstyle} - \ncline{1,1}{2,2}_{y} - \ncline[doubleline=true,linestyle=dashed]{-}{1,1}{2,3}^{x} - \ncline{2,2}{3,2}<{q} - \ncline{2,2}{2,3}_{p} - \ncline{2,3}{3,3}>{f} - \ncline{3,2}{3,3}_{g} - \end{psmatrix} - $ -\end{example**} - -You can change the kind of nodes that are made by setting the -\begin{Ex} - \Par{mnode=type} -\end{Ex} -parameter. Valid types are "R", "r", "C", "f", "p", "circle", "oval", "dia", -"tri", "dot" and "none", standing for \n\Rnode, \n\rnode, \n\Cnode, \n\fnode, -\n\pnode, \n\circlenode, \n\ovalnode, \n\dotnode{} and no node, -respectively. Note that for circles, you use \p{mnode=C} and set the radius -with the \p{radius} parameter. - -For example:\label{nab-example} -\begin{example**} - \psmatrix[mnode=circle,colsep=1] - & A \\ - B & E & C \\ - & D & - \endpsmatrix - \psset{shortput=nab,arrows=->,labelsep=3pt} - \small - \ncline{2,2}{2,3}^[npos=.75]{a} - \ncline{2,2}{2,1}^{b} - \ncline{3,2}{2,1}^{c} - \ncarc[arcangle=-40,border=3pt]{3,2}{1,2} - _[npos=.3]{d}^[npos=.7]{e} - \ncarc[arcangle=12]{1,2}{2,1}^{f} - \ncarc[arcangle=12]{2,1}{1,2}^{g} -\end{example**} - -Note that a node is made only for the non-empty entries. You can also specify -a node for the empty entries by setting the -\begin{Ex} - \Par{emnode=type} -\end{Ex} -parameter. - -You can change parameters for a single entry by starting this entry with the -parameter changes, enclosed in square brackets. Note that the changes affect -the way the node is made, but not contents of the entry (use \n\psset{} for -this purpose). For example: -\begin{example**} - $ - \psmatrix[colsep=1cm] - & [mnode=circle] X \\ - Y & Z - \endpsmatrix - \psset{nodesep=3pt,arrows=->} - \ncline{1,2}{2,1} - \ncline{1,2}{2,2} - \ncline[linestyle=dotted]{2,1}{2,2} - $ -\end{example**} -If you want your entry to begin with a "[" that is not meant to indicate -parameter changes, the precede it by "{}". - -You can assign your own name to a node by setting the -\begin{Ex} - \Par{name=<name>} -\end{Ex} -parameter at the beginning of the entry, as described above. You can still -refer to the node by "{<row>,<col>}", but here are a few reasons for giving -your own name to a node: -\begin{itemize} - \item The name may be easier to keep track of; - \item Unlike the "{<row>,<col>}" names, the names you give remain valid - even when you add extra rows or columns to your matrix. - \item The names remain valid even when you start a new \n\psmatrix{} that - reuses the "{<row>,<col>}" names. -\end{itemize} - - -Here a few more things you should know: -\begin{itemize} - \item The baselines of the nodes pass through the centers of the - nodes. \n\psmatrix{} achieves this by setting the -\begin{Ex} - \Par{nodealign=true/false} -\end{Ex} -parameter to "true". You can also set this parameter outside of \n\psmatrix{} -when you want this kind of alignment. - - \item You can left or right-justify the nodes by setting the -\begin{Ex} - \Par{mcol=l/r/c} -\end{Ex} -parameter. "l", "r" and "c" stand for "left", "right" and "center", -respectively. - - \item The space between rows and columns is set by the -\begin{Ex} - \Par{rowsep=dim} - \Par{colsep=dim} -\end{Ex} -parameters. - - \item If you want all the nodes to have a fixed width, set -\begin{Ex} - \Par{mnodesize=dim} -\end{Ex} -to a positive value. - - \item If \n\psmatrix{} is used in math mode, all the entries are set in math - mode, but you can switch a single entry out of math mode by starting and - ending the entry with "$". - - \item The radius of the "c" \p{mnode} (corresponding to \n\cnode) is set by -the \p{radius} parameter. - - \item Like in \LaTeX, you can end a row with "\\[<dim>]" to insert an extra - space <dim> between rows. - - \item The command "\psrowhookii" is executed, if defined, at the beginning of - every entry in row "ii" (row 2), and the command "\pscolhookv" is executed at - athe beginning of every entry in column "v" (etc.). You can use these hooks, - for example, to change the spacing between two columns, or to use a special - \p{mnode} for all the entries in a particular row. - - \item An entry can itself be a node. You might do this if you want an entry - to have two shapes. - - \item If you want an entry to stretch across several (<int>) columns, use the - \Mac \psspan{int} - \emph{at the end of the entry}. This is like Plain \TeX's \n\multispan, or - \LaTeX's \n\multicolumn, but the template for the current column (the first - column that is spanned) is still used. If you want wipe out the template as - well, use "\multispan{<int>}" \emph{at the beginning of the entry} instead. - If you just want to wipe out the template, use "\omit" before the entry. - - \item \n\psmatrix{} can be nested, but then all node connections and other - references to the nodes in the "{<row>,<col>}" form for the nested matrix - \emph{must go inside} the \n\psmatrix. This is how PSTricks decides which - matrix you are referring to. It is still neatest to put all the node - connections towards the end; just be sure to put them before \n\endpsmatrix. - Be careful also not to refer to a node until it actually appears. The whole - matrix can itself go inside a node, and node connections can be made as - usual. This is not the same as connecting nodes from two different - \n\psmatrix's. To do this, you must give the nodes names and refer to them - by these names. - -\end{itemize} - -\section{Obsolete put commands} - -This is old documentation, but these commands will continue to be supported. - -There is also an obsolete command \n\Lput\MainIndex\Lput{} for putting labels -next to node connections. The syntax is -\begin{LVerb*} - \Lput{<labelsep>}[<refpoint>]{<rotation>}(<pos>){<stuff>} -\end{LVerb*} -It is a combination of \n\Rput{} and \n\lput, equivalent to -\begin{LVerb*} - \lput(<pos>){\Rput{<labelsep>}[<refpoint>]{<rotation>}(0,0){<stuff>}} -\end{LVerb*} -\n\Mput\MainIndex\Mput{} is a short version of \n\Lput{} with no -"{<rotation>}" or "(<pos>)" argument. \n\Lput{} and \n\Mput{} remain part of -PSTricks only for backwards compatibility. - -Here are the node label commands: -\begin{description} - -\mitem \lput`*[refpoint]{rotation}'(pos){stuff} - -The "l" stands for ``label''. Here is an example illustrating the use of the -optional star and ":<angle>" with \n\lput, as well as the use of the -\p{offset} parameter with \n\pcline: -\begin{MEx}(4,2.3) - \pspolygon(0,0)(4,2)(4,0) - \pcline[offset=12pt]{|-|}(0,0)(4,2) - \lput*{:U}{Length} -\end{MEx} -(Remember that with the "put" commands, you can omit the coordinate if you -include the angle of rotation. You are likely to use this feature with the -node label commands.) - -With \n\lput{} and \n\rput, you have a lot of control over the position of the -label. E.g., -\begin{MEx}(4,2) - \pcline(0,0)(4,2) - \lput{:U}{\rput[r]{N}(0,.4){label}} -\end{MEx} -puts the label upright on the page, with right side located .4 centimeters -``above'' the position ".5" of the node connection (above if the node -connection points to the right). However, the \n\aput{} and \n\bput{} commands -described below handle the most common cases without \n\rput.\footnote{% -There is also an obsolete command \n\Lput\MainIndex\Lput{} for putting labels -next to node connections. The syntax is -\begin{LVerb*} - \Lput{<labelsep>}[<refpoint>]{<rotation>}(<pos>){<stuff>} -\end{LVerb*} -It is a combination of \n\Rput{} and \n\lput, equivalent to -\begin{LVerb*} - \lput(<pos>){\Rput{<labelsep>}[<refpoint>]{<rotation>}(0,0){<stuff>}} -\end{LVerb*} -\n\Mput\MainIndex\Mput{} is a short version of \n\Lput{} with no -"{<rotation>}" or "(<pos>)" argument. \n\Lput{} and \n\Mput{} remain part of -PSTricks only for backwards compatibility.} - -\mitem \aput`*[labelsep]{angle}'(pos){stuff} - - <stuff> is positioned distance \n\pslabelsep{} \emph{above} the node -connection, given the convention that node connections point to the right. -"\aput" is a node-connection variant of \n\uput. For example: -\begin{MEx}(4,2) - \pspolygon(0,0)(4,2)(4,0) - \pcline[linestyle=none](0,0)(4,2) - \aput{:U}{Hypotenuse} -\end{MEx} - -\mitem \bput`*[labelsep]{angle}'(pos){stuff} - - This is like \n\aput, but <stuff> is positioned \emph{below} the node -connection. - -\end{description} - - It is fairly common to want to use the default position and rotation with -these node connections, but you have to include at least one of these -arguments. Therefore, PSTricks contains some variants: -\begin{Ex} - \object \mput`*[refpoint]'{stuff} - \object \Aput`*[labelsep]'{stuff} - \object \Bput`*[labelsep]'{stuff} -\end{Ex} -of \n\lput, \n\aput{} and \n\bput, respectively, that have no angle or -positioning argument. For example: -\begin{MEx}(4,2) - \cnode*(0,0){3pt}{A} - \cnode*(4,2){3pt}{B} - \ncline[nodesep=3pt]{A}{B} - \mput*{1} -\end{MEx} -Here is another: -\begin{MEx}(4,2) - \pcline{<->}(0,0)(4,2) - \Aput{Label} -\end{MEx} - -\endinput - -%% END psd-node.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-para.tex b/Master/texmf-dist/source/generic/pstricks/psd-para.tex deleted file mode 100644 index d644733a5dc..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-para.tex +++ /dev/null @@ -1,345 +0,0 @@ -%% BEGIN psd-para.tex - -\part{More graphics parameters} - -The graphics parameters described in this part are common to all or most of -the graphics objects. - -\Section{Coordinate systems} - -The following manipulations of the coordinate system apply only to pure -graphics objects. - -A simple way to move the origin of the coordinate system to \c{} is with the -\begin{Ex} - \Par{origin=\{coor\}}({0pt,0pt}) -\end{Ex} -This is the one time that coordinates \emph{must} be enclosed in curly brackets -"{}" rather than parentheses "()". - -A simple way to switch swap the axes is with the -\begin{Ex} - \Par{swapaxes=true} -\end{Ex} -parameter. E.g., you might change your mind on the orientation of a plot after -generating the data. - -\Section{Line styles\label{S-linestyles}} - -The following graphics parameters (in addition to \p{linewidth} and -\p{linecolor}) determine how the lines are drawn, whether they be open or -closed curves. -\begin{description}\raggedright - -\pitem[linestyle=style] - Valid styles are "none", "solid", "dashed" and "dotted". - -\pitem[dash=dim1 dim2] - The <black-white> dash pattern for the "dashed" line style. For example: -\begin{MEx}(4,2) - \psellipse[linestyle=dashed,dash=3pt 2pt](2,1)(2,1) -\end{MEx} - -\pitem[dotsep=dim] - The distance between dots in the "dotted" line style. For example -\begin{MEx}(4,1) - \psline[linestyle=dotted,dotsep=2pt]{|->>}(4,1) -\end{MEx} - -\pitem[border=dim] - A positive value draws a border of width <dim> and color \p{bordercolor} on -each side of the curve. This is useful for giving the impression that one line -passes on top of another. The value is saved in the dimension register -\n\psborder. - -\pitem[bordercolor=color] - See \p{border} above. - - For example: -\begin{MEx}(4,3) - \psline(0,0)(1.8,3) - \psline[border=2pt]{*->}(0,3)(1.8,0) - \psframe*[linecolor=gray](2,0)(4,3) - \psline[linecolor=white,linewidth=1.5pt]{<->}(2.2,0)(3.8,3) - \psellipse[linecolor=white,linewidth=1.5pt, - bordercolor=gray,border=2pt](3,1.5)(.7,1.4) -\end{MEx} - -\pitem[doubleline=true/false] - When "true", a double line is drawn, separated by a space that is -\p{doublesep} wide and of color \p{doublecolor}. This doesn't work as expected -with the "dashed" \p{linestyle}, and some arrows look funny as well. - -\pitem[doublesep=dim] - See \p{doubleline}, above. - -\pitem[doublecolor=color] - See \p{doubleline}, above. - -Here is an example of double lines: -\begin{MEx}(4,1) - \psline[doubleline=true,linearc=.5, - doublesep=1.5pt]{->}(0,0)(3,1)(4,0) -\end{MEx} - -\pitem[shadow=true/false] - When "true", a shadow is drawn, at a distance \p{shadowsize} from the -original curve, in the direction \p{shadowangle}, and of color -\p{shadowcolor}. - -\pitem[shadowsize=dim] - See \p{shadow}, above. - -\pitem[shadowangle=angle] - See \p{shadow}, above. - -\pitem[shadowcolor=color] - See \p{shadow}, above. - -Here is an example of the \p{shadow} feature, which should look familiar: -\begin{MEx}[-1,-.5](1,.7) - \pspolygon[linearc=2pt,shadow=true,shadowangle=45, - xunit=1.1](-1,-.55)(-1,.5)(-.8,.5)(-.8,.65) - (-.2,.65)(-.2,.5)(1,.5)(1,-.55) -\end{MEx} -\end{description} - -Here is another graphics parameter that is related to lines but that applies -only to the closed graphics objects \n\psframe, \n\pscircle, \n\psellipse{} and -\n\pswedge: -\begin{Ex} - \Par{dimen=outer/inner/middle} -\end{Ex} -It determines whether the dimensions refer to the inside, outside or middle of -the boundary. The difference is noticeable when the linewidth is large: -\begin{MEx*}(4,3) - \psset{linewidth=.25cm} - \psframe[dimen=inner](0,0)(2,1) - \psframe[dimen=middle](0,2)(2,3) - \psframe[dimen=outer](3,0)(4,3) -\end{MEx*} -With "\pswedge", this only affects the radius; the origin always lies in the -middle the boundary. The right setting of this parameter depends on how you -want to align other objects. - - -\Section{Fill styles\label{S-fillstyles}} - -The next group of graphics parameters determine how closed regions are filled. -Even open curves can be filled; this does not affect how the curve is painted. -\begin{description}\raggedright - -\pitem[fillstyle=style] - Valid styles are - \begin{quote}\raggedright - "none", "solid", "vlines", "vlines*", "hlines", "hlines*", "crosshatch" and -"crosshatch*". - \end{quote} - "vlines", "hlines" and "crosshatch" draw a pattern of lines, according to -the four parameters list below that are prefixed with "hatch". The "*" -versions also fill the background, as in the "solid" style. - -\pitem[fillcolor=color] - The background color in the "solid", "vlines*", "hlines*" and "crosshatch*" -styles. - -\pitem[hatchwidth=dim] - Width of lines. - -\pitem[hatchsep=dim] - Width of space between the lines. - -\pitem[hatchcolor=color] - Color of lines. Saved in \n\pshatchcolor. - -\pitem[hatchangle=rot] - Rotation of the lines, in degrees. For example, if \p{hatchangle} is set to -"45", the "vlines" style draws lines that run NW-SE, and the "hlines" style -draws lines that run "SW-NE", and the "crosshatch" style draws both. -\end{description} - -Here is an example of the "vlines" and related fill styles:\footnote{% -PSTricks adjusts the lines relative to the resolution so that they all have -the same width and the same intervening space. Otherwise, the checkered -pattern in this example would be noticeably uneven, even on 300 dpi devices. -This adjustment is resolution dependent, and may involve adjustments to the -\p{hatchangle} when this is not initially a multiple of 45 degrees.} -\begin{MEx}(4,3) - \pspolygon[fillstyle=vlines](0,0)(0,3)(4,0) - \pspolygon[fillstyle=hlines](0,0)(4,3)(4,0) - \pspolygon[fillstyle=crosshatch*,fillcolor=black, - hatchcolor=white,hatchwidth=1.2pt,hatchsep=1.8pt, - hatchangle=0](0,3)(2,1.5)(4,3) -\end{MEx} - -Each of the pure graphics objects (except those beginning with "q") has a -starred version that produces a solid object of color \p{linecolor}. (It -automatically sets \p{linewidth} to zero, \p{fillcolor} to \p{linecolor}, -\p{fillstyle} to "solid", and \p{linestyle} to "none".) - - -\Section{Arrowheads and such\label{S-arrows}} - - Lines and other open curves can be terminated with various arrowheads, -t-bars or circles. The -\begin{Ex} - \Par{arrows=style} -\end{Ex} -parameter determines what you get. It can have the following values, which are -pretty intuitive:\footnote{This is \TeX's version of WYSIWYG.}% -\newbox\arrowtable -\setbox\arrowtable=\hbox{% - \def\myline#1{\psline{#1}(0,1ex)(1.3,1ex)}% - \catcode`\<=12 - \begin{tabular}{cll}% - \emph{Value} & \hbox to 1.3cm{\emph{Example}}\hss & \emph{Name} \\[2pt] - "-" & \myline{-} & None\\ - "<->" & \myline{<->} & Arrowheads.\\ - ">-<" & \myline{>-<} & Reverse arrowheads.\\ - "<<->>" & \myline{<<->>} & Double arrowheads.\\ - ">>-<<" & \myline{>>-<<} & Double reverse arrowheads.\\ - "|-|" & \myline{|-|} & T-bars, flush to endpoints.\\ - "|*-|*" & \myline{|*-|*} & T-bars, centered on endpoints.\\ - "|<->|" & \myline{|<->|} & T-bars and arrowheads.\\ - "|<*->|*" & \myline{|<*->|*} & T-bars and arrowheads, flush.\\ - "[-]" & \myline{[-]} & Square brackets.\\ - "(-)" & \myline{(-)} & Rounded brackets.\\ - "o-o" & \myline{o-o} & Circles, centered on endpoints.\\ - "*-*" & \myline{*-*} & Disks, centered on endpoints.\\ - "oo-oo" & \myline{oo-oo} & Circles, flush to endpoints.\\ - "**-**" & \myline{**-**} & Disks, flush to endpoints.\\ - "c-c" & \myline{c-c} & Extended, rounded ends.\\ - "cc-cc" & \myline{cc-cc} & Flush round ends.\\ - "C-C" & \myline{C-C} & Extended, square ends. - \end{tabular}}% -\addtoquickref{center}{% - {\large\textbf{Arrows}}\par - \leavevmode\box\arrowtable} -\begin{center} - \leavevmode\copy\arrowtable -\end{center} -You can also mix and match. E.g., "->", "*-)" and "[->" are all valid values -of the \p{arrows} parameter. - -Well, perhaps the "c", "cc" and "C" arrows are not so obvious. "c" and "C" -correspond to setting PostScript's "linecap" to 1 and 2, respectively. "cc" is -like "c", but adjusted so that the line flush to the endpoint. These arrows -styles are noticeable when the \p{linewidth} is thick: -\begin{MEx}[-.25,-.25](3.25,2.25) - \psline[linewidth=.5cm](0,0)(0,2) - \psline[linewidth=.5cm]{c-c}(1,0)(1,2) - \psline[linewidth=.5cm]{cc-cc}(2,0)(2,2) - \psline[linewidth=.5cm]{C-C}(3,0)(3,2) - "\rput[t](0,-.3){\texttt{-}} - "\rput[t](1,-.3){\texttt{c-c}} - "\rput[t](2,-.3){\texttt{cc-cc}} - "\rput[t](3,-.3){\texttt{C-C}} -\end{MEx} - -Almost all the open curves let you include the \p{arrows} parameters as an -optional argument, enclosed in curly braces and before any other arguments -(except the optional parameters argument). E.g., instead of -\begin{LVerb} - \psline[arrows=<-,linestyle=dotted](3,4) -\end{LVerb} -you can write -\begin{LVerb} - \psline[linestyle=dotted]{<-}(3,4) -\end{LVerb} -The exceptions are a few streamlined macros that do not support the use of -arrows (these all begin with "q"). - -The size of these line terminators is controlled by the following parameters. -In the description of the parameters, the width always refers to the dimension -perpendicular to the line, and length refers to a dimension in the direction -of the line. -\begin{description} - -\pitem[arrowsize=dim `num'] - The width of arrowheads is <dim> plus <num> times \p{linewidth} -(if the optional `num' is inclued). See the diagram below. - -\pitem[arrowlength=num] - Length of arrowheads, as a fraction of the width, as shown below. - -\pitem[arrowinset=num] - Size of inset for arrowheads, as a fraction of the length, as shown below. - -\begin{center}\leavevmode -\hbox to \linewidth{% - \psset{unit=.5cm} - \pspicture[shift=3cm](-3.6,-1.3)(3.4,4.8) - \pspolygon*(-2,0)(0,4)(2,0)(0,1) - \psset{arrows=|-|} - \psline(-2.5,0)(-2.5,4)\rput(-2.7,2){\psframebox*{\emph{length}}} - \psline(-2,-.5)(2,-.5)\rput(0,-.5){\psframebox*{\emph{width}}} - \psline(2.5,0)(2.5,1)\rput[l](2.8,.5){\emph{inset}} - \endpspicture - \hfill - \begin{tabular}{rcl} - \texttt{arrowsize} & = & <dim num>\\ - \emph{width} & = & <num> x \p{linewidth} + <dim1>\\ - \emph{length} & = & \p{arrowlength} x \emph{width}\\ - \emph{inset} & = & \p{arrowinset} x \emph{height} - \end{tabular}} -\end{center} - -\pitem[tbarsize=dim `num'] - The width of a t-bar, square bracket or rounded bracket is <dim> plus <num> -times \p{linewidth} (if the optional `num' is included). -\p{linewidth}, plus <dim>. - -\pitem[bracketlength=num] - The height of a square bracket is <num> times its width. - -\pitem[rbracketlength=num] - The height of a round bracket is <num> times its width. - -\pitem[arrowscale=arrowscale=num1 <num2>] - Imagine that arrows and such point down. This scales the width of the arrows -by <num1> and the length (height) by <num2>. If you only include one number, -the arrows are scaled the same in both directions. Changing \p{arrowscale} can -give you special effects not possible by changing the parameters described -above. E.g., you can change the width of lines used to draw brackets. - -\end{description} - -The size of dots is controlled by the \p{dotsize} parameter. - - -\Section{Custom styles} - -You can define customized versions of any macro that has parameter changes as -an optional first argument using the \n\newpsobject{} command: - \Mac \newpsobject{name}{object}{par1=value1`,\ldots'} -as in -\begin{LVerb} - \newpsobject{myline}{psline}{linecolor=green,linestyle=dotted} - \newpsobject{mygrid}{psgrid}{subgriddiv=1,griddots=10, - gridlabels=7pt} -\end{LVerb} -The first argument is the name of the new command you want to define. The -second argument is the name of the graphics object. Note that both of these -arguments are given without the backslash. The third argument is the special -parameter values that you want to set. - -With the above examples, the commands "\myline" and "\mygrid" work just like -the graphics object \n\psline{} it is based on, and you can even reset the -parameters that you set when defining "\myline", as in: -\begin{LVerb} - \myline[linecolor=gray,dotsep=2pt](5,6) -\end{LVerb} - -Another way to define custom graphics parameter configurations is with the - \Mac \newpsstyle{name}{par1=value1`,\ldots'} -command. You can then set the \p{style} graphics parameter to <name>, rather -than setting the parameters given in the second argument of \n\newpsstyle. For -example, -\begin{LVerb} - \newpsstyle{mystyle}{linecolor=green,linestyle=dotted} - \psline[style=mystyle](5,6) -\end{LVerb} - -\endinput - -%% END psd-para.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-pict.tex b/Master/texmf-dist/source/generic/pstricks/psd-pict.tex deleted file mode 100644 index 59fa301d2dd..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-pict.tex +++ /dev/null @@ -1,500 +0,0 @@ -%% BEGIN psd-pict.tex - -\part{Picture Tools\label{P-pictures}} - -\Section{Pictures\label{S-pspic}} - -The graphics objects and \n\rput{} and its variants do not change \TeX's -current point (i.e., they create a 0-dimensional box). If you string several -of these together (and any other 0-dimensional objects), they share the same -coordinate system, and so you can create a picture. For this reason, these -macros are called \emph{picture objects}. - -If you create a picture this way, you will probably want to give the whole -picture a certain size. You can do this by putting the picture objects in a -\p{pspicture} environment, as in: -\begin{Ex} - \object \pspicture`*[baseline](\x0,\y0)'\c1 - < picture objects> - \object \endpspicture -\end{Ex} -The picture objects are put in a box whose lower left-hand corner is at \c0 -(by default, "(0,0)") and whose upper right-hand corner is at \c1. - -By default, the baseline is set at the bottom of the box, but the optional -argument "[<baseline>]" sets the baseline fraction <baseline> from the bottom. -Thus, <baseline> is a number, generally but not necessarily between 0 and 1. -If you include this argument but leave it empty (\texttt{[\kern 1pt]}), then -the baseline passes through the origin. - -Normally, the picture objects can extend outside the boundaries of the box. -However, if you include the "*", anything outside the boundaries is clipped. - -Besides picture objects, you can put anything in a \n\pspicture{} that does -not take up space. E.g., you can put in font declarations and use \n\psset, -and you can put in braces for grouping. PSTricks will alert you if you include -something that does take up space.\footnote{% -When PSTricks picture objects are included in a \n\pspicture{} environment, -they gobble up any spaces that follow, and any preceding spaces as well, -making it less likely that extraneous space gets inserted. (PSTricks objects -always ignore spaces that follow. If you also want them to try to neutralize -preceding space when used outside the \n\pspicture{} environment (e.g., in a -\LaTeX{} "picture" environment), then use the command \Main\KillGlue. The -command \Main\DontKillGlue{} turns this behavior back off.)} - -\LaTeX{} users can type -\begin{Ex} - "\begin{pspicture}" \ldots\ "\end{pspicture}" -\end{Ex} -You can use PSTricks picture objects in a \LaTeX{} "picture" environment, and -you can use \LaTeX{} picture objects in a PSTricks {\UsageFont pspicture} -environment. However, the {\UsageFont pspicture} environment makes \LaTeX's -"picture" environment obsolete, and has a few small advantages over the -latter. Note that the arguments of the {\UsageFont pspicture} environment work -differently from the arguments of \LaTeX's "picture" environment (i.e., the -right way versus the wrong way). - - -\begin{drivers} The clipping option ("*") uses \n\pstVerb{} and -\n\pstverbscale. -\end{drivers} - - -\Section{Placing and rotating whatever\label{S-rput}} - -PSTricks contains several commands for positioning and rotating an HR-mode -argument. All of these commands end in "put", and bear some similarity to -\LaTeX's "\put" command, but with additional capabilities. Like \LaTeX's -"\put" and unlike the box rotation macros described in Section -\ref{S-rotation}, these commands do not take up any space. They can be used -inside and outside \n\pspicture{} environments. - -Most of the PSTricks "put" commands are of the form: -\begin{Ex} - \Backslash <put>*<arg>"{<rotation>}(<coor>){<stuff>}" -\end{Ex} -With the optional "*" argument, <stuff> is first put in a -\begin{LVerb*} - \psframebox*[boxsep=false]{<stuff>} -\end{LVerb*} -thereby blotting out whatever is behind <stuff>. This is useful for -positioning text on top of something else. - -<arg> refers to other arguments that vary from one "put" command to another, -The optional <rotation> is the angle by which <stuff> should be rotated; this -arguments works pretty much the same for all "put" commands and is described -further below. The "(<coor>)" argument is the coordinate for positioning -<stuff>, but what this really means is different for each "put" command. The -"(<coor>)" argument is shown to be obligatory, but you can actually omit it if -you include the <rotation> argument. - -The <rotation> argument should be an angle, as described in Section -\ref{S-coor}, but the angle can be preceded by an "*". This causes all the -rotations (except the box rotations described in Section \ref{S-rotation}) -within which the \n\rput{} command is be nested to be undone before setting the -angle of rotation. This is mainly useful for getting a piece of text right -side up when it is nested inside rotations. For example, -\begin{MEx}[-1,-.5](2,2) - \rput{34}{% - \psframe(-1,0)(2,1) - \rput[br]{*0}(2,1){\emph{stuff}}} -\end{MEx} - -There are also some letter abbreviations for the command angles. These -indicate which way is up: -\begin{trivlist}\item[] - \leavevmode - \hbox to \hsize{\hfill - \begin{tabular}{clr} - \emph{Letter} & \emph{Short for} & \emph{Equiv.\ to}\\ - "U" & Up & 0\\ - "L" & Left & 90\\ - "D" & Down & 180\\ - "R" & Right & 270\\ - \end{tabular} - \hfill - \begin{tabular}{clr} - \emph{Letter} & \emph{Short for} & \emph{Equiv.\ to}\\ - "N" & North & *0\\ - "W" & West & *90\\ - "S" & South & *180\\ - "E" & East & *270 - \end{tabular}\hfill} -\end{trivlist} - - -This section describes just a two of the PSTricks "put" commands. The most -basic one command is - \Mac \rput`*[refpoint]{rotation}'\c~{stuff} -<refpoint> determines the reference point of <stuff>, and this reference point -is translated to \c{}. - -By default, the reference point is the center of the box. This can be changed -by including one or two of the following in the optional <refpoint> argument: -\begin{center} -\begin{tabular}{rlcrl} -\multicolumn{2}{l}\emph{Horizontal} & & \multicolumn{2}{l}\emph{Vertical}\\ -"l" & Left & & "t" & Top\\ -"r" & Right & & "b" & Bottom\\ - & & & "B" & Baseline -\end{tabular} -\end{center} -Visually, here is where the reference point is set of the various combinations -(the dashed line is the baseline): -\begin{center} -\begin{pspicture}(-2.4,-.9)(2.4,1.9) - \ttfamily\bfseries - \psframe(-2,-.5)(2,1.5) - \psline[linestyle=dashed](-2,0)(2,0) - \uput[u](0,1.5){t} - \uput[d](0,-.5){b} - \rput*(0,0){B} - \uput[l](-2,.5){l} - \uput[l](-2,0){Bl} - \uput[dl](-2,-.5){bl} - \uput[ul](-2,1.5){tl} - \uput[r](2,.5){r} - \uput[r](2,0){Br} - \uput[dr](2,-.5){br} - \uput[ur](2,1.5){tr} -\end{pspicture} -\end{center} - -There are numerous examples of \n\rput{} in this documentation, but for now -here is a simple one: -\begin{example**} - \rput[b]{90}(-1,0){Here is a marginal note.} -\end{example**} - -One common use of a macro such as \n\rput{} is to put labels on things. -PSTricks has a variant of \n\rput{} that is especially designed for labels: - \Mac \uput`*{labelsep}'[refangle]`{rotation}\c~'{stuff} -This places <stuff> distance <labelsep> from \c{}, in the direction -<refangle>. - -The default value of <labelsep> is the dimension register - \Mac \pslabelsep -You can also change this be setting the -\begin{Ex} - \Par{labelsep=dim} -\end{Ex} -parameter (but remember that \n\uput{} does have an optional argument for -setting parameters). - -Here is a simple example: -\begin{MEx}(3,2) - \qdisk(1,1){1pt} - \uput[45](1,1){(1,1)} -\end{MEx} - -Here is a more interesting example where \n\uput{} is used to make a pie -chart: -\begin{example} - \psset{unit=1.2cm} - \pspicture(-2.2,-2.2)(2.2,2.2) - \pswedge[fillstyle=solid,fillcolor=gray]{2}{0}{70} - \pswedge[fillstyle=solid,fillcolor=lightgray]{2}{70}{200} - \pswedge[fillstyle=solid,fillcolor=darkgray]{2}{200}{360} - \SpecialCoor - \psset{framesep=1.5pt} - \rput(1.2;35){\psframebox*{\small\$9.0M}} - \uput{2.2}[45](0,0){Oreos} - \rput(1.2;135){\psframebox*{\small\$16.7M}} - \uput{2.2}[135](0,0){Heath} - \rput(1.2;280){\psframebox*{\small\$23.1M}} - \uput{2.2}[280](0,0){M\&M} - \endpspicture -\end{example} - -You can use the following abbreviations for <refangle>, which indicate the -direction the angle points:% -\footnote{Using the abbreviations when applicable is more efficient.}% -\footnote{% -There is an obsolete command \n\Rput\MainIndex{\Rput}{} that has the same -syntax as \n\uput{} and that works almost the same way, except the <refangle> -argument has the syntax of \n\rput's <refpoint> argument, and it gives the -point in <stuff> that should be aligned with \c{}. E.g., -\begin{Ex} - "\qdisk(4,0){2pt}"\qdisk(4,0){2pt}\Rput[tl](4,0){$(x,y)$}\\ - "\Rput[tl](4,0){$(x,y)$}" -\end{Ex} -Here is the equivalence between \n\uput's <refangle> abbreviations and -\n\Rput's <refpoint> abbreviations: -\begin{center} - \ttfamily - \begin{tabular}{rcccccccc} - \n\uput & r & u & l & d & ur & ul & dr & dl \\ - \n\Rput & l & b & r & t & bl & br & tr & rl \\ - \end{tabular} -\end{center} -Some people prefer \n\Rput's convention for specifying the position of <stuff> -over \n\uput's.}% -\begin{trivlist}\item[] - \leavevmode - \hbox to \hsize{\hfill - \begin{tabular}{clr} - \emph{Letter} & \emph{Short for} & \emph{Equiv.\ to}\\ - "r" & right & 0\\ - "u" & up & 90\\ - "l" & left & 180\\ - "d" & down & 270\\ - \end{tabular} - \hfill - \begin{tabular}{clr} - \emph{Letter} & \emph{Short for} & \emph{Equiv.\ to}\\ - "ur" & up-right & 45\\ - "ul" & up-left & 135\\ - "dl" & down-left & 225\\ - "dr" & down-right & 315 - \end{tabular}\hfill} -\end{trivlist} -The first example could thus have been written: -\begin{MEx}(3,2) - \qdisk(1,1){1pt} - \uput[ur](1,1){(1,1)} -\end{MEx} - -\begin{drivers} The rotation macros use \n\pstVerb{} and \n\pstrotate. -\end{drivers} - - -\Section{Repetition\label{S-loops}} - -The macro - \Mac \multirput`*[refpoint]{angle}\c0'\c1{int}{stuff} -is a variant of \n\rput{} that puts down <int> copies, starting at \c0 and -advancing by \c1 each time. \c0 and \c1 are always interpreted as Cartesian -coordinates. For example: -\begin{MEx}(4,1.3) - \multirput(.5,0)(.3,.1){12}{*} -\end{MEx} - -If you want copies of pure graphics, it is more efficient to use - \Mac \multips`{angle}\c0'\c1{int}{graphics} -<graphics> can be one or more of the pure graphics objects described in Part -\ref{P-graphics}, or \n\pscustom. Note that \n\multips{} has the same syntax as -\n\multirput, except that there is no <refpoint> argument (since the graphics -are zero dimensional anyway). Also, unlike \n\multirput, the coordinates can -be of any type. An "Overfull \hbox" warning indicates that the <graphics> -argument contains extraneous output or space. For example: -\begin{MEx}[0,-.25](4,.25) - \def\zigzag{\psline(0,0)(.5,1)(1.5,-1)(2,0)}% - \psset{unit=.25,linewidth=1.5pt} - \multips(0,0)(2,0){8}{\zigzag} -\end{MEx} - -PSTricks can heavily benefit of a much more general loop macro, called -\n\multido. -\File{multido} You must input the file "multido.tex" or "multido.sty". See the -documentation "multido.doc" for details. Here is a sample of what you can do: -\begin{example} - \begin{pspicture}(-3.4,-3.4)(3.4,3.4) - \newgray{mygray}{0} % Initialize `mygray' for benefit - \psset{fillstyle=solid,fillcolor=mygray} % of this line. - \SpecialCoor - \degrees[1.1] - \multido{\n=0.0+.1}{11}{% - \newgray{mygray}{\n} - \psset{fillcolor=mygray}% - \rput{\n}{\pswedge{3}{-.05}{.05}} - \uput{3.2}[\n](0,0){\small\n}} - \end{pspicture} -\end{example} - -All of these loop macros can be nested. - - -\Section{Axes\label{S-axes}} - -\File{pst-plot} -The axes command described in this section is defined in "pst-plot.tex" / -"pst-plot.sty", which you must input first. "pst-plot.tex", in turn, will -automatically input "multido.tex", which is used for putting the labels on the -axes. - -The macro for making axes is: - \Mac \psaxes`*[par]{arrows}\c0\c1'\c2 - -The coordinates must be Cartesian coordinates. They work the same way as with -\n\psgrid. That is, if we imagine that the axes are enclosed in a rectangle, -\c1 and \c2 are opposing corners of the rectangle. (I.e., the x-axis extends -from \x1 to \x2 and the y-axis extends from \y1 to \y2.) The axes intersect at -\c0. For example: -\begin{MEx*}(4,3) - \psaxes[linewidth=1.2pt,labels=none, - ticks=none]{<->}(2,1)(0,0)(4,3) - "\psset{nodesep=3pt} - "\pnode(4,3){B} - "\rput*[tr](4,2.3){\rnode{A}{\c2}} - "\ncline{->}{A}{B} - "\pnode(2,1){B} - "\rput*[br](1.3,1.7){\rnode{A}{\c0}} - "\ncline{->}{A}{B} - "\pnode(0,0){B} - "\rput*[bl](0,-.9){\rnode{A}{\c1}} - "\ncline{->}{A}{B} -\end{MEx*} - -If \c0 is omitted, then the origin is \c1. If both \c0 and \c1 are omitted, -"(0,0)" is used as the default. For example, when the axes enclose a single -orthont, only \c2 is needed: -\begingroup -\psset{unit=.8} -\begin{MEx}[-.5,-.5](4,2) - "\small - \psaxes{->}(4,2) -\end{MEx} -\endgroup - -Labels (numbers) are put next to the axes, on the same side as \x1 and \y1. -Thus, if we enclose a different orthont, the numbers end up in the right -place: -\begingroup -\psset{unit=.8} -\begin{MEx}[-.5,-2](4,.5) - "\small - \psaxes{->}(4,-2) -\end{MEx} -\endgroup - -Also, if you set the \p{arrows} parameter, the first arrow is used for the -tips at <x1> and <y1>, while the second arrow is used for the tips at <x2> and -<y2>. Thus, in the preceding examples, the arrowheads ended up in the right -place too.\footnote{% -Including a first arrow in these examples would have had no effect because -arrows are never drawn at the origin.} - -When the axes don't just enclose an orthont, that is, when the origin is not -at a corner, there is some discretion as to where the numbers should go. The -rules for positioning the numbers and arrows described above still apply, and -so you can position the numbers as you please by switching <y1> and <y2>, or -<x1> and <x2>. For example, compare -\begingroup -\psset{unit=.8} -\begin{MEx}[-1.5,-.5](2.5,2.5) - "\small - \psaxes{<->}(0,0)(-2.5,0)(2.5,2.5) -\end{MEx} -\endgroup -with what we get when <x1> and <x2> are switched: -\begingroup -\psset{unit=.8} -\begin{MEx}[-1.5,-.5](2.5,2.5) - "\small - \psaxes{<->}(0,0)(2.5,0)(-2.5,2.5) -\end{MEx} -\endgroup - -\n\psaxes{} puts the ticks and numbers on the axes at regular intervals, using -the following parameters: -\newbox\axesbox -\MainParIndex{Ox} -\MainParIndex{Dx} -\MainParIndex{dx} -\MainParIndex{Oy} -\MainParIndex{Dy} -\MainParIndex{dy} -\setbox\axesbox=\hbox{% - \large - \begin{tabular}{|c|c|c|l|} - \hline - \emph{Horitontal} & \emph{Vertical} & \emph{Dflt} & - \emph{Description}\\[2pt] - \p{Ox=num} & \p{Oy=num} & "0" & Label at origin.\\ - \p{Dx=num} & \p{Dy=num} & "1" & Label increment.\\ - \p{dx=dim} & \p{dy=dim} & "0pt" & Dist btwn labels.\\ - \hline - \end{tabular}} -\addtoquickref{center}{% - {\large\textbf{Axes label parameters}}\par - \leavevmode\box\axesbox} -\begin{center} -\leavevmode\copy\axesbox -\end{center} -When \p{dx} is 0, "Dx\psxunit" is used instead, and similarly for \p{dy}. -Hence, the default values of "0pt" for \p{dx} and \p{dy} are not as peculiar -as they seem. - -You have to be very careful when setting \p{Ox}, \p{Dx}, \p{Oy} and \p{Dy} to -non-integer values. "multido.tex" increments the labels using rudimentary -fixed-point arithmetic, and it will come up with the wrong answer unless -\p{Ox} and \p{Dx}, or \p{Oy} and \p{Dy}, have the same number of digits to the -right of the decimal. The only exception is that \p{Ox} or \p{Oy} can always -be an integer, even if \p{Dx} or \p{Dy} is not. (The converse does not work, -however.)% -\footnote{For example, \p{Ox=1.0} and \p{Dx=1.4} is okay, as is \p{Ox=1} and -\p{Dx=1.4}, but \p{Ox=1.4} and \p{Dx=1}, or \p{Ox=1.4} and \p{Dx=1.15}, is not -okay. If you get this wrong, PSTricks won't complain, but you won't get the -right labels either.} - -Note that \n\psaxes's first coordinate argument determines the physical -position of the origin, but it doesn't affect the label at the origin. E.g., -if the origin is at "(1,1)", the origin is still labeled "0" along each axis, -unless you explicitly change \p{Ox} and \p{Oy}. For example: -\begin{MEx}[-2,0](2,3) - \psaxes[Ox=-2](-2,0)(2,3) -\end{MEx} - -The ticks and labels use a few other parameters as well: -\begin{description} - -\pitem[labels=all/x/y/none] - To specify whether labels appear on both axes, the x-axis, the y-axis, or -neither. - -\pitem[showorigin=true/false] - If "true", then labels are placed at the origin, as long as the label -doesn't end up on one of the axes. If "false", the labels are never placed at -the origin. - -\pitem[ticks=all/x/y/none] - To specify whether ticks appear on both axes, the x-axis, the y-axis, or -neither. - -\pitem[tickstyle=full/top/bottom] - For example, if \p{tickstyle=top}, then the ticks are only on the side of -the axes away from the labels. If \p{tickstyle=bottom}, the ticks are on the -same side as the labels. "full" gives ticks extending on both sides. - -\pitem[ticksize=dim] - Ticks extend <dim> above and/or below the axis. - -\end{description} - -The distance between ticks and labels is \n\pslabelsep, which you can change -with the \p{labelsep} parameter. - -The labels are set in the current font (ome of the examples above were -preceded by "\small" so that the labels would be smaller). You can do fancy -things with the labels by redefining the commands: -\begin{Ex} - \object \pshlabel - \object \psvlabel -\end{Ex} -E.g., if you want change the font of the horizontal labels, but not the -vertical labels, try something like -\begin{LVerb} - \def\pshlabel#1{\small #1} -\end{LVerb} - -You can choose to have a frame instead of axes, or no axes at all (but you -still get the ticks and labels), with the parameter: -\begin{Ex} - \Par{axesstyle=axes/frame/none} -\end{Ex} -The usual \p{linestyle}, \p{fillstyle} and related paremeters apply. - -For example: -\begin{MEx}[-3,-.5](.5,3) - \psaxes[Dx=.5,dx=1,tickstyle=top,axesstyle=frame](-3,3) -\end{MEx} - -The \n\psaxes{} macro is pretty flexible, but PSTricks contains some other -tools for making axes from scratch. E.g., you can use \n\psline{} and -\n\psframe{} to draw axes and frames, respectively, \n\multido{} to generate -labels (see the documentation for "multido.tex"), and \n\multips{} to make -ticks. - -\endinput - -%% END psd-pict.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-spec.tex b/Master/texmf-dist/source/generic/pstricks/psd-spec.tex deleted file mode 100644 index 1b7e205a311..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-spec.tex +++ /dev/null @@ -1,500 +0,0 @@ -%% BEGIN psd-spec.tex - -\part{Special Tricks\label{P-special}} - -\Section{Coils and zigzags} - -\File{pst-coil} -The file "pst-coil.tex"/"pst-coil.sty" (and optionally the header file -"pst-coil.pro") defines the following graphics objects for coils and zigzags: -\begin{Ex} - \object \pscoil`*[par]{arrows}\c0'\c1 - \object \psCoil`*[par]'{angle1}{angle2} - \object \pszigzag`*[par]{arrows}\c0'\c1 -\end{Ex} - - These graphics objects use the following parameters: -\begin{Ex} - \Par{coilwidth=dim} - \Par{coilheight=num} - \Par{coilarm=dim} - \Par{coilaspect=angle} - \Par{coilinc=angle} -\end{Ex} - -All coil and zigzag objects draw a coil or zigzag whose width (diameter) is -\p{coilwidth}, and with the distance along the axes for each period (360 -degrees) equal to -\begin{quote} - \p{coilheight} x \p{coilwidth}. -\end{quote} - -Both \n\pscoil{} and \n\psCoil{} draw a ``3D'' coil, projected onto the xz-axes. -The center of the 3D coil lies on the yz-plane at angle p{coilaspect} to the -z-axis. The coil is drawn with PostScript's "lineto", joining points that lie -at angle \p{coilinc} from each other along the coil. Hence, increasing -\p{coilinc} makes the curve smoother but the printing slower. \n\pszigzag\ -does not use the \p{coilaspect} and \p{coilinc} parameters. - -\n\pscoil{} and \n\pszigzag{} connect \c0 and \c1, starting and ending with -straight line segments of length \p{coilarmA} and \p{coilarmB}, resp. Setting -\p{coilarm} is the same as setting \p{coilarmA} and \p{coilarmB}. - -Here is an example of \n\pscoil: -\begin{MEx}(4,2) - \pscoil[coilarm=.5cm,linewidth=1.5pt,coilwidth=.5cm]{<-|}(4,2) -\end{MEx} - -Here is an example of \n\pszigzag: -\begin{MEx}[0,-.5](4,.5) - \pszigzag[coilarm=.5,linearc=.1]{<->}(4,0) -\end{MEx} -Note that \n\pszigzag{} uses the \p{linearc} parameters, and that the beginning -and ending segments may be longer than \p{coilarm} to take up slack. - -\n\psCoil{} just draws the coil horizontally from <angle1> to <angle2>. Use -\n\rput{} to rotate and translate the coil, if desired. \n\psCoil{} does not use -the \p{coilarm} parameter. For example, with \p{coilaspect=0} we get a sine -curve: -\begin{MEx}[0,-.375](4,.375) - \psCoil[coilaspect=0,coilheight=1.33, - coilwidth=.75,linewidth=1.5pt]{0}{1440} -\end{MEx} - -\File{pst-node} -"pst-coil.tex" also contains coil and zigzag node connections. You must also -load "pst-node.tex" / "pst-node.sty" to use these. The node connections are: -\begin{Ex} - \object \nccoil`*[par]{arrows}'{nodeA}{nodeB} - \object \nczigzag`*[par]{arrows}'{nodeA}{nodeB} - \object \pccoil`*[par]{arrows}'\c1\c2 - \object \pczigzag`*[par]{arrows}'\c1\c2 -\end{Ex} -The end points are chosen the same as for \n\ncline{} and \n\pcline, and -otherwise these commands work like \n\pscoil{} and \n\pszigzag. For example: -\begin{MEx}(4,3) - \cnode(.5,.5){.5}{A} - \cnode[fillstyle=solid,fillcolor=lightgray](3.5,2.5){.5}{B} - \nccoil[coilwidth=.3]{<->}{A}{B} -\end{MEx} - - -\Section{Special coordinates\label{S-SpecialCoor}} - -The command - \Mac \SpecialCoor -enables a special feature that lets you specify coordinates in a variety of -ways, in addition to the usual Cartesian coordinates.\footnote{% -There is an obsolete command \n\Polar\MainIndex\Polar{} that causes -coordinates in the form "(<r>,<a>)" to be interpreted as polar coordinates. -The use of \n\Polar{} is not recommended because it does not allow one to mix -Cartesian and polar coordinates the way \n\SpecialCoor{} does, and because it -is not as apparent when examining an input file whether, e.g., "(3,2)" is a -Cartesian or polar coordinate. The command for undoing \n\Polar{} is -\n\Cartesian\MainIndex\Cartesian. It has an optional argument for setting the -default units. I.e., -\begin{LVerb*} - \Cartesian(<x>,<y>) -\end{LVerb*} -has the effect of -\begin{LVerb*} - \psset{xunit=<x>,yunit=<y>} -\end{LVerb*} -\n\Cartesian{} can be used for this purpose without using \n\Polar.} -Processing is slightly slower and less robust, which is why this feature is -available on demand rather than by default, but you probably won't notice the -difference. - -Here are the coordinates you can use: -\begin{description} - \vitem"(<x>,<y>)" The usual Cartesian coordinate. E.g., "(3,4)". - \vitem"(<r>;<a>)" Polar coordinate, with radius $r$ and angle $a$. The -default unit for $r$ is \p{unit}. E.g., "(3;110)". - \vitem"(<node>)" The center of <node>. E.g., "(A)". - \vitem"([<par>]<node>)" The position relative to <node> determined using the -\p{angle}, \p{nodesep} and \p{offset} parameters. E.g., "([angle=45]A)". - \vitem"(!<ps>)" Raw PostScript code. <ps> should expand to a coordinate pair. -The units \p{xunit} and \p{yunit} are used. For example, if I want to use a -polar coordinate $(3,110)$ that is scaled along with \p{xunit} and \p{yunit}, -I can write -\begin{LVerb} - (!3 110 cos mul 3 110 sin mul) -\end{LVerb} - \vitem"(<coor1>|<coor2>)" The $x$ coordinate from <coor1> and the $y$ -coordinate from <coor2>. <coor1> and <coor2> can be any other coordinates for -use with \n\SpecialCoor. For example, "(A|1in;30)". -\end{description} - -\n\SpecialCoor{} also lets you specify angles in several ways: -\begin{description} -\vitem"<num>" A number, as usual, with units given by the \n\degrees{} command. -\vitem"(<coor>)" A coordinate, indicating where the angle points to. Be sure -to include the "()", in addition to whatever other delimiters the angle -argument uses. For example, the following are two ways to draw an arc of .8 -inch radius from 0 to 135 degrees: -\begin{MEx}(3,2) - \SpecialCoor - \psarc(0,0){.8in}{0}{135} - \psarc(0,0){.8in}{0}{(-1,1)} -\end{MEx} -\vitem"!<ps>" Raw PostScript code. <ps> should expand to a number. The same -units are used as with <num>. -\end{description} - -\newbox\specialbox -\setbox\specialbox=\hbox{% - \bfseries - \begin{tabular}{|c|c|l|} - \hline - \emph{Coordinate} & \emph{Example} & \emph{Description} \\[2pt] - "(<x>,<y>)" & "(3,4)" & Cartesian coordinate.\\ - "(<r>;<a>)" & "(3;110)" & Polar coordinate.\\ - "(<node>)" & "(A)" & Center of <node>.\\ - "([<par>]<node>)" & "([angle=45]A)" & Relative to <node>.\\ - "(!<ps>)" & "(!5 3.3 2 exp)" & Raw PostScript.\\ - "(<coor1>|<coor2>)" & "(A|1in;30)" & Combination.\\ - \hline\hline - \emph{Angle} & \emph{Example} & \emph{Description} \\[2pt] - "<num>" & "45" & Angle.\\ - "(<coor>)" & "(-1,1)" & Coordinate (vector).\\ - "!<ps>" & "!33 sqrt" & Raw PostScript.\\ - \hline - \end{tabular}}% -\addtoquickref{center}{% - {\large\textbf{Special coordinates and angles}}\par - \leavevmode\box\specialbox} - -The command - \Mac \NormalCoor -disables the \n\SpecialCoor{} features. - -\Section{Overlays\label{S-overlays}} - -Overlays are mainly of interest for making slides, and the overlay macros -described in this section are mainly of interest to \TeX{} macro writers who -want to implement overlays in a slide macro package. For example, the -"seminar.sty" package, a \LaTeX{} style for notes and slides, uses PSTricks to -implement overlays. - -Overlays are made by creating an "\hbox" and then outputting the box several -times, printing different material in the box each time. The box is created by -the commands - \Mac \overlaybox < stuff >\Main\endoverlaybox -\LaTeX{} users can instead write: -\begin{LVerb*} - \begin{overlaybox} <stuff> \end{overlaybox} -\end{LVerb*} - -The material for overlay <string> should go within the scope of the command - \Mac \psoverlay{string} -<string> can be any string, after expansion. Anything not in the scope of any -\n\psoverlay{} command goes on overlay "main", and material within the scope of -{\UsageFont "\psoverlay{all}"} goes on all the overlays. \n\psoverlay\ -commands can be nested and can be used in math mode. - -The command - \Mac \putoverlaybox{string} -then prints overlay <string>. - -Here is an example: -\begin{example} - \overlaybox - \psoverlay{all} - \psframebox[framearc=.15,linewidth=1.5pt]{% - \psoverlay{main} - \parbox{3.5cm}{\raggedright - Foam Cups Damage Environment {\psoverlay{one} Less than - Paper Cups,} Study Says.}} - \endoverlaybox - - \putoverlaybox{main} \hspace{.5in} \putoverlaybox{one} -\end{example} - -\begin{drivers} Overlays use \n\pstVerb{} and \n\pstverbscale.\end{drivers} - -\section{The gradient fill style} - -\File{pst-grad} -The file "pst-grad.tex"/"pst-grad.sty", along with the PostScript header file -"pst-grad.pro", defines the "gradient" \p{fillstyle}, for gradiated shading. -This \p{fillstyle} uses the following parameters: -\begin{description} - \pitem[gradbegin=color] The starting and ending color. - \pitem[gradend=color] The color at the midpoint. - \pitem[gradlines=int] The number of lines. More lines means finer -gradiation, but slower printing. - \pitem[gradmidpoint=num] The position of the midpoint, as a fraction of the -distance from top to bottom. <num> should be between 0 and 1. - \pitem[gradangle=angle] The image is rotated by <angle>. -\end{description} - -\p{gradbegin} and \p{gradend} should preferably be "rgb" colors, but grays and -"cmyk" colors should also work. The definitions of the colors "gradbegin" and -"gradend" are: -\begin{LVerb} - \newrgbcolor{gradbegin}{0 .1 .95} - \newrgbcolor{gradend}{0 1 1} -\end{LVerb} -Here are two ways to change the gradient colors: -\begin{LVerb} - \newrgbcolor{gradbegin}{1 .4 0} -\end{LVerb} -and -\begin{LVerb} - \psset{gradbegin=blue} -\end{LVerb} - -Try this example: -\begin{LVerb} - \psframe[fillstyle=gradient,gradangle=45](10,-20) -\end{LVerb} - -% D.G. modification begin - Mar. 7, 2003 -%\section{Adding color to tables\label{S-colortab}} - -%\File{colortab} -%The file "colortab.tex"/"colortab.sty" contains macros that, when used with -%color commands such as those in PSTricks, let you color the cells and lines in -%tables. See "colortab.doc" for more information. -% D.G. modification end - -\Section{Typesetting text along a path} - -\File{pst-text} -The file "pst-text.tex"/"pst-text.sty" defines the command \n\pstextpath, for -typesetting text along a path. It is a remarkable trick, but there are some -caveats: - -\begin{itemize}\label{tp-res} - \item "pst-text.tex" only works with certain DVI-to-PS drivers. Here is what -is currently known: -\begin{itemize} - \item It works with Rokicki's "dvips". - \item ``Does not work'' means that it has no effect, for better or for worse. - \item This may work with other drivers. The requirement is that the driver - only use PostScript's "show" operator, unbound and unloaded, to show - characters. -\end{itemize} - - \item You must also have installed the PostScript header file "pst-text.pro", - and \n\pstheader{} must be properly defined in "pstricks.con" for your - driver. - - \item Like other PSTricks that involve rotating text, this works best with - PostScript (outline) fonts. - - \item PostScript rendering with "pst-text.tex" is slow. -\end{itemize} - -Because of all this, no samples are shown here. However, there is a test file -"tp-test.tex" and PostScript output "tp-test.ps" that are distributed with -PSTricks. - -Here is the command: - \Mac \pstextpath`[pos](x,y)'{graphics object}{text} - -<text> is placed along the path, from beginning to end, defined by the -PSTricks graphics object. (This object otherwise behaves normally. Set -\p{linestyle=none} if you don't want it to appear.) - -<text> can only contain characters. No TeX{} rules, no PSTricks, and no other -"\special"'s. (These things don't cause errors; they just don't work right.) -Math mode is OK, but math operators that are built from several characters -(e.g., large integral signs) may break. Entire boxes (e.g., "\parbox") are OK -too, but this is mainly for amusement. - -<pos> is either -\begin{center} - \begin{tabular}{cl} - l & justify on beginning of path\\ - c & center on path\\ - r & justify on end of path. - \end{tabular} -\end{center} -The default is "l". - -"(<x>,<y>)" is an offset. Characters are shifted distance <x> along path, and -are shifted up by <y>. ``Up'' means with respect to the path, at whatever -point on the path corresponding to the middle of the character. "(<x>,<y>)" -must be Cartesian coordinates. Both coordinates use \n\psunit{} as the default. -The default coordinate is "(0,\TPoffset)", where \n\TPoffset{} a command whose -default value is "-.7ex". This value leads to good spacing of the characters. -Remember that "ex" units are for the font in effect when \n\pstextpath{} -occurs, not inside the <text> argument. - -More things you might want to know: -\begin{itemize} - \item Like with "\rput" and the graphics objects, it is up to you to leave -space for "\pstextpath". - \item Results are unpredictable if <text> is wider than length of path. - \item "\pstextpath" leaves the typesetting to \TeX. It just intercepts the -"show" operator to remap the coordinate system. -\end{itemize} - -\Section{Stroking and filling character paths} - -\File{pst-char} -The file "pst-char.tex"/"pst-char.sty" defines the command: - \Mac \pscharpath`*[par]'{text} -It strokes and fills the <text> character paths using the PSTricks -\p{linestyle} and \p{fillstyle}. - -The restrictions on DVI-to-PS drivers listed on page \pageref{tp-res} for -"\pstextpath" apply to "\pscharpath". Furthermore, only outline (PostScript) -fonts are affected. - -Sample input and output files "chartest.tex" and "chartest.ps" are distributed -with PSTricks. - -With the optional "*", the character path is not removed from the PostScript -environment at the end. This is mainly for special hacks. For example, you can -use "\pscharpath*" in the first argument of "\pstextpath", and thus typeset -text along the character path of some other text. See the sample file -"denis1.tex". (However, you cannot combine "\pscharpath" and "\pstextpath" in -any other way. E.g., you cannot typeset character outlines along a path, and -then fill and stroke the outlines with "\pscharpath".) - -The command - \Mac \pscharclip`*[par]'{text} ... \Main \endpscharclip -works just like \n\pscharpath, but it also sets the clipping path to the -character path. You may want to position this clipping path using \n\rput{} -\emph{inside} \n\pscharclip's argument. Like \n\psclip{} and \n\endpsclip, -\n\pscharclip{} and \n\endpscharclip{} should come on the same page and should -be properly nested with respect to \TeX{} groups (unless \n\AltClipMode{} is -in effect). The file "denis2.tex" contains a sample of \n\pscharclip. - - -\section{Importing EPS files} - -PSTricks does not come with any facility for including Encapsulated PostScript -files, because there are other very good and well-tested macros for exactly -that, specially the "graphicx" package for \LaTeX, usable also with \TeX. - -What PSTricks \emph{is} good for is embellishing your EPS picture. You can -include an EPS file in in the argument of \n\rput, as in -\begin{LVerb} - \rput(3,3){\epsfbox{myfile.eps}} -\end{LVerb} -and hence you can include an EPS file in the \n\pspicture{} environment. Turn -on \n\psgrid, and you can find the coordinates for whatever graphics or text -you want to add. This works even when the picture has a weird bounding box, -because with the arguments to \n\pspicture{} you control the bounding box from -\TeX's point of view. - -This isn't always the best way to work with an EPS file, however. If the -PostScript file's bounding box is the size you want the resulting picture to -be, after your additions, then try -\begin{LVerb*} - \hbox{<picture objects> \includegraphics{<file.eps>} -\end{LVerb*} -This will put all your picture objects at the lower left corner of the EPS -file. - -If you need to determine the bounding box of an EPS file, then you can try of -the automatic bounding box calculating programs, such as "bbfig" (distributed -with Rokicki's "dvips"). However, all such programs are easily fooled; the -only sure way to determine the bounding box is visually. \n\psgrid{} is a good -tool for this. - -\Section{Exporting EPS files} - -\File{pst-eps} -You must load "pst-eps.tex" or "pst-eps.sty" to use the PSTricks macros -described in this section. - -If you want to export an EPS file that contains both graphics and text, then -you need to be using a DVI-to-PS driver that suports such a feature. If you -just want to export pure graphics, then you can use the \n\PSTricksEPS{} -command. Both of these options are described in this section. - -Newer versions of Rokicki's "dvips" support an "-E" option for creating EPS -files from \TeX{} ".dvi" files. E.g., -\[ - dvips foo.dvi -E -o foo.eps -\] -Your document should be a single page. "dvips" will find a tight bounding box -that just encloses the printed characters on the page. This works best with -outline (PostScript) fonts, so that the EPS file is scalable and resolution -independent. - -There are two inconvenient aspects of this method. You may want a different -bounding box than the one calculated by "dvips" (in particular, "dvips" -ignores all the PostScript generated by PSTricks when calculating the bounding -box), and you may have to go out of your way to turn off any headers and -footers that would be added by output routines. - -PSTricks contains an environment that tries to get around these two problems: -\begin{Ex} - \object \TeXtoEPS - " "<stuff>\\ - \object \endTeXtoEPS -\end{Ex} -This is all that should appear in your document, but headers and whatever that -would normally be added by output routines are ignored. "dvips" will again try -to find a tight bounding box, but it will treat <stuff> as if there was a -frame around it. Thus, the bounding box will be sure to include <stuff>, but -might be larger if there is output outside the boundaries of this box. If the -bounding box still isn't right, then you will have to edit the -\begin{LVerb*} - %%BoundingBox <llx lly urx ury> -\end{LVerb*} -specification in the EPS file by hand. - -If your goal is to make an EPS file for inclusion in other documents, then -"dvips -E" is the way to go. However, it can also be useful to generate an EPS -file from PSTricks graphics objects and include it in the same document,% -\footnote{See the preceding section on importing EPS files.} -rather than just including the PSTricks graphics directly, because \TeX{} gets -involved with processing the PSTricks graphics only when the EPS file is -initially created or updated. Hence, you can edit your file and preview the -graphics, without having to process all the PSTricks graphics each time you -correct a typo. This speed-up can be significant with complex graphics such as -"\pslistplot"'s with a lot of data. - -To create an EPS file from PSTricks graphics objects, use - \Mac \PSTtoEPS`[par]'{file}{graphics objects} -The file is created immediately, and hence you can include it in the same -document (after the \n\PSTtoEPS{} command) and as many times as you want. -Unlike with "dvips -E", only pure graphics objects are processed (e.g., -"\rput" commands have no effect). - -\n\PSTtoEPS{} cannot calculate the bounding box of the EPS file. You have to -specify it yourself, by setting the following parameters: -\begin{Ex} - \Par{bbllx=dim} - \Par{bblly=dim} - \Par{bburx=dim} - \Par{bbury=dim} -\end{Ex} -Note that if the EPS file is only to be included in a PSTricks picture with -\n\rput\, you might as well leave the default bounding box. - -\n\PSTricksEPS{} also uses the following parameters: -\begin{description} - \pitem[makeeps=none/new/all/all*] - This parameter determines which \n\PSTtoEPS\ commands just skip over their arguments, and which create files, as follows: - \begin{description} - \vitem"none" No files are created. - \vitem"new" Only those files not found {\em anywhere on the system\/} are created. - \vitem"all" All files are created. - \vitem"all*" All files are created, but you are asked for approval before existing files are deleted. - \end{description} - - \pitem[headerfile=files] - This parameter is for specifying PostScript header files that are to be -included in the EPS file. The argument should contain one or more file names, -separated by commas. If you have more than one file, however, the entire list -must be enclosed in braces "{}". - - \pitem[headers=none/all/user] - When "none", no header files are included. When "all", the header files used -by PSTricks plus the header files specified by the \p{headerfile} parameter -are included. When "user", only the header files specified by the -\p{headerfile} parameter are included. If the EPS file is to be included in a -\TeX{} document that uses the same PSTricks macros and hence loads the relevant -PSTricks header files anyway (in particular, if the EPS file is to be included -in the same document), then \p{headers} should be "none" or "user". -\end{description} - -\endinput -%% END psd-spec.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-text.tex b/Master/texmf-dist/source/generic/pstricks/psd-text.tex deleted file mode 100644 index ebc44abd8d7..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-text.tex +++ /dev/null @@ -1,260 +0,0 @@ -%% BEGIN psd-text.tex - -\part{Text Tricks\label{P-text}} - -\Section{Framed boxes\label{S-framebox}} - -The macros for framing boxes take their argument, put it in an "\hbox", and -put a PostScript frame around it. (They are analogous to \LaTeX's "\fbox"). -Thus, they are composite objects rather than pure graphics objects. In -addition to the graphics parameters for \n\psframe, these macros use the -following parameters: -\begin{description} - -\pitem[framesep=dim] - Distance between each side of a frame and the enclosed box. - -\pitem[boxsep=true/false] - When "true", the box that is produced is the size of the frame or whatever -that is drawn around the object. When "false", the box that is produced is the -size of whatever is inside, and so the frame is ``transparent'' to \TeX. This -parameter only applies to \n\psframebox, \n\pscirclebox, and \n\psovalbox. - -\end{description} - -Here are the three box-framing macros: -\begin{description} - -\oitem \psframebox{stuff} - - A simple frame (perhaps with rounded corners) is drawn using \n\psframe. The -"*" option is of particular interest. It generates a solid frame whose color -is \p{fillcolor} (rather than \p{linecolor}, as with the closed graphics -objects). Recall that the default value of \p{fillcolor} is "white", and so -this has the effect of blotting out whatever is behind the box. For example, -\begin{MEx}(3,2) - \pspolygon[fillcolor=gray,fillstyle=crosshatch*](0,0)(3,0) - (3,2)(2,2) - \rput(2,1){\psframebox*[framearc=.3]{Label}} -\end{MEx} - -\oitem \psdblframebox{stuff} - - This draws a double frame. It is just a variant of \n\psframebox, defined by -\begin{LVerb} - \newpsobject{psdblframebox}{psframebox}{doublesep=\pslinewidth} -\end{LVerb} -For example, -\begin{example} - \psdblframebox[linewidth=1.5pt]{% - \parbox[c]{6cm}{\raggedright A double frame is drawn - with the gap between lines equal to \texttt{doublesep}}} -\end{example} - -\oitem \psshadowbox{stuff} - - This draws a single frame, with a shadow. -\begin{example**} - \psshadowbox{\textbf{Great Idea!!}} -\end{example**} -You can get the shadow with \n\psframebox{} just be setting the \p{shadowsize} -parameter, but with \n\psframebox{} the dimensions of the box won't reflect the -shadow (which may be what you want!). - -\oitem \pscirclebox{stuff} - - This draws a circle. With \p{boxsep=true}, the size of the box is close to -but may be larger than the size of the circle. For example: -\begin{example**} - \pscirclebox{\begin{tabular}{c} You are \\ here \end{tabular}} -\end{example**} -is distributed with -\oitem \cput<{angle}\c~>{stuff} - - This combines the functions of \n\pscirclebox{} and \n\rput. It is like -\begin{LVerb*} - \rput{<angle>}(x0,y0){\pscirclebox*[<par>]{<stuff>}} -\end{LVerb*} -but it is more efficient. Unlike the \n\rput{} command, there is no argument -for changing the reference point; it is always the center of the box. Instead, -there is an optional argument for changing graphics parameters. For example -\begin{MEx*}(2,1) - \cput[doubleline=true](1,.5){\large $K_1$} -\end{MEx*} - -\oitem \psovalbox{stuff} - - This draws an ellipse. If you want an oval with square sides and rounded -corners, then use \n\psframebox{} with a positive value for \p{rectarc} or -\p{linearc} (depending on whether \p{cornersize} is "relative" or "absolute"). -Here is an example that uses \p{boxsep=false}: -\begin{example**} - "\parbox{\marginparwidth}{ - At the introductory price of - \psovalbox[boxsep=false,linecolor=darkgray]{\$13.99}, - it pays to act now! - "} -\end{example**} - -\oitem \psdiabox{stuff} - - \n\psdiabox{} draws a diamond. -\begin{example**} - \psdiabox[shadow=true]{\Large\textbf{Happy?}} -\end{example**} - -\oitem \pstribox{stuff} - - \n\pstribox{} draws a triangle. -\begin{example**} - \pstribox[trimode=R,framesep=5pt]{\Large\textbf{Begin}} -\end{example**} - The triangle points in the direction: -\begin{Ex} - \Par{trimode=*U/D/R/L} -\end{Ex} -If you include the optional "*", then an equilateral triangle is drawn, -otherwise, you get the minimum-area isosceles triangle. -\begin{example**} - \pstribox[trimode=*U]{\Huge Begin} -\end{example**} - -\end{description} - -You can define variants of these box framing macros using the \n\newpsobject{} -command. - -If you want to control the final size of the frame, independently of the -material inside, nest <stuff> in something like \LaTeX's "\makebox" command. - - -\Section{Clipping\label{S-clipping}} - -The command - \Mac \clipbox`[dim]'{stuff} -puts <stuff> in an "\hbox" and then clips around the boundary of the box, at a -distance <dim> from the box (the default is "0pt"). - -The \n\pspicture{} environment also lets you clip the picture to the boundary. - -The command - \Mac \psclip{graphics} \ldots\ \Main\endpsclip -sets the clipping path to the path drawn by the graphics object(s), until the -\n\endpsclip{} command is reached. \n\psclip{} and \n\endpsclip{} must be -properly nested with respect to \TeX{} grouping. Only pure graphics (those -described in Part \ref{P-graphics} and \n\pscustom) are permitted. An -"Overfull \hbox" warning indicates that the <graphics> argument contains -extraneous output or space. Note that the -graphics objects otherwise act as usual, and the \n\psclip{} does not otherwise -affect the surrounded text. Here is an example: -\begin{example**} - \parbox{4.5cm}{% - \psclip{\psccurve[linestyle=none](-3,-2) - (0.3,-1.5)(2.3,-2)(4.3,-1.5)(6.3,-2)(8,-1.5)(8,2)(-3,2)} - "\def\baselinestretch{.85}\small - ``One of the best new plays I have seen all year: cool, poetic, - ironic \ldots'' proclaimed \emph{The Guardian} upon the London - premiere of this extraordinary play about a Czech director and - his actress wife, confronting exile in America.\vspace{-1cm} - \endpsclip} -\end{example**} - -If you don't want the outline to be painted, you need to include -\p{linestyle=none} in the parameter changes. You can actually include more -than one graphics object in the argument, in which case the clipping path is -set to the intersection of the paths. - -\n\psclip{} can be a useful tool in picture environments. For example, here it -is used to shade the region between two curves: -\begin{MEx}(4,4) - \psclip{% - \pscustom[linestyle=none]{% - \psplot{.5}{4}{2 x div} - \lineto(4,4)} - \pscustom[linestyle=none]{% - \psplot{0}{3}{3 x x mul 3 div sub} - \lineto(0,0)}} - \psframe*[linecolor=gray](0,0)(4,4) - \endpsclip - \psplot[linewidth=1.5pt]{.5}{4}{2 x div} - \psplot[linewidth=1.5pt]{0}{3}{3 x x mul 3 div sub} - \psaxes(4,4) -\end{MEx} - -\begin{drivers} - The clipping macros use \n\pstverbscale{} and \n\pstVerb. Don't be surprised -if PSTricks's clipping does not work or causes problem---it is never robust. -"\endpsclip" uses "initclip". This can interfere with other clipping -operations, and especially if the \TeX{} document is converted to an -Encapsulated PostScript file. The command \n\AltClipMode{} causes \n\psclip{} -and \n\endpsclip{} to use "gsave" and "grestore" instead. This bothers some -drivers, especially if \n\psclip{} and \n\endpsclip{} do not end up on the same -page. -\end{drivers} - -\Section{Rotation and scaling boxes\label{S-rotation}} - -There are versions of the standard box rotation macros: -\begin{Ex} - \object \rotateleft{stuff} - \object \rotateright{stuff} - \object \rotatedown{stuff} -\end{Ex} -<stuff> is put in an "\hbox" and then rotated or scaled, leaving the -appropriate amount of spaces. Here are a few uninteresting examples: -\begin{example**} - \Large\bfseries \rotateleft{Left} \rotatedown{Down} \rotateright{Right} -\end{example**} - - -There are also two box scaling macros: -\begin{description} - -\mitem \psscalebox{num1 `num2'}{stuff} - - If you give two numbers in the first argument, <num1> is used to scale -horizontally and <num2> is used to scale vertically. If you give just one -number, the box is scaled by the same in both directions. You can't scale by -zero, but negative numbers are OK, and have the effect of flipping the box -around the axis. You never know when you need to do something like -\psscalebox{-1 1}{this} ("\psscalebox{-1 1}{this}"). - -\mitem \psscaleboxto\c~{stuff} - - This time, the first argument is a (Cartesian) coordinate, and the box is -scaled to have width \x{} and height (plus depth) \y{}. If one of the -dimensions is 0, the box is scaled by the same amount in both directions. For -example: -\begin{example**} - \psscaleboxto(4,2){Big and long} -\end{example**} - -\end{description} - -PSTricks defines LR-box environments for all these box rotation and scaling -commands: -\begin{LVerb} - \pslongbox{Rotateleft}{\rotateleft} - \pslongbox{Rotateright}{\rotateright} - \pslongbox{Rotatedown}{\rotatedown} - \pslongbox{Scalebox}{\psscalebox} - \pslongbox{Scaleboxto}{\psscaleboxto} -\end{LVerb} - -Here is an example where we \n\Rotatedown{} for the answers to exercises: -\begin{example**} - "\parbox{4cm}{\raggedright\noindent\hsize 4cm - Question: How do Democrats organize a firing squad? - - \begin{Rotatedown} - \parbox{\hsize}{Answer: First they get in a circle, \ldots\hss}% - \end{Rotatedown} - "} -\end{example**} - -See the documentation of the "fancybox" package for tips on rotating -a \LaTeX{} "table" or "figure" environment, and other boxes. - -\endinput - -%% END psd-text.tex diff --git a/Master/texmf-dist/source/generic/pstricks/psd-tree.tex b/Master/texmf-dist/source/generic/pstricks/psd-tree.tex deleted file mode 100644 index c7a7d78320e..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/psd-tree.tex +++ /dev/null @@ -1,816 +0,0 @@ -%% BEGIN psd-tree.tex - -\part{Trees\label{P-trees}} - -\Section{Overview} - -\File{pst-tree} -The node and node connections are perfect tools for making trees, but -positioning the nodes using "\rput" would be rather tedious.\footnote{% -Unless you have a computer program that generates the coordinates.} -The file "pstree.tex" / "pstree.sty" contains a high-level interface for -making trees. - -The tree commands are -\begin{Ex} - \object \pstree{<root>}{<successors>} - \object \psTree{<root>} <successors> \Main\endpsTree -\end{Ex} -These do the same thing, but just have different syntax. "\psTree" is the -``long'' version.\footnote{% -\LaTeX{} purists can write "\begin{psTree}" and "\end{psTree}" instead.} -These macros make a box that encloses all the nodes, and whose baseline passes -through the center of the root. - -Most of the nodes described in Section \ref{S-nodes} has a variant for use -within a tree. These variants are called tree nodes, and are described in -Section \ref{S-treenodes}. - -Trees and tree nodes are called \emph{tree objects}. The <root> of a tree -should be a single tree object, and the <successors> should be one or more -tree objects. Here is an example with only nodes: -\begin{example**} - \pstree[radius=3pt]{\Toval{root}}{\TC* \TC* \TC* \TC*} -\end{example**} -There is no difference between a terminal node and a root node, other than -their position in the \n\pstree{} command. - -Here is an example where a tree is included in the list of successors, and -hence becomes subtree: -\begin{example**} - \pstree[radius=3pt]{\Tp}{% - \TC* - \pstree{\TC}{\TC* \TC*} - \TC*} -\end{example**} - - -\Section{Tree Nodes} - -For most nodes described in Section \ref{S-nodes}, there is a variant for use -in trees, called a tree node. In each case, the name of the tree node is -formed by omitting "node" from the end of the name and adding "T" at the -beginning. For example, "\ovalnode" becomes "\Toval". Here is the list of such -tree nodes: -\begin{Ex} - \object \Tp`*[par]' - \object \Tc`*[par]'{dim} - \object \TC`*[par]' - \object \Tf`*[par]' - \object \Tdot`*[par]' - \object \Tr`*[par]'{stuff} - \object \TR`*[par]'{stuff} - \object \Tcircle`*[par]'{stuff} - \object \TCircle`*[par]'{stuff} - \object \Toval`*[par]'{stuff} - \object \Tdia`*[par]'{stuff} - \object \Ttri`*[par]'{stuff} -\end{Ex} - -The syntax of a tree node is the same as of its corresponding ``normal'' node, -except that: -\begin{itemize} - \item There is always an optional argument for setting graphics parameters, - even if the original node did not have one; - \item There is no argument for specifying the name of the node; - \item There is never a coordinate argument for positioning the node; and - \item To set the reference point with \n\Tr, set the \p{ref} parameter. -\end{itemize} - -Figure \ref{allnodes} gives a reminder of what the nodes look like. - -\begin{figure} -\begin{example*} - \small - \psset{armB=1cm, levelsep=3cm, treesep=-3mm, - angleB=-90, angleA=90, nodesepA=3pt} - \def\s#1{#1~{\tt\string#1}} - \def\b#1{#1{\tt\string#1}} - \def\psedge#1#2{\ncangle{#2}{#1}} - \psTree[treenodesize=1cm]{\Toval{Tree nodes}} - \s\Tp - \Tc{.5}~{\tt\string\Tc} - \s\TC - \psTree[levelsep=4cm,armB=2cm]{\Tp[edge=\ncline]} - \b\Tcircle - \s\Tdot - \TCircle[radius=1.2]{\tt\string\TCircle} - \Tn - \b\Toval - \b\Ttri - \b\Tdia - \endpsTree - \s\Tf - \b\Tr - \b\TR - \endpsTree -\end{example*} -\caption{The tree nodes.\label{allnodes}} -\end{figure} - -The difference between "\Tr" and "\TR" (variants of "\rnode" and "\Rnode", -respectively) is important with trees. Usually, you want to use "\TR" with -vertical trees because the baselines of the text in the nodes line up -horizontally. For example: -\begin{example**} - $ - \pstree[nodesepB=3pt]{\Tcircle{X}}{% - \TR{\tilde{\tilde{X}}} - \TR{x} - \TR{y}} - $ -\end{example**} -Compare with this example, which uses \n\Tr: -\begin{example**} - $ - \pstree[nodesepB=3pt]{\Tcircle{X}}{% - \Tr{\tilde{\tilde{X}}} - \Tr{x} - \Tr{y}} - $ -\end{example**} - -There is also a null tree node: - \Mac \Tn -It is meant to be just a place holder. Look at the tree in Figure -page~\pageref{allnodes}. The bottom row has a node missing in the middle. -\n\Tn{} was used for this missing node. - -There is also a special tree node that doesn't have a ``normal'' version and -that can't be used as the root node of a whole tree: - \Mac \Tfan`*[par]' -This draws a triangle whose base is -\begin{Ex} - \Par{fansize=dim} -\end{Ex} -and whose opposite corner is the predecessor node, adjusted by the value of -\p{nodesepA} and \p{offsetA}. -For example: -\begin{example**} - \pstree[dotstyle=oplus,dotsize=8pt,nodesep=2pt]{\Tcircle{11}}{% - \Tdot - \pstree{\Tfan}{\Tdot} - \pstree{\Tdot}{\Tfan[linestyle=dashed]}} -\end{example**} - - -\Section{Tree orientation} - -Trees can grow down, up, right or left, depending on the -\begin{Ex} - \Par{treemode=D/U/R/L} -\end{Ex} -parameter. - -Here is what the previous example looks like when it grows to the right: -\begin{example**} - \pstree[dotstyle=oplus,dotsize=8pt,nodesep=2pt,treemode=R] - {\Tcircle{11}}{% - \Tdot - \pstree{\Tfan}{\Tdot} - \pstree{\Tdot}{\Tfan[linestyle=dashed]}} -\end{example**} - -You can change the \p{treemode} in the middle of the tree. -For example, here is a tree that grows up, and that has a subtree which grows -to the left: -\begin{example**} - \footnotesize - \pstree[treemode=U,dotstyle=otimes,dotsize=8pt,nodesep=2pt] - {\Tdot}{% - \pstree[treemode=L]{\Tdot}{\Tcircle{1} \Tcircle{2}} - \pstree{\Tdot}{\Tcircle{3} \Tcircle{4}}} -\end{example**} - -Since you can change a tree's orientation, it can make sense to include a tree -(<treeB>) as a root node (of <treeA>). This makes a single logical tree, whose -root is the root of <treeB>, and that has successors going off in different -directions, depending on whether they appear as a successor to <treeA> or to -<treeB>. -\begin{example**} - \pstree{\pstree[treemode=L]{\Tcircle{root}}{\Tr{B}}}{% - \Tr{A1} - \Tr{A2}} -\end{example**} - -%%DG: to do - -On a semi-related theme, note that any node that creates an LR-box can contain -a tree. However, nested trees of this kind are not related in any way to the -rest of the tree. Here is an example: -\begin{example**} - \psTree{\Tcircle{% - \pstree[treesep=0.4,levelsep=0.6, - nodesepB=-6pt]{\Tdot}{% - \TR{a} \TR{b}}}} - \TC - \TC - \endpsTree -\end{example**} - -When the tree grows up or down, the successors are lined up from left to right -in the order they appear in \n\pstree. When the tree grows to the left or -right, the successors are lined up from top to bottom. As an afterthought, you -might want to flip the order of the nodes. The -\begin{Ex} - \Par{treeflip=true/false} -\end{Ex} -let's you do this. For example: -\begin{example**} - \footnotesize - \pstree[treemode=U,dotstyle=otimes,dotsize=8pt, - nodesep=2pt,treeflip=true]{\Tdot}{% - \pstree[treemode=R]{\Tdot}{\Tcircle{1} \Tcircle{2}} - \pstree{\Tdot}{\Tcircle{3} \Tcircle{4}}} -\end{example**} -Note that I still have to go back and change the \p{treemode} of the subtree -that used to grow to the left. - - -\Section{The distance between successors} - -The distance between successors is -\begin{Ex} - \Par{treesep=dim} -\end{Ex} -The rest of this section describes ways to fine-tune the spacing between -successors. - -You can change the method for calculating the distance between subtrees by -setting the -\begin{Ex} - \Par{treefit=tight/loose} -\end{Ex} -parameter. Here are the two methods: -\begin{description} - \item[tight] When \p{treefit=tight}, which is the default, \p{treesep} is - the minimum distance between each of the levels of the subtrees. - \item[loose] When \p{treefit=loose}, \p{treesep} is the distance between the - subtrees' bounding boxes. Except when you have large intermediate nodes, the - effect is that the horizontal distance (or vertical distance, for horizontal - trees) between all the terminal nodes is the same (even when they are on - different levels).\footnote{% - When all the terminal nodes are on the same level, and the intermediate - nodes are not wider than the base of their corresponding subtrees, then - there is no difference between the two methods.} -\end{description} - -Compare: -\begin{center} -\tabcolsep=1cm -\begin{tabular}{cc} - \psset{radius=2pt} - \pstree{\TC*}{% - \TC - \pstree{\TC*}{% - \pstree{\Tc{3pt}}{\TC \TC} - \TC*}} - & - \psset{radius=2pt} - \pstree[treefit=loose]{\TC*}{% - \TC - \pstree{\TC*}{% - \pstree{\Tc{3pt}}{\TC \TC} - \TC*}} -\end{tabular} -\end{center} - -With \p{treefit=loose}, trees take up more space, but sometimes the structure -of the tree is emphasized. - -%Another (orthogonal) way to highlight the structure of the tree is by setting -%\begin{Ex} -% \Par{xtreesep=dim} -%\end{Ex} -%to a positive value. The effect is that adjacent nodes with different parents -%are farther apart than adjacent nodes with the same parent.\footnote{% -%When \p{treefit=tight}, the minimum distance between levels other than the top -%of the subtrees is increased by \p{xtreesep}. When \p{treefit=loose}, the -%minimum distance between subtrees is increased by \p{xtreesep}}. - -%This would have no effect in the previous two examples, but compare the -%spacing between the two subtrees in -%\begin{example**} -% \psTree[radius=2pt,levelsep=1.5,xtreesep=.25cm] \TC* \\ -% \pstree{\TC*}{\TC* \TC*} -% \pstree{\TC*}{\TC* \TC*} -% \endpsTree -%\end{example**} -%with the spacing in -%\begin{example**} -% \psTree[radius=2pt,levelsep=1.5] \TC* \\ -% \pstree{\TC*}{\TC* \TC*} -% \pstree{\TC*}{\TC* \TC*} -% \endpsTree -%\end{example**} - -Sometimes you want the spacing between the centers of the nodes to be regular -even though the nodes have different sizes. If you set -\begin{Ex} - \Par{treenodesize=dim} -\end{Ex} -to a non-negative value, then PSTricks sets the width (or height+depth for -vertical trees) to \p{treenodesize}, \emph{for the purpose of calculating the -distance between successors}. - -For example, ternary trees look nice when they are symmetric, as in the -following example: -\begin{example**} - \pstree[nodesepB=-8pt,treenodesize=.85]{\Tc{3pt}}{% - \TR{$x=y$} - \TR{$x_1=y_1$} - \TR{$x_{11}=y_{11}$}}%$ -\end{example**} -Compare with this example, where the spacing varies with the size of the -nodes: -\begin{example**} - \pstree[nodesepB=-8pt]{\Tc{3pt}}{% - \TR{$x=y$} - \TR{$x_1=y_1$} - \TR{$x_{11}=y_{11}$}}%$ -\end{example**} - -Finally, if all else fails, you can adjust the distance between two successors -by inserting - \Mac \tspace{dim} -between them: -\begin{example**} - \pstree{\Tc{3pt}}{% - \Tdia{foo} - \tspace{-0.5} - \Toval{and} - \Ttri{bar}} -\end{example**} - -\Section{Spacing between the root and successors} - -The distance between the center lines of the tree levels is: -\begin{Ex} - \Par{levelsep=*dim} -\end{Ex} - -If you want the spacing between levels to vary with the size of the levels, -use the * convention. Then \p{levelsep} is the distance between the bottom of -one level and the top of the next level (or between the sides of the two -levels, for horizontal trees). - -Note: PSTricks has to write some information to your ".aux" file if using -\LaTeX, or to "\jobname.pst" otherwise, in order to calculate the spacing. -You have to run your input file a few times before PSTricks gets the spacing -right. - -%%DG: to do -%You are most likely to want to set \p{varlevelsep} to "true" in horizontal -trees. Compare the following example: -\begin{example} - \def\psedge#1#2{\ncdiagg[nodesep=3pt,angleA=180,armA=0]{#2}{#1}} - \pstree[treemode=R,levelsep=*1cm] - {\Tr{George Alexander Kopf VII}}{% - \pstree{\Tr{Barry Santos}}{\Tr{James Kyle} \Tr{Ann Ada}} - \pstree{\Tr{Terri Maloney}}{\Tr{Uwe Kopf} \Tr{Vera Kan}}} -\end{example} -with this one, were the spacing between levels is fixed: -\begin{example} - \def\psedge#1#2{\ncdiagg[nodesep=3pt,angleA=180,armA=0]{#2}{#1}} - \pstree[treemode=R,levelsep=3cm] - {\Tr{George Alexander Kopf VII}}{% - \pstree{\Tr{Barry Santos}}{\Tr{James Kyle} \Tr{Ann Ada}} - \pstree{\Tr{Terri Maloney}}{\Tr{Uwe Kopf} \Tr{Vera Kan}}} -\end{example} - -%The center of the root node of a tree is positioned above the midpoint between -%the centers of the two outer successors. If you want the root to be positioned -%drectly above one of the successors, put the command -% \Mac \treecenter -%right \emph{after} that successor. For example: -%\begin{example**} -% \def\myfan#1{\Tfan[fillstyle=solid,fillcolor=#1]\treecenter}% -% \pstree{\Tcircle{$x_2$}}{% -% \pstree{\Tcircle{$x_1$}}{% -% \pstree{\Tcircle{$x_0$}}{\myfan{black}} -% \myfan{gray}} -% \myfan{white}} -%\end{example**} - -%Here is another interesting example: -%\begin{example} -% \def\psedge{\ncangle[angleA=0,angleB=90]} -% \pstree[treesep=10pt]{\Tcircle[name=after]{$x_0$}}{% -% \Tfan[fillstyle=solid,fillcolor=black] -% \treecenter -% \pstree{\Tcircle{$x_1$}}{\Tfan[fillstyle=solid,fillcolor=darkgray]} -% \pstree{\Tcircle{$x_2$}}{\Tfan[fillstyle=solid,fillcolor=gray]} -% \pstree{\Tcircle{$x_3$}}{\Tfan[fillstyle=solid,fillcolor=lightgray]} -% \pstree{\Tcircle{$x_4$}}{\Tfan[fillstyle=solid,fillcolor=white]}} -%\end{example} - - -\Section{Edges} - -Right after you use a tree node command, "\pssucc" is equal to the name of the -node, and "\pspred" is equal to the name of the node's predecessor. Therefore, -you can draw a line between the node and its predecessor by inserting, for -example, -\begin{LVerbatim} - \ncline{\pspred}{\pssucc} -\end{LVerbatim} - -To save you the trouble of doing this for every node, each tree node executes -\begin{LVerbatim} - \psedge{\pspred}{\pssucc} -\end{LVerbatim} -The default definition of "\psedge" is "\ncline", but you can redefine it as -you please with "\def" or \LaTeX's "\renewcommand". - -For example, here I use \n\ncdiag, with \p{armA=0}, to get all the node -connections to emanate from the same point in the predecessor:\footnote{% -\LaTeX{} users can instead type: -\begin{LVerbatim} - \renewcommand{\psedge}{\ncdiag[armA=0,angleB=180,armB=1cm]} -\end{LVerbatim} -} -\begin{example} - \def\psedge{\ncdiag[armA=0,angleB=180,armB=1cm]} - \pstree[treemode=R,levelsep=3.5cm,framesep=2pt] - {\Tc{6pt}}{% - \small \Tcircle{K} \Tcircle{L} \Tcircle{M} \Tcircle{N}} -\end{example} - -Here is an example with \n\ncdiagg. Note the use of a negative \p{armA} value -so that the corners of the edges are vertically aligned, even though the nodes -have different sizes: -\begin{example} - $ - \def\psedge#1#2{% - \ncdiagg[angleA=180, armA=-3cm,nodesep=4pt]{#2}{#1}} - % Or: \renewcommand{\psedge}[2]{ ... } - \pstree[treemode=R, levelsep=5cm]{\Tc{3pt}}{% - \Tr{z_1\leq y} - \Tr{z_1<y\leq z_2} - \Tr{z_2<y\leq x} - \Tr{x<y}} - $ -\end{example} - -Another way to define \n\psedge{} is with the -\begin{Ex} - \Par{edge=command} -\end{Ex} -parameter. Be sure to enclose the value in braces "{}" if it contains commas -or other parameter delimiters. This gets messy if your command is long, and -you can't use arguments like in the preceding example, but for simple changes -it is useful. For example, if I want to switch between a few node connections -frequently, I might define a command for each node connection, and then use -the \p{edge} parameter. -\begin{example**} - \def\dedge{\ncline[linestyle=dashed]} - \pstree[treemode=U,radius=2pt]{\Tc{3pt}}{% - \TC*[edge=\dedge] - \pstree{\Tc{3pt}}{\TC*[edge=\dedge] \TC*} - \TC*} -\end{example**} - -You can also set \n{edge=none} to suppress the node connection. - -If you want to draw a node connection between two nodes that are not direct -predecessor and successor, you have to give the nodes a name that you can -refer to, using the \p{name} parameter. For example, here I connect two nodes -on the same level: -\begin{example**} - \pstree[nodesep=3pt,radius=2pt]{\Toval{nature}}{% - \pstree{\Tc[name=top]{3pt}}{\TC* \TC*} - \pstree{\Tc[name=bot]{3pt}}{\TC* \TC*}} - \ncline[linestyle=dashed]{top}{bot} -\end{example**} - -We conclude with the more examples. - -\begin{example**} - \def\psedge{\nccurve[angleB=180, nodesepB=3pt]} - \pstree[treemode=R, treesep=1.5, levelsep=3.5]% - {\Toval{root}}{\Tr{X} \Tr{Y} \Tr{Z}} -\end{example**} - -\begin{example**} - \pstree[nodesepB=3pt, arrows=->, xbbl=15pt, - xbbr=15pt, levelsep=2.5cm]{\Tdia{root}}{% - $ - \TR[edge={\ncbar[angle=180]}]{x} - \TR{y} - \TR[edge=\ncbar]{z} - $} -\end{example**} - -\begin{example**} - \psset{armB=1cm, levelsep=3cm, treesep=1cm, - angleB=-90, angleA=90, arrows=<-, nodesepA=3pt} - \def\psedge#1#2{\ncangle{#2}{#1}} - \pstree[radius=2pt]{\Ttri{root}}{\TC* \TC* \TC* \TC*} -\end{example**} - - -\Section{Edge and node labels} - -Right after a node, an edge has typically been drawn, and you can attach -labels using \n\ncput\, \n\tlput, etc. - -With \n\tlput, \n\trput, \n\taput{} and \n\tbput, you can align the labels -vertically or horizontally, just like the nodes. This can look nice, at least -if the slopes of the node connections are not too different. -\begin{example**} - \pstree[radius=2pt]{\Tp}{% - \psset{tpos=.6} - \TC* \tlput{k} - \pstree{\Tc{3pt} \tlput[labelsep=3pt]{r}}{% - \TC* \tlput{j} - \TC* \trput{i}} - \TC* \trput{m}} -\end{example**} -Within trees, the \p{tpos} parameter measures this distance from the -predecessor to the successor, whatever the orientation of the true. -(Outside of trees it measures the distance from the top to bottom or left to -right nodes.) - -PSTricks also sets \p{shortput=tab} within trees. This is a special -\p{shortput} option that should not be used outside of trees. It implements -the following abbreviations, which depend of the orientation of the true: -\begin{center} -\begin{tabular}{ccc} - & \multicolumn{2}{c}{Short for:}\\ - \emph{Char.} & \emph{Vert.} & \emph{Horiz.}\\[2pt] - "^" & \n\tlput & \n\taput \\ - "_" & \n\trput & \n\tbput -\end{tabular} -\end{center} -(The scheme is reversed if \p{treeflip=true}.) -\begin{example**} - \psset{tpos=.6} - \pstree[treemode=R, thistreesep=1cm, - thislevelsep=3cm,radius=2pt]{\Tc{3pt}}{% - \pstree[treemode=U, xbbr=20pt]{\Tc{3pt}^{above}}{% - \TC*^{left} - \TC*_{right}} - \TC*^{above} - \TC*_{below}} -\end{example**} - -You can change the character abbreviations with - \Mac \MakeShortTab{<char1>}{<char2>} - -The "\n*put" commands can also give good results: -\begin{example**} - \psset{npos=.6,nrot=:U} - \pstree[treemode=R, thistreesep=1cm, - thislevelsep=3cm]{\Tc{3pt}}{% - \Tc{3pt}\naput{above} - \Tc*{2pt}\naput{above} - \Tc*{2pt}\nbput{below}} -\end{example**} - -You can put labels on the nodes using \n\nput. However, \n\pstree{} won't take -these labels into account when calculating the bounding boxes. - -There is a special node label option for trees that does keep track of the -bounding boxes: - \Mac ~`*[par]'{stuff} -Call this a ``tree node label''. - -Put a tree node label right after the node to which it applies, before any -node connection labels (but node connection labels, including the short forms, -can follow a tree node label). The label is positioned directly below the node -in vertical trees, and similarly in other trees. For example: -\begin{example**} - \pstree[radius=2pt]{\Tc{3pt}\nput{45}{\pssucc}{root}}{% - \TC*~{$h$} \TC*~{$i$} \TC*~{$j$} \TC*~{$k$}} -\end{example**} -Note that there is no ``long form'' for this tree node label. However, you can -change the single character used to delimit the label with - \Mac \MakeShortTnput{<char1>} -If you find it confusing to use a single character, you can also use a command -sequence. E.g., -\begin{LVerb} - \MakeShortTnput{\tnput} -\end{LVerb} - -You can have multiple labels, but each successive label is positioned relative -to the bounding box that includes the previous labels. Thus, the order in -which the labels are placed makes a difference, and not all combinations will -produce satisfactory results. - -You will probably find that the tree node label works well for terminal nodes, -without your intervention. However, you can control the tree node labels be -setting several parameters. - -To position the label on any side of the node ("l"eft, "r"ight, "a"bove or -"b"elow), set: -\begin{Ex} - \Par{tnpos=l/r/a/b} -\end{Ex} -\begin{example**} - \psframebox{% - \pstree{\Tc{3pt}~[tnpos=a,tndepth=0pt,radius=4pt]{root}}{% - \TC*~[tnpos=l]{$h$} - \TC*~[tnpos=r]{$i$}}} -\end{example**} -When you leave the argument empty, which is the default, PSTricks chooses the -label position is automatically. - -To change the distance between the node and the label, set -\begin{Ex} - \Par{tnsep=<dim>} -\end{Ex} -When you leave the argument empty, which is the default, PSTricks uses the -value of \p{labelsep}. When the value is negative, the distance is measured -from the center of the node. - -When labels are positioned below a node, the label is given a minimum height -of -\begin{Ex} - \Par{tnheight=<dim>}(\string\ht\string\strutbox) -\end{Ex} -Thus, if you add labels to several nodes that are horizontally aligned, and if -either these nodes have the same depth or \p{tnsep} is negative, and if the -height of each of the labels is no more than \p{tnheight}, then the labels -will also be aligned by their baselines. The default is "\ht\strutbox", which -in most \TeX{} formats is the height of a typical line of text in the current -font. Note that the value of \p{tnheight} is not evaluated until it is used. - -The positioning is similar for labels that go below a node. The label is given -a minimum \emph{depth} of -\begin{Ex} - \Par{tndepth=<dim>}(\string\dp\string\strutbox) -\end{Ex} - -For labels positioned above or below, the horizontal reference point of the -label, i.e., the point in the label directly above or below the center of the -node, is set by the \p{href} parameter. - -When labels are positioned on the left or right, the right or left edge of the -label is positioned distance \p{tnsep} from the node. The vertical point that -is aligned with the center of the node is set by -\begin{Ex} - \Par{tnyref=<num>} -\end{Ex} -When you leave this empty, \p{vref} is used instead. Recall that \p{vref} -gives the vertical \emph{distance} from the baseline. Otherwise, the -\p{tnyref} parameter works like the \p{yref} parameter, giving the fraction of -the distance from the bottom to the top of the label. - -\Section{Details} - -PSTricks does a pretty good job of positioning the nodes and creating a box -whose size is close to the true bounding box of the tree. However, PSTricks -does not take into account the node connections or labels when calculating the -bounding boxes, except the tree node labels. - -If, for this or other reasons, you want to fine tune the bounding box of the -nodes, you can set the following parameters: -\begin{Ex} - \Par{bbl=dim} - \Par{bbr=dim} - \Par{bbh=dim} - \Par{bbd=dim} - \Par{xbbl=dim} - \Par{xbbr=dim} - \Par{xbbh=dim} - \Par{xbbd=dim} -\end{Ex} -The "x" versions increase the bounding box by <dim>, and the others set the -bounding box to <dim>. There is one parameter for each direction from the -center of the node, \textbf{l}eft, \textbf{r}ight, \textbf{h}eight, and -\textbf{d}epth. - -These parameters affect trees and nodes, and subtrees that switch directions, -but not subtrees that go in the same direction as their parent tree (such -subtrees have a profile rather than a bounding box, and should be adjusted by -changing the bounding boxes of the constituent nodes). - -Save any fiddling with the bounding box until you are otherwise finished with -the tree. - -You can see the bounding boxes by setting the -\begin{Ex} - \Par{showbbox=true/false} -\end{Ex} -parameter to "true". To see the bounding boxes of all the nodes in a tree, you -have to set this parameter before the tree. - -In the following example, the labels stick out of the bounding box: -\begin{example**} - \psset{tpos=.6,showbbox=true} - \pstree[treemode=U]{\Tc{5pt}}{% - \TR{foo}^{left} - \TR{bar}_{right}} -\end{example**} -Here is how we fix it: -\begin{example**} - \psset{tpos=.6,showbbox=true} - \pstree[treemode=U,xbbl=8pt,xbbr=14pt]{\Tc{5pt}}{% - \TR{foo}^{left} - \TR{bar}_{right}} -\end{example**} -Now we can frame the tree: -\begin{example**} - \psframebox[fillstyle=solid,fillcolor=lightgray,framesep=14pt, - linearc=14pt,cornersize=absolute,linewidth=1.5pt]{% - \psset{tpos=.6,border=1pt,nodesepB=3pt} - \pstree[treemode=U,xbbl=8pt,xbbr=14pt]{% - \Tc[fillcolor=white,fillstyle=solid]{5pt}}{% - \TR*{foo}^{left} - \TR*{bar}_{right}}} -\end{example**} -We would have gotten the same result by changing the bounding box of the two -terminal nodes. - -To skip levels, use -\begin{Ex} - \object \skiplevel`*[par]'{nodes or subtrees} - \object \skiplevels`*[par]'{int} <nodes or subtrees> \string\endskiplevels -\end{Ex} -These are kind of like subtrees, but with no root node. -\begin{example} - \pstree[treemode=R,levelsep=1.8,radius=2pt]{\Tc{3pt}}{% - \skiplevel{\Tfan} - \pstree{\Tc{3pt}}{% - \TC* - \skiplevels{2} - \pstree{\Tc{3pt}}{\TC* \TC*} - \TC* - \endskiplevels - \pstree{\Tc{3pt}}{\TC* \TC*}}} -\end{example} -The profile at the missing levels is the same as at the first non-missing -level. You can adjust this with the bounding box parameters. You get greatest -control if you use nested \n\skiplevel{} commands instead of \n\skiplevels. - -\begin{example} - \large - \psset{radius=6pt, dotsize=4pt} - \pstree[thislevelsep=0,edge=none,levelsep=2.5cm]{\Tn}{% - \pstree{\TR{Player 1}}{\pstree{\TR{Player 2}}{\TR{Player 3}}} - \psset{edge=\ncline} - \pstree - {\pstree[treemode=R]{\TC}{\Tdot ~{(0,0,0)} ^{N}}}{% - \pstree{\TC[name=A] ^{L}}{% - \Tdot ~{(-10,10.-10)} ^{l} - \pstree{\TC[name=C] _{r}}{% - \Tdot ~{(3,8,-4)} ^{c} - \Tdot ~{(-8,3,4)} _{d}}} - \pstree{\TC[name=B] _{R}}{% - \Tdot ~{(10,-10.0)} ^{l} - \pstree{\TC[name=D]_{r}}{% - \Tdot ~{(4,8,-3)} ^{c} - \Tdot ~{(0,-5,0)} _{d}}}}} - \ncbox[linearc=.3,boxsize=.3,linestyle=dashed,nodesep=.4]{A}{B} - \ncarcbox[linearc=.3,boxsize=.3,linestyle=dashed, - arcangle=25,nodesep=.4]{D}{C} -\end{example} - -\Section{The scope of parameter changes} - -\p{edge} is the only parameter which, when set in a tree node's parameter -argument, affects the drawing of the node connection (e.g., if you want to -change the \p{nodesep}, your edge has to include the parameter change, or you -have to set it before the node). - -As noted at the beginning of this section, parameter changes made with -\n\pstree{} affect all subtrees. However, there are variants of some of these -parameters for making local changes, i.e, changes that affects only the -current level: -\begin{Ex} - \Par{thistreesep=dim} - \Par{thistreenodesize=dim} - \Par{thistreefit=tight/loose} - \Par{thislevelsep=dim} -\end{Ex} -For example: -\begin{example**} - \pstree[thislevelsep=.5cm,thistreesep=2cm,radius=2pt]{\Tc*{3pt}}{% - \pstree{\TC*}{\TC* \TC*} - \pstree{\TC*}{\TC* \TC*}} -\end{example**} - -There are some things you may want set uniformly across a level in the tree, -such as the \p{levelsep}. At level <n>, the command "\pstreehook<roman(n)>" -(e.g., "\pstreehookii") is executed, if it is defined (the root node of the -whole tree is level 0, the successor tree objects and the node connections -from the root node to these successors is level 1, etc.). In the following -example, the \p{levelsep} is changed for level 2, without having to set the -\p{thislevelsep} parameter for each of the three subtrees that make of level -2: -\begin{example*} - \[ - \def\pstreehookiii{\psset{thislevelsep=3cm}} - \pstree[treemode=R,levelsep=1cm,radius=2pt]{\Tc{4pt}}{% - \pstree{\TC*}{% - \pstree{\TC*}{\Tr{X_1} \Tr{X_2}} - \pstree{\TC*}{\Tr{Y_1} \Tr{Y_2}}} - \pstree{\TC*}{% - \pstree{\TC*}{\Tr{K_1} \Tr{K_2}} - \pstree{\TC*}{\Tr{J_1} \Tr{J_2}}}} - \] -\end{example*} - -\endinput - -%% END psd-tree.tex diff --git a/Master/texmf-dist/source/generic/pstricks/pst-user.cls b/Master/texmf-dist/source/generic/pstricks/pst-user.cls deleted file mode 100644 index 19cd07b6ee6..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/pst-user.cls +++ /dev/null @@ -1,1111 +0,0 @@ -%% BEGIN pst-user.cls - -%% Macros for typesetting "pst-user.tex" v97. - -%DG \errorcontextlines=100\relax - -\NeedsTeXFormat{LaTeX2e} - -\ProvidesClass{pst-user}[2003/03/03 Class for PSTricks User's Guide (TvZ,RN,DG)] - -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} - -\ProcessOptions\relax -\LoadClass{article} - -% Packages -\RequirePackage{pstcol} -\RequirePackage{pst-coil} -\RequirePackage{pst-plot} -\RequirePackage{pst-tree} - -\RequirePackage{fancybox} % Use for the Quick Reference -\RequirePackage{fancyvrb} - -\RequirePackage[dvips]{geometry} - -% The paper dimensions for `dvips' or `VTeX' or `pdfTeX' -% Why not `\AtEndOfClass' or `\AtBeginDocument'? RN - -\RequirePackage{url} -\RequirePackage[ps2pdf,hyperfootnotes=false,colorlinks=true,bookmarks=true] - {hyperref}[2000/03/02] -%\AtEndOfClass{% -% \RequirePackage[ps2pdf,hyperfootnotes=false,colorlinks=false,% -% bookmarks=false] -% %pdfpagelabels,plainpages=false] -% {hyperref}[2000/03/02]} - -%\AtEndOfClass{\AtBeginDocument{\RequirePackage{showframe}}} - -% Fonts related packages -\usepackage[T1]{fontenc} -\RequirePackage{times} -%\RequirePackage{mathptmx} -\RequirePackage[scaled]{helvet} -%\RequirePackage{courier} -\RequirePackage{pifont} - -% Title, version and date -\def\thetitle{PSTricks: User's Guide} -\let\theheadertitle\thetitle % Used with twoside option. -\let\fileversion\Version -\let\filedate\Date - -% Paragraphs are marked by large space rather than indentation: -\parindent 0pt -\parskip 7pt plus 1pt minus 1pt - -% Page layout and various dimensions - -%%% TODO: Using the `geometry' package and `\DeclareOption' -- RN - -% These are for 8.5inx11in paper: -\oddsidemargin 5cm -\evensidemargin 5cm -\textwidth 11.5cm - -% Total bottom margin 1in, text height 8.8in -\topmargin\z@ -\textheight 8.8in -\footskip .625in - -% No headers, 1in top margin -\headheight 0pt -\headsep 0pt - -% Marginal notes always on left. -\marginparwidth 3.5cm -\marginparsep .5cm -\reversemarginpar - -% Now adjust margins for a4 paper size: -\ifdim\paperwidth=210mm \papersizeadjust\fi - -%DG % Now adjust margins for different paper size: -%DG % The a4 option sets \paperwidth and \paperheight for a4 paper: -%DG \@ifundefined{paperwidth}% -%DG {% -%DG \def\paperwidth{8.5in} -%DG \def\paperheight{11in} -%DG }{% -%DG \@tempdima=\paperwidth\relax -%DG \advance\@tempdima-8.5in -%DG \divide\@tempdima 2 -%DG \advance\oddsidemargin\@tempdima -%DG \advance\evensidemargin\@tempdima -%DG \@tempdima=\paperheight\relax -%DG \advance\@tempdima-11in -%DG \divide\@tempdima 2 -%DG \advance\topmargin\@tempdima -%DG } - -%DG % Now adjust left and right margins for twosided printing: -%DG \if@twoside -%DG \advance\oddsidemargin.75cm -%DG \advance\evensidemargin-.75cm -%DG \fi - -%%%%%%%%%%%%%%%%%%%% Various customizations %%%%%%%%%%%%%%%%%%%% - -\def\arraystretch{1.2} - -\hfuzz 1pt - -\def\twosideclearpage{% - \clearpage - \if@twoside - \ifodd\c@page\else - \thispagestyle{empty}% - \null\leavevmode - \clearpage - \fi - \fi} - - - -% Paragraphs are marked by large space rather than indentation: -\setlength{\parindent}{0pt} -\setlength{\parskip}{7pt plus 1pt minus 1pt} - -% Reduce \topsep: -\def\@listI{% - \leftmargin\leftmargini - \parsep 5\p@ plus2.5\p@ minus\p@ - %\topsep 10\p@ plus4\p@ minus6\p@ - \topsep 5\p@ plus2\p@ minus2\p@ - \itemsep 5\p@ plus2.5\p@ minus\p@} -\let\@listi\@listI -\@listi -\def\@listii{% - \leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep - %\topsep 5\p@ plus2.5\p@ minus\p@ - \topsep 2\p@ plus.5\p@ minus\p@ - \parsep 2.5\p@ plus\p@ minus\p@ - \itemsep \parsep} -\def\@listiii{% - \leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep - %\topsep 2.5\p@ plus\p@ minus\p@ - \topsep 1\p@ plus.2\p@ minus.2\p@ - \parsep \z@ - \partopsep \p@ plus\z@ minus\p@ - \itemsep \topsep} - -\skip\footins 20pt plus 4pt minus 2pt - -%%%%%%%%%%%%%%%%%%%% Special hacks for User's Guides %%%%%%%%%%%%%%%%%%%% - -%% Listing questions -\newcounter{faq}[section] -\def\thefaq{\arabic{faq}} -\let\l@faq\@gobbletwo -\def\faq{\@startsection{faq}{2}{\z@}% - {3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\faqfont}} -\def\faqfont{\normalsize\sffamily} -\def\faqmark#1{} - -%% Listing errors -\def\error{\vskip 2ex\noindent} - -%%%%%%%%%%%%%%%%%%%% Sections %%%%%%%%%%%%%%%%%%%% - -% Section headings use customizable fonts, leave less space above -% and below, and may overhang on left. - -\def\section{\@startsection{section}{1}{\sechang}% - {-3ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\secfont}} -\def\subsection{\@startsection{subsection}{2}{\subsechang}% - {-2.75ex plus -1ex minus -.2ex}{1.25ex plus .2ex}{\subsecfont}} -\newdimen\sechang -\newdimen\subsechang -\sechang=-.75in -\subsechang=-.375in -\def\secfont{\sffamily\LARGE\bfseries} % Section headings -\def\subsecfont{\sffamily\Large\bfseries} % Subsection headings - -%%%%%%%%%%%%%%%%%%%% Page style %%%%%%%%%%%%%%%%%%%% - -%% Headings: -\def\ps@docheadings{% - \let\@mkboth\markboth - \def\@oddhead{}% - \let\@evenhead\@oddhead% - \def\@oddfoot{% - \small\sffamily - \rightmark - \hfil - \thepage}% - \def\@evenfoot{% - \small\sffamily - \thepage - \hfil - \theheadertitle}% - \def\sectionmark##1{\markright {##1}}}% -\pagestyle{docheadings} - -%%%%%%%%%%%%%%%%%%%% Table of contents %%%%%%%%%%%%%%%%%%%% - -%% Tight up spacing in TOC: -\newskip\tempskip -\def\TOCshrink{.5} -\def\TableOfContents{% - \begin{quote} - \begin{center} \Large\bf Contents \end{center} - \def\numberline##1{\hbox to 0pt{\hss##1\hskip 1em}}% - \let\oldaddvspace\addvspace - \def\addvspace##1{% - \tempskip##1\relax - \oldaddvspace{\TOCshrink\tempskip}} - \@starttoc{toc}% - \end{quote}} -\def\tableofcontents{% - \clearpage - \markright{Table of contents}% - \TableOfContents - \clearpage} - - -%%%%%%%%%%%%%%%%%%%% Dates %%%%%%%%%%%%%%%%%%%% - -%% This expands the date, as defined in \filedate. - -\def\expanddate#1/#2/#3/{% - \number#3{} - \month=#2 - \ifcase\month\or - January \or February \or March \or April \or May \or June \or - July \or August \or September \or October \or November \or December - \fi - 20#1} -\def\thefiledate{\expandafter\expanddate\Date/} -\date{\thefiledate} - -%%%%%%%%%%%%%%%%%%%% Codes and examples %%%%%%%%%%%%%%%%%%%% - -%% This is an environment for putting samples of code. It is like -%% a variant of \begin{quote}\ttfamily ... \end{quote}. It is NOT verbatim. - -\def\NotNested{\def\begin##1{% - \@latexerr{Bad nesting of environments. - Perhaps missing \end{\@currenvir}}\@eha - \end{\@currenvir}% - \begin{##1}}} -\def\Ex{% - \NotNested - \list{}{}\item[]% - \if@minipage\else\vskip\parskip\fi - \leftskip\@totalleftmargin - \rightskip\z@ - \parindent\z@ - \parskip\z@ - \parfillskip\@flushglue - \hfuzz 1pt - \@@par - \global\@inlabelfalse} -\def\endEx{\endlist} - -%% Various things to make it easier to write code and examples: -\begingroup - \catcode`\{=12 \catcode`\}=12 - \catcode`\(=1 \catcode`\)=2 - \catcode`\+=0 \catcode`\\=12 - +gdef+|(\) % \| = character \ - +gdef+{({) % \{ = character { - +gdef+}(}) % \} = character } -+endgroup -\def\Backslash{\protect\|} - -%%%%%%%%%%%%%%%%%%%% Fonts %%%%%%%%%%%%%%%%%%%% - -% Use scaled versions of the ps fonts. - -\def\times@scale{.96} -\def\helv@scale{.82} -\def\courier@scale{.985} - -%DG \DeclareFontFamily{T1}{times}{} -%DG \def\1{\DeclareFontShape{T1}{times}} -%DG \1{m}{n}{<->s*[\times@scale]ptmrq}{}% -%DG \1{m}{it}{<->s*[\times@scale]ptmriq}{}% -%DG \1{m}{sc}{<->s*[\times@scale]ptmrcq}{}% -%DG \1{b}{n}{<->s*[\times@scale]ptmbq}{}% -%DG \1{b}{it}{<->s*[\times@scale]ptmbiq}{}% -%DG \1{m}{sl}{<->ssub * times/m/it}{}% -%DG \1{b}{sc}{<->sub * times/m/sc}{}% -%DG \1{b}{sl}{<->ssub * times/b/it}{}% -%DG \1{bx}{n}{<->ssub * times/b/n}{}% -%DG \1{bx}{it}{<->ssub * times/b/it}{}% -%DG \1{bx}{sc}{<->sub * times/m/sc}{}% -%DG \1{bx}{sl}{<->ssub * times/b/it}{}% - -%DG \DeclareFontFamily{OT1}{times}{}% -%DG \def\1{\DeclareFontShape{OT1}{times}} -%DG \1{m}{n}{<->s*[\times@scale]ptmr}{}% -%DG \1{m}{it}{<->s*[\times@scale]ptmri}{}% -%DG \1{m}{sc}{<->s*[\times@scale]ptmrc}{}% -%DG \1{b}{n}{<->s*[\times@scale]ptmb}{}% -%DG \1{b}{it}{<->s*[\times@scale]ptmbi}{}% -%DG \1{m}{sl}{<->ssub * times/m/it}{}% -%DG \1{b}{sc}{<->sub * times/m/sc}{}% -%DG \1{b}{sl}{<->ssub * times/b/it}{}% -%DG \1{bx}{n}{<->ssub * times/b/n}{}% -%DG \1{bx}{it}{<->ssub * times/b/it}{}% -%DG \1{bx}{sc}{<->sub * times/m/sc}{}% -%DG \1{bx}{sl}{<->ssub * times/b/it}{}% - -%DG \DeclareFontFamily{T1}{helvetica}{} -%DG \def\1{\DeclareFontShape{T1}{helvetica}} -%DG \1{m}{n}{<->s*[\helv@scale]phvrq}{}% -%DG \1{m}{it}{<->s*[\helv@scale]phvroq}{}% -%DG \1{m}{sc}{<->s*[\helv@scale]phvrcq}{}% -%DG \1{b}{n}{<->s*[\helv@scale]phvbq}{}% -%DG \1{b}{it}{<->s*[\helv@scale]phvboq}{}% -%DG \1{m}{sl}{<->ssub * helvetica/m/it}{}% -%DG \1{b}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{b}{sl}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{n}{<->ssub * helvetica/b/n}{}% -%DG \1{bx}{it}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{bx}{sl}{<->ssub * helvetica/b/it}{}% - -%DG \DeclareFontFamily{OT1}{helvetica}{}% -%DG \def\1{\DeclareFontShape{OT1}{helvetica}} -%DG \1{m}{n}{<->s*[\helv@scale]phvr}{}% -%DG \1{m}{it}{<->s*[\helv@scale]phvro}{}% -%DG \1{m}{sc}{<->s*[\helv@scale]phvrc}{}% -%DG \1{b}{n}{<->s*[\helv@scale]phvb}{}% -%DG \1{b}{it}{<->s*[\helv@scale]phvbo}{}% -%DG \1{m}{sl}{<->ssub * helvetica/m/it}{}% -%DG \1{b}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{b}{sl}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{n}{<->ssub * helvetica/b/n}{}% -%DG \1{bx}{it}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{bx}{sl}{<->ssub * helvetica/b/it}{}% - -%DG \DeclareFontFamily{T1}{r-helvetica}{} -%DG \def\1{\DeclareFontShape{T1}{r-helvetica}} -%DG \1{m}{n}{<->s*[\helv@scale]rphvrq}{}% -%DG \1{m}{it}{<->s*[\helv@scale]rphvroq}{}% -%DG \1{m}{sc}{<->s*[\helv@scale]rphvrcq}{}% -%DG \1{b}{n}{<->s*[\helv@scale]rphvbq}{}% -%DG \1{b}{it}{<->s*[\helv@scale]rphvboq}{}% -%DG \1{m}{sl}{<->ssub * helvetica/m/it}{}% -%DG \1{b}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{b}{sl}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{n}{<->ssub * helvetica/b/n}{}% -%DG \1{bx}{it}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{bx}{sl}{<->ssub * helvetica/b/it}{}% - -%DG \DeclareFontFamily{OT1}{r-helvetica}{}% -%DG \def\1{\DeclareFontShape{OT1}{r-helvetica}} -%DG \1{m}{n}{<->s*[\helv@scale]rphvr}{}% -%DG \1{m}{it}{<->s*[\helv@scale]rphvro}{}% -%DG \1{m}{sc}{<->s*[\helv@scale]rphvrc}{}% -%DG \1{b}{n}{<->s*[\helv@scale]rphvb}{}% -%DG \1{b}{it}{<->s*[\helv@scale]rphvbo}{}% -%DG \1{m}{sl}{<->ssub * helvetica/m/it}{}% -%DG \1{b}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{b}{sl}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{n}{<->ssub * helvetica/b/n}{}% -%DG \1{bx}{it}{<->ssub * helvetica/b/it}{}% -%DG \1{bx}{sc}{<->sub * helvetica/m/sc}{}% -%DG \1{bx}{sl}{<->ssub * helvetica/b/it}{}% - -%DG \DeclareFontFamily{OT1}{symbol}{} -%DG \DeclareFontShape{OT1}{symbol}{m}{n}{<->s*[\times@scale]rpsyr}{} - -%DG \let\saved@fontwarning\font@warning -%DG \let\font@warning\@gobble -%DG \DeclareSymbolFont{operators}{OT1}{times} {m}{n} -%DG \DeclareSymbolFont{letters} {OT1}{times} {m}{it} - -%DG \SetSymbolFont{operators}{bold}{OT1}{times} {b}{n} -%DG \SetSymbolFont{letters} {bold}{OT1}{times} {b}{it} - -%DG \renewcommand{\default@family}{times}% -%DG \renewcommand{\rmdefault}{times}% -%DG \renewcommand{\sfdefault}{helvetica}% -%DG \renewcommand{\ttdefault}{r-helvetica}% -%DG \fontfamily\default@family\selectfont - -%DG \@namedef{FV@fontfamily@helvetica}{% -%DG \def\FV@FontScanPrep{}% -%DG \def\FV@FontFamily{\fontfamily{r-helvetica}}} - -% A few tricks to avoid math fonts: - -\def\AmS{AMS} - -%RN \def\symchar#1{% -%RN \mbox{% -%RN \kern .3pt -%RN \fontfamily{symbol}\fontseries{m}\fontshape{n}\selectfont -%RN \char#1 -%RN \kern .3pt}} - -\def\symchar#1{% - \mbox{% - \kern .3pt - \Pisymbol{psy}{#1} - \kern .3pt}} - -\def\lt{\symchar{'074}} -\def\gt{\symchar{'076}} -\def\leq{\symchar{'243}} -\def\geq{\symchar{'263}} -\def\bullet{\symchar{'267}} -\def\ldots{\symchar{'274}} -\mathcode`\-="20B1 - -\renewcommand{\ttdefault}{\sfdefault} - -% The font commands: -\def\MainFont{\ttfamily\bfseries\large} % For macro definitions. -\def\UsageFont{\ttfamily\bfseries} % For in-line macro names. -\def\InlineFont{\ttfamily} % For other in-line snipets of code. -\def\MetaFont{\sffamily\slshape} % For meta arguments. -%\def\OpArgFont{\fontseries{m}\selectfont} % For optional arguments. -\def\OpArgFont{\normalfont} % For optional arguments. - -\begingroup - \catcode`\<=\active - \gdef\ShortMeta{% - \catcode`\<=\active - \def<##1>{{\MetaFont ##1\/}}} -\endgroup - -\def\DeleteShortMeta{\catcode`\<=12\relax} - -% <foo> is short for {\MetaFont foo}. -% Works with \Verb command and LVerb* environment, -% but is disabled in LVerb environment. -\ShortMeta - -% Short-cuts for coordinates: -\def\x#1{{\MetaFont x#1\/}} -\def\y#1{{\MetaFont y#1\/}} -\def\c#1{{\InlineFont(\x{#1},\kern 1pt\y{#1})}} -\def\cn{\c{n}} - -%%%%%%%%%%%%%%%%%%%% Verbatim %%%%%%%%%%%%%%%%%%%% - -% `fancyvrb' modifications to suppress the management of the < and > -% characters, to allow to use them to change the font. - -% So, we suppress the codes in `fancyvrb' to disable ligatures management. -% (D.G. - 02/28/03) -\def\FV@SetupFont{% - \FV@BaseLineStretch - \FV@FontSize - \FV@FontFamily - \FV@FontSeries - \FV@FontShape - \selectfont -% D.G. modification begin - Feb. 28, 2003 -% \@noligs} -} -% D.G. modification end - -% D.G. modification begin - Feb. 28, 2003 -%\def\FV@GetLine{\@noligs\expandafter\FV@CheckScan\FancyVerbGetLine} -\def\FV@GetLine{\expandafter\FV@CheckScan\FancyVerbGetLine} -% D.G. modification end - -\AtBeginDocument{\DefineShortVerb{\"}} - -\VerbatimFootnotes - -\fvset{gobble=2,commentchar=\",codes={\catcode`\<=12},fontfamily=helvetica, - frame=single,numbers=left,numbersep=1mm} - -\DefineVerbatimEnvironment{LVerb}{LVerbatim}{fontsize=\small} -\DefineVerbatimEnvironment{LVerb*}{LVerbatim}% - {fontsize=\small,codes={\catcode`\<=13}} - -\def\FV@Space{\ \ } - -% Verbatim items: - -\newcommand{\vitem}{\SaveVerb[codes={\catcode`\<=13}, - aftersave={\item[\UseVerb{item}]}]{item}} - -%%%%%%%%%%%%%%%%%%%% Example environments %%%%%%%%%%%%%%%%%%%% - -% The Example environment uses the fancybox.sty macros -% 1. Save example verbatim to \jobname.tmp, -% 2. Input verbatim with \catcode`\"=14 (" is a comment). -% 3. Input again with \catcode\`"=9 (" is ignored). - -% There are 5 example environments: -% 1. example : center output -% 2. example* : process output with no special formatting. -% 3. example** : Place on left side of verbatim input. -% 4. MEx : Like example**, but contents put in picture environment. -% 5. MEx* : Like MEx, but with grid. -\newcommand{\BeginExample}{% - \VerbatimEnvironment - \catcode`\<=12\relax - \catcode`\"=9\relax - \begin{VerbatimOut}[commentchar=none,codes={\catcode`\"=12}]{\jobname.tmp}} - -\newcommand{\EndExample}{% - \end{VerbatimOut} - \fvset{gobble=0,fontsize=\small}} - -\newenvironment{example}{\BeginExample}{% - \EndExample - \LVerbatimInput{\jobname.tmp}% - \begin{center}\leavevmode\input{\jobname.tmp}\end{center}} - -\newenvironment{example*}{\BeginExample}{% - \EndExample\LVerbatimInput{\jobname.tmp}\input{\jobname.tmp}} - -\newenvironment{example**}{\BeginExample}{% - \EndExample\SideBySideEx{\input{\jobname.tmp}}} - -\newif\ifgrid -\newpsobject{usergrid}{psgrid}{subgriddiv=1,griddots=10,gridlabels=7pt} - -\def\MEx{\@ifnextchar[{\@MEx}{\@MEx[0,0]}} -\def\@MEx[#1,#2](#3,#4){% - \def\PictureSize{(#1,#2)(#3,#4)}% - \BeginExample} -\def\endMEx{% - \EndExample - \SideBySideEx{% - \expandafter\pspicture\PictureSize - \ifgrid\usergrid\fi\relax - \input{\jobname.tmp}% - \endpspicture}} - -\def\SideBySideEx#1{% - \trivlist\item[]% - \leavevmode\kern-\@totalleftmargin - \hbox{\valign{% - \vfil##\vfil\cr - \hbox to \z@{\hss#1}\cr - \hbox to \leftmargini{\hss}\cr - \@tempdimc=\textwidth - \advance\@tempdimc-\leftmargini - \advance\@tempdimc-\psframesep - \advance\@tempdimc-\psframesep - \advance\@tempdimc-\pslinewidth - \advance\@tempdimc-\pslinewidth - \hbox{\psframebox{\BVerbatimInput[frame=none,numbersep=2mm, - boxwidth=\@tempdimc]{\jobname.tmp}}}\cr}}% - \endtrivlist} - -\@namedef{MEx*}{\gridtrue\MEx} -\@namedef{endMEx*}{\endMEx} - -% `fancyvrb' modificatons to be able to handle number lines -% with the \BVerbatim environment and the \BVerbatimInput macro -% (DG - 11/04/98) - -% D.G. modification begin - Nov. 4, 1998 -%\def\FV@BProcessLine#1{\hbox{\FancyVerbFormatLine{#1}}} -\def\FV@BProcessLine#1{% -\hbox\ifx\FV@boxwidth\relax\else to\FV@boxwidth\fi{% -\FV@LeftListNumber -\FV@LeftListFrame -\FancyVerbFormatLine{#1}\hss -\FV@RightListFrame -\FV@RightListNumber}} -% D.G. modification end - -% To be able to handle number lines with \BUseVerbatim macro -% D.G. modification begin - Nov. 4, 1998 -%\def\BUseVerbatim{\FV@Command{}{BUseVerbatim}} -\def\BUseVerbatim{\FV@Command{}{BNumbersUseVerbatim}} - -\def\FVC@BNumbersUseVerbatim#1{\FV@CheckIfSaved{#1}{\FV@BNumbersUseVerbatim}} - -\def\FV@BNumbersUseVerbatim#1{\FV@BNumbersVerbatimBegin#1\FV@BVerbatimEnd} - -\def\FV@BNumbersVerbatimBegin{% - \begingroup - \FV@UseKeyValues - \FV@BeginVBox - \let\FV@ProcessLine\FV@BNumbersProcessLine - \FV@FormattingPrep - \FV@ObeyTabsInit}% - -\def\FV@BNumbersProcessLine#1{% -\global\advance\FV@CodeLineNo\@ne -\FV@StepLineNo -\FV@BProcessLine{#1}} -% D.G. modification end - -%%%%%%%%%%%%%%%%%%%% Logos %%%%%%%%%%%%%%%%%%%% - -\def\b@LaTeX{% - \begingroup - \csname reset@font\endcsname - \rmfamily\bfseries - L\kern-.32em - \raise.36ex\hbox{% - \ifx\@currsize\Huge\LARGE\else - \ifx\@currsize\huge\Large\else - \ifx\@currsize\LARGE\large\else - \ifx\@currsize\Large\normalsize\else - \ifx\@currsize\large\small\else - \ifx\@currsize\normalsize\footnotesize\else - \ifx\@currsize\small\scriptsize\else - \ifx\@currsize\footnotesize\scriptscriptsize - \fi\fi\fi\fi\fi\fi\fi\fi - \textbf{A}}% - \kern-.15em - T\kern-.1667em - \lower.7ex\hbox{E}\kern-.125em - X% - \endgroup} -\def\bLaTeX{\b@LaTeX} - -%DG \@ifundefined{AmSTeX} -%DG {\def\AmSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex% -%DG \hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}}{} -\@ifundefined{BibTeX} - {\def\BibTeX{{\rmfamily B\kern-.05em{\sc i\kern-.025em b}\kern-.08em% - T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} -\@ifundefined{ConTeXt} - {\def\ConTeXt{{\rmfamily Con\TeX t}}}{} -%DG \@ifundefined{SliTeX} -%DG {\def\SliTeX{{\rmfamily S\kern-.06emL\kern-.18em\raise.32ex\hbox -%DG \textsc{i}\kern -.03em\TeX}}}{} -\@ifundefined{PlainTeX}{\def\PlainTeX{\textsc{Plain}\kern2pt\TeX}}{} - -%%%%%%%%%%%%%%%%%%%% Quick reference %%%%%%%%%%%%%%%%%%%% - -%% The macro definitions are stored in in the command sequence -%% \quickref as they appear in the text. This is much easier -%% than trying to output the stuff to an auxiliary file and having -%% to worry about catcodes. - -% An entry in \quickref is of the form: \qentry{type}{entry} -\def\quickref{} -\long\def\addtoquickref#1#2{% - \expandafter\gdef\expandafter\quickref\expandafter{% - \quickref\qentry{#1}{#2}}} -\def\qentry#1{\@nameuse{qr@#1}} - -\long\def\addtoquickref#1#2{} - -\def\MakeQuickRef{% - \long\def\addtoquickref##1##2{% - \wlog{}% - \toks@{\qentry{##1}{##2}}% - \message{\the\toks@}% - \wlog{}% - \let\MakeQuickRef\relax}} - -%% For switching into landscape mode for the Quick Reference: -\let\NormalShipout\shipout -\newbox\OutputBox -\def\LandscapeMode{% - \long\def\shipout##1##2{% - \setbox\OutputBox=\hbox{\rput[tl]{90}{\vbox{##2}}}% - \NormalShipout\box\OutputBox}% - \voffset 9in} - -% This makes the Quick Reference: -\def\QuickReference{% - \begin{Landscape}{\paperwidth}{\paperheight}{\rotateleft} - \oddsidemargin 0pt - \evensidemargin 0pt - \topmargin -.5in - \textheight 6.5in - \textwidth 9in - \columnsep 60pt - \footskip 0pt - \footheight 0pt - \headheight 15pt - \headsep 40pt - \parskip 4pt plus 1pt minus 1pt - \UsePageParameters - \twocolumn - \def\label##1{} - \subsechang=-.25in - \pagenumbering{Roman} - \pagestyle{quickref} - \MacroDefCodes - \let\Main\string - \let\MainFont\UsageFont - \MainFont - \quickref - \end{Landscape}} -\let\QuickReference\relax - -\def\ps@quickref{% - \def\@oddhead{% - \large\bfseries\sffamily - \hbox to .5\textwidth{PSTricks v\Version\hfill}% - \hbox to \z@{\hss Quick Reference\hss}% - \hbox to .5\textwidth{\hfill\thepage}} - \let\@evenhead\@oddhead - \def\@oddfoot{}\def\@evenfoot{}} - -% For page numbering in the QR: -\setbox\pst@boxg=\hbox{\UsageFont 99} -\newdimen\refnumdim -\refnumdim=\wd\pst@boxg -\def\refnum#1{\hbox to \refnumdim{\hss\rmfamily\bfseries\pageref{#1}}} - -% Section commands that add an entry to the QR: -\def\Section#1{\addtoquickref{section}{#1}\@checksec\section{#1}} -\def\Subsection#1{\addtoquickref{section}{#1}\subsection{#1}} - -% This is just an error checker: -\def\@checksec{% - \def\@tempa{document}% - \ifx\@tempa\@currenvir\else - \@latexerr{\string\Section\space occurred inside - \@currenvir\space environment}\@ehc - \expandafter\end\expandafter{\@currenvir}% - \expandafter\@checksec - \fi} - -% The qr@ definitions: -\def\qr@@object#1{\mbox{\begingroup\escapechar`\+% - \refnum{\string#1}\endgroup\hskip 1em\string#1}} -\def\qr@object#1{\qr@@object#1\par} -\def\qr@@param#1=#2\@nil{\refnum{\string#1}} -\def\qr@param#1{\leavevmode\hbox to\hsize{\qr@@param#1\@nil\hskip 1em#1}\par} -\def\qr@section#1{\subsection*{#1}} -\long\def\qr@center#1{\begin{center}#1\end{center}} - -%%%%%%%%%%%%%%%%%%%% Parts %%%%%%%%%%%%%%%%%%%% - -\font\bighelv=phvb at 88bp - -% Macro names changed for compatibility with `hyperref' (D.G. - 02/28/03) -\def\part{\clearpage\leavevmode\@ifstar{\part@ii}{\part@i}} -\def\part@i#1{% - \refstepcounter{part}% - \addcontentsline{toc}{part}{\protect\pnumberline{\thepart}#1}% - \lower 20pt\hbox to \z@{\hss{\bighelv\Roman{part}}\hskip 2em}% - \part@iii{#1}} -\def\part@ii#1{\addcontentsline{toc}{part}{#1}\part@iii{#1}} -\def\part@iii#1{% -\markright{#1}{\sffamily\Huge\bfseries#1}\par\vskip 2cm\@afterheading} -\def\thepart{\Roman{part}} -% Problem with `hyperref' (D.G. - 02/28/03) -%\def\pnumberline#1{\hbox to2cm{Part #1\hfill}} -\def\pnumberline#1{Part #1\hspace{1cm}} - -\def\l@part#1#2{% - \addpenalty{\@secpenalty}% - \addvspace{\lpartskip}% - \begingroup - \@tempdima 1em - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - {\large\bfseries\leavevmode#1\hfil \hbox to\@pnumwidth{\hss #2}}\par - \nobreak - \endgroup} -\newskip\lpartskip -\lpartskip 1.25em plus 1pt minus 1pt - -%%%%%%%%%%%%%%%%%%%% Parameter definitions and indexing %%%%%%%%%%%%%%%%%%%% - -% Like \MainEnvIndex, etc., but for parameters: -\def\MainParIndex{\SpecialIndex{parameter}{main}} -\def\UsageParIndex{\SpecialIndex{parameter}{usage}} - -% Like \MainPar, but for parameters. Can optionally include =foo. -\def\MainPar#1{\@MainPar#1==\@nil} -\def\@MainPar#1=#2=#3\@nil{% - \MainParIndex{#1}% - \label{#1}% - {\MainFont #1\ifx#3=\relax=\MetaFont#2\fi}} - -% Analogous to \n, but optionally argument can include =foo. -\def\p#1{\@p#1==\@nil} -\def\@p#1=#2=#3\@nil{% - \UsageParIndex{#1}% - {\UsageFont #1\ifx#3=\relax=#2\fi}} - -% For listing parameter definitions in a {description} environment: -\def\pitem[#1]{\@ifnextchar({\@pitem#1}{\@@pitem#1\@nil}} -\def\@pitem#1=#2(#3){% - \item[\MainFont#1=\MetaFont#2]% % Set the definition in \MainFont - \MainParIndex{#1}% - \label{#1}% - \addtoquickref{param}{#1={\MetaFont #2}\hfill {\rmfamily Default:} #3}% - \hfill {\MainFont {\rmfamily Default:} #3}\par} -\def\@@pitem#1=#2\@nil{% - \@ifundefined{default@#1}% - {\@warning{Parameter `#1' default not defined.}\@eha\@pitem#1=#2()} - {\@pitem#1=#2(\csname default@#1\endcsname)}} - -% Read in a list of defaults extracted from pstricks.doc: -\begingroup - \catcode`\@=12 - \catcode`\{=12 - \catcode`\}=12 - \catcode`\&=1 - \catcode`\^=2 - \def\psset@&% - \begingroup - \catcode`\\=12 - \pssetxx^ - \def\pssetxx#1{#2}&% - \expandafter\gdef\csname default@#1\endcsname^% - \endgroup^ - \csname @input\endcsname&defaults.pst^ -\endgroup - -% For putting parameter definitions in an Ex environment: -\def\Par#1{\@ifnextchar({\@Par#1}{\@@Par#1\@nil}} -\def\@Par#1=#2(#3){% - \leavevmode - \MainParIndex{#1}% - \label{#1}% - \addtoquickref{param}{#1={\MetaFont #2}\hfill {\rmfamily Default:} #3}% - \hbox to\linewidth{% - \MainFont #1={\MetaFont#2}\hfill {\rmfamily Default:} #3}\par} -\def\@@Par#1=#2\@nil{% - \@ifundefined{default@#1}% - {\@warning{Parameter `#1' default not defined.}\@Par#1=#2()} - {\@Par#1=#2(\csname default@#1\endcsname)}} - - -%%%%%%%%%%%%%%%%%%%% Macro definitions and indexing %%%%%%%%%%%%%%%%%%%% - -% There are four commands for listing macro definitions: -% 1. \mitem : List in a description environment -% 2. \oitem : Like \mitem, but optional *[par] automatically inserted. -% 3. \object : List in a description environment. -% 4. \Mac : Short for \begin{Ex}\object foo\end{Ex}. -% -% In each case: -% 1. definition is delimited only by end-of-line. -% 2. {}, () and [] are literal, with contents set in \MetaFont -% 3. = and , are literal. -% 4. `foo' is for optional arguments. -% 5. <foo> is meta, as usual. - -\begingroup - \catcode`\(=13 - \catcode`\,=13 - \catcode`\==13 - \gdef\MacroDefCodes{% - \@MD - \catcode`\(13 - \catcode`\^^M12 - \catcode`\`13 - \catcode`\,13 - \catcode`\!1 - \catcode`\@2 - \def~{}% - \def={{\fontshape{n}\selectfont\string=}}% - \def,{{\fontshape{n}\selectfont\string,}}% - \def(##1){\string({\MetaFont ##1})}} -\endgroup - -\begingroup - \catcode`\`=13 \gdef`#1'{{\OpArgFont #1}} -\endgroup - -\begingroup - \catcode`\^^M=12\relax% - \gdef\GetMacroDef#1{\begingroup\MacroDefCodes\@GetMacroDef{#1}}% - \gdef\@GetMacroDef#1#2^^M{#1{#2}\endgroup}% -\endgroup - -% For listing macro definitions in a "description" environment: -\def\mitem{\GetMacroDef\@mitem} -\def\@mitem#1{% - \item[{\MainFont\Main#1}]% - \addtoquickref{object}{#1}% - \leavevmode\par} - -% For listing graphics object definitions in a {description} environment: -% The optional *[par] is inserted automatically. -\def\oitem{\GetMacroDef\@oitem} -\def\@oitem#1{\@@oitem#1\@nil} -\def\@@oitem#1#2\@nil{\@mitem{#1{\OpArgFont*[{\MetaFont par}]}#2}} - -% For generic macro definition, usually to be put in a displayed env. -\def\object{\GetMacroDef\@object} -\def\@object#1{\addtoquickref{object}{#1}{\MainFont\Main#1\@@par}} - -% For a single displayed macro definition: -\def\Mac{\GetMacroDef\@Mac} -\def\@Mac#1{\begin{Ex}\@object{#1}\end{Ex}} - - -%% We must hack the generation of indexes modified by `hyperref' -%% to generate the \hyperpage macro by ourselves (D.G. - 02/28/03) -\def\@@wrindex#1|#2|#3\\{% - \ifx\\#2\\% - \protected@write\@indexfile{}{% -% D.G. modification begin - Feb. 28, 2003 -% \string\indexentry{#1|hyperpage}{\thepage}% - \string\indexentry{#1}{\thepage}% -% D.G. modification end - }% - \else - \def\Hy@temp@A{#2}% - \ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi - \ifx\Hy@temp@A\HyInd@ParenRight 1\fi - \relax - \protected@write\@indexfile{}{% - \string\indexentry{#1|#2}{\thepage}% - }% - \else - \protected@write\@indexfile{}{% - \string\indexentry{#1|#2hyperpage}{\thepage}% - }% - \fi - \fi - \endgroup - \@esphack -} - -%%%%%%%%%%%%%%%%%%%% Indexes %%%%%%%%%%%%%%%%%%%% - -\def\PrintUserIndex{% - \clearpage - \columnsep=20pt - \advance\oddsidemargin\sechang - \advance\evensidemargin\sechang - \advance\textwidth-\sechang - \sechang=0pt - \onecolumn - \@input{\jobname.ind}} - -%%%%%%%%%%%%%%%%%%%% Special indexing for User's Guides %%%%%%%%%%%%%%%%%%%% - -\@ifundefined{actualchar}{\def\actualchar{@}}{} -\@ifundefined{quotechar}{\def\quotechar{"}}{} -\@ifundefined{levelchar}{\def\levelchar{!}}{} -\@ifundefined{encapchar}{\def\encapchar{|}}{} -\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{} - -%% These are the indexing commands: - -%% Commands: \MainIndex \UsageIndex -%% Environments: \MainEnvIndex \UsageEnvIndex -%% Style options: \MainOptionIndex \UsageOptionIndex -%% Counters: \MainCntIndex \UsageCntIndex - -\def\@Index#1{\@bsphack\index{#1}\@esphack} -\def\Index#1#2{% - \@bsphack - \index{\expandafter\@gobble\string#2\actualchar\string - \verb\quotechar*\verbatimchar\string#2\verbatimchar - \encapchar #1}} -{\catcode`\!=0 !catcode`!\=12!gdef!special@gobble#1{!if\#1!else#1!fi}} -\def\MainIndex{\Index{main}} -\def\UsageIndex{\Index{usage}} -\def\SpecialIndex#1#2#3{% - \@Index{#3\actualchar{\ttfamily #3} (#1)\encapchar #2}% - \@Index{#1s:\levelchar{\ttfamily #3}\encapchar #2}} -\def\MainEnvIndex{\SpecialIndex{environment}{main}} -\def\UsageEnvIndex{\SpecialIndex{environment}{usage}} -\def\MainOptionIndex{\SpecialIndex{option}{main}} -\def\UsageOptionIndex{\SpecialIndex{option}{usage}} -\def\MainCntIndex{\SpecialIndex{counter}{main}} -\def\UsageCntIndex{\SpecialIndex{counter}{usage}} - -%% Font for index page numbers: -%% We add hyperlinks (D.G. - 02/28/03) -\def\main#1{\textbf{\hyperpage{#1}}} -\def\usage#1{\hyperpage{#1}} - -%% These combine various functions: - -%% Commands: \Main \Usage -%% Environments: \MainEnv \UsageEnv -%% Style options: \MainOption \UsageOption -%% Counters: \MainCnt \UsageCnt - -%% The "Main" ones -%% * Index argument. -%% * Print argument with \MainFont -%% * Create label +foo, e+foo or o+foo. - -%% The "Usage" ones -%% * Index argument. -%% * Print argument with \UsageFont. - -\def\SpecialLabel#1#2+{\label{+#2}} -\def\LabelIndex#1{\MainIndex{#1}\expandafter\SpecialLabel\string#1+} -\def\Main#1{% - \MainIndex{#1}% - \expandafter\SpecialLabel\string#1+% - {\MainFont\string#1}} -\def\Usage#1{\UsageIndex{#1}{\UsageFont\string#1}} -\def\MainEnv#1{% - \MainEnvIndex{#1}% - \label{e+#1}% - {\MainFont #1}} -\def\UsageEnv#1{\UsageEnvIndex{#1}{\UsageFont #1}} -\def\MainOption#1{% - \MainOptionIndex{#1}% - \label{o+#1}% - {\MainFont #1}} -\def\UsageOption#1{\UsageOptionIndex{#1}{\UsageFont #1}} -\def\MainCnt#1{% - \MainCntIndex{#1}% - \label{c+#1}% - {\MainFont #1}} -\def\UsageCnt#1{\UsageCntIndex{#1}{\UsageFont #1}} - -%% These are abbreviations. -\def\N{\Main} -\def\n{\Usage} -\def\E{\MainEnv} -\def\e{\UsageEnv} -\def\O{\MainOption} -\def\o{\UsageOption} -\def\C{\MainCnt} -% D.G. modification begin - Mar. 4, 2003 -% The \c macro was already defined for coordinates -%\def\c{\UsageCnt} -% D.G. modification end - -%% User's guide and documented code have different index prologue. -\def\PrintUserIndex{{\let\ps@plain\@empty\@input{\jobname.ind}}} - -%% This is for listing commands in a description environment. -\def\xitem#1{\item[\Main{#1}]} - -\begingroup - \catcode`\<=1 \catcode`\>=2 - \catcode`\{=13 \catcode`\}=12 - \catcode`\[=13 - \gdef\@MD<% - \catcode`\{=13 \catcode`\}=12 \catcode`\[=13 - \def{##1}<\{<\MetaFont ##1\/>\}>% - \def[##1]<\string[<\MetaFont ##1\/>]>> -\endgroup -\def\MD{% - \NotNested - \Ex - \begingroup - \@MD - \def\end{\par\endgroup\end}% - \def\\{\@centercr\Main}% - \MainFont - \Main} -\def\endMD{\endEx} - -%%%%%%%%%%%%%%%%%%%% Framed warnings %%%%%%%%%%%%%%%%%%%% - -\newbox\bombbox -\setbox\bombbox=\hbox to\z@{% - \hss - \rput[r](-1.5cm,0){% - \psset{unit=7pt} - \begin{pspicture}(-4,-4)(4,4) - \pscircle[fillcolor=gray,fillstyle=solid]{4} - \rput{45}{\psscaleboxto(6,0){PS\kern-1pt}} - \psellipse*(0,3.8)(1,.2) - \psellipse*(0,5.5)(1,.2) - \psframe*(-1,3.8)(1,5.5) - \psbezier(0,5.5)(0,7)(1,8)(3.5,8) - \multido{\r=-0+40}{9}{\rput{\r}(3.5,8){\psline(0,0)(.4,0)}} - \end{pspicture}}} - -\def\Warning{% - \trivlist\item[] - \leavevmode\kern\@totalleftmargin - \valign\bgroup% - \vfil##\vfil\cr - \copy\bombbox\cr - \minipage{\textwidth} - \quote - \emph{Warning:}\hskip 1em - \ignorespaces} -\def\endWarning{\endquote\endminipage\cr\egroup\endtrivlist} - -\newbox\filebox -\setbox\filebox=\hbox{% - \pspicture(-1,-.5)(1,.7) - \pspolygon[linearc=2pt,shadow=true,shadowangle=45,xunit=1.1]% - (-1,-.55)(-1,.5)(-.8,.5)(-.8,.65)(-.2,.65)(-.2,.5)(1,.5)(1,-.55) - \endpspicture} -\def\File#1{% - \leavevmode - \marginpar{% - \leavevmode\lower 20pt\hbox{% - \hbox to0pt{\hbox to \linewidth{\hss\copy\filebox\hss}\hss}% - \raise 10pt\hbox to \linewidth{\hss\large\bfseries\sffamily #1\hss}}}% - \ignorespaces} - - -%%%%%%%%%%%%%%%%%%%% Miscellaneous %%%%%%%%%%%%%%%%%%%% - -% Driver notes: -\def\drivers{\noindent\small Driver notes:\hskip 1em\ignorespaces} - -\endinput - -%% END pst-user.cls diff --git a/Master/texmf-dist/source/generic/pstricks/pst-user.ist b/Master/texmf-dist/source/generic/pstricks/pst-user.ist deleted file mode 100644 index a00718a2e08..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/pst-user.ist +++ /dev/null @@ -1,7 +0,0 @@ -% headings_flag 1 -% heading_prefix "{\\Large\\textbf{Letter}" -% heading_suffix "}" - -delim_0 " \\dotfill \ " -delim_1 " \\dotfill \ " -delim_2 " \\dotfill \ " diff --git a/Master/texmf-dist/source/generic/pstricks/pst-user.tex b/Master/texmf-dist/source/generic/pstricks/pst-user.tex deleted file mode 100644 index 08ef5b2bc5b..00000000000 --- a/Master/texmf-dist/source/generic/pstricks/pst-user.tex +++ /dev/null @@ -1,87 +0,0 @@ -%% BEGIN pst-user.tex -%% -%% LaTeX file pst-user.tex. Source for the PSTricks User's Guide. -%% -%% COPYRIGHT 1993-2003, by Timothy Van Zandt, tvz@econ.insead.fr -%% COPYRIGHT 2008, by Herbert Voss, voss@pstricks.de -%% -%% This program can be redistributed and/or modified under the terms -%% of the Artistic License. -%% A copy of that license is included in the file artistic.txt. -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Under normal circumstances, you do not need to LaTeX this file because -%% the User's Guide is distributed with the PSTricks package, already -%% typeset and converted to PDF in the file pst-user.pdf. -%% -%% If you do need/want to run it again, here is what to do: -%% -%% * You must have installed the PSTricks package. -%% -%% * You must have the LaTeX packages `fancybox', `fancyvrb', `geometry', -%% `hyperref' and the file "pst-user.cls" which is the document class -%% to format this documentation. -%% -%% * An index, pst-user.ind, is also distributed with PSTricks. You -%% can use makeindex, without any special styles, to remake the index. -%% -%% * Style options: -%% a4paper : For A4 paper. -%% twoside : For two-sided printing. -%% 2up : For two-up printing. -%% makeindex : Create a new idx file for making an index. -%% (it is not necessary to remake the index, -%% if you make no other changes.) -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\listfiles - -%\documentclass[a4paper]{pst-user} -%\documentclass[11pt,makeindex]{pst-user} -\documentclass[11pt]{pst-user} - -\def\Date{07/12/10} -\def\Version{1.5} - -\includeonly{% - psd-cove,% - psd-esse,% - psd-basi,% - psd-para,% - psd-cust,% - psd-pict,% - psd-text,% - psd-node,% - psd-tree,% - psd-fill,% - psd-3d,% - psd-spec,% - psd-help% -} - -\makeindex % Comment it to do regenerate the index - -\begin{document} - -\include{psd-cove} % Cover page; Table of Contents -\include{psd-esse} % Welcome to PSTricks; The essentials -\include{psd-basi} % Basic graphics objects -\include{psd-para} % More graphics parameters -\include{psd-cust} % Custom graphics -\include{psd-pict} % Picture tools -\include{psd-text} % Text tricks -\include{psd-node} % Nodes and node connections -\include{psd-tree} % Trees -\include{psd-fill} % Filling and tilings -\include{psd-3d} % 3d graphics -\include{psd-spec} % Special Tricks -\include{psd-help} % Help (appendix) - -\PrintUserIndex % Comment out to suppress index -\QuickReference % Comment out to suppress quick reference - -\end{document} - -%% END pst-user.tex diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-all.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pst-all.sty index 8ac0ada25bf..8ac0ada25bf 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pst-all.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pst-all.sty diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-key.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pst-key.sty index 74db6c70a9a..74db6c70a9a 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pst-key.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pst-key.sty diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-node.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pst-node.sty index e930966dc41..e930966dc41 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pst-node.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pst-node.sty diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-plot.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pst-plot.sty index 598b46de429..598b46de429 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pst-plot.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pst-plot.sty diff --git a/Master/texmf-dist/tex/latex/pstricks/pst-tree.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pst-tree.sty index 73682620386..73682620386 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pst-tree.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pst-tree.sty diff --git a/Master/texmf-dist/tex/latex/pstricks/pstcol.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pstcol.sty index 29c4affd9f9..29c4affd9f9 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pstcol.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pstcol.sty diff --git a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty b/Master/texmf-dist/tex/generic/pstricks/latex/pstricks.sty index 13d26a87df4..2b7a1a875f9 100644 --- a/Master/texmf-dist/tex/latex/pstricks/pstricks.sty +++ b/Master/texmf-dist/tex/generic/pstricks/latex/pstricks.sty @@ -52,11 +52,11 @@ [\filedate\space v\fileversion\space `PSTricks' (tvz)] \IfFileExists{pstricks.pro}{% \ProvidesFile{pstricks.pro} - [2008/01/01 v. 1.03, PostScript prologue file (hv)] + [2008/01/01 v. 1.05, PostScript prologue file (hv)] \@addtofilelist{pstricks.pro}}{}% \IfFileExists{pst-dots.pro}{% \ProvidesFile{pst-dots.pro} - [2006/12/19 v. 2.00, PostScript prologue file (hv)] + [2006/12/19 v. 2.02, PostScript prologue file (hv)] \@addtofilelist{pst-dots.pro}}{}% \IfFileExists{pst-algparser.pro}{% \ProvidesFile{pst-algparser.pro} diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex index 30fc49962e6..36d61daba0e 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pst-node.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pst-node.tex @@ -4,10 +4,11 @@ %% See the betadoc documentation for usage. %% This uses the header file `pst-node.pro'. %% -\def\fileversion{97 patch 11} -\def\filedate{2000/11/09} +\def\fileversion{1.00} +\def\filedate{2007/10/16} %% %% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. +%% COPYRIGHT by Herbert Voss, hvoss@tug.org. %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN @@ -19,23 +20,26 @@ \ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi\relax \edef\TheAtCode{\the\catcode`\@} \catcode`\@=11 +% \pstheader{pst-node.pro} +% \def\pst@nodedict{tx@NodeDict begin } \def\pst@zapspace#1 #2{% #1% \ifx#2\@empty\else\expandafter\pst@zapspace\fi #2} -\def\pst@getnode#1#2{% -\pst@expandafter\pst@@getnode{#1},,\@nil#2} +% +\def\pst@getnode#1#2{\pst@expandafter\pst@@getnode{#1},,\@nil#2} \def\pst@@getnode#1,#2,#3\@nil#4{% -\ifx\@empty#3\@empty -\edef#4{/N@\pst@zapspace#1 \@empty\space}% -\else -\pst@cntg=#1\relax -\pst@cnth=#2\relax -\edef#4{/N@M-\ifnum\psmatrixcnt=\z@ 1\else\the\psmatrixcnt\fi --\the\pst@cntg-\the\pst@cnth\space}% -\fi} + \ifx\@empty#3\@empty + \edef#4{/N@\pst@zapspace#1 \@empty\space}% + \else + \pst@cntg=#1\relax + \pst@cnth=#2\relax + \edef#4{/N@M-\ifnum\psmatrixcnt=\z@ 1\else\the\psmatrixcnt\fi + -\the\pst@cntg-\the\pst@cnth\space}% + \fi} +% \def\tx@NewNode{NewNode } \def\pst@newnode#1#2#3#4{% % DG/SR modification begin - Nov. 9, 2000 - Patch 11 @@ -44,14 +48,15 @@ \leavevmode \pst@getnode{#1}\pst@thenode \pst@Verb{% -\pst@nodedict -{#3} -\ifx\psk@name\relax false \else \psk@name true \fi -\pst@thenode -#2 -{#4} -\tx@NewNode -end}% + \pst@nodedict + {#3} + \ifx\psk@name\relax false \else \psk@name true \fi + \pst@thenode + #2 + {#4} + \tx@NewNode + end }% +% \global\let\psk@name\relax \pstree@nodehook \global\let\pstree@nodehook\relax} @@ -100,20 +105,21 @@ end}% \def\Cnode{\pst@object{Cnode}} \def\Cnode@i{\@ifnextchar({\Cnode@ii}{\Cnode@ii(0,0)}} \def\Cnode@ii(#1)#2{\cnode@ii(#1){\psk@radius}{#2}}% +% \def\cnodeput{\pst@object{cnodeput}} \def\cnodeput@i{\@ifnextchar({\cnodeput@iii}{\cnodeput@ii}} \def\cnodeput@ii#1{% -\addto@par{rot={#1}}% -\@ifnextchar({\cnodeput@iii}{\cnodeput@iii(\z@,\z@)}} + \addto@par{rot={#1}}% + \@ifnextchar({\cnodeput@iii}{\cnodeput@iii(\z@,\z@)}} \def\cnodeput@iii(#1)#2{% -\pst@killglue -\@fixedradiusfalse -\def\pst@nodehook{\cnodeput@iv{#2}}% -\pst@makebox{\cput@v{#1}}} + \pst@killglue + \@fixedradiusfalse + \def\pst@nodehook{\cnodeput@iv{#2}}% + \pst@makebox{\cput@v{#1}}} \def\cnodeput@iv#1{% -\pst@newnode{#1}{11}{\pscirclebox@iv \pst@number\pslinewidth add}% -{\tx@InitCnode}% -\global\let\pst@nodehook\relax} + \pst@newnode{#1}{11}{\pscirclebox@iv \pst@number\pslinewidth add}{\tx@InitCnode}% + \global\let\pst@nodehook\relax} +% \def\Cnodeput{\pst@object{Cnodeput}} \def\Cnodeput@i{\@ifnextchar({\Cnodeput@iii}{\Cnodeput@ii}} \def\Cnodeput@ii#1{% @@ -133,18 +139,18 @@ end}% \def\circlenode{\pst@object{circlenode}} \def\circlenode@i#1{\pst@makebox{\circlenode@ii{#1}}} \def\circlenode@ii#1{% -\begingroup -\pst@useboxpar -\setbox\pst@hbox=\hbox{% -\cnodeput@iv{#1}% -\pscirclebox@iii -\box\pst@hbox}% -\ifnodealign \psboxseptrue \fi -\ifpsboxsep \pscirclebox@sep \fi -\leavevmode -\ifnodealign\pst@nodealign\fi -\box\pst@hbox -\endgroup} + \begingroup + \pst@useboxpar + \setbox\pst@hbox=\hbox{% + \cnodeput@iv{#1}% + \pscirclebox@iii + \box\pst@hbox}% + \ifnodealign \psboxseptrue \fi + \ifpsboxsep \pscirclebox@sep \fi + \leavevmode + \ifnodealign\pst@nodealign\fi + \box\pst@hbox + \endgroup} \def\Circlenode{\pst@object{Circlenode}} \def\Circlenode@i#1{\pst@makebox{\Circlenode@ii{#1}}} \def\Circlenode@ii#1{% @@ -466,48 +472,47 @@ x2 add /x2 ED \def\tx@GetEdgeB{GetEdgeB } \def\tx@GetArmA{GetArmA } \def\tx@GetArmB{GetArmB } +% \def\check@arrow#1#2{% -\check@@arrow#2-\@nil -\if@pst -\addto@par{arrows=#2}% -\def\next{#1}% -\else -\def\next{#1{#2}}% -\fi -\next} + \check@@arrow#2-\@nil + \if@pst\addto@par{arrows=#2}\def\next{#1}% + \else\def\next{#1{#2}}\fi + \next} \def\check@@arrow#1-#2\@nil{% \ifx\@nil#2\@nil\@pstfalse\else\@psttrue\fi} +% \def\tx@InitNC{InitNC } \def\nc@object#1#2#3#4#5{% -\csname begin@#1Obj\endcsname -\showpointsfalse -\pst@getnode{#2}\pst@tempa -\pst@getnode{#3}\pst@tempb -\gdef\npos@default{#4 }% -\addto@pscode{% -/NCLW CLW def -\pst@nodedict -\psk@offsetA -\psk@offsetB neg -\psk@nodesepA -\psk@nodesepB -\psk@nodeseptypeA -\psk@nodeseptypeB -\pst@tempa -\pst@tempb -\tx@InitNC { #5 } if -end}% -\def\use@pscode{% -\pst@Verb{gsave \tx@STV newpath \pst@code\space grestore}% -\gdef\pst@code{}}% -\csname end@#1Obj\endcsname -\pst@shortput} + \csname begin@#1Obj\endcsname + \showpointsfalse + \pst@getnode{#2}\pst@tempa + \pst@getnode{#3}\pst@tempb + \gdef\npos@default{#4 }% + \addto@pscode{% + /NCLW CLW def + \pst@nodedict + \psk@offsetA + \psk@offsetB neg + \psk@nodesepA + \psk@nodesepB + \psk@nodeseptypeA + \psk@nodeseptypeB + \pst@tempa + \pst@tempb + \tx@InitNC { #5 } if + end }% + \def\use@pscode{% + \pst@Verb{gsave \tx@STV newpath \pst@code\space grestore}% + \gdef\pst@code{}}% + \csname end@#1Obj\endcsname + \pst@shortput} +% \def\npos@default{.5 } \def\pc@object#1{% \@ifnextchar({\pc@@object#1}{\pst@getarrows{\pc@@object#1}}} \def\pc@@object#1(#2)(#3){% -\pnode(#2){@@A}\pnode(#3){@@B}% -#1{@@A}{@@B}} + \pnode(#2){@@A}\pnode(#3){@@B}% + #1{@@A}{@@B}} \def\tx@LPutLine{LPutLine } \def\tx@LPutLines{LPutLines } \def\tx@BezierMidpoint{BezierMidpoint } @@ -522,11 +527,14 @@ end}% \def\tx@HPutCurve{HPutCurve } \def\tx@NCCoor{NCCoor } \def\tx@NCLine{NCLine } +% \def\ncline{\pst@object{ncline}} \def\ncline@i{\check@arrow{\ncline@ii}} \def\ncline@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{\tx@NCLine}} +% \def\pcline{\pst@object{pcline}} \def\pcline@i{\pc@object\ncline@ii} +% \def\ncLine{\pst@object{ncLine}} \def\ncLine@i{\check@arrow{\ncLine@ii}} \def\ncLine@ii#1#2{\nc@object{Open}{#1}{#2}{.5}% @@ -534,6 +542,7 @@ end}% %{\tx@NCLine /LPutPos { xB xA yB yA \tx@LPutLine } def}} {\tx@NCLine /LPutPos { xB yB xA yA \tx@LPutLine } def}} % DG/SR modification end +% \def\tx@NCLines{NCLines } \def\nclines{\pst@object{nclines}} \def\nclines@i{\check@arrow\nclines@ii} @@ -553,34 +562,41 @@ mark \pst@coors \tx@NCLines}% \def\nccurve{\pst@object{nccurve}} \def\nccurve@i{\check@arrow{\nccurve@ii}} \def\nccurve@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{% -/AngleA \psk@angleA\space def /AngleB \psk@angleB\space def -\psk@ncurvB\space \psk@ncurvA\space -\tx@NCCurve}} + /AngleA \psk@angleA\space def /AngleB \psk@angleB\space def + \psk@ncurvB\space \psk@ncurvA\space + \tx@NCCurve}} \def\pccurve{\pst@object{pccurve}} \def\pccurve@i{\pc@object\nccurve@ii} +% \def\ncarc{\pst@object{ncarc}} \def\ncarc@i{\check@arrow{\ncarc@ii}} \def\ncarc@ii#1#2{\nc@object{Open}{#1}{#2}{.5}{% -yB yA sub xB xA sub \tx@Atan dup -\psk@arcangleA\space add /AngleA ED -\psk@arcangleB\space sub 180 add /AngleB ED -\psk@ncurvB\space \psk@ncurvA\space -\tx@NCCurve}} + yB yA sub xB xA sub \tx@Atan dup + \psk@arcangleA\space add /AngleA ED + \psk@arcangleB\space sub 180 add /AngleB ED + \psk@ncurvB\space \psk@ncurvA\space + \tx@NCCurve}} \def\pcarc{\pst@object{pcarc}} \def\pcarc@i{\pc@object\ncarc@ii} +% \def\tx@NCAngles{NCAngles } +\newif\ifPst@pcRef% border or center as reference point (hv) +\def\psset@pcRef#1{\@nameuse{Pst@pcRef#1}} +\psset@pcRef{false} \def\ncangles{\pst@object{ncangles}} \def\ncangles@i{\check@arrow{\ncangles@ii}} \def\ncangles@ii#1#2{% -\nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngles}} + \nc@object{Open}{#1}{#2}{1.5}{\ncangles@iii \tx@NCAngles}} \def\ncangles@iii{% -tx@Dict begin \psline@iii pop end -/AngleA \psk@angleA def -/AngleB \psk@angleB def -/ArmA \psk@armA def -/ArmB \psk@armB def -/ArmTypeA \psk@armtypeA def -/ArmTypeB \psk@armtypeB def } + tx@Dict begin \psline@iii pop end + /AngleA \psk@angleA def + /AngleB \psk@angleB def + /ArmA \psk@armA \ifPst@pcRef + GetEdgeA yA yA1 sub dup mul xA xA1 sub dup mul add sqrt sub \fi def + /ArmB \psk@armB def + /ArmTypeA \psk@armtypeA def + /ArmTypeB \psk@armtypeB def } +% \def\pcangles{\pst@object{pcangles}} \def\pcangles@i{\pc@object\ncangles@ii} \def\tx@NCAngle{NCAngle } @@ -688,25 +704,25 @@ tx@Dict begin \psline@iii pop end \def\ncput{\pst@object{ncput}} \def\ncput@i{\pst@killglue\pst@makebox{\ncput@ii}} \def\ncput@ii{% -\begingroup -\use@par -\if@star\pst@starbox\fi -\pst@makesmall\pst@hbox -\pst@rotate\psk@nrot\pst@hbox -\ncput@iii -\endgroup -\pst@shortput} + \begingroup + \use@par + \if@star\pst@starbox\fi + \pst@makesmall\pst@hbox + \pst@rotate\psk@nrot\pst@hbox + \ncput@iii + \endgroup + \pst@shortput} \def\ncput@iii{% -\leavevmode -\hbox{% -\pst@Verb{% -\pst@nodedict -/t \psk@npos def -\tx@LPut -end -\tx@PutBegin}% -\box\pst@hbox -\pst@Verb{\tx@PutEnd}}} + \leavevmode + \hbox{% + \pst@Verb{% + \pst@nodedict + /t \psk@npos def + \tx@LPut + end + \tx@PutBegin}% + \box\pst@hbox + \pst@Verb{\tx@PutEnd}}} \def\naput{\pst@object{naput}} \def\naput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 add}}} \def\naput@ii#1{% @@ -724,22 +740,22 @@ end \def\nbput{\pst@object{nbput}} \def\nbput@i{\pst@killglue\pst@makebox{\naput@ii{NAngle 90 sub}}} \def\psset@tpos#1{% -\pst@checknum{#1}\psk@tpos -\ifdim\psk@tpos \p@<\z@ -\def\psk@tpos{.5}% + \pst@checknum{#1}\psk@tpos + \ifdim\psk@tpos \p@<\z@ + \def\psk@tpos{.5}% % DG/SR modification begin - Sep. 23, 1998 - Patch 7 %\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@epha -\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa + \@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa % DG/SR modification end -\else -\ifdim\psk@tpos \p@>\p@ -\def\psk@tpos{.5}% + \else + \ifdim\psk@tpos \p@>\p@ + \def\psk@tpos{.5}% % DG/SR modification begin - Sep. 23, 1998 - Patch 7 %\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@epha -\@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa + \@pstrickserr{Bad `tpos' value: `#1'. Must be 0<tpos<1}\@ehpa% % DG/SR modification end -\fi -\fi} + \fi% + \fi} \psset@tpos{.5} \def\tvput{\pst@object{tvput}} \def\tvput@i{\pst@makebox{\psput@tput{H}{1}}} @@ -756,41 +772,43 @@ end \def\tx@HPutAdjust{HPutAdjust } \def\tx@VPutAdjust{VPutAdjust } \def\psput@tput#1#2{% -\begingroup -\use@par -\pst@tputmakesmall -\leavevmode -\hbox{% -\pst@Verb{% -\pst@nodedict -/t \psk@tpos \pst@tposflip def -tx@NodeDict /HPutPos known -{ #1PutPos } -{ CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } -ifelse -/Sin NAngle sin def -/Cos NAngle cos def -/s \pst@number\pslabelsep NCLW add def -/l \pst@number\pst@dima def -/r \pst@number\pst@dimb def -/h \pst@number\pst@dimc def -/d \pst@number\pst@dimd def + \begingroup + \use@par + \pst@tputmakesmall + \leavevmode + \hbox{% + \pst@Verb{% + \pst@nodedict + /t \psk@tpos \pst@tposflip def + tx@NodeDict /HPutPos known + { #1PutPos } + { CP /Y ED /X ED /NAngle 0 def /NCLW 0 def } + ifelse + /Sin NAngle sin def + /Cos NAngle cos def + /s \pst@number\pslabelsep NCLW add def + /l \pst@number\pst@dima def + /r \pst@number\pst@dimb def + /h \pst@number\pst@dimc def + /d \pst@number\pst@dimd def % DG/SR modification begin - Sep. 26, 1997 - Patch 4 %\ifnum1=0#2\else -\ifnum1=0#2 \else + \ifnum1=0#2 \else % DG/SR modification end -/flag #2 def -\csname tx@#1PutAdjust\endcsname -\fi -\tx@LPutCoor -end -\tx@PutBegin}% -\box\pst@hbox -\pst@Verb{\tx@PutEnd}}% -\endgroup -\pst@shortput} + /flag #2 def + \csname tx@#1PutAdjust\endcsname + \fi + \tx@LPutCoor + end + \tx@PutBegin}% + \box\pst@hbox + \pst@Verb{\tx@PutEnd}}% + \endgroup + \pst@shortput} +% \def\pst@tposflip{} \def\pst@tputmakesmall{% +% \pst@dima=\wd\pst@hbox \divide\pst@dima 2 \pst@dimg=\psk@href\pst@dimg @@ -914,14 +932,13 @@ end \def\Bput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Bput@i}{\nbput@i}}} \def\Bput@i[#1]{\addto@par{labelsep=#1}\nbput@i} \def\node@coor#1;#2\@nil{% -\pst@getnode{#1}\pst@tempg -\edef\pst@coor{% -\pst@nodedict -tx@NodeDict \pst@tempg known -{ \pst@tempg load \tx@GetCenter } -{ 0 0 } -ifelse -end }} + \pst@getnode{#1}\pst@tempg + \edef\pst@coor{% + \pst@nodedict + tx@NodeDict \pst@tempg known + \pslbrace \pst@tempg load \tx@GetCenter \psrbrace + \pslbrace 0 0 \psrbrace ifelse + end }} \def\Node@coor[#1]#2;#3\@nil{% \begingroup \psset{#1}% @@ -978,95 +995,89 @@ end }}% %\let\mscount\@multicnt \ifx\mscount\@undefined\let\mscount\@multicnt\fi % DG/SR modification end -\def\psmatrix{% - \begingroup -{\ifnum0=`}\fi % Don't want to expand any &. -\@ifnextchar[{\psmatrix@i}{\ifnum0=`{\fi}{}\psmatrix@ii}} +\def\psmatrix{\begingroup{\ifnum0=`}\fi % Don't want to expand any &. + \@ifnextchar[{\psmatrix@i}{\ifnum0=`{\fi}{}\psmatrix@ii}} \def\psmatrix@i[#1]{% -\ifnum0=`{\fi}{}% -\psset{#1}% -\psmatrix@ii} + \ifnum0=`{\fi}{}% + \psset{#1}% + \psmatrix@ii} \def\psmatrix@ii{% -\KillGlue -\edef\psm@beginmath{% -\ifmmode$\m@th\ifinner\textstyle\else\displaystyle\fi\fi}% -\edef\psm@endmath{\ifmmode$\fi}% -\let\\\psm@cr -\advance\psmatrixcnt 1 -\def\psm@thenode{M-\the\psmatrixcnt-\the\psrow-\the\pscol}% -\tabskip\z@ -\psrow1 -\pscol\z@ -\psset@shortput{tablr}% -\leavevmode -\vbox\bgroup\halign\bgroup&% -\begingroup -\global\advance\pscol 1 -\csname psrowhook\romannumeral\psrow\endcsname -\csname pscolhook\romannumeral\pscol\endcsname -\psm@beginnode##\psm@endnode\endgroup -\cr} + \KillGlue + \edef\psm@beginmath{% + \ifmmode$\m@th\ifinner\textstyle\else\displaystyle\fi\fi}% + \edef\psm@endmath{\ifmmode$\fi}% + \let\\\psm@cr + \advance\psmatrixcnt 1 + \def\psm@thenode{M-\the\psmatrixcnt-\the\psrow-\the\pscol}% + \tabskip\z@ + \psrow1 + \pscol\z@ + \psset@shortput{tablr}% + \leavevmode + \vbox\bgroup\halign\bgroup&% + \begingroup + \global\advance\pscol 1 + \csname psrowhook\romannumeral\psrow\endcsname + \csname pscolhook\romannumeral\pscol\endcsname + \psm@beginnode##\psm@endnode\endgroup + \cr} +% \def\endpsmatrix{% -\crcr\egroup\unskip\egroup -\endgroup} -\def\psm@cr{{\ifnum0=`}\fi\@ifnextchar[{\psm@@cr}{\psm@@@cr{}}} + \crcr\egroup\unskip\egroup + \endgroup} +% +% hv 2007-10-16 fix bug with \\[name=...] +%\def\psm@cr{{\ifnum0=`}\fi\@ifnextchar[{\psm@@cr}{\psm@@@cr{}}} +\def\psm@cr{{\ifnum0=`}\fi\ps@ifnextchar[{\psm@@cr}{\psm@@@cr{}}} +% \def\psm@@cr[#1]{\psm@@@cr{\vskip#1\relax}} \def\psm@@@cr#1{% -\ifnum0=`{\fi}{}\cr -\noalign{% -\global\advance\psrow 1 -\global\pscol\z@ -\vskip\psrowsep -#1}} + \ifnum0=`{\fi}{}\cr + \noalign{% + \global\advance\psrow 1 + \global\pscol\z@ + \vskip\psrowsep + #1}} \def\psm@beginnode{% -\@ifnextchar\psm@endnode -{\let\psm@endnode@i\relax\setbox\pst@hbox=\hbox{}}% -{\pst@object{psm@beginnode}}} + \@ifnextchar\psm@endnode + {\let\psm@endnode@i\relax\setbox\pst@hbox=\hbox{}}% + {\pst@object{psm@beginnode}}} \def\psm@beginnode@i{% -\setbox\pst@hbox=\hbox\bgroup -\psm@beginmath -\begingroup -\ignorespaces} + \setbox\pst@hbox=\hbox\bgroup + \psm@beginmath + \begingroup + \ignorespaces} \def\psm@endnode@i{% -\unskip -\endgroup -\psm@endmath -\egroup -\use@par -\@psttrue} + \unskip + \endgroup + \psm@endmath + \egroup + \use@par + \@psttrue} \def\psm@endnode{% -\@pstfalse -\psm@endnode@i -\ifnum\pscol>1 \hskip\pscolsep \fi -\psk@mnodesize -\hfil -\nodealigntrue -\if@pst -\csname mnode@\psk@mnode\endcsname -\else -\csname mnode@\psk@emnode\endcsname -\fi -\psk@mcol -\psk@@mnodesize} + \@pstfalse + \psm@endnode@i + \ifnum\pscol>1 \hskip\pscolsep \fi + \psk@mnodesize + \hfil + \nodealigntrue + \if@pst\csname mnode@\psk@mnode\endcsname + \else\csname mnode@\psk@emnode\endcsname\fi + \psk@mcol + \psk@@mnodesize} % DG/SR modification begin - Sep. 3, 1999 - Patch 10 - From Michael Sharpe %\def\psspan#1{\mscount#1\relax\loop\ifnum\mscount>\@ne \sp@n\repeat} \def\psspan#1{\global\mscount#1\relax\pstloop\ifnum\mscount>\@ne\sp@n\repeat} \def\pstloop#1\repeat{\gdef\pstiterate{#1\relax\expandafter\pstiterate\fi}% -\pstiterate -\let\pstiterate\relax} + \pstiterate + \let\pstiterate\relax} % DG/SR modification end \def\psset@name#1{\pst@getnode{#1}\psk@name} \let\psk@name\relax \def\psset@mcol#1{% -\ifx r#1\relax -\let\psk@mcol\relax -\else -\ifx l#1\relax -\let\psk@mcol\hfill -\else -\let\psk@mcol\hfil -\fi -\fi} + \ifx r#1\relax\let\psk@mcol\relax\else + \ifx l#1\relax\let\psk@mcol\hfill\else + \let\psk@mcol\hfil\fi\fi} \psset@mcol{c} \def\psset@mnodesize#1{% \pssetlength\pst@dimg{#1}% @@ -1086,6 +1097,9 @@ end }}% \def\mnode@C{{\nodealigntrue\cnode@ii(\z@,\z@){\psk@radius}{\psm@thenode}}} \def\mnode@f{{\nodealigntrue\fnode@ii(\z@,\z@){\psm@thenode}}} \def\mnode@circle{\circlenode@ii{\psm@thenode}} +% hv modification begin - Aug. 16, 2007 +\def\mnode@Circle{\Circlenode@ii{\psm@thenode}} +% hv modification end - Aug. 16, 2007 \def\mnode@p{\pnode(\z@,\z@){\psm@thenode}} % DG/SR modification begin - Jul. 22, 1997 - Patch 1 \def\mnode@dot{\dotnode@ii(\z@,\z@){\psm@thenode}} diff --git a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex index 4ce191dde77..d2fff22ed98 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pst-plot.tex @@ -24,8 +24,8 @@ \expandafter\next \fi -\def\fileversion{1.00} -\def\filedate{2007/06/26} +\def\fileversion{1.01} +\def\filedate{2008/01/26} \message{ v\fileversion, \filedate} @@ -66,6 +66,7 @@ D\space##1% \fi*% \let(,\let),\let{,\let},\let ,\let^^M,\let_\@empty*% End def \endgroup +% \begingroup \catcode`\,=13 \catcode`\_=13 @@ -75,14 +76,15 @@ D\space##1% \let#1\pst@tempg \global\let\pst@tempg\relax \ignorespaces} +% \gdef\readdata@{% \read1 to \pst@tempa \expandafter\readdata@@\pst@tempa_\@nil \ifeof1\else\expandafter\readdata@\fi} -\gdef\pst@@readfile#1#2\@nil{\addto@pscode{,#1#2}}% -\gdef\readdata@@#1#2\@nil{\xdef\pst@tempg{\pst@tempg,#1#2}}% + \gdef\pst@@readfile#1#2\@nil{\addto@pscode{,#1#2}}% + \gdef\readdata@@#1#2\@nil{\xdef\pst@tempg{\pst@tempg,#1#2}}% \endgroup - +% \def\readdata#1#2{% \openin1=#2 \begingroup @@ -97,6 +99,7 @@ D\space##1% \fi \endgroup \let#1\pst@tempg +% \ifnum\Pst@Debug>0 \typeout{==DEBUG== pst-plot:readdata:\string\pst@tempg: \pst@tempg}\fi% hv 2008-02-28 \global\let\pst@tempg\relax \ignorespaces} @@ -298,23 +301,19 @@ n 0 eq not \@nameuse{beginqp@\psplotstyle}% /Do { \@nameuse{doqp@\psplotstyle}} def } def}% - #1% - \addto@pscode{D}% + #1% % this is \pst@readfile{#1} for fileplot + \addto@pscode{ D }% \@nameuse{endqp@\psplotstyle}} \def\fileplot{\def\pst@par{}\pst@object{fileplot}} \def\fileplot@i#1{% - \pst@killglue - \begingroup - \use@par - \@pstfalse + \pst@killglue% + \begingroup% + \use@par% + \@pstfalse% \@nameuse{testqp@\psplotstyle}% - \if@pst - \dataplot@ii{\pst@readfile{#1}}% - \else - \listplot@ii{\pst@altreadfile{#1}}% - \fi - \endgroup + \if@pst\dataplot@ii{\pst@readfile{#1}}\else\listplot@ii{\pst@altreadfile{#1}}\fi% + \endgroup% \ignorespaces} \pst@def{ScalePoints}<% @@ -539,32 +538,38 @@ n 0 eq not % Now the ticks and labels. Start by checking for "\multido". % !!Need to fix this so that does nothing when there are 0 ticks.!! \begingroup - \ifdim\pst@dimb=\z@\else\showoriginfalse\fi - \ifnum\psk@dx=\z@ - \pst@dimg=\psk@Dx\psxunit - \edef\psk@dx{\number\pst@dimg}% - \fi - \ifnum\psk@ticks<\tw@ - \ifnum\psk@tickstyle>\z@\else - \advance\pslabelsep\psk@ticksize\p@ - \fi - \fi - \pst@hlabels\pst@dimc\psk@arrowB - \pst@hlabels\pst@dima\psk@arrowA + \ifdim\pst@dimb=\z@\else\showoriginfalse\fi + \ifnum\psk@dx=\z@ + \pst@dimg=\psk@Dx\psxunit + \psDEBUG[psaxes@iv]{\textbackslash pst@dimg=\the\pst@dimg}% v.1.01 + \ifdim\pst@dimg<\p@ \pst@cnta=\psk@Dx \edef\psk@Dx{-\the\pst@cnta} % v.1.01 + \ifnum\Pst@Debug>0 \typeout{==DEBUG== pst-plot(psaxes@iv): Dx -> -Dx (was negative)}\fi % v.1.01 + \fi % v.1.01 + \edef\psk@dx{\number\pst@dimg}% + \psDEBUG[psaxes@iv]{\textbackslash psk@dx=\psk@dx}% v.1.01 + \fi + \ifnum\psk@ticks<\tw@ + \ifnum\psk@tickstyle>\z@ \else\advance\pslabelsep\psk@ticksize\p@\fi + \fi + \pst@hlabels\pst@dimc\psk@arrowB + \pst@hlabels\pst@dima\psk@arrowA \endgroup \begingroup - \ifdim\pst@dima=\z@\else\showoriginfalse\fi - \ifnum\psk@dy=\z@ - \pst@dimg=\psk@Dy\psyunit - \edef\psk@dy{\number\pst@dimg}% - \fi - \ifodd\psk@ticks\else - \ifnum\psk@tickstyle>\z@\else - \advance\pslabelsep\psk@ticksize\p@ - \fi - \fi - \pst@vlabels\pst@dimd\psk@arrowB - \pst@vlabels\pst@dimb\psk@arrowA + \ifdim\pst@dima=\z@\else\showoriginfalse\fi + \ifnum\psk@dy=\z@ + \pst@dimg=\psk@Dy\psyunit + \psDEBUG[psaxes@iv]{\textbackslash pst@dimg=\the\pst@dimg}% v.1.01 + \ifdim\pst@dimg<\p@ \pst@cnta=\psk@Dy \edef\psk@Dy{-\the\pst@cnta} % v.1.01 + \psDEBUG[psaxes@iv]{Dy -> -Dy (was negative)}% v.1.01 + \fi % v.1.01 + \edef\psk@dy{\number\pst@dimg}% + \psDEBUG[psaxes@iv]{\textbackslash psk@dy=\psk@dy}% v.1.01 + \fi + \ifodd\psk@ticks\else + \ifnum\psk@tickstyle>\z@ \else\advance\pslabelsep\psk@ticksize\p@\fi + \fi + \pst@vlabels\pst@dimd\psk@arrowB + \pst@vlabels\pst@dimb\psk@arrowA \endgroup % Now close "\pst@hbox" (which is 0-dimensional), and put it at the origin. \egroup @@ -620,9 +625,7 @@ n 0 eq not % The origin is never the only label. \def\pst@hlabels#1#2{% \ifdim#1=\z@\else - \ifx#2\empty\else - \advance#1\ifdim#1>\z@-\fi7\pslinewidth - \fi + \ifx#2\empty\else\advance#1\ifdim#1>\z@-\fi7\pslinewidth\fi \pst@cnta=#1\relax % Distance (in sp) to end. \divide\pst@cnta\psk@dx\relax % Number of ticks/labels \ifnum\pst@cnta=\z@\else @@ -632,22 +635,22 @@ n 0 eq not \fi \ifnum\psk@labels<\tw@ \pst@@hlabels\fi \showoriginfalse - \fi - \fi} + \fi +\fi} % Knows \pst@dimb and \pst@cnta \def\pst@@hlabels{% \vbox to\z@{% \ifdim\pst@dimd>\z@\vskip\pslabelsep\else\vss\fi - \ifnum\pst@cnta<\z@ - \pst@dimb=-\pst@dimb - \fi + \ifnum\pst@cnta<\z@ \pst@dimb=-\pst@dimb\fi \hbox to\z@{% \ifshoworigin\hbox to \z@{\hss\pshlabel{\psk@Ox}\hss}\fi \mmultido - {\n=\psk@Ox+\psk@Dx}% + {\nA=\psk@Ox+\psk@Dx}% {\pst@cnta}% - {\hskip\pst@dimb\hbox to \z@{\hss\pshlabel{\n}\hss}}% + {\hskip\pst@dimb\hbox to \z@{% + \hss\ifdim\nA pt=\z@ \pshlabel{0}\else\pshlabel{\nA}\fi + \hss}}% prevent "-0" \hss}% \ifdim\pst@dimd>\z@\vss\else\vskip\pslabelsep\fi}}% @@ -684,11 +687,11 @@ n 0 eq not \ifdim\pst@dimc>\z@\hskip\pslabelsep\else\hss\fi}\vss}% \fi \mmultido - {\n=\psk@Oy+\psk@Dy}% + {\nA=\psk@Oy+\psk@Dy}% {\pst@cnta}% {\vbox to\pst@dima{\vss}\vbox to \z@{\vss\hbox to\z@{% \ifdim\pst@dimc>\z@\hss\else\hskip\pslabelsep\fi - \psvlabel{\n}% + \ifdim\nA pt=\z@ \psvlabel{0}\else\psvlabel{\nA}\fi% prevent -0, doesn't work with \ifnum \ifdim\pst@dimc>\z@\hskip\pslabelsep\else\hss\fi}\vss}}% \vss}} diff --git a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex index 09d4be2988c..83cf7585a81 100644 --- a/Master/texmf-dist/tex/generic/pstricks/pstricks.tex +++ b/Master/texmf-dist/tex/generic/pstricks/pstricks.tex @@ -20,44 +20,44 @@ % See the PSTricks User's Guide for description. % This uses the header file `pstricks.pro'. % -\def\fileversion{1.24} -\def\filedate{2008/06/17} +\def\fileversion{1.25} +\def\filedate{2008/06/26} % \csname PSTricksLoaded\endcsname \let\PSTricksLoaded\endinput \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax -\expandafter\ifx\csname @latexerr\endcsname\relax -\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname - #1\endcsname\relax#2\else#3\fi} -\def\@namedef#1{\expandafter\def\csname #1\endcsname} -\def\@nameuse#1{\csname #1\endcsname} -% -\def\@eha{% - Your command was ignored.^^J - Type \space I <command> <return> \space to replace - it with another command,^^J - or \space <return> \space to continue without it.} -\def\@spaces{\space\space\space\space} -\def\typeout#1{\immediate\write\@unused{#1}} -\alloc@7\write\chardef\sixt@@n\@unused -\def\@empty{} -\def\@gobble#1{} -\def\@nnil{\@nil} -% -\def\@ifnextchar#1#2#3{% - \let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch} -% -\def\@ifnch{% - \ifx\@tempc\@sptoken \let\@tempd\@xifnch - \else\ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi - \fi - \@tempd} -% -\begingroup -\def\:{\global\let\@sptoken= } \: -\def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch} -\endgroup +\expandafter\ifx\csname @latexerr\endcsname\relax% do we have LaTeX? + \def\typeout#1{\immediate\write\@unused{#1}} + \alloc@7\write\chardef\sixt@@n\@unused + \typeout{we are running tex and have to define some LaTeX commands ...} + \long\def\@ifundefined#1#2#3{\expandafter\ifx\csname + #1\endcsname\relax#2\else#3\fi} + \def\@namedef#1{\expandafter\def\csname #1\endcsname} + \def\@nameuse#1{\csname #1\endcsname} + \def\@eha{% + Your command was ignored.^^J + Type \space I <command> <return> \space to replace + it with another command,^^J + or \space <return> \space to continue without it.} + \def\@spaces{\space\space\space\space} + \def\@empty{} + \def\@gobble#1{} + \def\@nnil{\@nil} +% + \def\@ifnextchar#1#2#3{% + \let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch} +% + \def\@ifnch{% + \ifx\@tempc\@sptoken \let\@tempd\@xifnch + \else\ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi + \fi + \@tempd% + } + \begingroup + \def\:{\global\let\@sptoken= } \: + \def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch} + \endgroup \fi % % hv 2007-10-16 to fix the bug in pst-node with \\[name=...] @@ -460,7 +460,7 @@ % v 1.05 begin \def\psset@PstDebug#1{\pst@getint{#1}{\Pst@Debug}}% hv 2004-06-22 \psset{PstDebug=0} -\def\psDEBUG{\@ifnextchar[\psDEBUG@i{\ps@DEBUG@i[PSTricks]}} +\def\psDEBUG{\@ifnextchar[\psDEBUG@i{\psDEBUG@i[PSTricks]}} \def\psDEBUG@i[#1]#2{\ifnum\Pst@Debug>0 \expandafter\typeout{<#1>: #2}\fi} % end \def\pst@getlength#1#2{% @@ -810,6 +810,9 @@ % /HardLight 4 \psset@blendmode{0} % +\def\tx@LineFill{LineFill } +\def\tx@PenroseFill{PenroseFill } +% \def\psfs@none{} \def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor \tx@setTransparency fill }} \def\psfs@eofill{\pst@fill{\pst@usecolor\psfillcolor \tx@setTransparency eofill}} @@ -847,7 +850,19 @@ \@namedef{psfs@hlines*}{\psfs@solid \psfs@hlines} \def\psfs@crosshatch{\psfs@vlines \psfs@hlines} \@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines} -\def\tx@LineFill{LineFill } +% +\def\psset@psscale#1{\pst@checknum{#1}\psk@psscale} +\psset@psscale{1} +% +\def\pst@penroseFill{% + gsave % restore in PenroseFill + \pst@number\pslinewidth SLW + \pst@usecolor\pshatchcolor + \psk@psscale + \tx@PenroseFill } +\def\psfs@penrose{\pst@fill\pst@penroseFill} +\@namedef{psfs@penrose*}{\psfs@solid \psfs@penrose} +% \def\psset@fillstyle#1{% \edef\pst@tempg{#1}\def\pst@temph{none}% \ifx\pst@tempg\pst@temph |