From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/psizzl/aaaread.me | 10 + macros/psizzl/chapters.psizzl | 314 ++++++++++++++++++++++ macros/psizzl/citation.psizzl | 607 ++++++++++++++++++++++++++++++++++++++++++ macros/psizzl/fontdefs.psizzl | 221 +++++++++++++++ macros/psizzl/index.psizzl | 91 +++++++ macros/psizzl/institut.psizzl | 60 +++++ macros/psizzl/letter.psizzl | 244 +++++++++++++++++ macros/psizzl/lists.psizzl | 172 ++++++++++++ macros/psizzl/macros.psizzl | 167 ++++++++++++ macros/psizzl/memo.psizzl | 74 +++++ macros/psizzl/mypsizzl.tex | 30 +++ macros/psizzl/options.psizzl | 135 ++++++++++ macros/psizzl/output.psizzl | 200 ++++++++++++++ macros/psizzl/picture.psizzl | 48 ++++ macros/psizzl/psizzl.commands | 312 ++++++++++++++++++++++ macros/psizzl/psizzl.doc | 41 +++ macros/psizzl/psizzl.tex | 27 ++ macros/psizzl/psizzl.txt | 1 + macros/psizzl/publicat.psizzl | 317 ++++++++++++++++++++++ macros/psizzl/symbols.psizzl | 59 ++++ macros/psizzl/thesis.psizzl | 1 + 21 files changed, 3131 insertions(+) create mode 100644 macros/psizzl/aaaread.me create mode 100644 macros/psizzl/chapters.psizzl create mode 100644 macros/psizzl/citation.psizzl create mode 100644 macros/psizzl/fontdefs.psizzl create mode 100644 macros/psizzl/index.psizzl create mode 100644 macros/psizzl/institut.psizzl create mode 100644 macros/psizzl/letter.psizzl create mode 100644 macros/psizzl/lists.psizzl create mode 100644 macros/psizzl/macros.psizzl create mode 100644 macros/psizzl/memo.psizzl create mode 100644 macros/psizzl/mypsizzl.tex create mode 100644 macros/psizzl/options.psizzl create mode 100644 macros/psizzl/output.psizzl create mode 100644 macros/psizzl/picture.psizzl create mode 100644 macros/psizzl/psizzl.commands create mode 100644 macros/psizzl/psizzl.doc create mode 100644 macros/psizzl/psizzl.tex create mode 120000 macros/psizzl/psizzl.txt create mode 100644 macros/psizzl/publicat.psizzl create mode 100644 macros/psizzl/symbols.psizzl create mode 100644 macros/psizzl/thesis.psizzl (limited to 'macros/psizzl') 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{}% +% +% where may contain embedded \breaktitle macros +% +% After the \chapter for the last chapter, input the commnad: +% +% \beginappendices, +% +% then more \chapter's for the appendices: +% +% \chapter{}% +% +% 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{
}% +% +% \subsection{}% +% +% 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\= +% {Title of the figure}{caption}{} 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\={}% +% 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 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 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 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 as an active character +% but still preserving TeX's property of spacing past blanks (including +% a ) 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 +% ^\ - 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, "\" 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: 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{}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{} Use these as above. The sub-item list +% \sitem is indented a bit farther. +% \sitemcon +% +% \ssitembegin{} 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{}{}{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 . + }% +% 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{} The default date is today's date, +% but here's how you can change it. +% +% \memohead{
} This will be the header for the memo +% the default is `\bf MEMO' +% +% \memoto{} To whom the memo is addressed +% +% \memofrom{} Who it's from +% +% \memosubject{} 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. +% +% 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 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 +\ 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. + ^\ - 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 ', +where 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! -- cgit v1.2.3