summaryrefslogtreecommitdiff
path: root/macros/psizzl
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 /macros/psizzl
Initial commit
Diffstat (limited to 'macros/psizzl')
-rw-r--r--macros/psizzl/aaaread.me10
-rw-r--r--macros/psizzl/chapters.psizzl314
-rw-r--r--macros/psizzl/citation.psizzl607
-rw-r--r--macros/psizzl/fontdefs.psizzl221
-rw-r--r--macros/psizzl/index.psizzl91
-rw-r--r--macros/psizzl/institut.psizzl60
-rw-r--r--macros/psizzl/letter.psizzl244
-rw-r--r--macros/psizzl/lists.psizzl172
-rw-r--r--macros/psizzl/macros.psizzl167
-rw-r--r--macros/psizzl/memo.psizzl74
-rw-r--r--macros/psizzl/mypsizzl.tex30
-rw-r--r--macros/psizzl/options.psizzl135
-rw-r--r--macros/psizzl/output.psizzl200
-rw-r--r--macros/psizzl/picture.psizzl48
-rw-r--r--macros/psizzl/psizzl.commands312
-rw-r--r--macros/psizzl/psizzl.doc41
-rw-r--r--macros/psizzl/psizzl.tex27
l---------macros/psizzl/psizzl.txt1
-rw-r--r--macros/psizzl/publicat.psizzl317
-rw-r--r--macros/psizzl/symbols.psizzl59
-rw-r--r--macros/psizzl/thesis.psizzl1
21 files changed, 3131 insertions, 0 deletions
diff --git a/macros/psizzl/aaaread.me b/macros/psizzl/aaaread.me
new file mode 100644
index 0000000000..b5e53769fb
--- /dev/null
+++ b/macros/psizzl/aaaread.me
@@ -0,0 +1,10 @@
+ PSIZZL - A TeX Format for Physics Papers
+
+
+ PSIZZL is a TeX format for physics papers written at SLAC and used at
+seveal other places. It uses too many fonts to work with the version of TeX on
+the VAX Cluster, so the sans serif and small caps fonts have been removed, and
+the control sequences for these have been redefined to give Roman type. Both
+the modified source code and a .FMT file are contained in this directory.
+
+ Please report any problems to F. Paige at X3836.
diff --git a/macros/psizzl/chapters.psizzl b/macros/psizzl/chapters.psizzl
new file mode 100644
index 0000000000..1dc8efdb71
--- /dev/null
+++ b/macros/psizzl/chapters.psizzl
@@ -0,0 +1,314 @@
+% CHAPTERS PSIZZL - generate the body of the publication
+%
+% CHAPTER MACRO
+%
+% \chapter{title}
+% This command numbers the chapter,
+% generates part of the number to be
+% used in defining equation numbers,
+% centers the line and prints it in
+% boldface type.
+% When the above macro is to be used,
+% you first set up with the macro
+%
+% \beginbody
+%
+% Then you define the chapters:
+%
+% \chapter{<chaptertitle>}%
+%
+% where <chaptertitle> may contain embedded \breaktitle macros
+%
+% After the \chapter for the last chapter, input the commnad:
+%
+% \beginappendices,
+%
+% then more \chapter's for the appendices:
+%
+% \chapter{<appendixtitle>}%
+%
+% Within each chapter, the current chapter name will be \chaptername
+% (for appendices, this will be a letter).
+%
+% You may use macros to define sections and subsections within
+% chapters:
+%
+% \section{<section name>}%
+%
+% \subsection{<subsection name>}%
+%
+% To output the tables of figures, etc. at the end, give the command:
+%
+% \endbody
+%
+%
+\def\n@llout#1{\immediate\closeout#1\immediate\openout#1}%
+\newcount\partcount
+\def\p@rtinit{\partcount\@ne}%
+\adddef\resd@c{\p@rtinit}%
+\newcount\t@cpagecount\t@cpagecount\m@ne
+\newcount\f@gpagecount\f@gpagecount\m@ne
+\newcount\t@bpagecount\t@bpagecount\m@ne
+\newcount\l@stpagecount\l@stpagecount\m@ne
+\newif\ifpartapp
+\newwrite\p@rtwrite
+\def\p@rtfile{parts.psiztemp }%
+\def\p@rthead{Table of Parts}%
+\n@llout\p@rtwrite\p@rtfile
+\def\part#1{%
+ \ifpartapp%
+ \xdef\p@rtname{Appendix\ \number\partcount}%
+ \else%
+ \xdef\p@rtname{Part\ \romannumeral\partcount}%
+ \fi%
+ \advance\partcount\@ne
+ \begingroup\c@tset%
+ \p@rttable%
+ }%
+\def\p@rtname{}%
+\def\p@rttable#1{%
+ \c@tMeoline\l@tMother
+ \xdef\writeit{%
+ \write\p@rtwrite{%
+ \line{%
+ \strut{\bf\p@rtname}\quad
+ \uppercase{%
+ \h@tMother#1\h@tMother
+ }%
+ \leaderfil\noexpand\number\p@gecount}%
+ }%
+ }%
+ \writeit\endgroup
+ \p@rtheader{#1}%
+ }%
+\def\p@rtheader#1{%
+ \endpage%
+ \llap{}\vfill%
+ {\fortyss
+ \centerline{\p@rtname}%
+ \bigbreak%
+ \centertitle{\uppercase{#1}}%
+ }%
+ \endpage%
+ }%
+\def\partout{%
+ \ifnum\partcount=\z@\else
+ \endpage\p@gefront
+ {\bf\centertitle\p@rthead}%
+ \immediate\closeout\p@rtwrite
+ \input\p@rtfile
+ \fi
+ }%
+\newcount\ch@ptercount
+\newif\if@ppendix% chapter/@ppendix switch
+\newwrite\ch@pterwrite
+\def\ch@pterfile{chapters.psiztemp }%
+\def\ch@pterhead{Table of Contents}%
+\def\ch@ptertext{}%
+\def\@ppendixtext{Appendix }%
+%
+\def\beginbody{%
+ \b@dyreset
+ }%
+\def\b@dyreset{%
+ \def\ch@ptername{}%
+ \ch@pterinit\ch@pterreset
+ \@ppendixfalse
+ \p@geclear
+ }%
+\adddef\resd@c{\ch@pterclear\b@dyreset\fr@nttrue}%
+\def\ch@pterinit{\ch@ptercount\@ne}%
+\def\ch@pterclear{\ch@ptertot\z@\n@llout\ch@pterwrite\ch@pterfile}%
+\def\ch@ptername{}%
+\def\chapter{% title
+ \if@ppendix\xdef\ch@ptername{\char\number\ch@ptercount\relax}%
+ \let\temp\@ppendixtext
+ \else \xdef\ch@ptername{\number\ch@ptercount\relax}%
+ \let\temp\ch@ptertext
+ \fi\global\advance\ch@ptercount\@ne
+ \ch@ptereject \ch@pterreset
+ \ch@skiph
+ \vbox\bgroup\begingroup\c@tset\ch@ptertable%
+ }%
+\def\ch@ptertable#1{%
+ \@ddch@pt{#1}{\strut{\temp\ch@ptername.}\quad}\endgroup
+ \vskip-\parskip
+ \bf\centertitle{\temp\ch@ptername.\quad#1}\egroup
+ \backpar\ch@skiph
+ }%
+\def\ch@ptercite#1#2{% fig, tab citation style
+ \ifch@pterrenumber#1.#2\else#2\fi
+ }%
+\def\equ@tioncite#1#2{% eqn citation style
+ \ifch@pterrenumber#1-#2\else#2\fi
+ }%
+\def\r@fcite#1#2{% ref citation style
+ \ifr@frenumber#1.#2\else#2\fi
+ }%
+\def\ch@pterreset{\s@ctioninit\s@ctionreset\c@teclear}%
+\def\ch@ptereject{\ifch@pterrenumber\vfill\supereject\fi}%
+\def\beginappendices{\@ppendixtrue\ch@ptercount`A}%
+%
+% build the table of contents,etc iteratively:
+% 1) put out TOC to determine its length => list of tables, figures
+% get the correct pagenumbers
+% 2) put out list of tables and store its page number
+% 3) put out list of figures and store its page number
+% 4) put out TOC again, now using the correct page numbers for
+% list of tables and list of figures
+%
+% (note: after \eject, the page number register contains the previous
+% page number)
+%
+\newif\iff@gt@bhead
+\def\f@gt@bhead{\f@gt@bheadfalse
+ \ifnum\t@btotal>\z@\f@gt@bheadtrue
+ \line{\strut\t@btabhead\leaderfil\romannumeral-\t@bpagecount}%
+ \fi
+ \ifnum\f@gtotal>\z@\f@gt@bheadtrue
+ \line{\strut\f@gtabhead\leaderfil\romannumeral-\f@gpagecount}%
+ \fi
+ }%
+\newcount\blankcount
+\def\rectoleaf{%
+ \ifquadside
+ \blankcount\pageno
+ \divide\blankcount4\multiply\blankcount4
+ \advance\blankcount-\pageno\blankcount-\blankcount
+ \ifnum\blankcount=\@ne\else\hrule height\z@\endleaf\fi\lock
+ \else\endpage
+ \fi
+ }%
+\newif\ift@c
+\newcount\t@cpages\t@cpages\@ne
+\def\endbody{%
+ \vfill\supereject% is there an alternative?
+ \c@teout\endpage
+ \iffrontmatter
+ \immediate\closeout\ch@pterwrite
+ \ifproof\else\endpage\fi
+ %
+ \l@stpagecount=\number\p@gecount\p@gecount=\number\t@cpagecount
+ \t@bpagecount=\number\t@cpagecount\advance\t@bpagecount\t@cpages
+ \f@gpagecount=\number\t@bpagecount\advance\f@gpagecount\m@ne
+ \t@cfalse
+ {\bf\uppercase{\centertitle{\ch@pterhead}}}\bigbreak
+ \ifnum\ch@ptertot>\z@\unlock\input\ch@pterfile\lock\fi
+ \iff@gt@bhead
+ \ifnum\t@bpagecount=\p@gecount\else\t@ctrue\fi
+ \t@bpagecount=\number\p@gecount\advance\t@bpagecount\m@ne
+ \re@dback\t@btabwrite\t@btabfile\t@btabhead\t@btotal
+ %
+ \ifnum\f@gpagecount=\p@gecount\else\t@ctrue\fi
+ \f@gpagecount=\number\p@gecount\advance\f@gpagecount\m@ne
+ \re@dback\f@gtabwrite\f@gtabfile\f@gtabhead\f@gtotal
+ \endleaf
+ \ift@c
+ \rectoleaf
+ \l@stpagecount=\number\p@gecount\p@gecount=\number\t@cpagecount
+ {\bf\uppercase{\centertitle{\ch@pterhead}}}\bigbreak
+ \ifnum\ch@ptertot>\z@\unlock\input\ch@pterfile\lock\fi
+ %
+ \t@bpagecount=\number\p@gecount\advance\t@bpagecount\m@ne
+ \re@dback\t@btabwrite\t@btabfile\t@btabhead\t@btotal
+ %
+ \f@gpagecount=\number\p@gecount\advance\f@gpagecount\m@ne
+ \re@dback\f@gtabwrite\f@gtabfile\f@gtabhead\f@gtotal
+ \endleaf
+ \fi
+ \fi
+ \endleaf
+ \p@gecount=\number\l@stpagecount
+ \fi
+ }%
+% SECTION MACRO
+% The \section macro sets the name in upper
+% and lower case capitals, prints the
+% \section{Name}% section name and number (left adjusted)
+% and skips the appropriate amount of space.
+\newcount\s@ctioncount
+\def\s@ctioninit{\global\s@ctioncount\@ne}%
+\def\secskipt{\bigbreak}%
+\def\s@ctionname{}%
+\def\section{\xdef\s@ctionname{\ch@ptername.\number\s@ctioncount}%
+ \global\advance\s@ctioncount\@ne
+ \s@ctionreset
+ \ch@skiph
+ \vbox\bgroup\begingroup\c@tset\s@ctiontable%
+ }%
+\def\s@ctiontable#1{%
+ \@ddch@pt{#1}{\quad\strut{\s@ctionname}\quad}\endgroup
+ \vskip-\parskip
+ \cp\noindent\s@ctionname\quad#1\par\egroup
+ \backpar\ch@skiph\sectionindent
+ }%
+\def\s@ctionreset{\subs@ctioninit\subs@ctionreset}%
+\let\sectionindent\relax
+%
+% SUBSECTION MACRO
+%
+% \subsection{name}% Subsections appear with a number and
+% with the name in slant font.
+%
+\newcount\subs@ctioncount
+\def\subs@ctioninit{\global\subs@ctioncount\@ne}%
+\def\subs@ctionname{}%
+\def\subsection{% subsection macro
+ \xdef\subs@ctionname{\s@ctionname.\number\subs@ctioncount}%
+ \global\advance\subs@ctioncount\@ne
+ \subs@ctionreset
+ \ch@skiph
+ \vbox\bgroup\begingroup\c@tset\subs@ctiontable%
+ }%
+\def\subs@ctiontable#1{%
+ \@ddch@pt{#1}{\qquad\strut{\subs@ctionname}\quad}\endgroup
+ \sl\noindent\subs@ctionname\quad#1\par\egroup
+ \backpar\ch@skiph\subsectionindent
+ }%
+\def\subs@ctionreset{\subsubs@ctioninit\subsubs@ctionreset}%
+\let\subsectionindent\relax
+%
+% SUBSUBSECTION MACRO
+%
+% \subsubsection{name}% Subsubsections appear with a number and
+% with the name in slant font.
+%
+\newcount\subsubs@ctioncount
+\def\subsubs@ctioninit{\global\subsubs@ctioncount\@ne}%
+\def\subsubsection{%
+ \xdef\subsubs@ctionname{\subs@ctionname.\number\subsubs@ctioncount}%
+ \global\advance\subsubs@ctioncount\@ne
+ \subsubs@ctionreset
+ \ch@skiph
+ \vbox\bgroup\begingroup\c@tset\subsubs@ctiontable%
+ }%
+\def\subsubs@ctiontable#1{%
+ \@ddch@pt{#1}{\quad\qquad\strut{\subsubs@ctionname}\quad}\endgroup
+ \sl\noindent\subsubs@ctionname\quad#1\par\egroup
+ \backpar\ch@skiph\subsubsectionindent
+ }%
+\def\subsubs@ctionreset{\p@ntinit\p@ntreset}%
+\let\subsubsectionindent\relax
+%
+% Common to all macros: write into the table of contents file
+%
+\newcount\ch@ptertot\ch@ptertot\z@
+\def\ch@skiph{\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\vskip\bigskipamount\fi}%
+\def\backpar{\nobreak\vskip-\parskip\nobreak\nointerlineskip}%
+\def\t@bcontents{% line for table of contents in table of contents
+ \line{\strut\ch@pterhead\leaderfil\romannumeral-\t@cpagecount}%
+ }%
+\def\@ddch@pt#1#2{\c@tMeoline\l@tMother
+ \xdef\next{%
+ \write\ch@pterwrite{%
+ \line{#2\h@tMother#1\h@tMother%
+ \noexpand\leaderfil\noexpand\numorroman\p@gecount%
+ }%
+ }%
+ }%
+ \next\global\advance\ch@ptertot\@ne
+ \l@tMspace
+ }%
+% for setting the first letter of each word uppercase: make space active
+% cause next token to be \uppercase{\next}
diff --git a/macros/psizzl/citation.psizzl b/macros/psizzl/citation.psizzl
new file mode 100644
index 0000000000..97031c7670
--- /dev/null
+++ b/macros/psizzl/citation.psizzl
@@ -0,0 +1,607 @@
+% CITATION PSIZZL - citation macros
+%
+% The first time you cite the reference, use the `=' syntax:
+% this creates an entry in the table of references.
+% here's how to refer to a reference the first time:
+% "...as was shown first in\reference\DrellYan={%
+% Drell,~S.~D., Levy,~D.~J., Yan,~T.~M.,
+% A FIELD THEORETIC MODEL FOR ELECTRON - NUCLEON DEEP INELASTIC
+% SCATTERING,
+% Phys.~Rev.~Lett. \refspec{22, 744-8(1969)}.
+% }%
+% here's how to cite the ref:
+% "...hadrons produced in this way\cite\DrellYan\ obey a distribution..."
+% or:
+% "...as was shown first in \reference\DrellYan . "
+% or:
+% "...end of sentence. \Reference\DrellYan\ has the somewhat curious.."
+% References cited this way will have automatic style switching.
+%
+% Figures and tables are to be defined in an analogous way
+% The first time a figure is referred to:
+% "... these data are displayed in
+% \figure\<mnemonic>=
+% {Title of the figure}{caption}{<the figure itself>} more text..."
+% and on subsequent references:
+% "...the cross section ( see \figure\nanobarn)..."
+% or:
+% "...end of sentence. \Figure\newcross\ shows how the new physics..."
+% Tables are exactly analogous to figures.
+%
+% Equations are defined:
+% \equation\<mnemonic>={<equation expression without $$'s>}%
+% e.g.:
+% \equation\quadrature={x^2+y^2=z^2}%
+% to use this construct:
+% "...end of sentence. \Equation\quadrature\ therefore represents..."
+%
+\def\p@gerightglue{\hss}\def\p@geleftglue{\hss}%
+\def\Ps@zerr#1#2{\errhelp=#2\errmessage{Psizzl: #1}}%
+\newhelp\Ps@zmsngtxt{%
+ I expected you to define this name here, but you didn't.
+ You need to define this name here.
+ Hit <CR> to continue processing.
+ }%
+\newhelp\Ps@zmltptxt{%
+ I already encountered this name, but you're trying to define it here.
+ You need to give the defining text the first time the name is used,
+ not here. Hit <CR> to continue.
+ }%
+\newif\iftitleincaption\titleincaptiontrue
+\newif\ifv@ta
+\def\vita#1{%
+ \v@tatrue\def\v@ta{#1}%
+ }%
+\def\v@tahead{\uppercase{Vita}}%
+% needed: macros to assist in the preparation of the author list on the
+% titlepage
+%
+% Macros common to references and title page addresses
+%
+\def\c@tset{\c@tMactive\c@tVset\l@twrite}%
+\def\xd@fnumber#1#2{\xdef#1{{\number\m@decount}}\m@debump}%
+\def\xd@fletter#1#2{\xdef#1{{\char\number\m@decount}}\m@debump}%
+\def\xd@ftext#1#2{\xdef#1{{\it#2}}}%
+\def\xd@fch@pt#1{%
+ \xdef#1{\ch@ptercite{\ch@ptername}{\number\m@decount}}\m@debump
+ }%
+\def\m@debump{%
+ \global\advance\m@decount\@ne \global\advance\m@detotal\@ne
+ }%
+\def\m@deref#1{%
+ \begingroup
+ \ifx=\next
+ \aftergroup\m@detypr\aftergroup#1%
+ \c@tset
+ \begingroup\aftergroup\g@ttok\aftergroup\m@decap
+ \begingroup\aftergroup\g@ttok\aftergroup\m@deeqs
+ \else
+ \Ps@zerr{missing text for \string#1}\Ps@zmsngtxt
+ \fi
+ \endgroup
+ }%
+\def\m@detypr#1{\c@tMeoline
+ \edef\next{\noexpand#1{\the\m@decap}}\global\m@decap{}%
+ \begingroup\aftergroup\expandafter\aftergroup\m@dedoembed
+ \endgroup\next
+ }%
+%
+% Reference Macros
+%
+\newcount\r@ftotal\r@ftotal\z@
+\newcount\r@fcount\r@fcount\@ne
+\newif\ifr@frenumber\r@frenumberfalse%
+\newif\ifch@pterrenumber\ch@pterrenumberfalse%
+\newwrite\r@fcapwrite\def\r@fcapfile{refcap.psiztemp }%
+\def\r@fcaphead{\uppercase{References}}%
+\newwrite\r@ftabwrite\def\r@ftabfile{reftab.psiztemp }%
+\def\r@ftabhead{\uppercase{List of References}}%
+\def\hyphen{-}\def\comma{,}%
+\newif\ifciter@f
+\newif\ifsuperr@f\superr@ftrue
+\newif\ifc@tenull
+\newif\ifnewr@f
+\def\refspec#1,#2(#3){{\bf#1}, #2 (#3)}%
+\def\volyearpageref{\gdef\refspec##1,##2(##3){{\bf##1} (##3) ##2}}%
+\def\cernref{%vol
+ \gdef\refspec##1,##2(##3){%
+ %author, year, {\it Journal} Publisher {\fb Vol}, page.
+ }%
+ }%
+\def\refstyle{%
+ \r@fstyle
+ }%
+\def\r@fstyle#1{\r@fbeg#1\r@fend}%
+\def\lapperiod{%
+ \hbox to \z@{.\hss}%
+ }%
+\def\r@fsupbeg{$^\bgroup}\def\r@fsupend{\egroup$}%
+\def\r@fsupparbeg{$^\bgroup(}\def\r@fsupparend{)\egroup$}%
+\def\r@fbrabeg{[}\def\r@fbraend{]}%
+\def\r@fparbeg{(}\def\r@fparend{)}%
+\def\superreference{%
+ \let\r@fbeg\r@fsupbeg\let\r@fend\r@fsupend
+ }\superreference
+\def\bracketreference{%
+ \let\r@fbeg\r@fbrabeg\let\r@fend\r@fbraend
+ }%
+\def\parenreference{%
+ \let\r@fbeg\r@fparbeg\let\r@fend\r@fparend
+ }%
+\def\superparenreference{%
+ \let\r@fbeg\r@fsupparbeg\let\r@fend\r@fsupparend
+ }%
+\def\cite{%
+ \let\t@g=\r@fstyle\r@fget
+ }%
+\def\hideref{%
+ \let\t@g\g@ble\r@fget
+ }%
+\def\bareref{%
+ \let\t@g\relax\r@fget
+ }%
+\def\reference{%
+ \let\t@g=\r@f\r@fget
+ }%
+\def\Reference{%
+ \let\t@g=\R@f\r@fget
+ }%
+\def\r@f{Ref.\tie}%
+\def\R@f{Reference\tie}%
+\def\r@fget{%
+ \let\m@dedef=\m@deref\let\m@degobble=\g@bble
+ \let\m@decount=\r@fcount\let\m@detotal=\r@ftotal
+ \let\m@dedoembed\r@fembed
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\r@fembed#1#2{\xd@fnumber#1{#2}%
+ \t@g{#1}\c@tMeoline\@dd\r@fcapwrite{#1\p@riod}{{\rm#2}}%
+ }%
+% following 6 lines define macros to be used in mutiple references
+\def\f@rstcite{\let\cite\s@ccite\let\sp@nit\g@ble\bareref}%
+\def\s@ccite{\let\cite\th@rdcite\let\sp@nit\comma\hideref}%
+\def\th@rdcite{\let\cite\hideref\let\sp@nit\dash\hideref}%
+\def\spancite{\begingroup\let\cite\f@rstcite\r@fbeg}%
+\def\groupcite{\begingroup\let\cite\bareref\let\sp@nit\g@ble\r@fbeg}%
+\def\endcite{\sp@nit\mn@m\r@fend\endgroup}%
+\def\comma{,}\def\dash{-}%
+%
+%
+% author address macros
+%
+%
+% three styles:
+%
+% 1 - inline author addresses
+%
+% 2 - footnoted address
+%
+% 3 - addresses in ref list
+%
+\newcount\@ddrcount
+\newcount\@ddrtotal
+\newif\ifc@teaddress
+\def\rm@a{`a}\def\gr@a{\tw@}%
+\def\@ddsuper#1{$^{(#1)}$}%
+\adddef\resd@c{\@ddrcount\@ddrz@\@ddrtotal\z@}%
+\def\pr@sent{Present address: }%
+\def\authoraddress{%
+ \let\@ddrpre=\relax\@ddrget
+ }%
+\def\presentaddress{%
+ \let\@ddrpre=\pr@sent\@ddrget
+ }%
+\def\addressreference{% author addresses are references
+ \let\@ddraction=\@ddradd
+ \let\@ddrxdef=\xd@fletter
+ \let\@ddrtag=\@ddsuper
+ \let\@ddrt@tal=\r@ftotal
+ \let\@ddrz@\rm@a % alt: \let\@ddrz@\gr@a
+ \c@teaddresstrue
+ }%
+\def\@ddradd#1#2{%
+ \t@g{#1}\c@tMeoline\@dd\r@fcapwrite{(#1)}{{\rm\@ddrpre#2}}%
+ }%
+\def\addressfootnote{% author addresses are footnotes
+ \let\@ddraction=\@ddrfoot
+ \let\@ddrxdef=\xd@fletter
+ \let\@ddrtag=\@ddsuper
+ \let\@ddrt@tal=\@ddrtotal
+ \let\@ddrz@\rm@a
+ \c@teaddresstrue
+ }%
+\def\@ddrfoot#1#2{\footnote{\t@g{#1}}{{\rm\@ddrpre#2}}}%
+\def\addressinline{% author addresses are inline
+ \let\@ddraction=\@ddrinline
+ \let\@ddrxdef=\xd@ftext
+ \let\@ddrtag=\breaktitle
+ \let\@ddrt@tal=\@ddrtotal
+ \let\@ddrz@\z@
+ \c@teaddressfalse
+ }%
+\def\@ddrinline#1#2{{\rm\t@g#2}}%
+\def\@ddrget{%
+ \let\m@dedef=\m@deref\let\m@degobble=\g@bble
+ \let\m@decount=\@ddrcount\let\m@detotal=\@ddrt@tal
+ \let\t@g=\@ddrtag
+ \let\m@dedoembed=\@ddrembed
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\@ddrembed#1#2{\@ddrxdef#1{#2}\@ddraction#1{#2}}%
+\addressfootnote
+%
+% EQUATION NUMBER MACRO
+%
+\newcount\eq@count\eq@count\@ne\newcount\eq@total\eq@total\z@
+\newwrite\eq@write
+\def\eq@file{equation.textemp }%
+\def\eq@head{\uppercase{List of Equations}}%
+\def\display{%
+ \let\t@g\g@ble\eq@get
+ }%
+\def\Equation{%
+ \let\t@g\Eq@\eq@get
+ }%
+\def\Eq@{Equation\tie}%
+\def\equation{%
+ \let\t@g\eq@\eq@get
+ }%
+\def\eq@{Eqn.\tie}%
+\def\eq@get{%
+ \let\m@dedef=\m@deref\let\m@degobble=\g@bble
+ \let\m@decount=\eq@count\let\m@detotal=\eq@total
+ \let\m@dedoembed=\@qnembed
+ \let\p@riod=\d@sh
+ \l@tnxt\m@denxt
+ }%
+\def\@qnembed#1#2{\xd@fch@pt#1\t@g{#1}{\l@tMspace$$#2\eqno(#1)$$}}%
+%
+% macros common to \figure and \table commands
+%
+\def\m@denxt#1{\def\mn@m{#1}%
+ \ifx\undefined#1\let\temp\m@dedef\else\let\temp\m@dechk\fi
+ \temp#1%
+ }%
+\def\m@dechk#1{\t@g{#1}%
+ \ifx=\next\let\temp\m@lterr\else\let\temp\g@ble\fi\temp#1%
+ }%
+\def\m@lterr#1{%
+ \Ps@zerr{multiple text for \string#1}\Ps@zmltptxt\m@degobble
+ }%
+\def\g@bbbble#1#2#3#4{}%
+\def\g@bbble#1#2#3{}%
+\def\g@bble#1#2{}%
+\def\g@ble#1{}%
+\def\m@deset#1{%
+ \begingroup
+ \ifx=\next
+ \aftergroup\m@detype\aftergroup#1%
+ \c@tset
+ \begingroup\aftergroup\g@ttok\aftergroup\m@defig
+ \begingroup\aftergroup\g@ttok\aftergroup\m@decap
+ \begingroup\aftergroup\g@ttok\aftergroup\m@detit
+ \begingroup\aftergroup\g@ttok\aftergroup\m@deeqs
+ \else
+ \Ps@zerr{missing text for \string#1}\Ps@zmsngtxt
+ \fi
+ \xd@fch@pt#1% chapter number is embedded in this number.
+ \t@g#1% the rest of this must not generate any unwanted spaces!
+ \endgroup
+ }%
+\newtoks\m@deeqs\newtoks\m@detit\newtoks\m@decap\newtoks\m@defig
+\def\m@detype#1{\c@tMeoline
+ \edef\next{\noexpand#1{\the\m@detit}{\the\m@decap}{\the\m@defig}}%
+ \global\m@detit{}\global\m@decap{}\global\m@defig{}%
+ \begingroup\aftergroup\expandafter
+ \ifm@dembed\aftergroup\m@dedoembed\else\aftergroup\m@denoembed\fi
+ \endgroup\next
+ }%
+%
+% end of macros common to \table and \figure commands
+%
+% FIGURE CAPTION MACRO
+%
+% The Figure Caption macro generates a list of figure captions. It
+% is similar to the reference macro.
+%
+\newif\iffigureembed\figureembedtrue
+\newif\iff@gmidpage\f@gmidpagetrue
+\newif\iff@gfullpage
+\newcount\f@gcount\f@gcount\@ne
+\newcount\f@gtotal\f@gtotal\z@
+\newwrite\f@gcapwrite\def\f@gcapfile{figcap.psiztemp }%
+\def\f@gcaphead{\uppercase{Figure Captions}}%
+\newwrite\f@gtabwrite\def\f@gtabfile{figtab.psiztemp }%
+\def\f@gtabhead{{List of Figures}}%
+\newwrite\f@gfigwrite\def\f@gfigfile{figfig.psiztemp }%
+\def\f@ginsert{%
+ \iff@gfullpage\let\next=\pageinsert
+ \else\iff@gmidpage\let\next=\ordinsert
+ \else\let\next=\topinsert
+ \fi
+ \fi\next
+ }%
+\def\f@gcaptext#1#2#3{%
+ \noindent\F@g#1. \iftitleincaption#2\fi#3%
+ }%
+\def\f@gcaption#1#2#3{%
+ \iff@gfullpage\vfill\f@gcaptext{#1}{#2}{#3}%
+ \else{\narrower{\f@gcaptext{#1}{#2}{#3}}\par}%
+ \fi
+ }%
+\def\figure{%
+ \def\t@g{\f@g}\f@gget%
+ }%
+\def\Figure{%
+ \def\t@g{\F@g}\f@gget
+ }%
+\def\hidefig{%
+ \let\t@g\g@ble\f@gget
+ }%
+\def\barefig{%
+ \let\t@g\relax\f@gget
+ }%
+\def\f@g{Fig.\tie}%
+\def\F@g{Figure\tie}%
+\def\f@gget{%
+ \let\m@dedef=\m@deset\let\m@degobble\g@bbbble
+ \let\m@decount=\f@gcount\let\m@detotal=\f@gtotal
+ \let\ifm@dembed=\iffigureembed
+ \let\m@dedoembed\f@gpar\let\m@denoembed\f@gnow
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\f@gpar#1#2#3#4{\ch@ckpar
+ \adddef\m@dpar{\l@tMspace
+ \f@ginsert
+ \singlespace
+ \ifdraft\else\line{\p@geleftglue\vbox{#4}\p@gerightglue}\fi
+ \f@gcaption#1{#2}{#3}%
+ \@ddtab\f@gtabwrite#1{#2}%
+ \endinsert
+ }%
+ }%
+\def\f@gnow#1#2#3#4{%
+ {\l@twrite
+ \@ddtab\f@gtabwrite#1{#2}%
+ \@dd\f@gcapwrite{#1.}{\iftitleincaption#2\fi#3}%
+ \immediate\write\f@gfigwrite{#4}%
+ \immediate\write\f@gfigwrite{\hang\F@g#1.\endpage}%
+ }%
+ }%
+%
+% TABLE CAPTION MACRO
+%
+% The Table Caption macro generates a list of table captions.
+% It is similar to the figure macro.
+%
+\newif\iftableembed\tableembedtrue
+\newif\ift@bmidpage\t@bmidpagetrue
+\newif\ift@bfullpage
+\newcount\t@bcount\t@bcount\@ne \newcount\t@btotal\t@btotal\z@
+\newwrite\t@bcapwrite\def\t@bcapfile{tabcap.psiztemp }%
+\def\t@bcaphead{\uppercase{Table Captions}}%
+\newwrite\t@btabwrite\def\t@btabfile{tabtab.psiztemp }%
+\def\t@btabhead{{List of Tables}}%
+\newwrite\t@bfigwrite\def\t@bfigfile{tabfig.psiztemp }%
+\def\t@binsert{%
+ \ift@bfullpage\let\next=\pageinsert
+ \else\ift@bmidpage\let\next=\ordinsert
+ \else\let\next=\topinsert
+ \fi
+ \fi\next
+ }%
+\def\t@bcaptext#1#2#3{%
+ \noindent\T@b#1\p@riod\ \iftitleincaption#2\fi#3%
+ }%
+\def\t@bcaption#1#2#3{%
+ \ift@bfullpage\t@bcaptext{#1}{#2}{#3}\par
+ \else\ift@bmidpage\bigskip\fi
+ {\narrower{\t@bcaptext{#1}{#2}{#3}\par}}\medskip
+ \fi
+ }%
+\def\table{%
+ \let\t@g\t@b\t@bget
+ }%
+\def\Table{%
+ \let\t@g\T@b\t@bget
+ }%
+\def\hidetab{%
+ \let\t@g\g@ble\t@bget
+ }%
+\def\baretab{%
+ \let\t@g\relax\t@bget
+ }%
+\def\t@b{Table\tie}\def\T@b{Table\tie}%
+\def\t@bget{%
+ \let\m@dedef=\m@deset\let\m@degobble=\g@bbbble
+ \let\m@decount=\t@bcount\let\m@detotal=\t@btotal
+ \let\ifm@dembed=\iftableembed
+ \let\m@dedoembed\t@bpar\let\m@denoembed\t@bnow
+ \let\p@riod=\p@int
+ \l@tnxt\m@denxt
+ }%
+\def\t@bpar#1#2#3#4{\ch@ckpar
+ \adddef\m@dpar{\l@tMspace
+ \t@binsert
+ \singlespace
+ \t@bcaption#1{#2}{#3}%
+ \ifdraft\else\line{\p@geleftglue\vbox{#4}\p@gerightglue}\fi
+ \@ddtab\t@btabwrite#1{#2}%
+ \endinsert
+ }%
+ }%
+\def\t@bnow#1#2#3#4{%
+ {\l@twrite
+ \@ddtab\t@btabwrite#1{#2}%
+ \@dd\t@bcapwrite{#1.}{\iftitleincaption#2\fi#3}%
+ \immediate\write\t@bfigwrite{#4}%
+ \immediate\write\t@bfigwrite{\hang\T@b#1.\endpage}%
+ }%
+ }%
+%
+% COMMON MACROS FOR ALL THE ABOVE
+%
+% Following three macros implement the ordered midinsert: \ordinsert.
+% This repairs the defect in \midinsert which can cause the order of
+% the inserts in the typeset document to be different from the
+% order in which they appear in the source.
+% Note that a \midinsert is translated into a \topinsert if it is too big
+% or if there are any inserts carried over at all. So a split footnote
+% would have an interference effect here.
+\newif\if@ord
+\def\ordinsert{\@ordtrue\@midtrue\@ins}%
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid\p@gefalse\if@ord\ifnum\insertpenalties>\z@\@midfalse\fi\fi\fi
+ \if@mid
+ \dimen@\ht\z@\advance\dimen@\dp\z@\advance\dimen@\bigskipamount
+ \advance\dimen@\pagetotal\advance\dimen@\pagedepth
+ \advance\dimen@-\pageshrink\advance\dimen@-\pagegoal
+ \ifdim\dimen@>\z@\@midfalse\fi
+ \fi
+ \if@mid \bigskip\box\z@\bigbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\vskip\@ne\bigskipamount
+ \fi
+ }%
+ \fi\endgroup\@ordfalse
+ }%
+% Following five macros examine successive tokens until something other
+% than a <CR> is seen. This, then becomes the tokens put into the
+% token register which is the argument of \g@ttok.
+% In this way, the tokens are absorbed with <CR> as an active character
+% but still preserving TeX's property of spacing past blanks (including
+% a <CR>) as it is absorbing the arguments of a macro.
+\def\g@ttok#1{\let\temp#1\l@kt@k}%
+\def\l@kt@k{\futurelet\next\d@ct@k}%
+\def\d@ct@k{%
+ \if\next\h@tMactive\let\next\g@bt@k\else\let\next\g@tt@k\fi\next
+ }%
+\def\g@tt@k#1{\global\temp{#1}\endgroup}%
+\def\g@bt@k#1{\l@kt@k}%
+\def\ch@ckpar{%
+ \ifx\par\endgraf\gdef\par{\m@dpar}%
+ \gdef\m@dpar{\gdef\m@dpar{}\global\let\par\endgraf\par}%
+ \fi
+ }%
+\def\l@tnxt#1#2{\def\temp{#1#2}\futurelet\next\temp}%
+\def\lowercasecite{%
+ \gdef\r@f{ref.\tie}\gdef\f@g{fig.\tie}%
+ \gdef\t@b{table\tie}\gdef\eq@{eqn.\tie}%
+ }%
+\adddef\l@twrite{% define in macros
+ \l@tMother
+ \let\figure=0\let\Figure=0%
+ \let\table=0\let\Table=0%
+ \let\reference=0\let\Reference=0\let\cite=0%
+ \let\authoraddress=0\let\presentaddress=0%
+ \let\equation=0\let\Equation=0\let\display=0%
+ \let\picture=0%
+ }%
+\gdef\@dd#1#2#3{% add something to the specified file
+ {\l@twrite
+ \immediate\write#1{\noexpand\hangpar{.08}{#2\quad}\percent}%
+ \immediate\write#1{#3}%
+ }%
+ }%
+\def\hangpar#1#2{%
+ \par\noindent\hangindent#1\refsize
+ \hbox to #1\refsize{\hfill#2}%
+ }%
+\def\@ddtab#1#2#3{%
+ {\l@twrite
+ \write#1{%
+ \line{%
+ \quad\strut#2\quad\h@tMother#3\h@tMother
+ \leaderfil\number\p@gecount
+ }%
+ }%
+ }%
+ }%
+%
+% MACROS FOR OUTPUTTING CITATIONS AND FOR RESETTING THEM
+%
+\def\re@dback#1#2#3#4{%
+ \ifnum#4>\z@
+ \ifproof\bigskip\else\endpage\fi
+ {\bf\centertitle#3}%
+ \immediate\closeout#1
+ \unlock\input#2\lock
+ \fi
+ }%
+\def\c@teout{%
+ \ifnum\r@ftotal>\z@
+ \ifproof\else\endpage\fi
+ \xdef\writeit{%
+ \write\ch@pterwrite{%
+ \line{%
+ \strut\h@tMother\r@fcaphead\h@tMother
+ \leaderfil\noexpand\number\p@gecount
+ }%
+ }%
+ }\writeit
+ \re@dback\r@fcapwrite\r@fcapfile\r@fcaphead\r@ftotal
+ \ifproof\else\endpage\fi
+ \fi
+ \ifv@ta
+ \endpage
+ \xdef\writeit{%
+ \write\ch@pterwrite{%
+ \line{%
+ \strut\h@tMother\v@tahead\h@tMother
+ \leaderfil\noexpand\number\p@gecount
+ }%
+ }%
+ }\writeit
+ \centertitle{\v@tahead}\v@ta
+ \fi
+ \iftableembed\else
+ \re@dback\t@bcapwrite\t@bcapfile\t@bcaphead\t@btotal
+ \fi
+ \iffigureembed\else
+ \re@dback\f@gcapwrite\f@gcapfile\f@gcaphead\f@gtotal
+ \fi
+ }%
+\def\c@tereset{%
+ \global\f@gcount\@ne
+ \global\t@bcount\@ne
+ \global\eq@count\@ne
+ \global\r@fcount\@ne
+ \global\f@gtotal\z@
+ \global\t@btotal\z@
+ \global\r@ftotal\z@
+ \n@llout\r@ftabwrite\r@ftabfile
+ \n@llout\r@fcapwrite\r@fcapfile
+ \n@llout\f@gtabwrite\f@gtabfile
+ \n@llout\f@gcapwrite\f@gcapfile
+ \n@llout\f@gfigwrite\f@gfigfile
+ \n@llout\t@btabwrite\t@btabfile
+ \n@llout\t@bcapwrite\t@bcapfile
+ \n@llout\t@bfigwrite\t@bfigfile
+ \n@llout\eq@write\eq@file
+ }%
+\adddef\b@dyreset{\c@tereset}%
+\def\c@teclear{%
+ \ifch@pterrenumber
+ \global\f@gcount\@ne
+ \global\t@bcount\@ne
+ \global\eq@count\@ne
+ \fi
+ \ifr@frenumber\global\r@fcount\@ne\fi
+ }%
+\def\f@gt@bhead{\f@gt@bheadfalse
+ \ifnum\t@btotal>\z@\f@gt@bheadtrue
+ \line{\strut\t@btabhead\leaderfil\romannumeral-\t@bpagecount}%
+ \fi
+ \ifnum\f@gtotal>\z@\f@gt@bheadtrue
+ \line{\strut\f@gtabhead\leaderfil\romannumeral-\f@gpagecount}%
+ \fi
+ }%
+% when text is missing, must still typeset the ref number.
+% show error messages in the documentation
diff --git a/macros/psizzl/fontdefs.psizzl b/macros/psizzl/fontdefs.psizzl
new file mode 100644
index 0000000000..9a1b582c03
--- /dev/null
+++ b/macros/psizzl/fontdefs.psizzl
@@ -0,0 +1,221 @@
+
+% FONTDEFS PSIZZL - fonts for use with version TeX 1.0,
+%
+% For reference,
+% default pointsize better(?)
+% Text 10 12 point type 14
+% Equations 10 12 point type 14
+% Superscripts 7 10 point type 10
+% Supersuperscripts 5 8 point type 7
+% \message{load fonts}
+%
+%
+%===============================================================================
+% PSIZZL uses too many fonts for the BNL VAX version of TeX. The sans
+% serif and small caps fonts have been removed with "%*****". Roman fonts are
+% substituted instead:
+\def\sr{\rm} % Roman for sans-serif
+\def\cp{\rm} % Roman for small caps
+% J. Haggerty and F. Paige, 5 Nov 1986
+%===============================================================================
+%
+%*****\font\fortyss = cmssmc40 % sanserif
+%
+\font\fifteenrm = cmr10 scaled\magstep4% % roman 14.4 point
+\font\fourteenrm = cmr10 scaled\magstep3% % roman 14.4 point
+%
+\font\twelverm = cmr10 scaled\magstep1% % roman 12 point
+\font\twelvei = cmmi10 scaled\magstep1% % mathitalic 12 point
+\font\twelveit = cmti10 scaled\magstep1% % italic 12 point
+\font\twelvebf = cmbx10 scaled\magstep1% % boldface 12 point
+\font\twelvesy = cmsy10 scaled\magstep1% % math 12 point
+\font\twelvesl = cmsl10 scaled\magstep1% % slanted 12 point
+%*****\font\twelvess = cmss10 scaled\magstep1% % sansserif 12 point
+\font\twelvett = cmtt10 scaled\magstep1% % typewriter 12 point
+\font\twelveex = cmex10 scaled\magstep1% % extra math 12 point
+%*****\font\twelvecp = cmcsc10 scaled\magstep1% % capitals at 12 point
+%
+%*****\font\tencp = cmcsc10 % capitals at 10 point
+%*****\font\tenss = cmss10 % sansserif 10 point
+%
+\font\eightbf = cmbx8 scaled\magstep1% % boldface 9.6 point
+\font\eightrm = cmr8 scaled\magstep1% % roman 9.6 point
+\font\eightsl = cmsl8 scaled\magstep1% % slanted 9.6 point
+%*****\font\eightss = cmssq8 scaled\magstep1% % sans serif 9.6 point
+\font\eightsy = cmsy8 scaled\magstep1% % symbols 9.6 point
+\font\eighti = cmmi8 scaled\magstep1% % math 9.6 point
+\font\eightit = cmti8 scaled\magstep1% % text italic 9.6 point
+\font\eighttt = cmtt8 scaled\magstep1% % typewriter 9.6 point
+%
+\font\sixbf = cmbx7 scaled\magstep1% % boldface 7.2 point
+\font\sixrm = cmr7 scaled\magstep1% % roman 7.2 point
+\font\sixsy = cmsy7 scaled\magstep1% % math 7.2 point
+\font\sixi = cmmi7 scaled\magstep1% % math italic 7.2 point
+%
+%\message{done fonts}%
+%*****\newfam\srfam
+%*****\newfam\cpfam
+%
+\def\rm{\fam0\fontrm }%
+\def\mit{\fam1 }%
+\def\cal{\fam2 }%
+\def\it{\fam\itfam\fontit}%
+%*****\def\sr{\fam\srfam\fontsr}%
+\def\sl{\fam\slfam\fontsl}%
+\def\bf{\fam\bffam\fontbf}%
+\def\tt{\fam\ttfam\fonttt}%
+%*****\def\cp{\fam\cpfam\fontcp}%
+\def\twelvep@int{% defines all the characteristics of twelve point type
+ \relax
+ \textfont0 = \twelverm % roman
+ \scriptfont0 = \eightrm
+ \scriptscriptfont0 = \sixrm
+ \let\fontrm = \twelverm
+ %
+ \textfont1 = \twelvei % math italics
+ \scriptfont1 = \eighti
+ \scriptscriptfont1 = \sixi
+ %
+ \textfont2 = \twelvesy % math symbols
+ \scriptfont2 = \eightsy
+ \scriptscriptfont2 = \sixsy
+ %
+ \textfont3 = \twelveex % extended math
+ \scriptfont3 = \twelveex
+ \scriptscriptfont3 = \twelveex
+ % there is no name for this
+ %
+ \textfont\itfam = \twelveit % text italic
+ \let\fontit = \twelveit
+ %
+%***** \textfont\srfam = \twelvess % sans serif
+%***** \let\fontsr = \twelvess
+ %
+ \textfont\slfam = \twelvesl % slanted text
+ \let\fontsl = \twelvesl
+ %
+ \textfont\bffam = \twelvebf % boldface
+ \scriptfont\bffam = \eightbf
+ \scriptscriptfont\bffam = \sixbf
+ \let\fontbf = \twelvebf
+ %
+ \textfont\ttfam = \twelvett % typewriter
+ \let\fonttt = \twelvett
+ %
+%***** \textfont\cpfam = \twelvecp % caps & smallcaps
+%***** \let\fontcp = \twelvecp
+ %
+ \fontrm
+ \spaceparams
+ }%
+\def\tenp@int{% defines all the characteristics of ten point type
+ \relax
+ \textfont0 = \tenrm % roman
+ \scriptfont0 = \sevenrm
+ \scriptscriptfont0 = \fiverm
+ \let\fontrm = \tenrm
+ %
+ \textfont1 = \teni % math italics
+ \scriptfont1 = \seveni
+ \scriptscriptfont1 = \fivei
+ %
+ \textfont2 = \tensy % math symbols
+ \scriptfont2 = \sevensy
+ \scriptscriptfont2 = \fivesy
+ %
+ \textfont3 = \tenex % extended math
+ \scriptfont3 = \tenex
+ \scriptscriptfont3 = \tenex
+ % there is no name for this
+ %
+ \textfont\itfam = \tenit % text italic
+ \let\fontit = \tenit
+ %
+%***** \textfont\srfam = \tenss % sans serif
+%***** \let\fontsr = \tenss
+ %
+ \textfont\slfam = \tensl % slanted text
+ \let\fontsl = \tensl
+ %
+ \textfont\bffam = \tenbf % boldface
+ \scriptfont\bffam = \sevenbf
+ \scriptscriptfont\bffam = \fivebf
+ \let\fontbf = \tenbf
+ %
+ \textfont\ttfam = \tentt % typewriter
+ \let\fonttt = \tentt
+ %
+%***** \textfont\cpfam = \tencp % caps & smallcaps
+%***** \let\fontcp = \tencp
+ %
+ \fontrm
+ \spaceparams
+ }%
+\def\spaceparams{% spacing parameters in a font-covariant form
+ % If we do \sevenrm\spaceparams,
+ % we will successfully switch to the new font at the correct spacing.
+ % We have taken 2.3ex to be the height of the current font.
+ \topskip 2.3ex
+ \splittopskip 2.3ex
+ \smallskipamount= .75ex plus .25ex minus .25ex
+ \medskipamount = 1.5ex plus .50ex minus .50ex
+ \bigskipamount = 3.0ex plus 1.0ex minus 1.0ex
+ %
+ \parfillskip 0ex plus 1fil
+ \parindent 2.0em
+ \abovedisplayskip 3.8ex plus .57ex minus 1.7ex
+ \belowdisplayskip 3.8ex plus .57ex minus 1.7ex
+ \abovedisplayshortskip 0ex plus .68ex
+ \belowdisplayshortskip 1.6ex plus .68ex minus .91ex
+ \maxdepth .45ex
+ \splitmaxdepth \maxdimen
+ \boxmaxdepth \maxdimen
+ \setbox\strutbox\hbox{\vrule height 3ex depth .8ex width 0em}%
+ %
+ \hfuzz .023ex
+ \vfuzz .023ex
+ \delimitershortfall 1.2ex
+ \nulldelimiterspace .27ex
+ \scriptspace .11ex
+ \overfullrule 1.2ex
+ \thinmuskip 3mu
+ \medmuskip 4mu plus 2mu minus 4mu
+ \thickmuskip 5mu plus 5mu
+ %
+ \s@tbaselines
+ }%
+\newskip\normalparskip
+\def\@nenhalf{1.5}%
+\def\s@tbaselines{%
+ \normallineskip .23ex
+ \normalbaselineskip 2.76ex
+ \normallineskiplimit 0ex
+ \normalparskip 0.00ex plus .23ex minus .00ex
+ \refsize\hsize
+ \refbetweenskip\parskip
+ %
+ \lineskip\linesp@ce\normallineskip
+ \baselineskip\linesp@ce\normalbaselineskip
+ \lineskiplimit\linesp@ce\normallineskiplimit
+ \parskip\linesp@ce\normalparskip
+ }%
+\def\singlespace{%
+ \let\linesp@ce\@ne\s@tbaselines
+ }\let\linesp@ce\@ne
+\def\normalbaselines{%
+ \let\linesp@ce\@nenhalf\s@tbaselines
+ }%
+\def\doublespace{%
+ \let\linesp@ce\tw@\s@tbaselines
+ }%
+\hsize 6.0 true in
+\vsize 8.75 true in
+%
+\newdimen\refsize
+\newskip\refbetweenskip
+%
+\def\largetype{\twelvep@int}%
+%
+\def\mediumtype{\tenp@int}%
+%
+\mediumtype\singlespace
diff --git a/macros/psizzl/index.psizzl b/macros/psizzl/index.psizzl
new file mode 100644
index 0000000000..b0c0a81041
--- /dev/null
+++ b/macros/psizzl/index.psizzl
@@ -0,0 +1,91 @@
+% INDEX PSIZZL - indexing macros for TeX version 1.0
+% index entries come in two visibilities - non-silent and silent
+% non-silent entries are preceeded by a ^
+% while silent entries are preceeded by ^^
+% the four types of non-silent entries are as follows
+% ^{text} - type 0, normal
+% ^|text| - type 1, TeX input, but not a control sequence
+% ^|\text| - type 2, TeX control sequence
+% ^\<text> - type 3, TeX concept, a mnemonic name
+%
+% the format of the entry in the index file is:
+% text_!n_pp. where _ is a space, n is the index type,
+% pp is the page number
+%
+\newif\ifproofindex
+\let\numbercount=\relax
+\def\\{%
+ {\tt\char'134}%
+ }%
+\def\<{%
+ \relax\ifmmode\mskip\medmuskip\else\char'74\fi
+ }%
+\newwrite\@ndexwrite\def\@ndexfile{index.psiztemp }%
+\adddef\fmtreset{%
+ \immediate\openout\@ndexwrite=\@ndexfile % file for index reminders
+ }%
+\newif\ifsilent
+\def\specialhat{%
+ \relax\ifmmode\def\next{^}\else\let\next=\beginxref\fi\next
+ }%
+\def\beginxref{%
+ \futurelet\next\beginxrefswitch
+ }%
+\def\beginxrefswitch{%
+ \ifx\next\specialhat\let\next\silentxref
+ \else\silentfalse\let\next\xref
+ \fi
+ \next
+ }%
+{\c@tCactive\global\let^\specialhat\gdef\silentxref^{\silenttrue\xref}}%
+\c@tCactive\adddef\l@twrite\l@tCzero %this turns on indexing capability
+{\c@tVcontrol\c@tBactive|gdef\{}}% \ as an active character -> nothing
+\def\marginstyle{\vrule height6pt depth2pt width0pt \sevenrm}%
+\chardef\bslash=`\\
+\def\xref{%
+ \futurelet\next\xrefswitch
+ }%
+\def\xrefswitch{%
+ \begingroup
+ \ifx\next|%
+ \aftergroup\vxref % case 1 or 2, |arg| or |\arg|
+ \else
+ \ifx\next\<%
+ \aftergroup\anglexref % case 3, "\<arg>" means angle bracke
+ \else
+ \aftergroup\normalxref% case 0, "{arg}"
+ \fi
+ \fi
+ \endgroup
+ }%
+\def\vxref|{\c@tBactive\futurelet\next\vxrefswitch}%
+\def\vxrefswitch#1|{\c@tBcontrol
+ \ifx\next\empty
+ \def\xreftype{2}\def\next{{\tt\bslash\text}}% type 2, |\arg|
+ \else
+ \def\xreftype{1}\def\next{{\tt\text}}% type 1, |arg|
+ \fi
+ \edef\text{#1}\makexref
+ }%
+\def\anglexref\<#1>{%
+ \def\xreftype{3}\def\text{#1}\def\next{$\langle$\text$\rangle$}%
+ \makexref
+ }%
+\def\normalxref#1{%
+ \def\xreftype{0}\def\text{#1}\let\next=\text\makexref
+ }%
+\def\makexref{%
+ \ifproofindex
+ \insert\margin{\hbox{\marginstyle\text}}%
+ \xdef\writeit{%
+ \write\@ndexwrite{%
+ \text\space!\xreftype\space\noexpand\number\p@gecount.%
+ }%
+ }%
+ \writeit
+ \else\ifhmode\kern\z@\fi
+ \fi
+ \ifsilent\ignorespaces\else\next\fi
+ }%
+% the \insert (which is done in proofmode only) suppresses hyphenation,
+% so the \kern\z@ is put in to give the same effect in non-proofmode.
diff --git a/macros/psizzl/institut.psizzl b/macros/psizzl/institut.psizzl
new file mode 100644
index 0000000000..824fb562f1
--- /dev/null
+++ b/macros/psizzl/institut.psizzl
@@ -0,0 +1,60 @@
+% INSTITUT PSIZZL - hooks for the present institution
+% these hooks are for SLAC, if your institution is different
+% make the appropriate changes
+\adddef\fmtversion{ [SLAC] }%
+\institute{Stanford Linear Accelerator Center\breaktitle
+ Stanford University, Stanford, California 94305%
+ }%
+\university{Stanford University}%
+%
+\contract{%
+ Work supported by the US Department of Energy under
+ \hbox{DE-AC03-76SF00515}%
+ }%
+%
+\def\pubadmin{Ms. Crystal Tilghman, Publications Department at SLAC}%
+%
+\memohead{\bf SLAC\ \ MEMO}%
+%
+\letterhead
+ {\fourteenrm \uppercase{Stanford University}}%
+ {\twelvecp Stanford Linear Accelerator Center\cr
+ \ifstreetaddress 2575 Sand Hill Road\endline
+ Menlo Park, California\endline\fi
+ }%
+ {\eightit\kern-4exMail Address\cr
+ \ifx\s@nderbin\empty\else\s@nderbin\cr\fi
+ SLAC, P.O. Box 4349\cr Stanford, California 94305\cr}%
+ {\vbox to 1in{\vfil}}%
+\subtitle{%
+ A Dissertation\breaktitle
+ Submitted to the Department of Physics\breaktitle
+ and the Committee on Graduate Studies\breaktitle
+ of \@niversity\breaktitle
+ in partial fulfillment of the requirements\breaktitle
+ for the Degree of\breaktitle
+ Doctor of Philosophy\breaktitle
+ }%
+\unlock
+\def\r@portprice{%
+ Printed in the United States of America. Available from the
+ National Technical Information Service, U.S. Department of Commerce,
+ 5285 Port Royal Road, Springfield, Virginia 22161.
+ Price: \ Printed Copy \pr@ce , Microfiche A01.
+ }%
+\lock
+\def\sigstatement{%
+ {\narrower
+ {\noindent
+ I certify that I have read this thesis and that in my\hfil\break
+ opinion it is fully adequate, in scope and quality, as\hfil\break
+ a dissertation for the degree of Doctor of Philosophy.\par
+ \medskip
+ }%
+ }%
+ }%
+\sigpage{(Principal Adviser, SLAC)}%
+ {(Co-Signer, Physics)}%
+ {(SLAC)}%
+ {Dean of Graduate Studies}%
+ {Approved for the University Committee on Graduate Studies}%
diff --git a/macros/psizzl/letter.psizzl b/macros/psizzl/letter.psizzl
new file mode 100644
index 0000000000..667e4b438d
--- /dev/null
+++ b/macros/psizzl/letter.psizzl
@@ -0,0 +1,244 @@
+% LETTER PSIZZL - letter macros
+%
+% I am indebted to Louise Addis, SLAC, for help in designing the
+% style of the letter.
+%
+% The letter will print with your institution's letterhead.
+% You then take the letter and copy it on bond.
+% The original hardcopy becomes your file copy.
+%
+% \letterto{Name}{address} Name will appear in the salutation.
+% note the comma or colon here.
+% e.g., address will be the full address.
+% \letterto{John,}% use \cr to separate lines.
+% {Mr.@John Doe\cr%
+% Physics Department\cr%
+% University of California, Berkeley\cr%
+% Berkeley, CA 94720\cr}%
+%
+% \letterfrom{signature}{mail stop}{initials}
+% initials will possibly appear at the foot of
+% e.g., the letter
+% \letterfrom% signature will appear in the close
+% {Jane Doe\cr address is incorporated in the letterhead
+% Chief Honcho\cr}%
+% {Bin 2}{JD}%
+%
+% \letterdate{date} you may optionally specify the date of the
+% letter. The default date however, is today.
+% e.g., \letterdate{7 July 1983}%
+%
+% \salutation{Ave}% here's how to modify the standard salutation
+% (default is Dear)
+%
+% \MyRef{text}% specifies the writer's reference number for
+% this letter. Default is none.
+% If you use this you get Ref: <text> near
+% the top of the letter.
+%
+% \YourRef{text}% similar to \MyRef. Specifies the reference
+% number of the addressee's letter to which
+% you're responding. Default is none.
+%
+% \copiesto{name\cr name\cr ...name\cr}%
+% specifies who gets copies of the letter
+% aside from the addressee. A list of names
+% will appear at the end of the letter.
+% Default is none
+%
+% \closing{Yours truly,}% and how to modify the standard close
+% (default is Sincerely,)
+%
+% \everyletter{text}% text to be inserted
+% at the end of every letter.
+% May be an entire letter body.
+%
+% \beginletter the letter now begins on a new page
+% with date, address, salutation
+%
+% text now comes the text of the letter
+%
+% \endletter this puts out the closing
+%
+\newif\ifletter
+\newskip\lettertopskip\lettertopskip\z@ plus\z@ minus\z@
+\def\letterdate#1{%
+ \def\l@tterdate{#1}%
+ }\letterdate\d@te
+\def\salutation#1{%
+ \def\s@lutation{#1}%
+ }\salutation{Dear}%
+\def\closing#1{%
+ \def\cl@sing{#1}%
+ }\closing{Sincerely,}%
+\def\typist#1{%
+ \def\t@pist{:\lowercase{#1}}%
+ }\def\t@pist{}%
+\def\copiesto#1{%
+ \def\c@pies{%
+ \hbox{%
+ \vtop{\hbox{cc: }\vfil}%
+ \vtop{\singlespace
+ \halign{\vbox{\parindent\z@\hsize.8\hsize####}\hfil\cr
+ #1\crcr}%
+ }%
+ }%
+ \vskip\baselineskip
+ }%
+ }\def\c@pies{}%
+\def\postscript#1{%
+ \def\p@st{#1}%
+ }\def\p@st{}%
+\def\enclosure#1#2{%
+ \def\@ncl{%
+ {\par\parindent\z@#1\par\singlespace
+ \halign{%
+ \quad\vbox{\parindent\z@\hsize.8\hsize####}\hfil\cr
+ #2\crcr}\par
+ }%
+ }%
+ }\def\@ncl{}%
+\def\prescript#1{%
+ \def\pr@{#1}%
+ }\def\pr@{}%
+%
+\def\MyRef#1{%
+ \def\M@Ref{Ref: #1\cr}%
+ }\def\M@Ref{}%
+\def\YourRef#1{%
+ \def\Y@urRef{Your Ref: #1\cr}%
+ }\def\Y@urRef{}%
+%
+\def\breakletter{%
+ \par\vfil\eject
+ }% break the title page of a letter
+\def\letterto#1#2{%
+ \def\@ddressee{#1}\gdef\@ddress{#2}%
+ }\letterto{}{}%
+\def\letterfrom#1#2#3{%
+ \def\s@ndername{#1}\gdef\s@nderbin{#2}\gdef\s@nderinitials{#3}%
+ }\letterfrom{}{}{}%
+\def\letterstyle#1{%
+ \adddef\stylel@t{#1}%
+ }%
+\def\stylel@t{%
+ \let\bodynumbers=\topcentered
+ \vsize 8.3in
+ \raggedright
+ \p@geclear% set page number
+ \largetype\singlespace
+ \parindent 0em
+ \baselineskip 2.7ex
+ \parskip\medskipamount
+ }%
+\long\def\everyletter#1{\def\l@tterbody{#1}}\everyletter{}%
+\def\letter{%
+ \let\resd@c\resl@t
+ \let\pred@c\prel@t\let\styled@c\stylel@t\let\titd@c\titl@t
+ \let\frontd@c\frontl@t\let\endd@c\endl@t\lettertrue
+ }%
+\def\beginletter{\letter\begindocument}%
+\def\endletter{\enddocument}%
+\def\frontl@t{}%
+\def\resl@t{\endpage}%
+\def\prel@t{\beginbody}%
+\def\titl@t{%
+ \topinsert
+ \ifwindowenvelope
+ \translate{-.0in}{-1.5in}{%
+ \ifx\@ddress\empty\else
+ \vbox to 1.in{%
+ \singlespace\baselineskip 2.7ex\vss
+ \halign to 4.35in{\tabskip\z@
+ ##\hss\tabskip\z@ plus 1fil\cr\@ddress\crcr
+ }\vss
+ }%
+ \fi
+ }%
+ \nointerlineskip
+ \fi
+ \l@tterhead
+ \endinsert
+ \fr@nttrue
+ \rightline{\l@tterdate}\vskip\the\baselineskip
+ \tempfalse
+ \ifx\M@Ref\empty\else\temptrue\fi\ifx\Y@urRef\empty\else\temptrue\fi
+ \iftemp
+ \rightline{%
+ \vbox{%
+ \singlespace\halign{##\hfil\cr\M@Ref\Y@urRef}%
+ }%
+ }%
+ \par
+ \fi
+ \vfil
+ \vskip\lettertopskip
+ \ifwindowenvelope\vskip1.20in\else
+ \ifx\@ddress\empty\else
+ {%\singlespace\indent
+ \hbox{\vbox{\halign{##\hfil\cr\@ddress\crcr}}}%
+ }%
+ \par
+ \vskip2\parskip
+ \fi
+ \fi
+ \par\pr@\par
+ \ifx\@ddressee\empty\else
+ \medskip\s@lutation\ \@ddressee\par\medskip
+ \fi
+ }%
+\def\endl@t{%
+ \l@tterbody
+ \par
+ \ifx\s@ndername\empty\else
+ \nobreak\vskip 4.5ex%
+ \line{%
+ \hbox to .51\hsize{\hfil}\hskip\z@ minus 1fil
+ \vbox{\singlespace\baselineskip 2.7ex%
+ \halign{##\hfil\cr\cl@sing\cr\noalign{\nobreak\vskip.4in}%
+ \s@ndername \crcr
+ }%
+ }%
+ \hskip\z@ plus 1fill
+ }%
+ \fi
+ {\normalbaselines
+ \ifx\s@nderinitials\empty\else
+ \par\s@nderinitials\t@pist\par
+ \fi
+ \@ncl
+ \c@pies
+ {\singlespace\p@st\par}%
+ }%
+ \vfil\eject
+ \gdef\t@pist{}\gdef\c@pies{}\gdef\M@Ref{}\gdef\Y@urRef{}%
+ \gdef\pr@{}\gdef\p@st{}%
+ \letterfalse
+ }%
+\newdimen\h@ght\h@ght=1in
+\newdimen\l@tterheadsize\l@tterheadsize\hsize
+\def\letterhead#1#2#3#4{%
+ \def\l@tterhead{%
+ \ifletterhead
+ \l@tterheadsize\hsize\advance\l@tterheadsize0in
+ \centerline{%
+ \vbox{\hsize\l@tterheadsize
+ \centerline{\vbox{\halign{####\hfil\cr#1\crcr}}}%
+ \line{%
+ \singlespace\baselineskip 2.7ex%
+ \vbox to \h@ght{\vss\halign{####\hfil\cr#2\crcr}\vss}%
+ \hss
+ \vbox to \h@ght{\vss\halign{####\hfil\cr#3\crcr}\vss}%
+ }%
+ }%
+ }%
+ \else#4\fi
+ }%
+ }%
+\newif\ifletterhead\letterheadtrue
+\newif\ifstreetaddress
+\newif\ifwindowenvelope
+% review all of the \letterto's by typesetting them plus
+\def\p@genumberletter{%
+ \p@gebanner{\l@tterdate}{}{Page\qquad\numorroman\p@gecount}%
+ }%
diff --git a/macros/psizzl/lists.psizzl b/macros/psizzl/lists.psizzl
new file mode 100644
index 0000000000..c0eee0e335
--- /dev/null
+++ b/macros/psizzl/lists.psizzl
@@ -0,0 +1,172 @@
+% LISTS PSIZZL - macros for lists, numbered and unnumbered
+%
+\gdef\d@m{.08}%
+\gdef\sd@m{.13}%
+\gdef\ssd@m{.195}%
+%
+% UNNUMBERED LISTS
+%
+% This is similar to the Itemized List Macro except it doesn't
+% number the items. Instead it allows you to pick a symbol to
+% highlight the line.
+%
+% \itembegin{<symbol>}text You pick the symbol to be used.
+% It then applies to all following items.
+%
+% \item text Each additional item in the series.
+%
+% \itemcon text Used to continue an xitem when you have
+% more than one paragraph in the item:
+% you get a blank instead of a symbol.
+%
+% \sitembegin{<symbol>} Use these as above. The sub-item list
+% \sitem is indented a bit farther.
+% \sitemcon
+%
+% \ssitembegin{<symbol>} Sub-sub-item list macros
+% \ssitem
+% \ssitemcon
+%
+% A blank line or a \par will end the item and give you a new paragraph.
+% If you don't want a new paragraph at the end of the xitem,
+% type `\par\noindent' to end the item
+%
+\def\itemset#1{%
+ \gdef\items@m{#1}%
+ }\itemset{\bull}%
+\def\itembegin#1{%
+ \itemset{#1}\item
+ }%
+\def\it@m{%
+ \hangpar\d@m
+ }%
+\def\item{%
+ \it@m{\items@m\quad}%
+ }%
+\def\itemcon{%
+ \it@m{}%
+ }%
+%
+\def\sitemset#1{%
+ \gdef\sitems@m{#1}%
+ }\sitemset{\astr}%
+\def\sitembegin#1{%
+ \sitemset{#1}\sitem
+ }%
+\def\sit@m{%
+ \hangpar\sd@m
+ }%
+\def\sitem{%
+ \sit@m{\sitems@m\quad}%
+ }%
+\def\sitemcon{%
+ \sit@m{}%
+ }%
+%
+\def\ssitemset#1{%
+ \gdef\ssitems@m{#1}%
+ }\ssitemset{\crcl}%
+\def\ssitembegin#1{%
+ \ssitemset{#1}\ssitem
+ }%
+\def\ssit@m{%
+ \hangpar\ssd@m
+ }%
+\def\ssitem{%
+ \ssit@m{\ssitems@m\quad}%
+ }%
+\def\ssitemcon{%
+ \ssit@m{}%
+ }%
+%
+%
+% ITEMIZED LIST MACRO
+%
+% These commands are used to make xitemized lists, to write
+% outlines or make points within a body of text.
+%
+% \pointbegin text To start a list. The list will be
+% or numbered in Arabic numerals and
+% \pointbegin indented. You can begin the text
+% text after the \pointbegin command -
+% separated by a space - or you can
+% begin on the following line.
+%
+% \point text Subsequent items in the list.
+%
+% \pointcon text If you want a point to contain more
+% than one paragraph, but you don't want
+% to generate a new number, use
+% \pointcon text. This will also work
+% with \spointcon and \sspointcon.
+%
+% \spointbegin text To begin a sub-point list; indented,
+% lowercase Roman letter, in ( ).
+%
+% \spoint text To continue a sub-point list.
+%
+% \sspointbegin text To start a sub-sub-point list;
+% indented, lowercase Roman numerials,
+% in ( ).
+%
+% \sspoint text To continue a sub-sub-point list.
+%
+% A blank line or a \par will end the item and give you a new paragraph.
+% If you don't want a new paragraph at the end of the item,
+% type `\par\noindent' to end the item
+%
+\newcount\p@ntcount
+\def\p@ntinit{%
+ \p@ntcount\@ne
+ }%
+\def\p@ntreset{%
+ \sp@ntinit\sp@ntreset
+ }%
+\def\pointbegin{%
+ \p@ntinit\point
+ }%
+\def\point{%
+ \p@ntreset\it@m{\p@nttext\p@ntcount.\quad}%
+ \bumpcount\p@ntcount
+ }%
+\def\pointcon{%
+ \it@m{}%
+ }%
+\let\p@nttext\numorroman
+%
+\newcount\sp@ntcount
+\def\sp@ntinit{%
+ \sp@ntcount`a
+ }%
+\def\sp@ntreset{%
+ \ssp@ntinit\ssp@ntreset
+ }%
+\def\spointbegin{%
+ \sp@ntinit\spoint
+ }%
+\def\spoint{%
+ \sp@ntreset\sit@m{\sp@nttext\sp@ntcount.\quad}%
+ \bumpcount\sp@ntcount
+ }%
+\def\spointcon{%
+ \sit@m{}%
+ }%
+\let\sp@nttext\char%
+%
+\newcount\ssp@ntcount
+\def\ssp@ntinit{%
+ \ssp@ntcount\@ne
+ }%
+\def\ssp@ntreset{}%
+\def\sspointbegin{%
+ \ssp@ntinit\sspoint
+ }%
+\def\sspoint{%
+ \ssp@ntreset\ssit@m{\number\ssp@ntcount.\quad}%
+ \bumpcount\ssp@ntcount
+ }%
+\def\sspointcon{%
+ \ssit@m{}%
+ }%
+\let\ssp@nttext\numorroman
+%
diff --git a/macros/psizzl/macros.psizzl b/macros/psizzl/macros.psizzl
new file mode 100644
index 0000000000..136d8831a7
--- /dev/null
+++ b/macros/psizzl/macros.psizzl
@@ -0,0 +1,167 @@
+% MACROS PSIZZL - macros for use with Psizzl
+%
+% begin rewrite of PLAIN macros
+% end rewrite of PLAIN macros
+\hyphenation{mac-ro}%
+\catcode`\@=11
+\chardef\l@tter=11
+\chardef\@oline=5
+\chardef\@ther=12
+\chardef\c@ntrol=00
+% unlock macro names with @ key
+\def\unlock{\catcode`\@=\l@tter}% @ character can be used in macro names
+% lock up the macros
+\def\lock{\catcode`\@=\@ther}% macros using this character are now locked
+%
+\def\c@tAactive{\catcode`\&=\active}%
+\def\c@tAalign{\catcode`\&=4}{\c@tAalign\gdef\h@tAalign{&}}%
+{\c@tAactive\gdef\l@tAalign{\let&\h@tAalign}}%
+\def\c@tAset{\c@tAactive\ifnum\c@tAactive\l@tAalign\fi}%
+%
+\def\c@tMother{\catcode`\^^M=\@ther}%
+\def\c@tMeoline{\catcode`\^^M=\@oline}%
+\def\c@tMactive{\catcode`\^^M=\active}%
+{\c@tMactive%
+ \gdef\l@tMother{\let ^^M=\h@tMother}%
+ \gdef\l@tMspace{\let ^^M=\space}%
+ \gdef\h@tMactive{^^M}%
+ }%
+{\c@tMother\gdef\h@tMother{^^M}}%
+\newlinechar`\^^M
+%
+\def\c@tVset{\ifnum\catcode`|=\active\l@tVother\fi}%
+\def\c@tVcontrol{\catcode`|=\c@ntrol}%
+\def\c@tVactive{\catcode`|=\active}%
+\def\c@tVother{\catcode`|=\@ther}%
+{\c@tVother\gdef\h@tVother{|}}%
+{\c@tVactive\gdef\l@tVother{\let|\h@tVother}\gdef\l@tVzero{\let|=0}}%
+%
+{\catcode`\%=\@ther\gdef\percent{%}}%
+\def\c@tBother{\catcode`\\=\@ther}%
+\def\c@tBactive{\catcode`\\=\active}%
+\def\c@tBcontrol{\catcode`\\=\c@ntrol}%
+\def\c@tLQactive{\catcode`\`=\active}%
+\def\c@tCactive{\catcode`\^=\active}%
+{\c@tCactive\gdef\l@tCzero{\let^=0}}%
+{% \outer plaintex macros not to be recognized during a \write
+ \let\settabs=0\let\+=0\let\beginsection=0\let\proclaim=0\let\bye=0%
+ \gdef\l@tplain{% all \outer and all that use \ifmmode
+ \let\settabs=0\let\+=0\let\beginsection=0\let\proclaim=0\let\bye=0%
+ \let~=0\let\footnote0%
+ \let\strut0\let\dots0\let\ph@nt0\let\smash0%
+ }%
+ }%
+\def\l@twrite{\l@tplain\let\underscore=0}%
+%
+\def\Psizzl{%
+ P%
+ \kern-.30em\lower.70ex\hbox{s}%
+ \kern-.08em\lower.0 ex\hbox{i}%
+ \kern-.05em\lower.0 ex\hbox{z}%
+ \kern-.17em\lower.5 ex\hbox{z}%
+ \kern-.09em\lower.2 ex\hbox{l}%
+ }%
+\def\fmtreset{}\def\fmtuser{my\fmtname\relax}%
+\def\fmtjob{%
+ \CMS{CP SMSG GJMSINK PSIZZLLL \fmtversion\space\jobname}%
+ \message{This is \fmtname, Version \fmtversion}%
+ \fmtreset
+ \input\fmtuser
+ }%
+\everyjob={\fmtjob}%
+%
+% cute and otherwise desirable-to-have macros
+%
+\newif\iftemp % scratch if macro
+\newcount\tempcount% scratch count register
+\def\diagnostics{%
+ %\tracingonline\@ne
+ \tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne
+ %\tracingoutput\@ne\tracinglostchars\@ne
+ \tracingmacros\@ne\tracingparagraphs\@ne
+ %\tracingrestores\@ne
+ %\showboxbreadth\maxdimen\showboxdepth\maxdimen
+ %\errorstopmode
+ }%
+\def\adddef#1#2{%
+ \toks\z@=\expandafter{#1}\toks\@ne={#2}%
+ \xdef#1{\the\toks\z@\the\toks\@ne}%
+ }%
+\def\logit#1{\immediate\write-1{\meaning#1}}%
+%
+\def\endp@ge{\par \vfill \eject}%
+\def\endle@f{\endp@ge\ifodd\pageno\else\hrule height\z@\endp@ge\fi}%
+\let\endpage\endp@ge\let\endleaf\endp@ge
+%
+\def\underscore#1{$\underline{\smash{\hbox{#1}}}$}%
+%
+\def\leaderfil{\leaders\hbox to 2em{\hss.\hss}\hfil}%
+%
+\def\centertitle#1{\par\noindent\hfil #1\hfil\par}% center text
+%
+\def\breaktitle{\hfil\par\noindent\hfil}% break text
+%
+\def\d@te{\the\day\tie\monthword\tie\the\year}%
+\def\monthdayyear{% alternate date format
+ \gdef\d@te{\monthword\tie\the\day,\tie\the\year}%
+ }%
+\def\date#1{\gdef\d@te{#1}}%
+\def\thedate{\d@te}%
+\chardef\vx@=60\newcount\hour\newcount\minute
+\def\fildec#1{\ifnum#1<10 0\fi\the#1}%
+\def\thetime{% \thetime -> 09:36 e.g.: `This job was run at \thetime.'
+ \hour\time\divide\hour\vx@
+ \minute-\hour\multiply\minute\vx@\advance\minute\time
+ \fildec\hour:\fildec\minute
+ }%
+\def\bumpcount#1{%
+ \ifnum#1<\z@\let\temp\m@ne\else\let\temp\@ne\fi
+ \global\advance#1\temp
+ }%
+\def\numorroman#1{%
+ \ifnum#1<\z@\romannumeral-#1\else\number#1\fi
+ }%
+\def\lapcomma{\llap{,}}%
+% characters and things
+%
+% macro to assist in breaking paragraphs, use in place of \par, or
+% blank line, terminating the paragraph in question.
+\def\padline#1{\line{\ #1\ }}%
+\def\thinhrule{\hrule height.4pt}%
+\def\thinvrule{\vrule width .4pt}%
+\def\loosepar{{\tolerance1000\par}}%
+\def\noraggedright{\rightskip\z@skip\spaceskip\z@skip\xspaceskip\z@skip}%
+\def\p@int{.}%
+\def\d@sh{--}%
+\def\hidenull#1{\setbox\z@=\vbox{#1}\ifdim\ht\z@=\z@\else#1\endline\fi}%
+\def\translate#1#2#3{%\translate{<Xdimen>}{<Ydimen>}{thing}
+ \vbox to\z@{\offinterlineskip
+ \kern-#2\hbox to\z@{\kern#1{#3}\hss}\vss
+ }%
+ }%
+% macros for the \CMS command: \write 15
+\chardef\fift@@n=15
+\global\chardef\CMSwrite=\fift@@n
+\wlog{\string\CMSwrite=\string\write\fift@@n}%
+\outer\def\newwrite{\alloc@7\write\chardef\fift@@n}%
+\def\CMS{\immediate\write\CMSwrite}%
+% macros to flag superseded commands
+\def\supercede#1#2{%
+ \def#1{%
+ \toks@\expandafter{\csname
+ Instead of \string#1, you should use \string#2. \go@on
+ \endcsname}%
+ \errhelp\toks@
+ \errmessage{Psizzl: \string#1 has been superseded by \string#2}#2%
+ }%
+ }%
+\def\go@on{%
+ Before you run this job again, please change your TeX source file.
+ Do `CONSPIRE CHECK TEX' to see the new command syntax.
+ This is just a warning: you may continue processing by giving a <CR>.
+ }%
+% following macros flag superseded commands
+\supercede\memotopic\memosubject
+\supercede\group\memohead
+\def\sample#1{{\let\end\relax\input #1 \endpage}\listfile{#1}}%
diff --git a/macros/psizzl/memo.psizzl b/macros/psizzl/memo.psizzl
new file mode 100644
index 0000000000..cd96e19d7b
--- /dev/null
+++ b/macros/psizzl/memo.psizzl
@@ -0,0 +1,74 @@
+% MEMO PSIZZL - memo macros
+%
+% \memodate{<date>} The default date is today's date,
+% but here's how you can change it.
+%
+% \memohead{<header for the memo>} This will be the header for the memo
+% the default is `\bf MEMO'
+%
+% \memoto{<people>} To whom the memo is addressed
+%
+% \memofrom{<someone>} Who it's from
+%
+% \memosubject{<subject>} The subject of the memo
+%
+% \memostyle{\largetype} Your choices about:
+% \singlesided\doublesided
+% \singlespace\doublespace
+%
+% \memo This specifies that the document is a memo
+% \begindocument Following this you put the text.
+%
+% <text> Enter your text here
+%
+% \enddocument This will end the memo
+%
+\def\memohead#1{%
+ \def\m@mohead{{#1}}%
+ }\memohead{\bf MEMO}%
+\def\memodate#1{%
+ \def\m@modate{#1}%
+ }\memodate{\d@te}%
+\def\memoto#1{%
+ \def\m@moto{#1}%
+ }\memoto{}%
+\def\memofrom#1{%
+ \def\m@mofrom{#1}%
+ }\memofrom{}%
+\def\memosubject#1{%
+ \def\m@mosubject{#1}%
+ }\memosubject{}%
+\def\memostyle#1{%
+ \adddef\stylem@m{#1}%
+ }%
+\def\stylem@m{%
+ \singlesided\largetype\singlespace
+ }%
+\newif\ifm@mo
+\def\memo{%
+ \let\pred@c\prem@m\let\styled@c\stylem@m\let\titd@c\titm@m
+ \let\frontd@c\frontm@m\let\endd@c\endm@m\m@motrue
+ }%
+\def\p@genumbermemo{%
+ \p@gebanner{\m@modate}{\m@mohead}{\p@genumber}%
+ }%
+\def\prem@m{\beginbody}%
+\def\frontm@m{}%
+\def\endm@m{}%
+\def\beginmemo{\memo\begindocument}%
+\def\endmemo{\enddocument}%
+\def\titm@m{%
+ \fr@nttrue
+ \line{\m@mohead\hfill Date: \m@modate}%
+ \vskip\@nenhalf\normalbaselineskip
+ \vbox{\halign{\parindent\z@
+ \cp##\hfil\quad&\vtop{\hsize.8\hsize\noindent##}\hfil\cr
+ To:&\m@moto\cr
+ From:&\m@mofrom\cr
+ Subject:&\m@mosubject\cr
+ } }%
+ \par \vskip 3.0ex \hrule height .8pt\vskip 3.0ex
+ }%
+\def\endm@m{%
+ \par\vfil\@ncl\c@pies\vfil\eject\gdef\c@pies{}\gdef\@ncl{}%
+ }%
diff --git a/macros/psizzl/mypsizzl.tex b/macros/psizzl/mypsizzl.tex
new file mode 100644
index 0000000000..c478c7b1ae
--- /dev/null
+++ b/macros/psizzl/mypsizzl.tex
@@ -0,0 +1,30 @@
+\message{Using HAGGERTY's MYPSIZZL TEX}%
+\memohead{\bf BNL E-787 MEMO}%
+\memofrom{John Haggerty}%
+\letterfrom{John S. Haggerty}{}{}%
+\salutation{Dear}%
+\closing{Sincerely,}%
+\letterhead{%
+ \fourteenrm{Brookhaven National Laboratory}\cr
+ }{%
+ }{%
+ Building 510A\cr
+ Upton, New York 11973\cr
+ (516) 282-7894\cr
+ }{%
+ }%
+\def\nextline{\unskip\nobreak\hskip\parfillskip\break}
+\institute{%
+Lawrence Berkeley Laboratory and Department of Physics\breaktitle
+University of California, Berkeley, California 94720\breaktitle
+Stanford Linear Accelerator Center\breaktitle
+Stanford University, Stanford, California 94305\breaktitle
+Department of Physics\breaktitle
+Harvard University, Cambridge, Massachusetts 02138\breaktitle
+ }%
+%
+\contract{%
+ This work was supported in part by the Department of Energy, contracts
+ DE-AC03-76SF00515 (SLAC), DE-AC03-76F00098 (LBL),
+ and DE-AC02-76ER03064 (Harvard).
+ }%
diff --git a/macros/psizzl/options.psizzl b/macros/psizzl/options.psizzl
new file mode 100644
index 0000000000..ef5d3cbe9c
--- /dev/null
+++ b/macros/psizzl/options.psizzl
@@ -0,0 +1,135 @@
+% OPTIONS PSIZZL - contains all the journal-dependent stuff
+%
+% Publication names
+% - also include the pub's editor here for the cover letter
+%
+\def\j@urnalname{}%
+\def\j@urnaladdress{}%
+\def\j@urnaleditor{}%
+\def\APS{\conference American Physical Society}%
+\def\IEEE{%
+ \hsize 4.625 true in \vsize 12.8125 true in
+ \let\pubsize\largetype
+ \multiply\scalein4\divide\scalein3%
+ \figureembedtrue\tableembedtrue
+ %the photoready copy will be reduced by a factor of .75
+ %\conference
+ }%
+\def\NIM{\journal\foreign%
+ %single column=3in double column=6.3in
+ % in duplicate, with separate list of figure captions
+ % copy of copies of figures attached to original manuscript
+ % \nopagenumbers
+ \gdef\j@urnalname{Nuclear Instruments and Methods}%
+ \gdef\j@urnaladdress{Professor K. Siegbahn, Editor \cr
+ Nuclear Instruments and Methods \cr
+ Institute of Physics \cr
+ University of Uppsala \cr
+ Sweden \cr
+ }%
+ \gdef\j@urnaleditor{Professor Siegbahn:}%
+ \j@urnalname
+ }%
+\def\NPB{\journal\foreign%
+ \gdef\j@urnalname{Nuclear Physics B}%
+ \gdef\j@urnaladdress{Professor D. Cline \cr
+ Nuclear Physics B \cr
+ Department of Physics \cr
+ University of Wisconsin \cr
+ 457 North Charter Street \cr
+ Madison, Wisconsin 53706 \cr
+ }%
+ \gdef\j@urnaleditor{Professor Cline:}%
+ \j@urnalname
+ }%
+\def\PRL{\journal%
+ \gdef\j@urnalname{Physical Review Letters}%
+ \gdef\j@urnaladdress{Professor George Trigg, Editor \cr
+ Physical Review Letters \cr
+ 1 Research Road \cr
+ Box 1000 \cr
+ Ridge, New York \cr
+ }%
+ \gdef\j@urnaleditor{Professor Trigg:}%
+ \j@urnalname
+ }%
+\def\PRD{\journal%
+ \gdef\j@urnalname{Physical Review D}%
+ \gdef\j@urnaladdress{Professor D. L. Nordstrom, Editor \cr
+ Physical Review D \cr
+ 1 Research Road \cr
+ Box 1000 \cr
+ Ridge, New York \cr
+ }%
+ \gdef\j@urnaleditor{Professor Nordstrom:}%
+ \j@urnalname
+ }%
+\def\PL{\journal\foreign%
+ \gdef\j@urnalname{Physics Letters B}%
+ \gdef\j@urnaladdress{Professor Howard Georgi \cr
+ Physics Letters B \cr
+ Lyman Laboratory of Physics \cr
+ Harvard University \cr
+ Cambridge, MA 02138 \cr
+ }%
+ \gdef\j@urnaleditor{Professor Georgi:}%
+ \j@urnalname
+ }%
+\def\foreign{% foreign publication style
+ \bracketreference\lowercasecite\volyearpageref
+ }%
+\def\journal{%
+ %\doublespace
+ }%
+\def\conference{%
+ \p@genumbernonetrue
+ \singlespace
+ }%
+% other possibilities: conferences, no linenumbers
+%% page dimensions: 6.1(1) by 8.60(75), near center
+%
+%% conference papers are in single(12) or singlehalf spacing(19) _
+%% journal articles are doublespaced(24)
+%
+%% IEEE: special long box: 4.625 by 12.8125
+%
+\newif\ifdraft
+\newif\ifproof
+\newif\ifthesis% this is a thesis
+\newif\ifsubmit% this copy of paper to be submitted
+\def\pubside{}%
+\def\illn#1{\ifproof{\it[Illustration number #1]}\fi}%
+\def\illndraft{%
+ \ifproof
+ \point The {\it[Illustration numbers]}
+ which appear in the Figure and Table captions
+ will not appear in the published editions.
+ \fi
+ }%
+\def\draft{% invoke this if the paper is a draft
+ \prooftrue\drafttrue
+ \mediumtype\normalbaselines\singlesided
+ \figureembedfalse\tableembedfalse
+ }%
+\def\proof{% proof format
+ \prooftrue\proofindextrue
+ \mediumtype\singlespace\doublesided
+ \figureembedtrue\tableembedtrue
+ }%
+\def\submit{% to be submitted to a journal for re-typesetting
+ \largetype\normalbaselines\singlesided
+ \figureembedfalse\tableembedfalse\submittrue
+ }%
+\def\preprint{% preprint format -
+ \figureembedtrue\tableembedtrue\let\picture\blankp@c
+ \largetype\singlespace%\baselineskip2.0ex
+ %\landscape
+ %\beginmulticolumn2%
+ }%
+\def\landscape{%
+ \quadsided
+ \vsize8.5in \hsize5.75in \pagesize\hsize
+ %\def\gutter{\vrule width .5in height 0pt depth 0pt}%
+ \thesisstyle{\quadsided}\publicationstyle{\quadsided}%
+ \memostyle{\quadsided}\reportstyle{\quadsided}%
+ }%
diff --git a/macros/psizzl/output.psizzl b/macros/psizzl/output.psizzl
new file mode 100644
index 0000000000..991105cea5
--- /dev/null
+++ b/macros/psizzl/output.psizzl
@@ -0,0 +1,200 @@
+% OUTPUT PSIZZL - output routine for publications
+% singlesided : page numbers in fixed location
+% doublesided : alternating page numbers at left/right
+% quadsided : alternating page numbers at foot and top
+% nopagenumbers : disables all pagenumbering
+% bottomcentered : bottom centered page numbers
+% topcentered : top centered page numbers
+% bottomnumbers : bottom outside page numbers
+% topnumbers : top outside page numbers
+\newdimen\evenoffset\newdimen\oddoffset
+% Even and odd leaves of output are shifted by these respective amounts
+% in order to have a proper binding margin.
+\newcount\p@gecount
+\def\pageset#1{\p@gecount#1}%
+\def\p@geclear{\global\p@gecount\@ne}\adddef\fmtreset{\p@geclear}%
+\def\p@gefront{\global\p@gecount\m@ne}\adddef\resd@c{\p@gefront}%
+\newcount\le@f\le@f=\@ne
+\newcount\p@geroman\p@geroman\m@ne
+\newif\iffr@nt
+\newif\ifdoubleside
+\newif\ifquadside
+\def\singlesided{\quadsidefalse \doublesidefalse}%
+\def\doublesided{%
+ \quadsidefalse\doublesidetrue%\evenoffset.2in\oddoffset-.05in
+ }%
+\def\quadsided{%
+ \quadsidetrue\doublesidefalse%\evenoffset.2in\oddoffset-.05in
+ \let\endleaf\endle@f
+ }%
+\newif\ifp@genumberleft
+\newif\ifp@genumbertop
+\newif\ifp@genumbernone
+\newif\ifp@genumbercenter
+\adddef\resd@c{%
+ \let\frontnumbers=\bottomcentered\let\bodynumbers=\topoutside
+ }%
+\def\nopagenumbers{\p@genumbernonetrue}%
+\def\bottomcentered{\p@genumbertopfalse\p@genumbercentertrue}%
+\def\topcentered{\p@genumbertoptrue\p@genumbercentertrue}%
+\def\bottomoutside{\p@genumbertopfalse\p@genumbercenterfalse}%
+\def\topoutside{\p@genumbertoptrue\p@genumbercenterfalse}%
+\def\p@gehead{\ifp@genumbertop\p@genumberline\else\p@genumbernull\fi}%
+\def\p@gefoot{\ifp@genumbertop\p@genumbernull\else\p@genumberline\fi}%
+\def\b@ndp@ge#1#2{\ifp@genumberleft{#2}\else{#1}\fi}%
+\def\p@gebanner#1#2#3{%
+ \line{{\rm\lapline{\b@ndp@ge{#1}{#3}}{#2}{\b@ndp@ge{#3}{#1}}}}%
+ }%
+\def\lapline#1#2#3{\rlap{#1}\hfil#2\hfil\llap{#3}}%
+%
+% set up the defaults
+%
+\singlesided\topoutside % default pagenumbering format
+%
+\newinsert\margin\dimen\margin\maxdimen
+% This pagenumber is same as in PLAIN but does not impose \tenrm
+\gdef\p@genumber{{\bf\numorroman\p@gecount}}%
+\def\p@genumberline{%
+ \iffr@nt
+ \p@genumbernull
+ \else
+ \ifletter\p@genumberletter\else
+ \ifm@mo\p@genumbermemo\else
+ \p@genumberpaper
+ \fi
+ \fi
+ \fi
+ }%
+\def\p@genumbernull{\vbox to \z@{}}%
+\def\makep@genumber{% output.psizzl
+ \ifnum\p@gecount<\z@\frontnumbers\else\bodynumbers\fi
+ \ifdoubleside
+ \ifodd\pageno\hoffset\evenoffset\p@genumberleftfalse
+ \else\hoffset\oddoffset\p@genumberlefttrue
+ \fi
+ \fi
+ \ifquadside
+ \ifodd\pageno\p@genumberlefttrue\else\p@genumberleftfalse\fi
+ \ifodd\le@f
+ \p@genumbertopfalse\voffset\evenoffset
+ \else\p@genumbertoptrue\voffset\oddoffset
+ \fi
+ \fi
+ \ifp@genumbernone\fr@nttrue\fi
+ \count\@ne\number\p@gecount
+ %\count\tw@\number\le@f
+ }%
+\def\p@gecontents{%
+ \ifvoid\margin\else
+ \p@gebanner{}{}{%
+ \hbox to\z@{\b@ndp@ge{}{\hss}%
+ \hbox{\vbox to \z@{\box\margin\vss}}\b@ndp@ge{\hss}{}%
+ }%
+ }%
+ \fi
+ \ifvoid\topins\else\unvbox\topins\fi
+ \unvbox\@cclv
+ \ifvoid\footins\else\vskip\skip\footins\vskip-0.68ex
+ \hrule width.25\hsize\vskip1.82ex
+ \unvbox\footins
+ \fi
+ \ifr@ggedbottom\vfill\fi
+ }%
+\def\p@gebox#1{%
+ \vbox{% \boxmaxdepth=\the\maxdepth\offinterlineskip
+ %\offinterlineskip
+ \p@gehead\vskip\normalbaselineskip
+ \c@lumnbox{#1}%
+ \vskip\normalbaselineskip\p@gefoot
+ }%
+ }%
+\def\c@lumnbox#1{%
+ \vbox to \vsize{#1}%
+ }%
+\def\bumple@fnumber{% counter for total leaves. Quad: Two pages per leaf
+ \ifodd\pageno\global\advance\le@f\@ne\fi
+ }%
+\def\bumpp@genumber{%
+ \iffr@nt\global\fr@ntfalse\fi
+ \ifnum\p@gecount<\z@ % register for the page label `page number'
+ \global\advance\p@gecount\m@ne
+ \global\p@geroman=\number\p@gecount
+ \else\global\advance\p@gecount\@ne
+ \fi
+ \global\advance\pageno\@ne % counter for total pages
+ }%
+\def\fmtoutput#1{%
+ \makep@genumber\l@twrite\shipout#1\bumpp@genumber\bumple@fnumber
+ }%
+\def\eject@ns{%
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+ }%
+\output{\fmtoutput{\p@gebox{\p@gecontents}}\eject@ns}%
+\newdimen\pagesize\pagesize\hsize
+\newcount\c@lumncount\newcount\c@lumntotal
+\def\gutter{\thinvrule}%
+\def\pageline{\hbox to\pagesize}%
+\newbox\c@lumni\newbox\c@lumnii\newbox\c@lumniii
+\newbox\c@lumniv\newbox\c@lumnv
+\def\@@nd{\endmulticolumn\@nd}\let\@nd\end
+\def\beginmulticolumn#1{% arg = number of columns per page < 6
+ \@ndmulticolumn
+ \topskip\z@\r@ggedbottomtrue
+ \c@lumntotal#1\c@lumncount\c@lumntotal
+ \pagesize\hsize\let\g@tter\gutter % save \gutter where it can't go bad
+ \setbox\z@\hbox{\g@tter}\advance\hsize\wd\z@
+ \divide\hsize\number\c@lumntotal\advance\hsize-\wd\z@ % new \hsize
+ \output{\multic@lumn{\c@lumnbox{\p@gecontents}}\eject@ns}%
+ }%
+\def\@ndmulticolumn{%
+ \endpage\supereject
+ \message{\string\c@lumncount=\number\c@lumncount}%
+ \loop\ifnum\c@lumncount<\c@lumntotal\null\endpage\repeat
+ \hsize\pagesize\c@lumntotal\@ne
+ \let\markl\empty\let\markr\empty\let\marko\empty % null these, too
+ }%
+\def\endmulticolumn{%
+ \mark{}\@ndmulticolumn
+ }%
+\def\multic@lumn#1{\rm % switch back just in case
+ \def\l@toutput{%
+ \l@twrite\let\leftline\z@\let\bf\z@
+ \let\allmark\z@\let\nomark\z@\let\inimark\z@
+ }%
+ \ifx\markl\empty
+ {\l@toutput\xdef\markl{\firstmark}}%
+ {\let\allmark\relax\let\nomark\relax\let\inimark\relax
+ \setbox\z@\hbox{\titleline\markl}%
+ \setbox\@ne\hbox{\titleline\empty}%
+ \ifdim\wd\z@=\wd\@ne
+ {\l@toutput\xdef\markl{\botmark}}%
+ \fi
+ }%
+ %\message{\string\markl=\markl.}%
+ \fi
+ \ifcase\c@lumncount
+ \or\c@lumnformat{#1}\or\s@tb@x\c@lumni#1\or\s@tb@x\c@lumnii#1%
+ \or\s@tb@x\c@lumniii#1\or\s@tb@x\c@lumniv#1\or\s@tb@x\c@lumnv#1%
+ \fi
+ \global\advance\c@lumncount\m@ne
+ % if the current heading is not yet finished,
+ % insert the column header for this heading into the vertical list
+ \botmark
+ }%
+\def\g@tb@x#1{\ifdim\wd#1=\z@\else\box#1\g@tter\fi}%
+\def\s@tb@x{\global\setbox}%
+\def\c@lumnformat#1{%
+ \fmtoutput{%
+ \vbox{%
+ \p@gehead
+ {\l@twrite
+ \pageline{%
+ \g@tb@x\c@lumnv\g@tb@x\c@lumniv\g@tb@x\c@lumniii
+ \g@tb@x\c@lumnii\g@tb@x\c@lumni#1\hfil
+ }%
+ }%
+ \p@gefoot
+ }%
+ \global\advance\c@lumncount\c@lumntotal
+ }%
+ }%
diff --git a/macros/psizzl/picture.psizzl b/macros/psizzl/picture.psizzl
new file mode 100644
index 0000000000..66194c529d
--- /dev/null
+++ b/macros/psizzl/picture.psizzl
@@ -0,0 +1,48 @@
+% PICTURE PSIZZL - macros for making pictures
+%
+% see <GDUBOIS> frontpanel
+%
+\def\insertGRAY#1#2#3{%
+ \hbox{%
+ \translate{\z@}{#2}{\special{insert(#3)}}%
+ \blankbox{#1}{#2}%
+ }%
+ }%
+\def\insertimPRESS#1#2#3{%
+ \hbox{%
+ \translate{-0.50in}{-0.75in}{\special{mergeug(#3)}}%
+ \blankbox{#1}{#2}%
+ }%
+ }%
+\def\insertUGS#1#2#3{%
+ \hbox{\special{mergeug(#3)}\blankbox{#1}{#2}}%
+ }%
+\adddef\l@twrite{% define in macros
+ \let\insertGRAY\z@\let\insertimPRESS\z@\let\insertUGS\z@
+ }%
+\newdimen\b@xitkern\b@xitkern3pt
+\newdimen\b@xitrule\b@xitrule.4pt
+\def\boxit#1{%
+ \vbox{\hrule height\b@xitrule
+ \hbox{\vrule width\b@xitrule\kern\b@xitkern
+ \vbox{\kern\b@xitkern\hbox{#1}\kern\b@xitkern}%
+ \kern\b@xitkern\vrule width\b@xitrule
+ }%
+ \hrule height\b@xitrule
+ }%
+ }%
+\def\unraise{%
+ \dimen@-\b@xitkern\advance\dimen@-\dp\strutbox
+ \leavevmode\raise\dimen@
+ }%
+\def\blankbox#1#2{%
+ \vrule width\z@ depth\z@ height#2%
+ \vrule height\z@ depth\z@ width#1%
+ }%
+\newdimen\scalein\scalein 1in%
+\def\fr@methick{1pt}%
+\def\fr@me#1#2{\def\fr@mewidth{#1}\def\fr@meheight{#2}}%
+\def\blankp@c#1#2{\vbox{\hbox{\blankbox{#1}{#2}}}}%
+\def\picture#1#2{%
+ \boxit{\blankbox{#1}{#2}}%
+ }%
diff --git a/macros/psizzl/psizzl.commands b/macros/psizzl/psizzl.commands
new file mode 100644
index 0000000000..a2737cce66
--- /dev/null
+++ b/macros/psizzl/psizzl.commands
@@ -0,0 +1,312 @@
+ PSIZZL COMMANDS - reference manual
+
+ Reference guide to Psizzl macros
+ This is a list of all the user macros in Psizzl.
+ They are grouped logically according to function.
+
+MACROS
+
+These macros are general-purpose macros used
+everywhere in Psizzl, or are of general interest.
+ \Psizzl - this gives the logo: Psizzl
+ \diagnostics - turns on tracing diagnostics
+ \endpage - causes a page break
+ \underscore#1 -
+ gives the argument, \underscore{{\it underscored}}
+ \leaderfil - gives leaders of dots:\hbox to 1in{(\leaderfil)}
+ \centertitle#1 - along with |\breaktitle|, below, gives a centered
+ title, whose line breaks are controlled by the user
+ \breaktitle - to be used with |\centertitle| to break the lines
+ \monthdayyear - causes the date used in \Psizzl macros to appear
+ as {\sl ``month day, year''}, instead of {\sl ``day month year''},
+ which is the default.
+ \date#1 - sets the date to the argument. See also |\letterdate| and
+ |\pubdate|.
+ \loosepar - To be used to terminate any paragraph which
+ has an overfull |\hbox|, due to the line breaker not working.
+ \unlock - To ``unlock'' the macros, so that the character `|@|'
+ may be used in macro names.
+ \lock - To undo |\unlock|.
+
+ \adddef#1#2 - adds #2 to the \def of #1
+ \bumpcount#1 - increases the absolute value of \count#1 by 1
+ \numorroman#1 - expands to arabic if \count#1 is positive, and to
+ roman if \count#1 is negative
+ \lapcomma - gives a comma which will overlap the chracter to the left
+ \translate#1#2#3 - causes TeX to typeset the object specified by #3
+ at the postion specified by X = #1 and Y = #2 relative to the
+ current postion. The current position is not, however, changed.
+ \iftemp - this is a `scratch' switch. It can be used at any time.
+
+LISTS
+
+These are the macros pertaining to lists.
+ \itembegin#1 - Starts an itemized list and sets the symbol to the
+ argument.
+ \item - Makes an entry in an itemized list with the current symbol.
+ \itemcon - Continues an item in a list starting with a new paragraph.
+ \itemset#1 - sets the symbol to #1, but does not begin an item.
+
+ \sitembegin#1 - Similar to |\itembegin|, for a subitem.
+ \sitem - Similar to |\item|, for a subitem.
+ \sitemcon - Similar to |\itemcon|, for subitem.
+ \sitemset#1 - Similar to |\itemset|, for a subitem.
+
+ \ssitembegin#1 - Similar to |\itembegin|, for a subsubitem.
+ \ssitem - Similar to |\item|, for a subsubitem.
+ \ssitemcon - Similar to |\itemcon|, for subsubitem.
+ \ssitemset#1 - Similar to |\itemset|, for a subsubitem.
+
+ \pointbegin - Start a sequential list of points.
+ \point - Put another item in a seqential list.
+ \pointcon - Like |\itemcon| for a sequentail list.
+
+ \spointbegin - Like |\pointbegin|, for a sublist.
+ \spoint - Like |\point|, for a sublist.
+ \spointcon - Like |\pointcon|, for a sublist.
+
+ \sspointbegin - Like |\pointbegin|, for a subsublist.
+ \sspoint - Like |\point|, for a subsublist.
+ \sspointcon - Like |\pointcon|, for a subsublist.
+
+PICTURE
+These macros facilitate making pictures.
+ \blankbox#1#2 - Makes a blank box of the specified dimensions.
+ \scalein - An inch dimension which magnifies with the type size.
+ \boxit#1 - Put a box around the argument.
+ \picture#1#2 - Currently just |\blankbox|.
+
+FONTDEFS
+These define the fonts used in \Psizzl.
+% `X' denotes that the font is loaded
+% suffixes: rm ss fib i it bf sy sl ss tt x caps
+% prefixes:
+% \twelve X X X X X X X X X X X
+% \ten X X X X X X X X X X X
+% \eight X X X X X
+% \seven X X X X
+% \five X X X X
+
+% e.g.: \twelverm is a roman font at 12 point
+% \tencaps is a cap/smallcap font at 10 pt
+
+% Plus the following special fonts:
+% \fortyss
+% \fifteenrm
+% \fourteenrm
+% \tenex
+The following macros are defined in this file:
+
+ \singlespace - Set to single spaced lines.
+ \normalbaselines - Set to one-and-one-half spaced lines.
+ \doublespace - Set to double spaced lines.
+ \largetype - Set to large type size.
+ \mediumtype - Set to medium type size.
+
+OPTIONS
+These macros turn on various switches, which control how
+certain options are used in \Psizzl depending on what publication
+you are writing for.
+
+ \APS - American Physical Society.
+ \IEEE - IEEE.
+ \NIM - Nuclear Instruments and Methods.
+ \NPB - Nuclear Physics B.
+ \PRL - Phys. Rev. Letters.
+ \PRD - Phys. Rev. D.
+ \PL - Physics Letters.
+ \illn#1 - when in |\proof| mode, it expands to ``Illn. #''
+ \draft - Specifies that this is a draft.
+ \preprint - Specifies that this is a preprint.
+ \proof - Specifies that this is a proof copy.
+ \submit - Specifies that this will be submitted to a journal.
+ \foreign - selects specifications for non-APS journals
+ \journal - selects specifications for journal articles
+ \conference - selects specifications for conference proceedings
+ \ifdraft - flag: this is the draft style of a document
+ \ifproof - flag: this is the proof style of a document
+ \ifsubmit - flag: this is the submit style of a document
+
+OUTPUT
+These macros control how the output will appear on the page.
+ \ifdoubleside - flag: the document will be double sided
+ \ifquadside - flag: the document will be two-pages-per-leaf
+
+PUBLICAT
+These macros generate the title page of a publication,
+and indirectly invoke some switches.
+ \docspec#1 - document specifications. Appear in upper right of title
+ page
+ \contract#1 - Defines the contract to be cited.
+ \contracttrue - Specifies that the given contract is to be cited.
+ \title#1 - Title of the document.
+ \subtitle#1 - specify the subtitle of a document.
+ \authors#1 - Author list.
+ \institute#1 - The publishing institution.
+ \submittedto#1 - The journal to be submitted to.
+ \abstract#1 - The abstract.
+ \university#1 - Specify the university of the thesis student
+ \price#1 - Specify the price code of NTIS
+ \workingauthor#1 - Specify the working author.
+ \workingauthorbin#1 - Specify the mail stop of the working author.
+ \workingauthoraddress#1
+ {Specify the address of the workin g author.
+ \publicationstyle#1 - macros to be invoked at the beginning of the
+ publication
+ \publication - specify that document will be a publication
+ \thesisstyle#1 - macros to be invoked at the beginning of the thesis.
+ \thesis - specify that document will be a thesis
+ \reportstyle#1 - macros to be invoked at the beginning of a report.
+ \report - specify that document will be a report
+ \acknowledge#1 - specify the text of the acknowledgement
+ \begindocument - begin production of the specified document.
+ Title page, etc. are produced now.
+ \enddocument - end production of the document.
+ \sigpage#1#2#3#4#5 - specify details of signature page of a thesis.
+ \iffrontmatter - flag: the front matter of the document is to be
+ produced.
+ \ifabstractsigned - flag: the abstract page is to be signed.
+ \ifcopyright - flag: this document is to be copyrighted.
+
+MEMO
+These macros will cause a memo to be produced.
+ \memohead#1 - Specify the header of the memo.
+ Default is institution-dependent
+ \memodate#1 - Specify the date of the memo.
+ \memoto#1 - Who the memo is to.
+ \memofrom#1 - Who the memo is from.
+ \memosubject#1 - Specify the topic of the memo.
+ \beginmemo - To begin the memo.
+ \endmemo - To end the memo.
+ \memostyle#1 - Specify the style of the memo.
+
+LETTER
+These macros control how letters are made.
+ \letterdate#1 - Specify the date of the letter.
+ \salutation#1 - Specify the salutation.
+ \closing#1 - Specify the closing.
+ \typist#1 - Specify the initials of the typist.
+ \copiesto#1 - Specify the cc:
+ \MyRef#1 - Specify your reference number.
+ \YourRef#1 - Specify the receiver's reference number.
+ \breakletter - Break the page at this point.
+ \letterto#1#2 - Name and address of the receiver.
+ \letterfrom#1#2#3 - Specify the sender.
+ \everyletter#1 - Text to be included in every letter.
+ \beginletter - Begin the letter.
+ \endletter - End the letter.
+ \letterhead#1#2#3#4 - Specify the letterhead.
+ \postscript#1 - specify the postscript of the letter
+ \enclosure#1#2 - specify the enclosures of the letter
+ \prescript#1 - specify the prescript of the letter
+ \letterstyle#1 - macros to be invoked at the start of the letter
+ \ifletter - flag: for output routine: this is a letter
+ \ifletterhead - flag: a letterhead is to be produced. Default: true
+ \ifstreetaddress - flag: the street address of the institution
+ is to appear in the letterhead. default: false.
+ \ifwindowenvelope - flag: the address of the letter will be typeset
+ so that it will appear within the window of a window envelope.
+CHAPTERS
+The body of a document (be it publication, memo, or letter)
+are produced by these macros.
+ \beginbody - Begin the body of the paper.
+ \chapter#1 - Begin a new chapter.
+ \beginappendices - Subsequent |\chapter|s will be appendices.
+ \endbody - End the body. Get out list of references, \etc
+ \section#1 - Start a bew section.
+ \subsection#1 - Start a new subsection.
+ \subsubsection#1 - Start a new subsubsection.
+
+CITATION
+Citations such as references, figures, tables and equations are
+done by these macros.
+
+In the following macros,
+#1 is a valid TeX control squence name
+(`\' followed by alphabetic characters only: don't use any numerals!).
+
+Where the macros use `=', they are defining the mnemonic name, so
+\<NAME> must not have been previously defined. (Hint: use some CAPITALS).
+Once this has been done, the mnemonic name can be used with the macro
+without the `=' and following one (or three) arguments:
+e.g.: first use: `\cite\DrellYan={Private communication}'
+ second use: `\Reference\DrellYan\ has clearly shown....'
+
+In the reference, equation, and author address macros,
+#2 is the text of the respective thing being defined.
+
+ REFERENCES:
+ The following three macros set the style of the reference:
+ \superreference - References will be superscripted: `$^{#1}$'
+ \bracketreference - References will appear in brackets: `[#1]'
+ \parenreference - References will appear in parenthesis: `(#1)'
+
+ The following five macros define or cite references:
+ \cite#1=#2 - Define a new reference and put out, e.g.: `$^{#1}$'
+ \hideref#1=#2 - define a new reference, but don't put out any text.
+ This is how multiple references are produced.
+ \bareref#1=#2 - define a new reference, and put out #1 only (bare).
+ \reference#1=#2 - Define a new reference and put out `Ref.#1'
+ \Reference#1=#2 - Define a new reference and put out `Reference #1'
+
+ \refspec#1,#2(#3)
+ Specify a reference in a way that the journal style can switch.
+ \volyearpageref - |\refspec| will be: volume, year, page.
+ \cernref - References will appear in CERN's style.
+
+ EQUATIONS:
+ \equation#1=#2 - Define a new equation.
+ \Equation#1=#2 - Define a new equation.
+ \display#1=#2 - define a new equation and display it.
+
+ AUTHOR ADDRESS SPECIFICATION:
+ \authoraddress#1=#2 - define a new authoraddress
+ \presentaddress#1=#2 - define a new authoraddress
+ as `Present address: #2'
+ \addressreference - specify author addresses to be references
+ \addressfootnote - specify author addresses to be footnotes
+ \addressinline - specify author addresses to be inline
+
+ In the figure and table macros,
+ #2 is the title of the figure or table, which will appear in the
+ table of contents.
+ #2 and #3 concatenated together constitute the caption of the figure
+ or table.
+ #4 will be the contents of the figure or table itself.
+
+ FIGURES:
+ \figure#1=#2#3#4 - Define a new figure and put out `Fig.#1'
+ \Figure#1=#2#3#4 - Define a new figure and put out `Figure #1'
+ \iffigureembed - figures are to be imbedded into the text.
+ Default: true.
+
+ TABLES:
+ \table#1=#2#3#4 - Define a new table and put out `table #1'
+ \Table#1=#2#3#4 - Define a new table and put out `table #1'
+ \iftableembed - tables are to be embedded into the text.
+ Default: true.
+
+ MISC:
+ \hangpar#1#2 - starts a paragraph with hanging indentation.
+ \lowercasecite - Citations will be lower case, not upper.
+ \vita#1 - specify a curriculum vitae for this document
+ \hyphen - punctuation for equations and multiple references
+ \comma - punctuation for multiple references
+ \lapperiod - a period which overlaps to the left.
+
+
+VERBATIM
+These are the macros for verbatim scanning.
+ \begintt - Begin verbatim mode.
+ \endtt - End verbatim mode.
+ |stuff| - Verbatim mode, inline.
+ \listfile#1 - Make a listing of the specified file.
+ \iflistnumber - flag: \listfile produces a numbered listing.
+
+INDEX
+These are the macros for doing the index of a document.
+They can each turn into a ``silent'' index entry by doubling the `^'
+ ^\{text} - Ordinary index entry.
+ ^\|text| - A special term, index entry.
+ ^\|\text| - A control sequence, index entry.
+ ^\<text> - A bracketed concept, index entry.
diff --git a/macros/psizzl/psizzl.doc b/macros/psizzl/psizzl.doc
new file mode 100644
index 0000000000..b1c9b1469d
--- /dev/null
+++ b/macros/psizzl/psizzl.doc
@@ -0,0 +1,41 @@
+PSIZZL DOC - introduction to Psizzl macros for TeX version 1.1
+
+This disk contains the TeX macro package PSIZZL.
+It is to be used in conjunction with Tex82 ver. 1.1
+
+To use these macros,
+prepare a TeX input file of filetype `TEX',
+and give the (CMS) command `TEX &PSIZZL <filename>',
+where <filename> is the name of your file.
+
+You may want to make a file called MYPSIZZL TEX,
+which would have your customized Psizzl macros on it.
+A dummy version of this file is provided.
+
+The file `PSIZZL ARCHLIST' contains a listing of all the distribution
+Psizzl files.
+
+A file `PSIZZL COMMANDS' gives a listing of the user commands in Psizzl,
+along with a discussion of how to use them.
+
+Models (templates) for various types of jobs, such as letters, memos,
+papers, reports, theses, chapters, lists, figures, tables, and references
+may be found in the files `* TEMPLATE'.
+These files may be edited directly into Psizzl input files.
+Note the file `PSIZZL TEMPLATE', which shows how to
+surround your file with the appropriate commands to run it.
+
+For CMS systems, there are two REXX exec files which, respectively
+carry on a dialog with the user to build Psizzl letters and memos.
+In addition, there is a file called `PSIZBILD' which builds the
+PSIZZL FMT file.
+
+A document describing these macros, ``Psizzl Macros'' is available
+as SLAC-REPORT-268 from the author,
+Arthur Ogawa, CLA B226, Bin 96, SLAC, Stanford, CA 94305,
+(415) 854-3300 X2698,
+vmid `OGAWA' at `SLACVM' on net `BITNET'.
+Future releases of Psizzl will have this paper online.
+
+Any problems, questions, suggestions for improvements, etc.
+should be sent to Ogawa.
diff --git a/macros/psizzl/psizzl.tex b/macros/psizzl/psizzl.tex
new file mode 100644
index 0000000000..a2c7bb4c8d
--- /dev/null
+++ b/macros/psizzl/psizzl.tex
@@ -0,0 +1,27 @@
+% Psizzl TeX - macros for use with TeX version 1, format PLAIN
+% - high level macros A. Ogawa, Dec 1983
+%
+\ifx\fmtname\undefined\input plain % INITEX run
+ \else\let\dump\relax\fi % VIRTEX run: no \dump's
+\def\plain{plain}\ifx\fmtname\plain\else
+ \message{\fmtname\space is already loaded. I quit.}\endinput\fi
+\def\psizzl{Psizzl}\let\fmtname\psizzl\def\fmtversion{0.35}%
+\def\fmtext{\fmtname}% this may require changing in some systems
+\input symbols.\fmtext % symbol definitions and public macros
+\input macros.\fmtext % include macros common to all of this package
+\input lists.\fmtext % item lists
+%\input picture.\fmtext % macros for making pictures
+\input fontdefs.\fmtext % define fonts and families
+\input options.\fmtext % implement the switches
+\input publicat.\fmtext % title page for publications
+\input memo.\fmtext % memo formatter
+\input letter.\fmtext % letter formatter
+\input chapters.\fmtext % body, chapter, section, subsection
+\input citation.\fmtext % references, figures, tables, equations
+\input verbatim.\fmtext % verbatim scanning macros
+\input index.\fmtext % indexing macros
+\input output.\fmtext % output formatting
+\input institut.\fmtext % hooks for the present institution
+\lock % lock the macro names with @ key
+\fmtjob % do what \everyjob normally does
+\dump % if INITEX was used, dump the fmt file
diff --git a/macros/psizzl/psizzl.txt b/macros/psizzl/psizzl.txt
new file mode 120000
index 0000000000..e6e778eec1
--- /dev/null
+++ b/macros/psizzl/psizzl.txt
@@ -0,0 +1 @@
+psizzl.doc \ No newline at end of file
diff --git a/macros/psizzl/publicat.psizzl b/macros/psizzl/publicat.psizzl
new file mode 100644
index 0000000000..0d8edaa21f
--- /dev/null
+++ b/macros/psizzl/publicat.psizzl
@@ -0,0 +1,317 @@
+% PUBLICAT PSIZZL - macros for thesis, report and publication
+%
+% macros for all documents
+%
+\def\docspec#1{%
+ \def\sp@cd@c{#1}%
+ }\docspec{}%
+\def\contract#1{%
+ \def\c@ntract{#1}%
+ }\contract{}%
+\def\title#1{%
+ \def\t@tle{#1}%
+ }\title{}%
+\def\subtitle#1{%
+ \def\s@btitle{#1}%
+ }\subtitle{}%
+\def\titlefootnote#1{%
+ \def\t@tlefoot{#1}%
+ }\titlefootnote{}%
+\def\authors#1{%
+ \def\@uthors{#1}%
+ }\authors{}%
+\def\institute#1{%
+ \def\@nstitute{#1}%
+ }\institute{}%
+\def\submittedto#1{%
+ \def\j@urnal{#1}%
+ }\submittedto{}%
+\long\def\abstract#1{%
+ \long\def\@bstract{#1}%
+ }\abstract{}%
+\long\def\longempty{}%
+\long\def\acknowledge#1{%
+ \long\def\@cknowledge{#1}%
+ }\acknowledge{}%
+\def\@bstrhead{Abstract}%
+\def\@cknwhead{Acknowledgments}%
+\newif\iffrontmatter\frontmattertrue
+\newif\ifabstractsigned
+\newif\ifcopyright
+\def\p@genumberpaper{%
+ \ifp@genumbercenter\p@gebanner{}{\p@genumber}{}%
+ \else\p@gebanner{}{}{\p@genumber}%
+ \fi
+ }%
+\def\workingauthor#1{%
+ \def\w@rkauth{#1}%
+ }\workingauthor{}%
+\def\workingbin#1{%
+ \def\w@rkbin{#1}%
+ }\workingbin{}%
+\def\workingaddress#1{%
+ \def\w@rkadd{#1}%
+ }\workingaddress{}%
+\newif\iftitlepage\titlepagetrue
+\def\begindocument{% to appear at beginning of any document
+ \resd@c\p@gefront\styled@c\p@ststyle
+ \pred@c
+ \iftitlepage\titd@c\fi
+ \iffrontmatter\frontd@c\fi
+ }%
+\def\enddocument{%
+ \endd@c
+ }%
+\def\p@ststyle{}%
+\def\resd@c{\endpage}%
+\adddef\fmtreset{\resd@c}%
+\def\specd@c{%
+ \ifx\sp@cd@c\empty\else
+ \rightline{\vbox{\singlespace\halign{##\hfil\cr\sp@cd@c\endline}}}%
+ \fi
+ }%
+\def\copyrightpage{%
+ \vbox to \z@{}\vfil%
+ \centertitle{\copyright\ Copyright\ \the\year\breaktitle
+ by\breaktitle\@uthors
+ }%
+ \endpage
+ }%
+\def\signrule{\vrule width3in height -2.5pt depth 3pt}%
+\def\signee#1{%
+ \rightline{%
+ \vbox{%\smallinterlineskip
+ \halign{\hfil##\hfil\cr\noalign{\bigskip}\signrule\cr#1\crcr}%
+ }%
+ }%
+ }%
+\def\sigpage#1#2#3#4#5{%
+ \gdef\s@gpage{%
+ \vfil
+ \sigstatement\signee{#1}\medskip
+ \sigstatement\signee{#2}\medskip
+ \sigstatement\signee{#3}\bigskip#5\bigskip
+ \signee{#4}%
+ \vfil\eject
+ }%
+ }%
+\def\abspage{%
+ \ifx\@bstract\longempty\else
+ \ifabstractsigned
+ \smallskip
+ \centertitle{\t@tle}\bigbreak
+ \centerline{\@uthors , Ph.D.}%
+ \centerline{\@niversity ,\ \the\year}
+ \medskip
+ \par \@bstract
+ \medskip\vfil
+ \rightline{%
+ \vbox{%\smallinterlineskip
+ \halign{\hfil##\hfil\cr
+ Approved for publication:\hfill\cr
+ \noalign{\bigskip}By\space\signrule\cr
+ For Major Department\cr
+ \noalign{\bigskip}By\space\signrule\cr
+ Dean of Graduate Studies\cr
+ }%
+ }%
+ }%
+ \endpage
+ \else
+ \centerline{\bf\@bstrhead}%
+ \medskip
+ \par\@bstract
+ {\@ddch@pt{\@bstrhead}{\noexpand\strut}}%
+ \endpage
+ \fi
+ \fi
+ }%
+\def\dedicate{\def\d@dicate}%
+\def\d@dicathead{Dedication}%
+\def\dedicatpage{%
+ \ifx\d@dicate\empty\else\endpage
+ \centerline{\bf\d@dicathead}\medskip\d@dicate
+ \begingroup\l@twrite\@ddch@pt{\d@dicathead}{\noexpand\strut}\endgroup
+ \fi
+ }%
+\def\ackpage{%
+ \ifx\@cknowledge\longempty\else\endpage
+ \centerline{\bf\@cknwhead}\medskip\par\@cknowledge
+ {\@ddch@pt{\@cknwhead}{\noexpand\strut}}%
+ \endpage
+ \fi
+ }%
+\def\contentspages{%
+ \immediate\write\ch@pterwrite{\noexpand\t@bcontents}%
+ \immediate\write\ch@pterwrite{\noexpand\f@gt@bhead}%
+ \t@cpagecount=\number\p@gecount
+ }%
+%
+% macros for publications
+%
+\def\publicationstyle#1{%
+ \adddef\stylep@b{#1}%
+ }%
+\def\publication{%
+ \let\pred@c\prep@b\let\styled@c\stylep@b\let\titd@c\titp@b
+ \let\frontd@c\frontp@b\let\endd@c\endp@b
+ }%
+\def\stylep@b{%
+ \largetype\normalbaselines\singlesided
+ }%
+\def\prep@b{}%
+\def\frontp@b{}%
+\def\titp@b{% to appear at beginning of pub
+ \specd@c
+ \vfil
+ {\bf\let\t@tlefoot\c@ntract
+ \centertitle{%
+ \uppercase{\t@tle}%
+ \ifx\t@tlefoot\empty\else\footnote{$^\ast$}{{\rm\t@tlefoot}}\fi
+ }%
+ }\medskip
+ {\singlespace\cp\centertitle\@uthors}%
+ \ifc@teaddress\medskip{\it\centertitle\@nstitute}\fi
+ \ifx\@bstract\empty\else
+ \midinsert
+ \medskip
+ %\hsize=\refsize
+ \centerline{\bf\@bstrhead}\medskip
+ \par \@bstract
+ \endinsert
+ \fi
+ \ifx\j@urnal\empty\else
+ \medskip\centertitle{Submitted to \j@urnal}%
+ \fi
+ \vfil\supereject
+ }%
+\def\endp@b{%
+ \ifsubmit\ifx\j@urnal\empty\else\letp@b\fi\fi
+ }%
+\def\letp@b{% if paper is to be submitted, this is the cover letter
+ {%
+ \singlesided
+ \letterto{\j@urnaleditor}{\j@urnaladdress}%
+ \letterfrom{\w@rkauth\endline
+ \ifx\w@rkadd\empty\else\w@rkadd\endline\fi
+ }{\w@rkbin}{}%
+ \closing{Sincerely yours,}%
+ \enclosure{Enclosures}{}%
+ \beginletter\l@tp@b\endletter
+ }%
+ }%
+\newbox\glossies
+\def\gl@ssies#1#2{%
+ \ifnum#1>\z@
+ \global\setbox\glossies
+ \hbox{\ifnum\wd\glossies=\z@\else\unhbox\glossies\ and\ \fi
+ \number#1\ #2\ifnum#1>\@ne s\fi
+ }%
+ \fi
+ }%
+\def\l@tp@b{%
+
+ Enclosed are three copies of a manuscript entitled,
+ {\def\breaktitle{\relax}``{\bf\t@tle}''}
+ which we are submitting for publication in \j@urnalname .
+ \setbox\glossies\hbox{}%
+ \gl@ssies\f@gtotal{figure}\gl@ssies\t@btotal{table}%
+ \ifnum\wd\glossies=\z@\else
+ Glossies of the \unhbox\glossies\
+ are included with one of the copies.
+ \fi
+
+ Please send correspondence to me at the
+ \ifx\w@rkadd\empty above address.
+ \else following address:%
+ \halign{\indent##\hfil\cr\w@rkauth\cr\w@rkadd.\cr}%
+ \par\noindent
+ \fi
+ However, please send the Publication Charge Certification form
+ directly to \pubadmin .
+
+ Thank you for your consideration of this paper.
+ }%
+%
+% Macros for thesis
+%
+\def\university#1{%
+ \gdef\@niversity{#1}%
+ }\university{}%
+\def\thesisstyle#1{%
+ \adddef\styleth@{#1}%
+ }\def\styleth@{%
+ }%
+\def\thesis{%
+ \let\pred@c\preth@\let\styled@c\styleth@\let\titd@c\titth@
+ \let\frontd@c\frontth@\let\endd@c\endth@
+ }%
+\def\preth@{%
+ \abstractsignedtrue\fr@nttrue\abspage
+ }%
+\def\titth@{%
+ \endpage\p@gefront\fr@nttrue
+ \vbox to \z@{}\vfil%
+ {\cp\centertitle{\t@tle}}\vfil
+ \ifx\s@btitle\empty\else{\cp\centertitle{\s@btitle}}\vfil\fi
+ \centertitle{\@uthorpre\@uthors\breaktitle\@uthorpost}%
+ \vfil\eject
+ }%
+\def\@uthorpre{%
+ by\breaktitle
+ }%
+\def\@uthorpost{%
+ \monthword\ \the\year\breaktitle
+ }%
+\newif\ifs@gpage\s@gpagetrue
+\def\frontth@{%
+ \let\n@llch@pt\g@bble
+ \ifcopyright \copyrightpage \fi
+ \ifs@gpage\s@gpage\fi
+ \abstractsignedfalse\abspage
+ \ackpage
+ \contentspages
+ }%
+\def\endth@{}%
+%
+% Macros for reports
+%
+\def\price#1{%
+ \gdef\pr@ce{#1}%
+ }\price{A08}%
+\def\reportstyle#1{%
+ \adddef\styler@p{#1}%
+ }%
+\def\styler@p{%
+ }%
+\def\report{%
+ \let\pred@c\prer@p\let\styled@c\styler@p\let\titd@c\titr@p
+ \let\frontd@c\frontr@p\let\endd@c\endr@p
+ }%
+\def\prer@p{}%
+\def\endr@p{}%
+\def\titr@p{%
+ {\normalbottom%\baselineskip 15pt
+ \specd@c\bigskip\bigskip
+ {\bf
+ \centertitle{%
+ \uppercase{\t@tle}%
+ \ifx\t@tlefoot\empty\else
+ \footnote{$^\ast$}{{\rm\t@tlefoot}}\fi
+ }%
+ }\bigskip
+ \centertitle{{\rm \@uthors}}\bigskip
+ \centertitle{{\rm \@nstitute}}\vfil
+ \centertitle{\monthword\ \the\year}\vfil
+ \ifx\c@ntract\empty\else{\rm\noindent\c@ntract}\bigskip\fi
+ \ifx\r@portprice\empty\else{\rm\noindent\r@portprice}\bigskip\fi
+ \supereject
+ }%
+ }%
+\def\frontr@p{%
+ \ifcopyright \copyrightpage \fi
+ \abstractsignedfalse\abspage
+ \ackpage
+ \contentspages
+ }%
+\def\endr@p{}%
diff --git a/macros/psizzl/symbols.psizzl b/macros/psizzl/symbols.psizzl
new file mode 100644
index 0000000000..ebac724b21
--- /dev/null
+++ b/macros/psizzl/symbols.psizzl
@@ -0,0 +1,59 @@
+% SYMBOLS PSIZZL - symbol menu for TeX 1.0
+\let\itemTeX\item % make way for \item macro of Psizzl
+\font\fourteenss cmsy10 scaled\magstep{2}%
+%% use the following sub-set to print the circle R as a
+%% superscript followed by a little space. (TM for Trade Mark.)
+\def\TM{$^{\Registered}$\kern.6em}%
+%
+\def\Registered{% circle R
+ {\ \unskip\hbox{\hbox{\mathhexbox20D}}%
+ \kern -1.85ex\
+ \unskip\hbox{\raise .07ex\hbox{$\scriptstyle R$}}%
+ }%
+ }%
+\def\assert{% assertion relation: kern ^ and - together
+ \mathrel{\mathpalette{\vert\mkern-8mu-}{}%
+ }%
+ }%
+\def\pslash{\not\kern-.20em p}% p with a slash through it
+\def\qslash{\not\kern-.15em q}%
+\def\bra#1{\langle #1 \vert}%
+\def\ket#1{\vert #1\rangle}%
+\def\braket#1#2{\langle#1\vert#2\rangle}%
+\def\VEV#1{\langle #1\rangle}%
+\def\lsim{\buildrel\sim\over<}%
+\def\gsim{\buildrel\sim\over>}%
+\def\parder#1#2{%
+ {\partial #1 \over\partial #2}%
+ }%
+\def\parparder#1#2#3{%
+ {\partial^2#1\over\partial#2\partial#3}%
+ }%
+\let\tie=~%
+% the current date, with month in script
+\def\monthword{%
+ \ifcase\month% turn the month into a string
+ \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
+ }%
+\def\ie{{\it i.e.}}% id est
+\def\eg{{\it e.g.}}% exempli gratia
+\def\nb{{\it NB}}% nota bene
+\def\sic{[{\it sic}]\ }% thus
+\def\vs{{\it vs}}% versus
+\def\etc{{\it etc.}}% et cetera
+\def\apriori{{\it a priori}}% a priori
+\def\perse{{\it per se}}% per se
+\def\awk{{\sl [awkward]}}% editorial comment
+\def\bothmodes#1#2{%
+ \def#1{\relax\ifmmode#2\else$#2$\fi}%
+ }%
+\bothmodes\\\backslash
+\bothmodes\bull\bullet
+\bothmodes\astr\ast
+\bothmodes\crcl\circ
+\bothmodes\micron{\mu m}%
+\bothmodes\{\lbrace
+\bothmodes\}\rbrace
diff --git a/macros/psizzl/thesis.psizzl b/macros/psizzl/thesis.psizzl
new file mode 100644
index 0000000000..92cfd8512c
--- /dev/null
+++ b/macros/psizzl/thesis.psizzl
@@ -0,0 +1 @@
+% THESIS PSIZZL - please use THESIS PSIZSAMP as a model for your thesis!