summaryrefslogtreecommitdiff
path: root/info/pictex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/pictex
Initial commit
Diffstat (limited to 'info/pictex')
-rw-r--r--info/pictex/Doc-PiCTeX.txt69
-rw-r--r--info/pictex/summary/Makefile2
-rw-r--r--info/pictex/summary/README36
-rw-r--r--info/pictex/summary/a4mod.sty133
-rw-r--r--info/pictex/summary/pictexsum.pdfbin0 -> 181521 bytes
-rw-r--r--info/pictex/summary/pictexsum.tex573
-rw-r--r--info/pictex/summary/useful.sty176
7 files changed, 989 insertions, 0 deletions
diff --git a/info/pictex/Doc-PiCTeX.txt b/info/pictex/Doc-PiCTeX.txt
new file mode 100644
index 0000000000..a187eef645
--- /dev/null
+++ b/info/pictex/Doc-PiCTeX.txt
@@ -0,0 +1,69 @@
+
+ DOCUMENTATION for PiCTeX
+
+1. The macro file pictex.tex (or pictexwd.tex) contains a sober yet
+comprehensive documentation.
+
+2. Michael Wichura presented a description in TUGboat 9 (2),
+pp. 193-197 (1988), see
+
+ http://www.tug.org/TUGboat/Articles/tb09-2/tb21wichura-pictex.pdf
+
+3. Michael Wichura's MANUAL -- today called `PiCTeX and Table Manual'
+ -- is distributed by PCTeX:
+
+ http://www.pctex.com/books.html
+
+4. Other overviews have been presented at least in Helmut Kopka's
+GERMAN books on LaTeX extensions in the 1990s. [Lazy, I know.]
+
+5. Another GERMAN reference list, a quite RECENT one, is Uwe Siart's
+PDF at
+
+ http://www.siart.de/typografie/pictex-referenz.pdf
+
+6. An early command summary has been Angus Duggan's PDF at
+
+ http://mirror.ctan.org/info/pictex/summary/pictexsum.pdf
+
+7. Chapter 5 and Appendix E of the documentation for the MathsPIC
+package (Perl version)
+
+ http://mirror.ctan.org/graphics/mathspic/perl/mathsPICmanual.pdf
+
+provide a nicely typeset summary of PiCTeX, of some of its commands,
+and of files around PiCTeX available from the web; somewhat replacing
+the present overview. MathsPIC provides a kind of front-end script
+language for PiCTeX.
+
+8. Similarly, Section 9.9 of the real book (also available as an
+e-book)
+
+ Syropoulos A., Tsolomitis A. and Sofroniou N.: Digital Typography
+ Using LaTeX. Springer, New York 2003, ISBN 978-0387952178
+
+has 10 pages presenting PiCTeX.
+
+9. You may like short descriptions of PiCTeX including HINTS
+concerning basic problems with PiCTeX
+
+-- in the TeX Catalogue:
+
+ http://mirror.ctan.org/help/Catalogue/entries/pictex.html
+
+or in the TUG.org package information:
+
+ http://ctan.tug.org/pkg/pictex
+
+-- in the UK TeX FAQ:
+
+ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=usepictex
+
+ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=docpictex
+
+______________________________________________________________________
+Text by Uwe Lueck (non-expert) 2011/12/23, based on a web search
+2008/02/15 and on messages from Dick Nickalls and Apostolos Syropoulos
+(authors of MathsPIC, 2008/2011).
+Copyright 2008, 2011 Uwe Lueck, http://contact-ednotes.sty.de.vu.
+You may freely use, modify and/or distribute this file.
diff --git a/info/pictex/summary/Makefile b/info/pictex/summary/Makefile
new file mode 100644
index 0000000000..24340c0604
--- /dev/null
+++ b/info/pictex/summary/Makefile
@@ -0,0 +1,2 @@
+x:
+ pdflatex '\nonstopmode\input pictexsum'
diff --git a/info/pictex/summary/README b/info/pictex/summary/README
new file mode 100644
index 0000000000..5537d97b8d
--- /dev/null
+++ b/info/pictex/summary/README
@@ -0,0 +1,36 @@
+This directory contains a summary of PiCTeX, independently written by
+Angus Duggan. The original PiCTeX manual is not freely available.
+Please see http://www.tex.ac.uk/cgi-bin/texfaq2html?label=docpictex for
+more information.
+
+Contact: my first name (all lowercase)
+<at>
+knackered
+<dot>
+org
+
+
+Copyright (c) 1990 Angus Duggan
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/info/pictex/summary/a4mod.sty b/info/pictex/summary/a4mod.sty
new file mode 100644
index 0000000000..e1775a485d
--- /dev/null
+++ b/info/pictex/summary/a4mod.sty
@@ -0,0 +1,133 @@
+% Copyright (c) 1989, 1990, 1991 Angus Duggan
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions are met:
+%
+% Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+%
+% Redistributions in binary form must reproduce the above copyright
+% notice, this list of conditions and the following disclaimer in the
+% documentation and/or other materials provided with the distribution.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+% IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+% PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+% HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+% SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+% TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+%
+% a4mod.sty
+% Easily Modifiable a4 page layout. Use this instead of a4 document substyle.
+% Provides the macros:
+%
+% \setleftmargin{left margin}{rightward shift on odd pages}
+% \setrightmargin{right margin}{leftward shift on even pages}
+% \setheadmargin{top margin}{header height}{header separation}
+% \setfootmargin{bottom margin}{footer height}{footer separation}
+% \setmarginnote{margin note width}{margin note separation}
+%
+% Defaults to same size as a4.sty with fullpage option
+%
+% AJCD, 5/12/89
+% AJCD 2/2/90 Changed default size to [a4,fullpage] (1" margins all round)
+% AJCD 9/10/91 Added \endinput in case loaded twice
+%
+\@ifundefined{resetmargins}{}{\endinput}
+
+\typeout{a4mod.sty 2/2/90 -- default size is the same as [a4,fullpage]}
+
+\newlength{\p@perwidth}
+\setlength{\p@perwidth}{21 true cm} % a4 paper width
+\newlength{\p@perlength}
+\setlength{\p@perlength}{29.7 true cm} % a4 paper height
+
+\setlength{\voffset}{0 true in} % shift origin to paper corner
+\setlength{\hoffset}{0 true in}
+
+% pick up point size of current font
+% these parameters are not changed by the macros below
+\newlength{\mainsize}
+\setlength{\mainsize}{1\@ptsize pt}
+\setlength{\topskip}{\mainsize} % plain has 10pt
+\setlength{\maxdepth}{.4\mainsize} % plain has 4pt
+\setlength{\@maxdepth}{\maxdepth} % this has to be set as well
+
+\newlength{\leftsidemargin}
+\newlength{\leftsideshift}
+\newlength{\rightsidemargin}
+\newlength{\rightsideshift}
+\newlength{\headsidemargin}
+\newlength{\footsidemargin}
+
+\let\resetmargins\relax
+
+\def\setleftmargin#1#2{% set left printer margin and odd page shift
+ \setlength{\leftsidemargin}{#1}%
+ \setlength{\leftsideshift}{#2}%
+ \resetmargins
+}
+%\setleftmargin{1 true in}{.25 true in}
+\setleftmargin{1 true in}{0 true in}
+
+\def\setrightmargin#1#2{% set right printer margin and even page shift
+ \setlength{\rightsidemargin}{#1}%
+ \setlength{\rightsideshift}{#2}%
+ \resetmargins
+}
+%\setrightmargin{1 true in}{.25 true in}
+\setrightmargin{1 true in}{0 true in}
+
+\def\setheadmargin#1#2#3{% set head printer margin, size, and separation
+ \setlength{\headsidemargin}{#1}%
+ \setlength{\headheight}{#2}%
+ \setlength{\headsep}{#3}%
+ \resetmargins
+}
+\setheadmargin{1 true in}{\mainsize}{2\mainsize}
+
+\def\setfootmargin#1#2#3{% set foot printer margin, size, and separation
+ \setlength{\footsidemargin}{#1}%
+ \setlength{\footheight}{#2}%
+ \setlength{\footskip}{#3}%
+ \addtolength{\footskip}{\footheight}%
+ \resetmargins
+}
+\setfootmargin{1 true in}{\mainsize}{1.5\mainsize}
+
+\def\setmarginnote#1#2{% set marginal note width and separation
+ \setlength{\marginparwidth}{#1}%
+ \setlength{\marginparsep}{#2}%
+ \resetmargins
+}
+%\setmarginnote{62 pt}{10pt}
+\setmarginnote{0 true in}{0 true in}
+
+\def\resetmargins{% reset textheight and length from parameters
+ \setlength{\oddsidemargin}{\leftsidemargin}%
+ \addtolength{\oddsidemargin}{-1 true in}%
+ \addtolength{\oddsidemargin}{\leftsideshift}%
+ \setlength{\evensidemargin}{\oddsidemargin}%
+ \addtolength{\evensidemargin}{-\rightsideshift}%
+ \setlength{\textwidth}{\p@perwidth}% start at full width
+ \addtolength{\textwidth}{-\leftsidemargin}%
+ \addtolength{\textwidth}{-\leftsideshift}%
+ \addtolength{\textwidth}{-\marginparwidth}%
+ \addtolength{\textwidth}{-\marginparsep}%
+ \addtolength{\textwidth}{-\rightsidemargin}%
+ \setlength{\topmargin}{\headsidemargin}%
+ \addtolength{\topmargin}{-1 true in}%
+ \setlength{\textheight}{\p@perlength}% start at full height
+ \addtolength{\textheight}{-\headsidemargin}%
+ \addtolength{\textheight}{-\headheight}%
+ \addtolength{\textheight}{-\headsep}%
+ \addtolength{\textheight}{-\footskip}%
+ \addtolength{\textheight}{-\footsidemargin}%
+}
+\resetmargins
diff --git a/info/pictex/summary/pictexsum.pdf b/info/pictex/summary/pictexsum.pdf
new file mode 100644
index 0000000000..0a754db477
--- /dev/null
+++ b/info/pictex/summary/pictexsum.pdf
Binary files differ
diff --git a/info/pictex/summary/pictexsum.tex b/info/pictex/summary/pictexsum.tex
new file mode 100644
index 0000000000..e4de9b27ac
--- /dev/null
+++ b/info/pictex/summary/pictexsum.tex
@@ -0,0 +1,573 @@
+% Copyright (c) 1990 Angus Duggan
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions are met:
+%
+% Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+%
+% Redistributions in binary form must reproduce the above copyright
+% notice, this list of conditions and the following disclaimer in the
+% documentation and/or other materials provided with the distribution.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+% IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+% PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+% HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+% SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+% TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+\documentstyle[useful,a4mod]{article}
+
+\author{Compiled by\\[6pt]
+Angus Duggan
+\\[6pt]
+{\tt tex@ed.lfcs}}
+
+\title{\PiCTeX{} command summary}
+
+\date{22\textsuperscript{\rm nd} January 1990}
+
+% reset page margins
+\setleftmargin{1in}{0in}
+\setrightmargin{1in}{0in}
+%\setheadmargin{1in}{\mainsize}{2\mainsize}
+%\setfootmargin{1in}{\mainsize}{2\mainsize}
+\setmarginnote{0in}{0in}
+
+% reset float fractions
+\setcounter{topnumber}{3}
+\renewcommand{\topfraction}{.5}
+\setcounter{bottomnumber}{3}
+\renewcommand{\bottomfraction}{.5}
+\setcounter{totalnumber}{5}
+\renewcommand{\textfraction}{.25}
+
+% Don't display overfull boxes...
+\overfullrule=0pt
+% Don't complain about long lines unless they are over 3pt too big...
+\hfuzz=3pt
+
+% names of sysops
+\newcommand{\syspers}{Carol Anstruther}
+\newcommand{\texpers}{Angus Duggan}
+
+% font for warnings, notes, etc.
+\newfont{\uit}{cmu10}
+% font for thin vertical bar
+\newfont{\symfont}{cmsy10}
+
+% abbreviations
+\newcommand{\unix}{{\sc unix}}
+\newcommand{\dvilaser}{{\sc DviLaser}}
+\newcommand{\tex}{{tex}}
+\newcommand{\Tex}{{Tex}}
+
+\newcommand{\rvb}{{\symfont\char'152}}
+
+\renewcommand{\emph}[1]{{\em#1\/}}
+\newcommand{\slan}[1]{{\sl#1\/}}
+\newcommand{\type}[1]{{\tt#1}}
+
+% indented \tt paragraphs, for commands
+\newenvironment{command}%
+ {\begin{list}{}{\tt}\item[]}%
+ {\end{list}}
+% indented verbatim paragraphs, for commands
+\newverbatim{verbcommand}%
+ {\begin{list}{}{\parsep0pt\itemsep0pt}\item[]}%
+ {\end{list}}
+% small indented verbatim for examples
+\newverbatim{example}%
+ {\begin{list}{}{\small\parsep0pt\itemsep0pt}\item[]}%
+ {\end{list}}
+% list for syntax decls.
+\newenvironment{syntax}%
+ {\begin{labelled}}%
+ {\end{labelled}}
+
+\pagestyle{headings}
+%\raggedbottom
+
+%\makeindex
+
+\begin{document}
+
+\maketitle
+
+This article contains a summary of the \PiCTeX{} commands. This is intended as
+a reminder for users who have read the \PiCTeX{} manual (which is available
+from the LFCS library). The following conventions should be observed when
+using \PiCTeX{} commands:
+\begin{itemize}
+\item
+At least one blank must be present for each blank in the command prototypes
+below.
+\item
+Quantities in \type{<>}'s must be specified as explicit dimensions, or in
+terms of \TeX's dimension registers.
+\item
+\emph{coord}, \emph{xcoord}, \emph{ycoord}, \emph{x}, and \emph{y}, with or
+without subscripts or superscripts denote coordinates with respect to the
+current coordinate system. In particular, they are dimensionless quantities.
+Values must be expressed in fixed point notation, with at most 5 digits to the
+right of the decimal point.
+\item
+Parts of a command enclosed in [\,]'s may be omitted.
+\end{itemize}
+
+\section{Commands}
+The \PiCTeX{} drawing commands are:
+\begin{syntax}
+\item[{\tt\linestack[l]{\bsl accountingoff\\
+\bsl accountingon}}]
+These commands suspend and resume \PiCTeX's updating procedure for the minimum
+size box enclosing the picture. They should only be used when \PiCTeX{} has
+been notified of
+the minimum size box already (e.g.~by executing a \verb+\setplotarea+).
+\item[{\tt\bsl arrow <$\ell$> [$\beta$,$\gamma$]
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]} from \emph{xcoord}$_s$ \emph{ycoord}$_s$ to \emph{xcoord}$_e$
+\emph{ycoord}$_e$}]
+This command draws an arrow, where (\emph{xcoord}$_s$,\emph{ycoord}$_s$) is the start of the
+line on which the arrow lies, (\emph{xcoord}$_e$,\emph{ycoord}$_e$) is the end of the line
+on which the arrow lies, $\ell$ is the length of the arrowhead, $\beta\ell$ is
+the width of the arrowhead at half its length, and $\gamma\ell$ is the width
+of the arrowhead at its full length. The arrowhead will be open, and will be
+drawn with a smooth curve through the width points and the end of the line.
+The arrowhead will curve in if $2\beta < \gamma$, and curve out if
+$2\beta > \gamma$.
+\type{<\emph{xshift},\emph{yshift}>} has the same effect as in the \verb+\put+ command.
+\item[{\tt\linestack[l]{\bsl axis {\rm[}bottom{\rm]} {\rm[}top{\rm]} {\rm[}left{\rm]} {\rm[}right{\rm]}\\
+\quad{\rm[}shiftedto y=\emph{ycoord}{\rm]} {\rm[}shiftedto x=\emph{xcoord}{\rm]}\\
+\quad{\rm[}visible{\rm]} {\rm[}invisible{\rm]}\\
+\quad{\rm[}label \{\emph{axis label}\}{\rm]}\\
+\quad{\rm[}ticks{\rm]}\\
+\quad\quad{\rm[}out{\rm]} {\rm[}in{\rm]}\\
+\quad\quad{\rm[}long{\rm]} {\rm[}short{\rm]} {\rm[}length <\emph{length}>{\rm]}\\
+\quad\quad{\rm[}width <\emph{width}>{\rm]}\\
+\quad\quad{\rm[}butnotacross{\rm]} {\rm[}andacross{\rm]}\\
+\quad\quad{\rm[}unlabeled{\rm]} {\rm[}numbered{\rm]} {\rm[}withvalues \emph{value}$_1$ \emph{value}$_2$
+\ldots\ /{\rm]}\\
+\quad\quad{\rm[}unlogged{\rm]} {\rm[}logged{\rm]}\\
+\quad\quad{\rm[}quantity $q${\rm]} {\rm[}from \emph{coord}$_s$ to \emph{coord}$_e$ by
+\emph{dcoord}{\rm]}\\
+\quad\quad\quad{\rm[}at \emph{coord}$_1$ \emph{coord}$_2$ \ldots\ /{\rm]}\\
+\quad/}}]
+This command draws an axis along the \type{bottom}, \type{top}, \type{left},
+or \type{right} edge of the current plot area (one of these keywords must be
+specified).
+The \type{shiftedto} option causes a bottom or top axis to be
+drawn at the specified $y$-coordinate, and a left or right axis to be drawn at
+the specified $x$-coordinate.
+The keyword \type{invisible} suppresses the drawing of the axis, but not of
+tick marks, labels, etc. \type{visible} is the default.
+The text specified by \emph{axis label} is centred with respect to the
+appropriate edge of the plot area.
+\type{ticks} causes tick marks to be drawn on the axis:
+\begin{itemize}
+\item
+Ticks normally point \type{out} from the plot area; \type{in} makes them point
+into the plot area.
+\item
+Ticks are normally \type{long}, but can be made \type{short}, or given an
+arbitrary \emph{length} with the \type{length} option.
+\item
+The \emph{width} of the ticks can be set with the \type{width} option.
+\item
+Ticks can be extended across the whole plot area with the \type{andacross}
+option, making grid lines. The default is \type{butnotacross}, which stops the
+ticks from extending across the plot area.
+\item
+Ticks are normally \type{unlabeled}. If the \type{numbered} option is used,
+the \type{at} or \type{from} options below assign numeric values to them.
+Arbitrary tick labels can be specified by the \type{withvalues} option; the
+labels \emph{value}$_1$, \emph{value}$_2$, \ldots{} are assigned to subsequent ticks until
+the list of values is exhausted or an \type{unlabeled} or \type{numbered}
+keyword is encountered. Values must be separated by at least one blank, and at
+least one blank must precede the `\type{/}' that terminates the list. If a
+value contains a blank or `\type{/}', enclose the entire value in
+\type{\{\}}'s.
+\item
+The option \type{quantity $q$} draws $q$ ticks equally spaced from left to
+right, or from bottom to top. The first and last ticks are at the ends of the
+axis.
+\item
+The \type{from} option draws ticks at the indicated coordinates. \emph{coord}$_s$,
+\emph{coord}$_e$, and \emph{dcoord} must be fixed point numbers, with the same number of
+digits to the right of the decimal point (if any), and \emph{dcoord} must be
+positive. If the \type{numbered} option is in effect, the coordinate of the
+tick is used as the tick label.
+\item
+The \type{at} option draws ticks at the specified coordinates. As with the
+\type{from} option, the coordinates must be fixed point numbers, which are
+used as tick labels if \type{numbered} is in effect. The list of coordinates
+must be terminated by `\type{/}'.
+\item
+The \type{logged} option applies only to the positioning subsequent ticks
+specified by the \type{at} or \type{from} options. Ticks are placed at the
+$\log_{10}$'s of the specified locations; the original unlogged numbers are used
+as labels if \type{numbered} is in effect. \type{unlogged} is the default.
+\end{itemize}
+\item[\tt\bsl beginpicture]
+This command is used to start \PiCTeX{} pictures.
+\item[{\tt\bsl betweenarrows \{\emph{text}\} {\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]} from \emph{xcoord}$_s$ \emph{ycoord}$_s$ to \emph{xcoord}$_e$
+\emph{ycoord}$_e$}]
+\begin{sloppypar}
+This command centres \emph{text} between a pair of arrows pointing outwards.
+\type{<\emph{xshift},\emph{yshift}>} and \type{[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]}
+have the same effect as in the \verb+\put+ command.
+(\emph{xcoord}$_s$,\emph{ycoord}$_s$) and (\emph{xcoord}$_e$,\emph{ycoord}$_e$) are the start and end
+coordinates of the arrow pair.
+Either \emph{xcoord}$_s$ and \emph{xcoord}$_e$ should be the
+same, or \emph{ycoord}$_s$ and \emph{ycoord}$_e$ should be the same.
+\end{sloppypar}
+\item[\tt\bsl circulararc $\theta$ degrees from \emph{xcoord}$_s$ \emph{ycoord}$_s$ center
+at \emph{xcoord}$_c$ \emph{ycoord}$_c$]
+This command draws an arc of a circle with a centre at (\emph{xcoord}$_c$,
+\emph{ycoord}$_c$); the arc starts from (\emph{xcoord}$_s$,\emph{ycoord}$_s$) and extends
+anticlockwise through $\theta$ degrees. $\theta$ can have any real value
+between -360 and 360.
+\item[\tt\bsl Divide <\emph{dividend}> by <\emph{divisor}> forming <\emph{quotient}>]
+This is \PiCTeX's division command for dimensions. \emph{dividend} and \emph{divisor}
+may be explicit dimensions or dimension registers; \emph{quotient} must be a
+dimension register.
+\item[\tt\bsl dontsavelinesandcurves]
+This command stops \PiCTeX{} from saving plot locations to a file (see
+\verb+\savelinesandcurves+).
+\item[\tt\bsl ellipticalarc axes ratio $\xi$:$\eta$ $\theta$ degrees from
+\emph{xcoord}$_s$ \emph{ycoord}$_s$ center at \emph{xcoord}$_c$ \emph{ycoord}$_c$]
+This command draws an arc of an ellipse with a centre at (\emph{xcoord}$_c$,
+\emph{ycoord}$_c$); the arc starts from (\emph{xcoord}$_s$,\emph{ycoord}$_s$) and extends
+anticlockwise through $\theta$ degrees. $\xi$ and $\eta$ are numbers
+proportional to the lengths of the horizontal and vertical axes of the ellipse.
+\item[\tt\bsl endpicture]
+This command terminates a \PiCTeX{} picture.
+\item[\tt\bsl endpicturesave <\emph{xreg},\emph{yreg}>]
+This command is used to terminate sub-pictures, saving the left
+edge and baseline in \emph{xreg} and \emph{yreg}.
+If the subpicture is then \verb+\put+ at (\emph{xcoord},\emph{ycoord}) with the options
+`\type{[Bl] <\emph{xreg},\emph{yreg}>}', the reference point of the sub-picture will be
+at (\emph{xcoord},\emph{ycoord}).
+\item[\tt\bsl findlength \{\emph{curve commands}\}]
+\PiCTeX{} executes the curve drawing commands specified and puts the length
+into the dimension register \verb+\totalarclength+. This can be used as the
+$\lambda$ argument to \verb+\setdotsnear+ and \verb+\setdashesnear+.
+\item[{\tt\bsl frame {\rm[}<\emph{separation}>{\rm]} \{\emph{text}\}}]
+This command frames \emph{text}, with an optional border of
+\emph{separation}.
+This command has its normal \LaTeX{} meaning outside of \PiCTeX{} pictures,
+but \verb+\pictexframe+ can be used outside of \PiCTeX{}
+pictures to get the same effect as \PiCTeX's \verb+\frame+.
+\item[\tt\bsl grid \{$c$\} \{$r$\}]
+This command partitions the the plot area in to $c$ columns and $r$ rows.
+\item[\tt\bsl gridlines]
+This command sets the default for the \type{andacross}/\type{butnotacross}
+option of the \type{axis} command to be \type{andacross}.
+\item[{\tt\linestack[l]{\bsl hshade $y_0$ $x_0^{(l)}$ $x_0^{(r)}$ \ldots\
+{\rm[}<$\epsilon_{l;i}$,$\epsilon_{r;i}$,$\epsilon_{d;i}$,$\epsilon_{u;i}$>{\rm]}
+$y_i$ $x_i^{(l)}$ $x_i^{(r)}$ \ldots\ /\\
+\bsl hshade $y_0$ $x_0^{(l)}$ $x_0^{(r)}$ \ldots\
+{\rm[}<$\epsilon_{l;i}$,$\epsilon_{r;i}$,$\epsilon_{d;i}$,$\epsilon_{u;i}$>{\rm]}
+$y_{2i-1}$ $x_{2i-1}^{(l)}$ $x_{2i-1}^{(r)}$ $y_{2i}$ $x_{2i}^{(l)}$
+$x_{2i}^{(r)}$ \ldots\ /}}]
+This command shades a region with piecewise linear/quadratic left and right
+boundaries. Sub-regions are defined by the coordinates ($x_n^{(l)}$,$y_n$),
+($x_n^{(r)}$,$y_n$), ($x_{n+1}^{(r)}$,$y_{n+1}$) and
+($x_{n+1}^{(l)}$,$y_{n+1}$).
+The relations $y_n<y_{n+1}$ and $x_n^{(l)}\leq x_n^{(r)}$
+should hold. For the duration of the shading the optional edge effect field
+`\type{<$\epsilon_{l;i}$,$\epsilon_{r;i}$,$\epsilon_{d;i}$,$\epsilon_{u;i}$>}'
+overrides the specifications made by \verb+\setshadesymbol+. The second form
+should be used when \verb+\setquadratic+ is in effect.
+\item[\tt\bsl inboundscheckoff]
+This command disables checking whether plot symbols are outside the current
+plot area.
+\item[\tt\bsl inboundscheckon]
+This command enables checking whether plot symbols are outside the current
+plot area.
+\item[\tt\bsl invisibleaxes]
+This command sets the default for the \type{visible}/\type{invisible}
+option of the \type{axis} command to be \type{invisible}.
+\item[{\tt\linestack[l]{\bsl lines {\rm[}[$o$]{\rm]} \{\emph{line}$_1$\bsl cr
+\emph{line}$_2$\bsl cr \ldots\ \}\\
+\bsl Lines {\rm[}[$o$]{\rm]} \{\emph{line}$_1$\bsl cr \emph{line}$_2$\bsl cr \ldots\ \}}}]
+These commands produce stacks of lines, spaced normally. The lines will be
+left justified if $o$ is `\type{l}', right justified if $o$ is `\type{r}', and
+centred otherwise. \verb+\Lines+ is similar to \verb+\lines+, except the
+baseline of the stack is the baseline of the top line instead of the baseline
+of the bottom line.
+\item[\tt\bsl loggedticks]
+This command sets the default for the \type{logged}/\type{unlogged}
+option of the \type{axis} command to be \type{logged}.
+\item[{\tt\linestack[l]{\bsl multiput\{\emph{text}\}
+{\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]} at "\emph{file name}"\\
+\bsl multiput \{\emph{text}\}
+{\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]} at \ldots\ \emph{xcoord} \emph{ycoord} \ldots\ *$n$
+\emph{dxcoord} \emph{dycoord} \ldots\ /}}]
+This command is used to \verb+\put+ copies of the same text at multiple
+locations. The text will by put at each (\emph{xcoord},\emph{ycoord}), and at
+each ($xcoord+i\cdot dxcoord$,$ycoord+i\cdot dycoord$) for $i$ from 1 to $n$.
+\item[\tt\bsl nogridlines]
+This command sets the default for the \type{andacross}/\type{butnotacross}
+option of the \type{axis} command to be \type{butnotacross}.
+\item[\tt\bsl normalgraphs]
+This command resets the default \type{axis} options and values for the
+axis parameters.
+\item[\tt\bsl placehypotenuse for <$\xi$> and <$\eta$> in <$\zeta$>]
+This command calculates Euclidean distance $\zeta=\sqrt{\xi^2+\eta^2}$. $\xi$
+and $\eta$
+may be explicit dimensions or dimension registers; $\zeta$ must be a
+dimension register.
+\item[\tt\bsl placevalueinpts of <\emph{dimension register}> in
+\{\emph{control sequence}\}]
+This command puts the value of \emph{dimension register}, in points, into
+\emph{control sequence}.
+\item[{\tt\linestack[l]{\bsl plot "\emph{file name}"\\
+\bsl plot \emph{xcoord}$_0$ \emph{ycoord}$_0$ \emph{xcoord}$_1$ \emph{ycoord}$_1$ \emph{xcoord}$_2$ \emph{ycoord}$_2$
+\ldots\ /}}]
+This commands plots the points given (or points from a file, if the first form
+is used), in the current \emph{interpolation mode}. The interpolation modes
+are selected by the commands \verb+\setbars+, \verb+\sethistograms+,
+\verb+\setlinear+ and \verb+\setquadratic+.
+\item[\tt\bsl plotheading \{\emph{heading}\}]
+This command places \emph{heading} centred above the plot area.
+\item[{\tt\bsl put \{\emph{text}\}
+{\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]} at \emph{xcoord} \emph{ycoord}}]
+This commands places \emph{text} with its enclosing box centred about
+(\emph{xcoord},\emph{ycoord}). If $o_x$ is `\type{r}' or `\type{l}' the right or left
+edge of the box will be aligned on \emph{xcoord}. If $o_y$ is `\type{t}',
+`\type{b}' or `\type{B}', the top, bottom, or baseline will be aligned on
+\emph{ycoord}. If \type{<\emph{xshift},\emph{yshift}>} is specified, the object will be
+shifted \emph{xshift} right and \emph{yshift} up from where it would otherwise go.
+\item[{\tt\bsl putbar {\rm[}<\emph{xshift},\emph{yshift}>{\rm]} breadth <$\beta$> from
+\emph{xcoord}$_s$ \emph{ycoord}$_s$ to \emph{xcoord}$_e$ \emph{ycoord}$_e$}]
+This command draws a rectangle which has (\emph{xcoord}$_s$,\emph{ycoord}$_s$) and
+(\emph{xcoord}$_e$,\emph{ycoord}$_e$) as the mid-points of opposite sides of length $\beta$.
+Either \emph{xcoord}$_s$ and \emph{xcoord}$_e$ should be the
+same, or \emph{ycoord}$_s$ and \emph{ycoord}$_e$ should be the same.
+\type{<\emph{xshift},\emph{yshift}>} has the same effect as in the \verb+\put+ command.
+\item[{\tt\bsl putrectangle {\rm[}<\emph{xshift},\emph{yshift}>{\rm]} corners at
+\emph{xcoord}$_s$ \emph{ycoord}$_s$ and \emph{xcoord}$_e$ \emph{ycoord}$_e$}]
+This command draws a rectangle with opposite corners at the points
+(\emph{xcoord}$_s$,\emph{ycoord}$_s$) and (\emph{xcoord}$_e$,\emph{ycoord}$_e$).
+\item[{\tt\bsl putrule {\rm[}<\emph{xshift},\emph{yshift}>{\rm]} from
+\emph{xcoord}$_s$ \emph{ycoord}$_s$ to \emph{xcoord}$_e$ \emph{ycoord}$_e$}]
+This command draws a rule from the point
+(\emph{xcoord}$_s$,\emph{ycoord}$_s$) to the point (\emph{xcoord}$_e$,\emph{ycoord}$_e$), with breadth
+\verb+\linethickness+.
+Either \emph{xcoord}$_s$ and \emph{xcoord}$_e$ should be the
+same, or \emph{ycoord}$_s$ and \emph{ycoord}$_e$ should be the same.
+\type{<\emph{xshift},\emph{yshift}>} has the same effect as in the \verb+\put+ command.
+\item[\tt\bsl rectangle <$w$> <$h$>]
+This command draws a rectangle of width $w$ and height $h$, with its baseline
+on its bottom edge.
+\item[\tt\bsl replot "\emph{file name}"]
+This command replots lines and curves which were saved to a file by
+\verb+\savelinesandcurves+.
+\item[\tt\bsl savelinesandcurves on "\emph{file name}"]
+This command writes out the locations at which it places plot symbols while
+plotting lines (not rules) and curves.
+\item[{\tt\linestack[l]{\bsl setbars {\rm[}<\emph{xshift},\emph{yshift}>{\rm]} breadth
+<$\beta$> at $z$ = \emph{zcoord}\\
+\quad{\rm[}baselabels ({\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]}){\rm]}\\
+\quad{\rm[}endlabels ({\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]}){\rm]}}}]
+This command sets the interpolation mode to bar plotting mode. If $z$ is
+`\type{x}', the bars start from $x=zcoord$ and extend horizontally, and if $z$
+is `\type{y}', the bars start from $y=zcoord$ and extend vertically.
+\type{<\emph{xshift},\emph{yshift}>} has the same effect as in the \verb+\put+ command.
+Labels can be attached to the bases of the bars with the \type{baselabels}
+option. Each coordinate specification in the \verb+\plot+ command should be
+followed by the appropriate label, enclosed in quotation marks. The
+orientation and shifts may be used to adjust the label position.
+Labels can similarly be attached to the ends of the bars with the
+\type{endlabels}
+option.
+\item[\tt\bsl setcoordinatemode]
+This command cancels \verb+\setdimensionmode+.
+\item[{\tt\bsl setcoordinatesystem {\rm[}units <\emph{xunit},\emph{yunit}>{\rm]} {\rm[}
+point at \emph{xcoord} \emph{ycoord}{\rm]}}]
+This command redefines the coordinate system in use. \emph{xunit} is the size of
+one unit on the $x$-axis, \emph{yunit} is the size of one unit on the $y$-axis. The
+\type{point} option sets the reference point for the coordinate system. The
+reference points of all of the coordinate systems in a picture are aligned by
+\PiCTeX.
+\item[{\tt\bsl setdashes {\rm[}<$\ell$>{\rm]}}]
+This command resets the line pattern to be dashes of length $\ell$ followed by
+gaps of length $\ell$.
+\item[\tt\bsl setdashesnear <$\ell$> for <$\lambda$>]
+This command sets the line pattern to be dashes of about length $\ell$, so
+that a line of length $\lambda$ starts and ends with a complete dash.
+\item[\tt\bsl setdashpattern <$d_1$,$g_1$,$d_2$,$g_2$,\ldots>]
+This command resets the line pattern to be a dash of length $d_1$ followed by
+a gap of length $g_1$, followed by a dash of length $d_2$, followed by a gap
+of length $g_2$, etc.
+\item[\tt\bsl setdimensionmode]
+This command sets dimension mode; each location in this mode should be
+specified by the absolute distance horizontally and vertically from the
+origin, as dimensions.
+\item[{\tt\bsl setdots {\rm[}<$\ell$>{\rm]}}]
+This command resets the line pattern to be dots spaced distance $\ell$ apart.
+\item[\tt\bsl setdotsnear <$\ell$> for <$\lambda$>]
+This command sets the line pattern to be dots spaced about distance $\ell$
+apart, so
+that a line of length $\lambda$ starts and ends with a dot.
+\item[\tt\bsl sethistograms]
+This command sets the interpolation mode to histogram mode. In this mode,
+\verb+\plot+ plots histograms composed of rectangles with corners at
+(\emph{xcoord}$_0$,\emph{ycoord}$_0$) and (\emph{xcoord}$_1$,\emph{ycoord}$_1$), (\emph{xcoord}$_1$,\emph{ycoord}$_0$)
+and (\emph{xcoord}$_2$,\emph{ycoord}$_2$), etc.
+\item[\tt\bsl setlinear]
+This command sets the interpolation mode to linear mode. In this mode,
+\verb+\plot+ draws straight lines between coordinates.
+\item[\tt\bsl setplotarea x from \emph{xcoord}$_l$ to \emph{xcoord}$_r$, y from \emph{ycoord}$_b$
+to \emph{ycoord}$_t$]
+\begin{sloppypar}
+This command sets the current plot area to be a rectangle from
+(\emph{xcoord}$_l$,\emph{ycoord}$_b$) to (\emph{xcoord}$_r$,\emph{ycoord}$_t$).
+\end{sloppypar}
+\item[{\tt\bsl setplotsymbol (\{\emph{plot symbol}\}
+{\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]})}]
+This command sets the symbol which is used to make lines and curves to be
+\emph{plot symbol}.
+\type{<\emph{xshift},\emph{yshift}>} and \type{[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]}
+have the same effect as in the \verb+\put+ command.
+\item[\tt\bsl setquadratic]
+This command sets the interpolation mode to be quadratic mode. In this mode,
+quadratic arcs are drawn through the \verb+\plot+ coordinates.
+\item[{\tt\bsl setshadegrid {\rm[}span <$s$>{\rm]} {\rm[}point at \emph{xcoord}
+\emph{ycoord}{\rm]}}]
+This command resets the anchor point of the grid used for shading to be
+(\emph{xcoord},\emph{ycoord}), and the size of the grid to be $s$.
+\item[{\tt\bsl setshadesymbol
+{\rm[}<$\epsilon_{l}$,$\epsilon_{r}$,$\epsilon_{d}$,$\epsilon_{u}$>{\rm]}
+(\{\emph{shade symbol}\}
+{\rm[}[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]{\rm]}
+{\rm[}<\emph{xshift},\emph{yshift}>{\rm]})}]
+This command resets the symbol used to shade areas to be \emph{shade symbol}.
+The optional `edge effects' field
+\type{<$\epsilon_{l}$,$\epsilon_{r}$,$\epsilon_{d}$,$\epsilon_{u}$>}
+specifies the distances from the left, right, bottom and top edges within
+which the shade symbol will \emph{not} be placed. 0pt may be specified by
+`\type{z}'.
+\type{<\emph{xshift},\emph{yshift}>} and \type{[{\rm[}$o_x${\rm]}{\rm[}$o_y${\rm]}]}
+have the same effect as in the \verb+\put+ command.
+\item[\tt\bsl setsolid]
+This command restores the line pattern to draw solid lines.
+\item[\tt\bsl shaderectanglesoff]
+This command cancels \verb+\shaderectangleson+.
+\item[\tt\bsl shaderectangleson]
+This command causes all rectangles plotted by \PiCTeX{} to be shaded
+automatically.
+\item[{\tt\bsl stack {\rm[}[$o$]{\rm]}
+{\rm[}<\emph{leading}>{\rm]}\{\emph{list}\}}]
+This command stacks textual items vertically. \emph{list} is a list of items
+to be stacked, from top to bottom, separated by commas. Items are left
+justified if $o$ is `\type{l}', right justified if $o$ is `\type{r}', and
+centred otherwise. \emph{leading} is the distance separating the enclosing
+boxes of the items in the stack. The baseline of the stack is the baseline of
+the bottom item.
+\item[{\tt\bsl startrotation {\rm[}by $\cos(\theta)$ $\sin(\theta)${\rm]}
+{\rm[}about $x_p$ $y_p${\rm]}}]
+This command causes \PiCTeX{} to rotate lines, curves, shading patterns, and
+\verb+\put+ coordinates by $\theta$ degrees anticlockwise around the point
+($x_p$,$y_p$). The rotation lasts until a \verb+\stoprotation+, or until the
+enclosing group ends.
+\item[\tt\bsl stoprotation]
+This command cancels any rotation in effect.
+\item[\tt\bsl ticksin]
+This command sets the default for the \type{in}/\type{out}
+option of the \type{axis} command to be \type{in}.
+\item[\tt\bsl ticksout]
+This command sets the default for the \type{in}/\type{out}
+option of the \type{axis} command to be \type{out}.
+\item[\tt\bsl unloggedticks]
+This command sets the default for the \type{logged}/\type{unlogged}
+option of the \type{axis} command to be \type{unlogged}.
+\item[\tt\bsl visibleaxes]
+This command sets the default for the \type{visible}/\type{invisible}
+option of the \type{axis} command to be \type{visible}.
+\item[{\tt\linestack[l]{\bsl vshade $x_0$ $y_0^{(b)}$ $y_0^{(t)}$ \ldots\
+{\rm[}<$\epsilon_{l;i}$,$\epsilon_{r;i}$,$\epsilon_{d;i}$,$\epsilon_{u;i}$>{\rm]}
+$x_i$ $y_i^{(b)}$ $y_i^{(t)}$ \ldots\ /\\
+\bsl vshade $x_0$ $y_0^{(b)}$ $y_0^{(t)}$ \ldots\
+{\rm[}<$\epsilon_{l;i}$,$\epsilon_{r;i}$,$\epsilon_{d;i}$,$\epsilon_{u;i}$>{\rm]}
+$x_{2i-1}$ $y_{2i-1}^{(b)}$ $y_{2i-1}^{(t)}$ $x_{2i}$ $y_{2i}^{(b)}$
+$y_{2i}^{(t)}$ \ldots\ /}}]
+This command shades a region with piecewise linear/quadratic bottom and top
+boundaries. Sub-regions are defined by the coordinates ($x_n$,$y_n^{(b)}$),
+($x_n$,$y_n^{(t)}$), ($x_{n+1}$,$y_{n+1}^{(t)}$) and
+($x_{n+1}$,$y_{n+1}^{(b)}$).
+The relations $x_n<x_{n+1}$ and $y_n^{(b)}\leq y_n^{(t)}$
+should hold. For the duration of the shading the optional edge effect field
+`\type{<$\epsilon_{l;i}$,$\epsilon_{r;i}$,$\epsilon_{d;i}$,$\epsilon_{u;i}$>}'
+overrides the specifications made by \verb+\setshadesymbol+. The second form
+should be used when \verb+\setquadratic+ is in effect.
+\item[\tt\bsl writesavefile \{\emph{message}\}]
+\begin{sloppypar}
+This command writes out the text \emph{message} on the file specified by the
+most recent \verb+\savelinesandcurves+ command.
+\end{sloppypar}
+\item[\tt\bsl Xdistance\{\emph{xcoord}\}]
+This command is used to get the horizontal distance from the point \emph{xcoord} in
+the current coordinate system to the origin.
+\item[\tt\bsl Ydistance\{\emph{ycoord}\}]
+This command is used to get the vertical distance from the point \emph{ycoord} in
+the current coordinate system to the origin.
+\end{syntax}
+
+\section{Parameters}
+The parameters which can be altered to change \PiCTeX's behaviour are:
+\begin{syntax}
+\item[\tt\bsl headingtoplotskip]
+This is the distance between the baseline of the heading and the top of the
+plot area, or the top of the top axis structure.
+\item[\tt\bsl linethickness]
+This parameter is the default thickness of axes, tick marks, and grid lines.
+This control sequence has its normal \LaTeX{} meaning outside of \PiCTeX{}
+pictures,
+but \verb+\pictexlinethickness+ can be used outside of \PiCTeX{}
+pictures to get the same effect as \PiCTeX's \verb+\linethickness+.
+\item[\tt\bsl longticklength]
+This is the default length of long ticks.
+\item[\tt\bsl plotsymbolspacing]
+This parameter defines the distance between plotted symbols in lines and
+curves.
+\item[\tt\bsl shortticklength]
+This is the default length of short ticks.
+\item[\tt\bsl stackleading]
+This is the default space put between items in a \type{stack}.
+\item[\tt\bsl tickstovaluesleading]
+This parameter defines the distance separating the ticks and the box enclosing
+the tick values.
+\item[\tt\bsl totalarclength]
+This register in general contains the length of the last line or curve.
+\item[\tt\bsl valuestolabelleading]
+This is the distance separating the box enclosing the tick values and the box
+enclosing the axis label.
+\end{syntax}
+
+\section{Miscellaneous}
+A couple of extra commands are provided by \PiCTeX{} for formatting names:
+\begin{syntax}
+\item[\tt\bsl PiC]
+This command produces `\PiC'.
+\item[\tt\bsl PiCTeX]
+This command produces `\PiCTeX'.
+\end{syntax}
+
+
+
+\end{document}
diff --git a/info/pictex/summary/useful.sty b/info/pictex/summary/useful.sty
new file mode 100644
index 0000000000..541b383ad3
--- /dev/null
+++ b/info/pictex/summary/useful.sty
@@ -0,0 +1,176 @@
+% Copyright (c) 1990 Angus Duggan
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions are met:
+%
+% Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+%
+% Redistributions in binary form must reproduce the above copyright
+% notice, this list of conditions and the following disclaimer in the
+% documentation and/or other materials provided with the distribution.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+% IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+% TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+% PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+% HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+% SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+% TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+% useful.sty - useful LaTeX macros for my documents
+% AJCD 18/1/90
+
+% \makeatletter
+%\catcode`@=11
+
+
+% CHARACTERS
+\def\bsl{{\tt\char'134}} % backslash
+\def\crt{\char'136} % caret
+\def\tld{\char'176} % tilde
+\def\bar{\char'174} % vertical bar
+\def\and{\char'046} % ampersand
+\def\squ{{\tt\char'015}} % straight quote
+
+\def\tc#1{\hbox{\tt\bs#1}}
+\def\ctr#1{\quad#1\hfil}
+%\def\type#1{{\tt#1}}
+
+
+% FONTS
+% oldstyle (for numerals)
+\def\oldstyle{\fam\@ne \tenmi}
+
+
+% LOGOS
+% AMS logo
+\def\AMS{American Mathematical Society}
+
+% AmSTeX logo
+\def\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.075em S$-\TeX}
+
+% BiBTeX logo
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em \TeX}}
+
+% Metafont logo
+\font\manual=manfnt
+\def\MF{{\manual META}\-{\manual FONT}}
+
+% SliTeX logo
+\def\SliTeX{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em \TeX}}
+
+% PiCTeX logo
+\def\PiCTeX{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\kern-.11em\TeX}
+
+% PiC logo
+\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
+
+
+% COMMANDS
+% discretionary break
+\def\nl{\discretionary{}{}{}}
+
+% linestack: like shortstack, but defaults to normal line spacing
+\def\linestack{\@ifnextchar[{\@linestack}{\@linestack[c]}}
+\def\@linestack[#1]{\leavevmode
+\vbox\bgroup%\baselineskip-1pt\lineskip 3pt
+\let\mb@l\hss
+\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
+\let\\\@stackcr\@ishortstack}
+
+% inputwith: input file with local style files
+% if first char is '*', count & dimen allocations are shared between styles
+% if second char is also '*', allocations are shared with input file also.
+% This is not clean.
+\newif\ifrealloc \newif\ifmaxalloc
+\newcount\b@secount \newcount\m@xcount
+\newcount\b@sedimen \newcount\m@xdimen
+\def\inputwith{\reallocfalse\maxalloctrue
+ \@ifnextchar*{\realloctrue\@inwithalloc}{\@inwithshare*}}
+\def\@inwithalloc*{\@ifnextchar*{\maxallocfalse\@inwithshare}{\@inwithshare*}}
+\def\@inwithshare*{\@ifnextchar[{\@inwithstyle}{\@inwithstyle[]}}
+\def\@inwithstyle[#1]#2{\bgroup\makeatletter
+ \b@secount\count10 \b@sedimen\count11
+ \m@xcount\b@secount \m@xdimen\b@sedimen
+ \@for\@tempa:={#1}\do
+ {\ifrealloc \count10\b@secount \count11\b@sedimen \fi
+ \expandafter\input\@tempa.sty\relax
+ \ifmaxalloc \ifnum\count10>\m@xcount \m@xcount\count10 \fi
+ \ifnum\count11>\m@xdimen \m@xdimen\count11 \fi\fi}\makeatother
+ \global\count10\m@xcount \global\count11\m@xdimen
+ \input #2\relax\egroup
+}
+
+% readaux: reads another aux file, ignoring table of contents, etc, but
+% collecting references
+\def\readaux#1{% probably want some redefinition here...
+ \makeatletter
+ \@input{#1.aux}
+ \makeatother}
+
+
+% ENVIRONMENTS
+% hanging indentation on a list
+\newbox\hangb@x
+\def\labelled{%
+ \begin{list}{}{\renewcommand{\makelabel}[1]{\setbox\hangb@x\hbox{##1}%
+ \ifdim\wd\hangb@x>\leftmargin
+ \vbox{\hbox to\labelwidth{\box\hangb@x\hss}\hbox{}}%
+ \else \box\hangb@x\hfil
+ \fi}%
+ \setlength{\leftmargin}{2\leftmargin}%
+ \setlength{\labelsep}{.5em}%
+ \setlength{\labelwidth}{\leftmargin}%
+ \addtolength{\labelwidth}{-\labelsep}%
+ \setlength{\listparindent}{1.5em}%
+ }%
+}
+\def\endlabelled{%
+ \end{list}%
+}
+
+% extracts (in small type)
+\def\extract{%
+ \begin{quote}\small
+}
+\def\endextract{\end{quote}}
+
+% newverbatim ripped out of verbatim.tex:
+\def\newverbatim#1{\@ifnextchar[{\@new@v@env{#1}}{\@new@v@env{#1}[0]}}
+% In the definition of \@new@v@env, the easy part (definition of \endFOO) comes
+% first. The definition of \FOOVERBATIM is harder, and finally \FOO is defined
+% to have \verb@syntax\FOOVERBATIM at the end of its expansion.
+\def\@new@v@env#1[#2]#3#4{\expandafter\def\csname end#1\endcsname{#4}\relax
+ \expandafter\def@verbatim\csname #1VERBATIM\endcsname{#1}{##1\end{#1}}\relax
+ \expandafter\newcommand\csname #1\endcsname
+ [#2]{#3\verb@syntax\csname #1VERBATIM\endcsname}}
+% Define verbatim syntax.
+\def\verb@syntax{\obeylines\tt\let\do\@makeother\dospecials\frenchspacing\@vobeyspaces}
+% Finally, an auxiliary function to define a macro whose argument is delimited
+% by \end{foo} in special syntax, \def@verbatim{\CS}{foo}{...body...}.
+\begingroup \catcode `|=0 \catcode `[= 1
+\catcode`]=2 \catcode `\{=12 \catcode `\}=12
+\catcode`\\=12 |gdef|def@verbatim#1#2#3[|def#1##1\end{#2}[#3]]
+|endgroup
+
+
+% ANGLICISED COMMANDS
+% british itemize
+\let\itemise\itemize
+\let\enditemise\enditemize
+
+% british center
+\let\centre\center
+\let\endcentre\endcenter
+% ...and while we're at it
+\let\centring\centering
+\let\centreline\centerline
+
+% \makeatother
+%\catcode`@=12